يا رب الصلاة والسلام عليكم نكمل
ان شاء الله المحاضرة وقفنا في ديل هوفمان صح؟ طب
عارفين إيش كان الموضوع؟ إيش هي الطرق المستخدمة في
عملية تجميع البيانات المتشابهة و تمثيلها بطريقة
مختزلة أكتر يعني طريقة إيش تاخد مساحة أقل تخزين
طبعا شوفنا احنا طريقة من الطرق المرة اللي فاتت
اللي هي ال variable length codingاللي هي طريقة الـ
Variable Linked Coding وشوفنا إيش فكرتها أنه أنا
بشوف N1 و N2 و N1 بتيجي من عدد الـ bits اللي بتمثل
ال data الأصلية عشان نجيب N2 بدنا نعمل ال process
نعمل عملية عشان نحصل على N2 العملية اللي بدنا
نعملها عشان نتقل العدد ال bits إيش هي طريقة اللي
هي Run Linked Encoding؟ أيوة بدنا نعدنشوف مين أكتر
وجوده نعطيه أقل طول واللي أقل وجود نعطيه أش أكتر
طول ونرجع نحسب عدد البتات الجديد وبيطلع طبعا أقل
من اللي هو مش دايما حسب البياناتحسب ash البيانات و
حسب نسبة التكراع لكن هيطلع بنسبة أقل فعلا من نسبة
عدد البيتات الأصلية هنقسم N1 على N2 و يطلع لي نسبة
ال compression ratio و من عكس النسبة اللي هي N2
على N1 بطلع لي اللي هو ال redundancy طب Hoffman
إيش بيعمل؟هوفمان بيعمل زي ال variable length
coding بس إيش بيسوي؟ بيعطي standard code
يعني بيعطيك طريقة يكتب فيها أو ترمز فيها الرقم
الجديد أو العنصر هذا بشكل جديد بس ثابت يعني مش ع
كيفك مش ع كيفك تقعدي تشغليه او تكتبيه بمعنى لو
نفترض احنا عن هذا المثال بدأنا فيه المرة اللي فات
ماكملناهوش لو انا بدي احكي على صورة بفرق هنا
الموضوع صورة طول البيتات تبعتها او طول ال pixel
واحدة تلاتة bit ماشي؟فراح يشتغل على أكم لون على
تمام ألوان بيعمل جدول في ال Hoffman الجدول هذا في
أكم عنصر 1,2,3,4,5 الخمس عناصر هاي أول إشي بنحط ال
levels تبعت ال color تمام؟ تاني عنصر بيجيب له
probability تبعت كل levelواتفعنا اخر مرة اللى فاتت
اخر محاضرة اللى فاتت حكيه ان احنا ايش ال
probability اللى هي نسبة احتمال وجود كل color في
الصورة وكيف بنجيبها من خلال اني اجيب اللى هو ال
histogram تبع كل level و بقسمه على عدد ال pixel
الكلية للصورة طبعا يعني لما يكون مثلا عندك صورةستة
فى ستة بكسل اه ستة فى ستة بكسل قدر تطلع تطلع ستة و
تلاتين بكسل صح هذا ميل اللى بنسميه total number of
pixels واللي علنا هنا فى القانون هو يساوي N تمام؟
هو إيش بيساوي؟ N smallطيب هلقيت احنا لو كان في
عندك واحد، اتنين، تلاتة، اربع، هاي خمسة، فهو ستة،
هاي واحد، اتنين، تلاتة، اربع، خمسة، هاي ستة، في
ستة pixel وكان عندك مثلا الألوان مكرر بهذا الشكل
صفر موجودة في هذه الأماكن واحد موجود في هذه
الأماكن اتنين مثلا موجودة هنا التلاتةموجودة في هذه
الأماكن الستة موجودة في هذه الأماكن خمسة
و السبعة مثلا موجودة هنا افترض
هي في هنا اتنين اتنين زي هيك تمام؟ هذه ال levels
موزعة بهذا الشكل كيف بدي اجيب نسبة الصفر او ال
probability بتبعت ال zeroطبعا احنا هنا في ال table
ده ممكن يكون ماتيني ال probability بشكل مباشر زي
هذا المثال وممكن مايكونش ماتينيها يكون ماتيكي صورة
بهذا الشكل وموزعلك فيها ال levels انت بدك تجيب ال
probability واضح؟ كيف بنا نجيبها؟ هروح أمسك الصفر
و أد أكم مرة موجودمثلا هي واحد اتنين تلاتة اربعة
هي خمسة مفترض هي كمان واحدة هذه فاضية هي ستة okay
يبقى عندي عدد مرات وجود الصفر ست مرات على ستة و
تلاتين قدش بيطلع ستة ولا صدوس بيطلع صدوس طيب اللي
واحدنفس الفكرة، واحد، اتنين، تلاتة، هاي أربع،
خمسة، ستة، سبعة، تمانية، تسعة، هاي عشرة عشر مرات
على الستة وتلاتين وها كده، بتضل كتش بيقولال levels
اللى موجود معاكى لو واحد مثلا مش موجود ولا مرة
بتقولنا صفر مافيش فيها اي شي فهيك هو ايه جاب ال
probability حصلنا مين ال probability بتبعد كل
level بهذه الطريقة طب هلاقيت اش بالزمنى بدنا نجيب
ال word او ال code word ال code word بدنا نجيبها
بطريقة Hoffman اش قاللي Hoffmanاللي بيحكي لنا رتبي
طبعا احنا هاي ال levels تبعتنا وفي نسبها نقايا
الصفر بفا منها مش موجودة ولا مرة تمام؟ وفي عندك
مرتين تان two color زيها اللي هو تلاتة و ستة
موجودين بنفس النسبةكمية التواجد يعني نفس العدد
المرات و الواحد مثلا بالنسبة و الاربعة و الخمسة و
الستة و الحكية ده كله بدنا نشوف .. نرتبهم من الأقل
للأكبر ماشي؟ بناء على مين؟ على ال probability
تبعتهم فمثلا عندنا الصفر أقل واحدة هتحطيها تحت
بعدين بيجي وراها مين؟اللي هي التلاتة من .. من مية
اللي هي مين السبعة فكتب نجاب كل probability ال
level تبعها ماشي و بعدين بيجي عندك ال 12 من ميةليه
للواحد و بعدين ماتيش عندك مين تحط قبل التلاتة و لا
الستة بيفرقش لإن تتن زي بعض خلاص فمثلا هنحط
التسعتاش في المية تبعتي التلاتة و التسعتاش في
المية تبعتي الستة طبعا عشان هيك مهم أنا أعرفهذا
يمين وهذا لمين لازم نحط ال level لإنه ممكن يكونوا
بنفس النسبة و هنشوف ليش طيب و بعدين هتيجي وراها
بعد ال 19 في عندك اللي هي الخمسة و بعد الخمسة بيجي
عندك مين؟ الأربع أكتر حاجة طبعا؟ طيب إيش بدنا
نسوي؟ بيروح بيعمل ال tree بتعرفوا ال tree؟ بيوصلهم
في بعض يشبكهم يعمل شجرةطبعا كيف بدو تيجي اعمل هذه
الشجرة بقولك ادي من تحت كل اتنين مع بعض ماشي كل
اتنين خديهم مع بعض طب اخد هدول كمان لحال لأ بتبدي
اتنين اتنين و النتج اللي بيطلع تربطيه مع اللي فوق
فهي هدول التنتين اخدناهم مع بعض النتج اللي طلع
منهم بننشف كمانين مع اللي فوقها في حال طبعا بضلنا
ماشيه بنفس الطريقة هذهفي حال ايش انه كانوا الترتيب
تبعهم كلهم تساعد يعني من الصغير للكبير لكن لو في
عندي اتنين شبه بعض نفس الاشي ايش بنعمل؟ بنعمل فاصل
ايش يعني فاصل؟ بعتبر هذه النقطة بداية جديدة زي ما
عملنا هانواضح بس هي هذه يعني ال trick اللي ممكن
يصير معانا اما انا بمشي بشكل طبيعي ببدأ من تحت و
بشبك مع اللي فوق اللي تحت مع اللي فوق خلاص لكن لو
كان في عندى اتنين شبه بعض بعتبر اللي فوقه بداية اش
مالها ال tree جديدة كانة او بداية تقسيمة جديدة و
بقى اشي اش بسوي برشع تانى ها طلعش سوينا اخدنا هدول
اتنين مع بعض و شبكناهم هدول شبكناهم هيك مع بعض
بعدين أخدنا هاي مع الناتش اللي طلعOkay؟ ضلينا زي
هيك لحد ما وصلنا لهنا شايفين هذه؟ شبكناهم مع بعض،
بس النادش تبعهم ما شبكناها مع اللي فوق عشان نطبع
ال codeعشان نطلع هقولك كيف نطلع ال code ماشي فهو
رسم ال tree بتكون انتبهوا كيف بس انا أشبككم مع بعض
عشان يطلع معاكي ال code صح خلاص طيب لما نيجي
نشبكهم مع بعض اش بده اسوي هتحط طبعا هيك انت برجعلك
هذا اما بتحطي تحت واحد و فوق صفر او من تحت صفر و
فوق واحدبتصير ايش؟ تعطي كل بعث كأنه مسار زي الطريق
ماشي، كل طريق بتعطيها رقم هذي واحد، هذي صفر، بنضمن
ماشي على نفس الترتيب هذا واحد صفر، واحد صفر، واحد
صفر، واحد صفر، واحد صفر، تمام؟ وهنا مثلا نفس
الحاجة، ملطقة تانية، هذي برضه واحد، ايش؟ صفر، لكن
لو بدأت صفر واحد، هتعتبر اللغة صفر، واللي فوق
واحد، مابنفع تغيري، بضلك ماشي نفس النظامطيب بعدين
إيش بده أعمل؟ هو أشرح سوالي جمع هذه ال property
معاهي و طلعلي ال property الجديد نتيجة الجمع
تبعتهم، هذا اللي إحنا راح نستفيد منها في آخر واحدة
فلو إجيتي جمعتيهم مع بعض و بعدين أخدت هذه وجمعتها
مع هذه و أخدت هذه وجمعتها مع هذه وهكذا هيتمعلك في
الآخر قداش ال length probability اللي إحنا بدناها
هذه شغلة شغلة تانية اللي هي أطلع ال code كيف أطلع
ال code؟ طلعوا كيف؟ مثلا الصفر أو بلاش الصفر،
انشوف الواحد وين الواحد؟ هيهعشان أوصل للواحد، إيش
المسار اللي بدي أمشي فيه؟ هاي، طلعوا كيف؟ همشي
الصفر؟ واحد، واحد، واحد، واحد، صح؟ معايا؟ مرة
تانية، الواحد عشان أوصل لنقطة النهايةأو من نقطة
النهاية للواحد ايش الخط او المسار اللى بدي امشي
فيه تمشي من عند الرقم واحد هذا او ال point 12 يعني
من الف بمسك هيك ايش رقمه هذا؟ صفر طبعا انا حطر اني
انزل تحت هذا قداش رقمه؟ واحد برضه هذا واحد بطلع
هيك واحد بطلع هيك واحد خلصنا زى المتاهة يعني تمشي
فيها طب الرقم اللى انا قرأته من الواحد لحد لما
أصلنا للنهايةطلع كيف بنكتب؟ هيها هي واحد بس هاد
ايش كاتب هو يعني من الشمال لليمين بدي من عند
الواحد او من عند ال level يعني okay فهيها صفر
بعدين هيها واحد واحد واحد واحد طبعا طلعونا ال code
هاد الشيفر مش بنقولنا بنا نكتب له رمز جديدصح؟ بدنا
نشفره و هذه هي الشفرة الجديدة اللي بتعبر عن ال
level 1 خلاص؟ طيب، بدنا نيشي مثلا نشوف الخمسة، هاي
الخمسة، هذي كم بدي أكتبها؟ أو إيش ال code تبعها؟
هاي صفر، صفر، واحد، واحدايه؟ صفر صفر واحد واحد
تمام؟ طب التسعتاش هاي .. عشان تشوفوا ليش فرقناهم
عن بعض التسعتاش هاد و التسعتاش هاد من الف طلعوا
هادي إيش راح تعطيكي لما انت مشي علي هادي الستة
هادي كتبنا جنبها ستة الستة إيش راح تطلع؟ صفر واحد
واحد واحد صح؟ مابنفعش تنكتي بالتان تان صفر واحد
واحد واحد لإن هيك مش هتعرفي انت هادي للستة ولا
تلاتةفهذه إلها رمز حيصير و التلاتة حيصير إلها رمز
تاني فهي إيش طلعنا الستة؟ صفر واحد واحد واحد شوفوا
التلاتة إيش طلعت واحد صفر واحد واحد هي واحد صفر
واحد واحد فهيك أنا ميينزت هذه عن هذه مع أنهم نفس
ال probability لكن لو أنا بشتغل على ال variable
length coding كان التلتين أخدوا نفس الحاجةصح؟ مش
احنا المرة اللي فاتت حكينا ال A و ال B و ال C و ال
D و إجينا حطينا لل A طولها 1 و لل B طولها 2 و لل C
طولها 3 حسب ال probability تبعتهم طب لو أفترض أنا
ال C و ال D تنتقل بقابل تبعتهم نفس الحاجة هضطر أني
أقول لهذا 001 كمان، مظبوط؟ فهيصير عندي مشكلةلما
أجي أميز هذه هال اللي هي لما نرجع البيانات هل هي
سينقول طب أرجح C ولا أرجح D؟ ممكن إحنا نعطيها code
بنفس الطول بس نغيرها بدك تغيري بس أنا بقولك فعليا
لو أنا ب .. برمج شغلة هضطري أنتي ماشي ب standard
معين أنه أنا بزيدوا الطول على N H واحد و بحطه صفار
فهمت كيف؟ انت نظريا على الورق اعمل صح شغلك بس لما
بتكون شغالة في .. في code إلا إذا كنتي إيش عاملة
في البرنامج تبقى .. إذا صارف أنه تنتقل نفس ال ..
ال probability تمام؟ واحدة مثلا تمليها 001
والتانية تمليها مثلا 1000 بس هيك إيش هيصير معاكي؟
إنه في عندي واحد تصير مشكلةفامتنعش ماشينا احنا فى
ال standard معين فال Hoffman اجت اش عملت ليه؟ قدرت
تتفرق بين اي two elements يكون لهم نفس ال
probability او نفس الاحتمال ويعطيهم أطوال مختلفة
يعطيهم أطوال مختلفة او يعني عفوا مش أطوال code
مختلف لكن الطول لازم يطلع واحد نفس الطول اش عن
الطول؟ عدي هدول اكم بت؟ اربعة والتلاتة طولي اكم
بت؟ برضه اربعةواضح؟ فعشان هيك بدنا ننتبه كيف احنا
نقسم لتري عشان نطلع شغلنا صحوإلا ممكن تطلع التلاتة
طولها خمسة وهادي يطلع طولها أربع هيك بيصير فيه خطأ
لازم ياخدوا نفس الطول واضح إيش هوفمان إيجى عمل نفس
فكرة ال variable length coding لكن إيش نظّم عملية
إعطاء ال code بشكل يعني واضح عن طريق mean literary
خلاص طيب خلصنا جبناال code word أو شفرة جديدة لكل
مين لكل level طب بعدين إيش بدنا نسوي؟ بدنا نجيب ال
links بدنا نجيب إيش؟ ال links .. ال links لمين؟ لل
code word .. زي ما قدنا .. بتعد ال code word عشان
تجيب ال linksفانا قداش طولهم؟ واحد، اتنين، تلاتة،
اربع، خمسة، ستة فهذا طوله قداش؟ ستة وهذا طوله؟
خمسة وهذا طوله اتنين، اربع، واحد، اربع، واحد،
اربع، ستة طبعا هذه الصفر ليش طلعت صفر؟ او طولها
واحد هي الأربعة هي بتوصل على طول فنحظة هذه اكتر
تكرار صح؟ واخدت ايش؟ اقل طولنفس الفكرة اللى موجود
بأكثر تكرار أعطينا إيش أقل طول و اللى كان أقل
تكرار زى الصفر أقل تكرار أو أقل مسبة وجود أعطينا
إيش ماله أطول طول برضه ماشيين على نفس مبدأ ال
variable length coding
هو اسم واحد ع ست؟ اه اه اسم واحد ع ست اشبنه؟ ممكن
تطيع الرقم طويل مش مشكلة اما هو .. اه بتحطيه كله
لحد ما تصير رقم جامعهم بيطلع واحد صح؟ مش ضروري
يطلعوا يجمعهم واحد جمع قصدك مين؟ جمع هدولة كلهم اه
جمع ال probability مش الأطول اه المفروض يطلع معاكي
واحد عرفتي كيف؟فبرضه ماشي عرفتوا ليش ال Hoffman
بيحكي لي هي نفس ال variable length coding مع فرق
بسيط انه انا بطلع ال code بشكل ثابت ومحدد طيب
حددنا ال links بعدين ايش لازم نجيب؟ نجيب ال links
ال probability ايش ال links ال probability؟ مش
احنا جيبنا N1 هناك في ال variable length تمام؟ طيب
هلقيت ال variable length تبعتي او ال N2
كيف بدنا نجيبها؟ مش بعد ما عملنا ال process الطويل
عادي و جيبنا code جديد صح؟ طب كيف بده يجيبها؟ مش
أخدنا قداش ال a موجودة كم مرة موجودة ضربناها في
الطول الجديد نفس الحكي فهنروح اش نعمل نجيب ال
length probability هنضرب الطول
في عدد او في نسبة تواجد من الفكرة مختلفة هناك عدد
أنا بضرب في نسبة ماشي كل واحد له طريقة مختلفة بضرب
الطول في مين؟ في ال probability عشان أكسب منها ال
length probability ال length ايش؟ ال probability
كأنك بتضرب ال length في مين؟ في ال probability و
طلعيله القيم تبعت كل واحدة لو أجيتي جمعتي هذا
هلقيت مع بعض بيعطيك N اتنين بيعطيك قداش N اتنين طب
قداش N واحد؟
لأ بيفرق هنا هناك كان في الفيربر بيعد عدد البتات
ماشي هنا ايوة هنا عندك ال maximum number of bet لل
level الواحدة ان واحد اه
بس ماضرب ليها في ال 36 فأخد ان واحد علي انها مين
بس عدد البتات لل level الواحدةعرفتي كيف؟ تفرق مش
بحكيك أنا كل طريقة .. كل فكرة إلها طريقتها
المختلفة بس كلهم ماشيين على نفس المبدأ ماشي؟ فأنا
هان أخد N واحد قداش تلاتة معاه؟ N تلاني هايها1.317
اللي هي ناتج جمع ال links في ال probability ماشي؟
طيب أسمهم على بعض هد إيش رح يطلع ليه؟ بتطلع لي ال
compression ratio هد بتعطيكي ال compression ratio
طب قداش ال redundancy؟ قداش التكرار؟ هنقول أيوة
100-1.317 على 3 تمام؟ بيعطيكي تقريبا 56% كانت نسبة
التكرارمعاي؟ واضح هذا الحكي؟ سهلة فكرة Hoffman مش
صعبة بس أهم .. لأ بتضربي ال length في ال
probability لكل واحدة بعدين هدول بتجمعيهم جمع
فهتلاقي أن هذا الرقم اللي طلع معاكي هو نفس الرقم
اللي طلع معاناها على ال tree لما نعملناها يعني
لو ما ضربت و جمعتي مجرد أنك تجمعي هدول هيعطيكي
قداش ال lengthعادي زي ما مانعيني شرحت، يا بيجيبنك
هيك جدول زيها، يا بيجيبنك صورة زيها، يا بيقولك
اشتغل عليها Hoffman مافيش فيها إشي، بدك تضطر تحط
كل البيانات طبعا المطلوبة طيب، نجي نشوف لتالت نوع
طيب أنا .. إيش اللي يثبتلي إنه Hoffman ما بتضيع
بيانات؟
إش اللي يثبت إن هو offline ما بتضيع بيانات وإنها
lossless compression لأ
لأ مش هيك الفكرة ليش هو طب عمل الجدول هذا كله عشان
لمن يجي يكتب هدول حيصير مش يكتب 01 زي ما احنا
كتبنا على الصورةهيصير يخزن او بمعنى اخر في ال ..
هي ال .. ال pixel تبعتي كيف تتخزن؟ مش هتتخزن محل
الصفر هخزنلي تلت صفار، صح؟ محل الصتر هيقوللي صفر
واحد واحد، مظبوط؟ وهدي واحد صفر واحد، هدي واحد صفر
صفر، هدي قداش؟ نفسها نفس الشيء، هدا واحد واحد
واحد، بال binary، صح؟ احنا ال code binaryفهيصير
بدل ما يخزن واحد واحد واحد ويكتبلي واحد واحد واحد،
بعدين صفر صفر صفر، بعدين واحد واحد صفر، بعدين واحد
صفر واحد، صفر صفر واحد، مظبوط؟ ايش هو دي يصير
يكتب؟ هصير يكتبلي هدول، تمام؟ فبدل ما ييجي يكتب
السابعةيعني ان السبعة و الصفر و الستة و الخمسة و
واحد هاي اللي كتبناهم بدل السبعة بده يصير يكتب
ايه؟ واحد .. واحد .. و أكم واحد؟ خمس وحدات و صفر
طبعا؟ خلصنا هاي فاق الصفر ايش هنكتبها؟ صفر و واحدة
الصفر
اه هي فاق ست وحدات واحد .. اتنين .. تلاتة .. اربع
.. خمسة .. ستةماشي؟ طب و هاي ليه؟ إيش كانت؟ الستة
بدي اكتب واحد واحد واحد صفر واحد واحد واحد صفر و
ها دي واحد صفر واحد اللي هي خمسة هكتبنا واحد واحد
صفر صفرواخر واحدة اللي هي الواحد بدي اكتبها 11110
صح؟ طب هذه البيانات اللي راح تتخزنها اللي قدت طب
إيش بدي أعرفه إن والله محل هدول أو إن هدول مش
تلاتة إنه مش كلهم رقم ولا هذه مع حد رقم ولا كذا
مثلا؟ أه يبدي أرجع لمين؟أيوة بيرجع ل data 6 بعيد
نهاية عشان هيك بيخزنها لإنه زي ما اشتغل ب Hoffman
بده يسترجع ب Hoffman زي ما اشتغل ب variable length
بده يرجع باستخدام variable length بالعكس واضح؟
فبصير يستعمل جدول هو اللي خزن فيه الشفرة عشان
يتمعرف على الحروف وعلى الأرقام اللي اتخزنها فبروح
مثلا بتطلع على هاي ايش في عندي انا؟ عندي .. في ايش
مثلا واحد اتنين تلاتة اربع خمسة في خمس واحدات؟لو
اطلعنا فيه حاجة فيها خمس وحدات لحال فشي طيب، بدي
أخد معها صفر فالصفر هتميزة فيه عندي خمس وحدات وصفر
اللي هي سبعة فبيعتبر هذا كل ياتو اشماله رقم واحد
او color واحدة فبيحطنلي بدالها أسنان سبعةأو بيرجع
ال color سبعة لإن هذا هيو .. هذا بدي يدللنا إيش
نوع ال color اللي كان مخزن وصلت الفكرة و هيك بصير
يسترجع نفس البيانات اللي اتخزنت فهيرجعنا سبعة و ..
إيش اسمها هذه؟ صفر و ستة و خمسة و واحد نفس
البيانات اللي احنا دخلناها بس هذه انكتبت الطريقة و
هذه انكتبت إيش مالها؟ الطريقة التانية ماشي؟ طيب
الـ run length encoding برضه يُعتبر من أنواع ال
compression أو الطرق اللي بتستخدم في عملية ال
lossless compression ليش؟ طلعوش فكرتها ليش صموها
run؟ لإنه بعد بعد الحاجات اللي موجودة .. المكررة
ورا بعض تمام؟ أكمرة موجودة فعلى سبيل المثال نفترض
إن هي ال dataلو قلتلك طب إيه اللي عليه running ..
running length in coding، إيش بيسوي بس؟ بيعد ال A
هان مثلا واحد، اتنين، تلاتة، اربعة، خمسة، ستة،
سبعة، هي تمانية Aفبح بكتب تمانية وجنبيها الحرف أو
ال level أو ال character أو إيش ماكان خلاص تمانية
مثلا فاصلة بعدد واحد اتنين تلاتة تلاتة بيه واحد
اتنين تلاتة اربع خمس ستة سبعة تمانية فبرجع تمانية
.. وين هال؟ المفروض تمانية مش تسعتاش أنا في شكله
تمانية ايه هال؟ تمانية ايه المفروض مش تسعتاش؟Okay؟
و هاي في عندي مين هال؟ واحد، اتنين، تلاتة، أربع،
أربعة بيه، خلاص؟ و بعدين فيه ضال إيه بنقول واحد
إيه، هاد خطأ هاد، هاد تمانية إيه، تمانية إيه مش
تسعة عشر، ماشي؟ فهو إيش بيسوي؟ هل اختزل حاجة؟هو
نفس .. يبقى بيرجعوا بنفس الترتيب يعني لو أنا رجعت
قرأت هذه البيانات هتكتب 8A و هترجع تكتب 3B و هترجع
تعملي 8A كمان مرة و هترجع تعملي 4B بالترتيب فبرجع
نفس البيانات برجع نفس إيش؟ البيانات بمكانها كمان
في مكانها لإنه برجع يعني طب مالله مثلا أنا خزنتهم
إيش عرفني إن السبعة ده تكون هنا ولا هنا و أين ما
كان وجودها؟صح؟ إلا إذا أنا عملت run length
encoding و لو إجت أنا عملت run length encoding
بيحافظلي على ترتيب العناصر فبسحّل عليه عند
الاسترجاع يقرف وين ما كان كل عنصر وصلت الفكرة؟ طيب
فهنا بقول ال run length encoding is often more
compact especially يعني مفيد جدا في when when data
contains lots of runs of the same numbersيعني
وقتاش بتكون مفيدة هذه العملية لما يكون عندك
تكرارات كتير لنفس الرقم أو لنفس الوانصر لكن لو
أجيت أعمل run length encoding لحاجة زي هيكة مثلا
ABC ABC ABCD
هتكون مفيدة كتير بعمل run بس إيش هيطلع؟ 1A 1B 1C
1E ما اختصرنا إشي بالعكس بطول معانا فهي أكثر إفادة
طبعا هذا يعني بحسب كيف طريقة ترتيب البيانات ماشي
لكن هي مفيدة أكتر وقت إيش لما يكون في عندك تكرارات
كتير ورا بعض بيصير طبعا اختزال أكتر لمن؟ للمساحةis
also lossless you can always reconstruct it the
mean and the original لأنها بترجّعلك نفس الأصل
بنفس المكان تبعها ايش بيستخدم .. مين بيستخدم هذا
ال encoding؟ في ال facts بتعرفوا رسائل ال facts
بتاعة زمانها دي أو لسه موجودة يعني اللي هي ع طريق
التليفون بتحطي ورقة بيضا وبتصل بشكل مباشر طبعا
احنا ال facts ما بيحطوه ملون ياخد زي صورة منه
وبعتبر الورقة البيضة كلها أبيض يعني بتعامل بس مع 2
bit مع 2 أفوان color الأسود والأبيض الكلام بالأسود
والإيش والورقة بالأبيض فإيش رح يجيكي لما يكون في
عيننا أسطور فاضية إيش رح يجي هنا zero zero zero
zero zero zero zero zero zero صح؟ ولمّا يجي يلاقي
حرف بالأسود وكذا رح يبتبر واحد واحد واحد واحد صفر
صفر واحد واحد صفر للمسافات مثلامظبوط؟ بقى بالشكل
فكتير مفيدة في ال facts ليش؟ لإنه لما بيجي بنقل
البيانات هيجي يختصر يشوفك أكم zero يعني مثلا
تمانين .. تمانين column عصابي مثال الصفحة هيقولك
تمانين صفر تمام؟ بعدين عندك مثلا أربع واحدات اتنين
zero اتنين واحد واحد zeroتنين واحد فمفيدة في ال
facts ليش؟ لأن كلها يا أبيض يا أسود فهتلاقي أسفار
كتير ورا بعض و هتلاقي واحدات برضه بشكل كمان مناسب
في هاي الصفحة طيب
في عندنا حاجة أسمها quantization اللي هي أخر طريقة
من طرق ال compression قلنا أول ما أسمع كلمة
quantization معناها صار إيش ماله؟ماشي عن كلمة
quantize اللي هي التكميل أو باعطي كميات غير الكمية
بس بدي احاول اوحد الكمية حاول اوحد ايش؟ الكمية طب
عشان اوحد الكمية بصير اقسم على قيمة معينة عشان
نقدر نحصل على رقم متشابه او اقام متشابه ماشي؟
فماشي بيعطيني هنا او بشكل بسيط يعني الفكرة طبعا
اللي دور في ال GBGجيب جيب تشتغل quantization بس ال
quantization تبعها مش زي هيك ال quantization تبعها
بيعمل مصفوفة و بيقسم كل pixel على ال pixel كل
pixel على ال pixel بيكون standard يعني هعملهم زي
جدول بقيم معينة عشان لما بدك والله 80% بيجيب
مصفوفة اسمة 80% او بتعطيكي كمية بيانات 80%طبعا كيف
قملوها؟ عمليات حسابية أجروها وهذا عرفوا إن هذه
النسب لو أنا محطت في هذا المكان بتتم فقد نسبة أو
الحفاظ على 8% أو فقد قداش نسبة 20% فموزعة جاهزة
يعني واضح؟ ولو بدي 50% في مصفوفة موزعة بالقيم عشان
تعطيكي 50% بس يعني بشكل عام الفكرة بتاعة
liquidization إنه أنا نفترض عندي colorsأو ألوان
بهذه القيم 10,12,15,18,20 مافيش تشابه بالمرة بينهم
كيف بده أجمعهم؟ صعب عملية تجميعهم صح؟ مافي أي نوع
من التشابه فقالوا عشان يعني حتى لو بدي أجبه قولي
all the numbers are unique so Hofmann coding will
not help يعني انا لو بدي أطلع نسب هذه واحدة واحدة
واحدة واحدة واحدة واحدةفهمتوا كيف؟ مافيش تشابه ان
اقولك والله انا فيها اتنين من عشرة وانا اربعة من
عشرة نسبة تكرار يعني، معنى آخر، مافي فلو جاتوا
تعملوا Hoffman كل واحدة هتطلع رقم يعني هي هي
مااستفدناش اشي ماشي؟ فإيش بيسوي؟ بقول بدنا نعمل
قبلها عملية quantize عشان نحاول نوصل لأرقام تكون
متشابهة فع سبيل المثال لو احنا اجينا قسمنا على
خمسةطبعا هذه الخمسة كيف بتطلع كيف بيجيه زي ما
قلتلك بحسب الطريقة في مصففات جاهزة عشان تعطيك
القيمة اللي انت عايزها احنا هنا ع سبيل المثال
أخدنا الخمسة ايه اقسم العشر ع الخمسة اتنين ايه
اقسم الاتناش ع الخمسة اتنين و بزيد اتنين طبعا
سيبيكي من الزيادة بتشيليها تمام؟ هي اتنين طب
الخمستاش تقسيم اتنين تلاتة
ماشي؟ ها هي شوفوا إيش بيسوي هي خمس تاش تاسيم اتنين
عفوا تاسيم خمسة اه خمس تاش تاسيم انا قسمتها اتنين
خمس تاش تاسيم خمسة فيها تلاتة و الباقي صفر مظبوط؟
طيب لو جينا أخدنا طبعا عشرين ع خمسة برضه هيعطيكي
أربع و الباقي صفر الطمانتاش
إيش هتطلع؟ تلاتة هي خمستاشر إيش بطلع الباقي؟ باقي
تلاتة ماباخدش الباقي باخد بس الصحيح ماشي طيب
التلاتاشر تقسيم خمسة بس أنا بتشوفها digital
تلاتاشر تقسيم خمسة اتنين هي أشرة برضه بيضل الباقي
طبعا الباقي لازم يضل أقل من الخمسةOkay لازم يكون
ash أقل من الخمسة فعشان هيك هنعمل ازاي بتقل في ال
trunkات اش trunkات
حذف حذف الجزء العشري او احيانا طرق ما بتعمل
ترانكات بتعمل round تقريب تمام بحيث ان مثلا لو طلع
نص ما تحذفه اتقربوا لرقم تاله مثلا بدل خمسة ومص
يصير بدل ما تحطيها خمسة تحطها ستة لأجل يعني لأ ان
العملية هيك أفضل واضح؟ فهو يا بيعمل ترانكات يا
بيعمل rounded في الآخر بيحصل على رقم صحيح لحظوا
الرقم اللي احنا بعد ما قسمنا صافي تشابه في الأعداد
صار في عندك الاتنين هي مرتين التلاتة مرتين ماكانوش
موجودين هدول وفي عندك الاربع مرة واحدة الصفر
موجودة مرتين و الواحد واحد اتنين مرة موجودة يعني
صار في levels متقاربة ممكن نجمعها نستل عليها
Hoffmanبصير تقولي الاتنين أكام مرة موجودة، التلاتة
أكام مرة موجودة، ممكن تشتغل عليها Running Encoding
تاخد اتنين اتنين، التلاتة موجودة مرتين، التلاتة
موجودة مرتين وهاكذا، صح ولا لأ؟ بصير أسهل عملية
اللي هي التجميع أو استخدام الطرق الأخرى، لكن عند
عملية استرجاع البيانات، بدي يرجع يضرب بنفس ال
quantization number اللي استخدمهفاش بروحوا يرجعلوا
اتنين في خمسة هترجعلك عشرة و اتنين في خمسة برضه
عشرة التلاتة في خمسة خمستاشر و أربعة في خمسة هي
عشرين صفر في خمسة صفر واحد في خمسة هي خمسة و هاد
صفر و هاد بترجعلك عشرة لو أجيت تطلعتي على هاي
البيانات اللي رجعت مقارنة بالبيانات الأصلية هتلاقي
في بيانات رجعت مثل ما هي و هاد رجعت قريبة منها
فعشان هيك سميناها Lossy فأي عملية في أي نوع من
أنواع ال compression إذا بعمل quantization أستحال
يرجع نفس العدد لأنه يا بعمل Truncate يا بعمل Round
فهيرجع قريب اللون من اللون اللي كان سابق له علشان
هيك احنا بنقول ان احنا مابنقدرش نميز الفرق هذا
يعني اما يتغير نسبة ولا تنتين، الفرق بينهم، رقم
ولا اتنين، مش كتير فرق، ماناشي الدرجة مش هتكون
كتير واضحة للعين اخر حاجة الفرق طبعا بين ال losing
و الloseless، وين استخدمهم؟وين أستخدم ال losey وين
أستخدم ال lossless بيجي هان بيسألني .. بيحكيلي
four things like text document بنفع أستخدم losey؟
في ال text؟ ملفات ال text؟ اه هيك هترجع أحرف مش
موجودة أو أحرف كانت موجودة وما ترجعش هي نفسها
فبظبطش مع ال text صح؟فانا بقوللي for text document
and computer data files و البيانات الملفات اللي
بتخزنها على الكمبيوتر هذه مابنفع تستخدم معاها
اللوزي ماشي لإن إذا فقدت حاجة انت هتعرف إن هذا فيه
تغيير فقوللي an approximation of this original is
not goodيعني قولي و لا تقريبا برجّعك مش مقبول يعني
عندي في المنطقة هذه أو في الأماكن هذه لكن بالنسبة
للصور والصوت visual small error not easily
detected ال مين في ال audio و او في مين في ال
image في ال audio او في ال image لو انت حزفتي حاجة
بسيطة من البيانات approximately اذا معناها ايش is
good او acceptablethis is one reason we can get
significant compression of image and audios versus
other types of data عشان هي كده معظم عمليات ال
compression بتصير يا ع الصوت يا همين ع الصور أما
ملفات ال text ما بيعمللها compression طب عم احنا
بنعمل zip صح؟ مش بتعملوا zip للملف؟ نعمل ال
compression بس ايش نوع ال zip؟
non-lossy ال zip losslessبيضغط بيانات عشان هي كان
صح بستعمل و مرات للصور و مرات لل .. بس الزباق
بيبحث ذاتها non-losingNon-losy فعشان هيك بيستخدموه
مع الملفات في شغل تاني Loseless أو ال compression
اللي بيشتغل أو الملفات اللي بيشتغل أو نوع ال
compression اللي بيشتغل على ال Loseless ممكن توصل
نسبة الضغط من عشر إلى واحد زي ما شوفته المثال اللي
حكينا فيه معقول يعني ممكن توصل لهذه النسبة أما في
ال Losy ممكن تكون أكترممكن تكون من تلاتمية لواحد
توصل، نسبة الضغط تكون أشمالها أعلى، خلاص؟ ليش؟ لأن
في عندي ال quality factor هو اللي بيحدد قداش نسبة
الفقد اللي انت بدك تتحكمي فيها with Lucy we can
even talk about equality طبعا عارفينها احنا هذه ال
equality طبعا هذه على طول جاية مع ال Lucy واتفننا
إذا كانت قريبةكمية البيانات قريبة من كمية ال
original من ال original ال image او ال audio معناه
هدى ال quality تبعتها higher لكن اذا كانت نسبة
البيانات او كمية البيانات المفقودة كتير كبيرة
فبنقول عنها lower equality تمام هيك؟ في اي اسئلة
تانية؟ حد بده يسأل اي سؤال؟ خلاص؟ يعطيكوا العافية