(11-10-2010, 11:01 AM)kachwahed كتب : السلام عليكم
في المرفق مثال يستخدم خوارزمية Hufman لضغط (ترميز Encoding) صور bmp
بارك الله فبك يا استاذ
انا تعرفت على خوارزمبة هوفمن حديثا
اعجبنني فكرة الضغط و بدأت ببرمجة برنامج يعمل بها
الا انني لم اعتمد على فكرة هوفمن بالكامل
فهو اعتمد على نصف الاحتمالات فقط
و فضلت ان اكثر حرفبن تكرارا تمثلان ببت واحد صفر و واحد
و ثم اثنان بت تمثل اربعة و سبعة بت تمثل ثمانبة و هكذا
اعتمد على المراحل
قراءة الملف
ترتيب الملف من الاكبر الى الاصغر
حساب عدد تكرار كل حرف او كلمة اي على حسب عدد البايتات التى تربد الضغط
حسبها
اعادة الترتيب على على حسب عدد التكرار
انشاء مصفوفة احتمالات البت
انشاء مصفوفة المستويات معتمدا على امربن
اكبر عدد الاحرف دون تكرار تعطينا حجم المستوى بالبت
اكبر عدد مكرر هو صاحب اقل حجم بت اي بت اما صفر او واحد
و المستوى نقصد بها عدد البت الذي سنستبدل به البايت او الكلمة
و في الاخيى وضعها في ملف ثنائي ز المصفوفات هي
الاحرف الاصلبة دون تكرار
المسنويات
المصفوفة التي استبدلنا فيها الاحرف بالبت
و هيدر لكي نعرف كل قسم و بعض المعلومات عليه
انا متوقف في هذه المرحلة بسبب انني لاقيت صعوبة في التعامل مع الملف بصيغة ثنائية
ساعدني في التعامل مع الملفات كتتب الاخ tgm
لست اءكر الاسم ز عذرا على تلاخطاء غي الكتابة
والله اننبةبالكاد ارى الاحرف بااهاتف بارك الله فيكم