يا رب السلام عليكم نكمل ان شاء الله محاضرتنا بتاعة
المرة اللي فاتت بدأنا في شبتر خمسة احناوبدأنا
نتكلم فيه عن ال .. تكمل على موضوع ال compression
بدأنا نحكي إيش يعني data compression تمام ووقفنا
عندها فان شاء الله اليوم .. ان شاء الله إذا ربنا
أراد بنخلصهم كليتهم إذا الله أراد okay طيب نرجع بس
هيك على السريع نذكر في وين احنا وقفنا اتفقنا احنا
أنواع ال compression lossy و lossless ال lossy ما
بترجع البيانات مثل ما كانت ففيها نسبة فقدبتتعامل
مع نسبة ال quality كل ما ازنقصنا كمية البيانات كل
ما قلت الجودة تمام أما ال lossless فهي بيتم استرجع
البيانات اللي تم تجميحها بشكل كامل بدون أي نسبة
فقطفوصلنا لشغلة لتعريف ال data compression وحكينا
إن ال data compression هي عملية بيتم فيها من
خلالها تقليل كمية البيانات المعبرة عن المطلوب إنها
استخدامها للتعبير عن كمية من المعلومات ماشي؟
وشوفنا إيش الفرق بين ال data و ال information
وقلنا ال data هي بيانات مجهولةمش معروفة مايلها أي
معنى لسه حاجات هيك مرصوصة قدامنا 01 مش عارفين عن
إيش بتعبر لكن بعد عملية المعالجة بتصير أشمالها
information وقولنا البيانات ممكن أن أحنا نستخدم
مجموعة كبيرة من البيانات أو طرق مختلفة من البيانات
للتعبير عن نفس المعلومة ووقفنا عند هذا الموضوع
وصبنا حكينا مثال عليها إذا فاكرين أنه أنا العشرة
بال decimalممكن امثلها بالثنائي one zero one zero
بالhexa ممكن نمثلها اللي هي a بي الثماني بنمثلها
اتنين واحد هدي data كمثال يعني بسيط كل هدول عبارة
عن data بيعبروا عن نفس مين المعلومة ممكن انا اعتبر
one zero one zero حاجة تانيةأو أكتب العشرة ب one
zero مثلا طريقة تانية فكل هذه الطرق في الأول وفي
الآخر هتأدي لنفس المعلومة ماشي؟ هنشوف أول موضوع
عندنا بعد تعليف ال congression اللي هي ال
redundancy إيش معناة كلمة redundancy؟تكرار تمام؟
طيب احنا حكينا ايش دخل ال redundancy يعني في
الموضوع ال compression احنا قلنا ان ال compression
او ال data compression هي عبارة عن عملية تمام
لتقليل كمية البيانات المعبرة عن كمية من المعلومات
يبقى كيف بدنا نقللهم؟ بدنا نعرف بالأول عددهمو بناء
على نسبة تكرارهم تمام بيصيروا عنا إيش تجميع لهذه
البيانات وتقليل مساحة التخزين واضح؟ فنشوف إيش
علاقة ال redundancy في الموضوع في البداية هان إيش
بيبدأ .. بيحكيلنا لو نفترض عندنا dataOkay ال data
هذه أشمالها that provides no relevant information
أول ما أنا بعطيكي سطر هيك طويل عريض من صفر واحد
أول ما بتشوفيهم هيك بتفهم عن إيش بيحكوا؟لأ ما
بعرفش عنهم ولي حاجة تمام؟ لكن أنا بستقبل هذه
البيانات وممكن أنا عشان أتعرف على مبمون هذه
البيانات إيش بصير أعمل؟ ممكن أروح والله أعد أكم
واحد أعد أكم صفر يكون عندي والله معلومات تقوللي إن
والله كل two bit بيعبروا عن .. عن معلومة واضح فأنا
بصير إيش؟ أخد هذه البياناتوأنا أشتغل عليها بطريق
.. بطرق mathematical عشان أنا أستنبط منها مجموعة
من ash من المعلومات في الآخر باستفيد منهم في عملية
ال compression باستفيد منها في ash في عملية ال
compression ف ال data أساسا هات بتعبر عن
information بس احنا لسه مش عارفين إيش هيفانا مضطرة
اش اعمل استخدم هاي ال data to restates what is
already known بحاول ان اعمل بعض العمليات على هاي
البيانات عشان انا استنتجبعض الصفات اللي تصير أنا
بالنسبة إلي معلومة و أستخدمها في عملية إيه؟ ال
compression، لنشوف مثال عليها، لنفترض، لنفترض إن
أنا عندي قنتين N1 و N2، التنتين هذول أنا إيش بدأ
أستخدمهم؟ بيعبروا عن عدد البيانات أو كمية numberزي
أنا بعدي يعني، بعد فيها مين؟ ال data units، إيش عن
ال data units؟ اللي هي هاي عندي، بتدعد فيهم إن
واحد عن إيش بتعبر، بس أنا مش مخطوطة، نفترض إنه إن
واحد عدّر هدولأكمبت بقدر أعدهم؟ يعني لو عملت
process أو برنامج اعدل البتات بنفع عمل ولا بنفعاش؟
بنفع، حد بقى بيمنعني أعدهم؟ لأ فهمتوا كيف؟ فأنا
أول حاجة بدي أستندطها ع سبيل المثال أشوف أكمبت
خلاص؟ يبقى أنا طلعت معلومة من هذه البيانات اسمها
مثلا N1 بتعطيك قداش مثلا عدي معايا هاي واحد،
اتنين، تلاتة، اربع، خمس، ستة، سبعة، تمانية، تسعة،
عشر، احداشر، اتناشر، تلاتاشر قال لي ان طول ال data
row هاي الموجودة عندي 13 bit صار عندي معلومة خلاص؟
طيب ال N2 نفترضهي .. هما .. هما تنتقل عبارة عن مين
رقم بيعبره عن ال data units in two sets that
represent the same information وانا المعلومات اللي
هستخدمها بيعبرها عن نفس المعلومة okay طيب نفترض
انه انا N2 مثلا ايش بده اعمل؟ اعد ال .. اعد ال ..
okayأعد الوحدات بس يعني هل هستفيد مثلا من هذا
الحكي ولا لأ نفضل بدي أعد الوحدات أعد الوحدات قداش
بطلعوا؟ واحد، اتنين، تلاتة، اربع، خمسة، ستة، سبعة،
هاي تمانية okay ان اتنين هي number of مين؟ of ones
صح؟ قداش طلعوا؟ تمانيةطيب، يبقى هستنتج أنه عدد
الأصفار خمسة، صح؟ طيب، بهذه الطريقة، شوف أنا إيش
عادة بعمل أنا؟ بطلّع information، بطلّع إيش؟
information من ال data raw وكل هذه بتعبّر عالميا
عن نفس ال data اللي لنا أو المعلومة اللي أنا لسه
مش عارفة إيش هيطيب في إيش استفادوا من الحكي هذا؟
استفادوا على سبيل المثال في إنهم يجيبوا حاجة اسمها
compression ratio إيش هال compression ratio؟ نسبة
الضغط طيب إيش هي نسبة الضغط؟ بشكل عام نسبة الضغط
بقول هي عبارة عن N1 على N2 أحنا لسه ماعش عارفين
إيش هم، هنشوفهم كمان شوية بس يعني أنا N1 عبارة عن
numberتمام؟ و N2 عن number تاني لنفس المعلومة لو
قسمتهم على بعض بيعطيني نسبة الضغط او compression
ratio ع سبيل المثال نيجي نعرف ايش يعني N1 و N2
هلقيت بقول لو فرضنا ان N1 عشرة تمام؟ N1 عشرة و N2
تساوي واحد هل قداني data؟ قداني اشي؟ مثال هو
encoded the same information يعني إن واحد فيها
أشرة كإنه بت تمام؟ وإن اتنين فيها قداش؟ فيها واحد
بت طب كيف هدول التنتين بعبروا عن نفس الاشي؟ لو
فرضا .. لو فرضنا إنه أنا عندي ع سبيل المثال عشرة A
واحد، اتنين، تلاتة، اربعة، خمسة، ستة، سبعة،
تمانية، تسعة، هاي عشرة، ماشي؟ هذا الرد يعني .. بس
للرموز يعني بدأ ميكتب واحد، واحد، واحد، ايه؟ ايه؟
ايه؟ تمام؟ عشر ايه؟ بنفق اكتبهم ايه واحدة؟
اختصر، مش بده اختصر؟ مش هم كلهم عشر ايهات؟امكررة
عشر مرات صح او امكررة تسعة مرات ال a امكررة تسعة
مرات صح فانا بدل ما اقعد اكتب عشرة a او a's بكتب a
واحدة بس طبعا هيكون في طريقة عشان اعرف انا اكم ايه
يعني اختصرت وصلت الصورة فهادي وهادي the same فهدول
ان واحد قداش هترجعلك عشر a'sصح؟ وإن اتنين هترجعلك
واحد is هذه تساوي هذه لكن بالشكل لأ لكن من حيث
المضمون هذه لو أنا في عملة compression معين يعني
هيرجعل المفروض عشرة is وهذه العشرة ايه مفكوكة؟
يعني هذه البيانات الأصلية المفروضة تمام؟ واحنا
بدنا نعمل طريقةانقلل من مساحة ال .. اللي هي ايش
التخزين صح ولا لأ؟ مش هاي اللي نعمله احنا فانا بدل
ما اقعد اكتب ال a عشر مرات ماشي بكتبها مرة واحدة و
بكتب مثلا بأي طريقة كانت هنشوف ايش الطرق اللي
استخدموها ان ال a هدق شمالها مكتوبة عشر مرات في
طرق كتير راح نشوف كيف راح يتعاملوا معاها خلاص؟
أساس لما نيش بده يعملها استرجاعلما نيجي يقرأ
المعلومة هاي، بده يرجع عشرة إيه، فبصير هذه و هذه
the same، فهمتوا كيف؟ بتصير هذه و هذه the same،
لكن من حيث مساحة التخزين، إيش صار؟ هذه أقل مساحة
التخزين من هذههذه اقل مساحة تخزين من هذه طبعا مش
دايما تطلع مساحة التخزين يعني اقل له هذا ممكن تبقى
اكتر او مساوية زي ما اتفقنا uncompressed او
compressed او الحكي هذا ماشي بناء على طريقةتواجد
البيانات طبعا احنا هنا نسبة الضغط كانت بالنسبة ل
.. قداش لقداش؟ عشر على واحد العشرة صار بدالهم ايش؟
واحد فهي N1 عشانك بقولك ال compression ratio
بنحسبها عن طريق N1 على N2 يبقى N1 شو هي؟ data وN2
كمان data بس مكتوبة بطريقة تانيةماشي؟ راحوا
استفادوا ان ان واحد بعدد عدد العناصر الموجودة في
ال data الأولى ماشي؟ وان اتنين بتعدد عدد العناصر
بعد ال compression بعد ما قللنا مساحة التخزين
وبيقسموهم على بعض عشان يعرفوا قداش نسبة الضغط او
نسبة ال compression اللي وفروها او نسبة المساحة
اللي توفرت نتيجة هاي العملية واضح؟ تعالوا شوفوها
نرجع تانييبقى ان واحد فهمنا إيش هذي عشان هو ضرب
ليها ك مثال number لإنه احنا هنتعامل مع ان واحد
وان اثنين علينهم numbers، إيش numbers بعد عدد
البيانات، بس لابدكوا تفهموا إن ان واحد بتعبر عن
عدد البيانات قبل عملية الضغطالاصلية زي ما إجت تمام
و N2 هي بتعبر عن عدد البيانات بعد عملية ال
compression باشي N2 بتعبر عن عدد البيانات بعد إيش
عملية ال compression فلما نيجي نقسمهم على بعض هيجي
يقولك ال compression ratio رمزها CROkay ال
combination رشاش بتساوي n واحد على n اتنين بيعني
تساوي عشرة على واحد اللي بتساوي عشرة صح؟ يعني نسبة
فتبغت قداش لقداش صارت عشرة لواحد فاكرين الحاجات
هذه الرموز قلتلكوا ان شاء الله راح نعرف لإيش كانوا
يبقى يقولك نسبة فتبغت تلاتين لعشرين أو تلاتمية ل
مش عارفة قداه عيفتوا إيش هما؟ قداش كانت أصل؟ و
قداش صارت بعد؟الكمبريشن ماشي؟ فها دي mean عشرة قبل
عملية الكمبريشن واحد بعد عملية الكمبريشن طيب يبقى
قداش وف .. قداش في عندى تكرار تسعة طب كيف جبناهم؟
أه ايوة عشان انتوا تعرفوا عشان اجيب نسبة ال
redundancy معنى الكلام هذا لما إيه و كاتبليها نسبة
ال compression ratio هاخدوا بالكم compression
ratio عشرة ل واحد او هي هتطلع يعني عشرة عشرة ل
واحد هي هتطلع عشرة يعني عشرة معنى الكلام انه انا
في عندى 90% من البيانات الأصلية قداش ما لها
redundantامكررة 90% من البيانات الأصلية اللي
موجودة هي في N1 اشمالها redundant كيف هاتبنحسبها
عملية بسيطة بس بتركزي يبقى انا ال compression
ratio ال compression ratio ايش راح يصير؟ بدي ساوي
N1 على N2 طيب ال redundancy
Okay؟ Redundancy إيش راح تساوي؟ هتساوي إن 2 على ..
أو بالعكس .. 1 .. ثانو شوية .. 100 ناقص إن 2 على
إن 1 في المية تمام؟ يعني حطي 1 على عشرة .. أيه
عندنا؟ هاي 100 ناقص .. 1 على عشرة .. صح؟ قداشر
بتعطيكي؟ طبعا في الميةهذا رح تعطيك تسعة من عشرة
واحد على عشرة هتعطيك أفن واحد من عشرة واحد عقاش هي
مية ناقص واحد من عشرة في المية اللي هي رح تطلع
قداش عشرة مية ناقص عشرة اللي هي رح تطلع معاكي
تسعين في المية تمام؟
عشان لما يتيجيكي عملية حساب يقولك هل ايه تحالي
نشوف كيف بنا نحسب ال compression ratio لكل حالة و
كيف بنا نحسب ال redundancy ماشي؟ طيب ليش نشوف أول
طريقة يبقى هم في أي خورزمية أو أي عملية بيحاولوا
يستنبطوا معلومات من ال data بدهم يحاولوا يستعتمدوا
على البيانات الأصلية و يطلعوا process جديديجمعوا
البيانات بطريقة معينة وبعدين يقسموا العدد الأصلي
على العدد الجديد ويقولك قداش ال compression ratio
وقداش ال redundancy كل طريقة وقلها فكرتها ماشي
نشوف أول طريقة فيها حاجة اسمها variable length
coding يعني من ال .. تعتبر من الأساسيات في عملية
ال compression ايش اسمها ال variable length
coding؟ هنشرحها شكل مثال بسيط عشان نوضح الفكرةطبعا
هنا بنطرح الموضوع على شكل رموز لإن عشان لو أنا بدل
ما أكتبها 01 هيصير ال raw طويل هيك معقدة شوية لكن
أنا حوريكي هنكتبها يكون اكتبت يعني لو فرضا أنا
جبتلكيها مع شكل رموز أو جبتلكيها أصفر ووحدات كيف
ممكن تشتغل مع هذه العملية تعالوا نشوف تعالوا
نشوف إيش بيسوي
فهنقش مفترض ان احنا our binary system اللي هو code
natural binary is not always that good at
representing data from compression point of view
يعني للعرض اذا انا بده اعرضهم 01 01 شغلات هيك
جانباها للي بيشاهد هيكون صعبة شوية العملية فاحنا
هنحطكوا .. هنعطيكوا يعنى شكل ايه؟ رموز فنفترض انه
هذا ال string عبارة عن raw dataتمام؟ جايين بالشكل
هاد A,B,A,A,A,A,B,B,B,C كذا زى ما أنتوا شايفين فيه
رموز متكررة ممكن تكون ورا بعض ممكن تكون فيه فرق
بينها و بين ال .. لكن أنا من خلال الرموز اللى
كتبتها قدرت أعرف أكم .. أكم عنصر فيه صح؟ يعني كل
ال raw data متكون من أكم قيمة أربع قيمةفهمتوا إيش؟
يعني هذه أول معلومة أنا هقدر أستنتجها، ماشي؟ لكن
طب كيف ممكن أعبّي عنهم بال data؟ بال .. بال zero و
ال one؟ لازم يجي و أقولك إنه أنا عدد اللي قاعد
شايفين؟ there are four different pieces of
information لإنه صار معروف عندي إنه عندي أربع
عناصرصار معروف إليه إنه في عناقاش أربع عناصر هما a
و b و c و d كيف بيتم ترميزهم؟ بقولك افترضي إن ال a
عبارة عن 00 و ال b كانت بدل 01 و ال c كانت بدل 10
و ال d كانت بدل 11 يعني كل character احنا رمزناه
لهان عبارة عن two bitممكن يكون اكتر من هيك اه ممكن
يكون طبعا ترميز ال .. احنا بنعرف ال data بتيجي
byte by byte صح؟ فممكن تكون تمانية bit لكل واحد بس
احنا لطب سيط حطينا انه الرمز عبارة عن قداش عنده
bit okay طيب يبقى انا اساسا لو اجيت ااخد هدول
القيم و اعود بدلهم هن اش هيجيني بدل ال a هتيجي كك
00zero one بعدين zero zero zero zero اكم ايه
عندنا؟ خمسة هي واحدة تنتين تلاتة اربع خمسة تمام؟ و
بعدين عندك ال B تلاتة zero one zero one zero one و
بعدين عندك ال C اللي هي one اكم C وراها؟ خمسة هي
one zero واحد اتنين تلاتة اربع هي خمسة و بعدين ال
A واحد اتنين تلاتة اربع خمسة ستة سبعة هي تمانية
واحد، اتنين، تلاتة، اربع، خمسة، ستة، سبعة، هاي
تمانية، تمام؟ بعدين عندي كل بيه أربع مرات، بدي
أكملهم بس هان، ماشي؟ اللي هي one, zero، واحد،
اتنين، تلاتة، هاي أربع، بعدين ايش؟ zero, one، انا
عارفةاربع اربع اربع اربع اربع اربع اربع اربع اربع
اربع اربع اربع اربع اربع اربع اربع اربع اربع اربع
اربع اربع اربع
اربع اربع اربع اربع اربع اربع اربع اربع اربع اربع
اربع اربع اربليه إيش؟ واحد، اتنين، تلاتة، أربع،
خمسة، ستة، سبعة هذا الروادات اللي إحنا بنحكي عليها
هيك بتتخزن ال .. ال .. تخيلوا صورة فيها خمسة في
خمسة يعني خمسة و عشرين pixel و كل pixel تمانية bit
و تخيلي بيجيني زي هيك هذا ال data تبعت من؟ الصورة
ماشي؟ طيب طب أنا هيتخزنه هيك أصفر و واحدات معانا
في الصورة ولا نحاول نخزنهم بطريقة تانية برضه
هنخزنهم صفر واحد بس هنخزنهم بكمية أقل شوية من هذه
الكمية تمام؟ طيب هنخلي هذا عشان نشوف كيف راح يطلع
معانا فإحنا لطة بسيط لطة بسيط قال لي إنه كرمز ممكن
مايقولكيش A و B و C ممكن يشيكي زي هك ويقولك إنه كل
two bit بعبر عن one elementكل two bit بعبره عن
إيش؟ one element فانت هتضطر ترجع لها و تجزئها
هتاخد هدولة two bit و هدولة كمان two bit و هدولة
two bit فهتعرفي هتصير إليك معلوم أكم أنصر مختلف عن
بعض صح ولا لأ؟ بالشكل هذا معايا؟ طيب نرجع تانيليش
أنا عملت هيك؟ يعني ممكن أنا ما أجيبلك هذا الشكل
أجيبلك إيه هيك أصفر و واحدات مرسوسين جانبها بس
بقولك إما إنه كل عنصر تلاتة bit أربع bit خمسة bit
واحد bit ماشي فإنت حسب المعلومة اللي بتنعطل عليك
كيف اتخذن أصلا ال bit ال pixel الواحدة تمام؟ بتروح
إيه؟ بتجزئيهم عشان تعرفي أكم element عشان تعرفي
إيه؟ أكم element طيب أنا مش مهمة كتير عندي هلقيت
أكم element ببنطلق N واحدإيش الواحد؟ عدد البتات
الأصلية، صح؟ طيب، بده أروح أعد هدول؟ ولا أعد هدول؟
أي واحد نعد؟ طيب، بدنا نعد هدول، قداش هدول؟عدوهم 1
,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35
تمام؟ لكن هدول ال 35 بيعبروا عن bit عن عدد أناصر
وكل أنصر قداش 2 bitيبقى هنضرب الخمسة و تلاتين
عرفان في قداش في اتنين عشان نعرف ال total number
of bits طب لو انا اعطالي يوم هيك باعدهم واحدة
واحدةمريحني يعني وضحك واضحك الفكرة؟ يبقى أنا
المفروض إن واحد مش بتعبر عن العدد البتات الأصلي مش
عدد العناصر عدد تكرارها يبقى حيصير عندك عدد البتات
لو أنا عديتها دول هضرب 35 في قداش في 2 بيطلع معايا
70 بت ماشي بيطلع معانا قداش 70 بت يعني لتخزين أنا
بدي 70 بت في الأولعالحالة هذه، عالحالة الطبيعية،
خلاص؟ طيب، إيش ال variable length اللي إت إجت
تعمل؟ بدي أطلّق معلومات، شوفوا، أنا المعلومة
الأولى اللي عرفتها، عدد البتات الأصلية كيف بدنا
نطلّع N2؟هذه حالة شغلنا ماشي ايش بنعمل عشان نعرف
ان اتنين ال variable length coding اشراحت عملت او
فكرة ال variable length coding اشراحت عملت قالت
اول حاجة بدنا نشوف كل element أكام مرة متكرر ونطلع
نسبته بالنسبة لإيش لبقية العناصر اللي موجودة في ال
.. في ال raw data اللي جيانا فطبعا هذه a small اه
مش .. مش كبيرةهنمسك ال ايه؟ العنصر ايه؟ قعد اكملنا
موجود ماشي؟ هتلاقي انه لو عدتيهم كلهم للاخر اي
واحد اتنين تلاتة اربع خمس ستة سبعة تمانية تسعة عشر
احداشر اتناشر اتناشر اربعتاشر خمستاشر ستاشر سبتاشر
تمانتاشر تمانتاشر تمانتاشر تمانتاشر تمانتاشر
تمانتاشر تمانتاشر تمانعلى قداش؟ على الخمسة و
تلاتين قداش بتطلع نسبة ال .. نسبة وجود ال A
بالنسبة لمين؟ لكل العناصر تقريبا ال 60% خلاص؟ طيب
نرجع ال B بنعدها برضه أكام مرة موجودة بيطلع عندك
لو عدتيهم تمام مرات على الخمسة و تلاتين بطلع 22%
طيب الـ C كم مرة مثلا موجودة؟ بطلع أنها موجودة خمس
مرات، على الخمسة و تلاتين، أربعتاش في المئة، والـ
D موجودة بس مرة واحدة، على الخمسة و تلاتين، بطلع
أنها اتنين في المئة، طب .. لأ، ما هو أنا لقيت
بتعمل مع element كامللأنه انا صرت اعرف ان اتنين
bit هم مكوّنين لمعلومة، ل one element، مابعد bit,
bit فهمت كيف؟ بشوف انا مين مميز، يعني انت ال pixel
تمانية bit، فهتاخد كل تمانية bit مع بعض عشان
يعبرولك عن one color، صح؟ ماباخدش bit, bitفقال
ايه؟ طب انا يعني الفكرة هنا ليش عملوا هيك؟ قالوا
بدنا نستفيد من نسب التواجد ونرتب العناصر عشان نعرف
مين موجود اكتر ومين موجود اقل وبدنا نستعمل هذه
العملية في ترتيب العناصر مثلا بشكل تنازلي او
تساعدي من الصغير للكبير او من الكبير لصغير زي ما
انت عايزها، تمام؟ طيبطب بعد ما نرتبهم، طب يعني مين
أعلي شيء؟ هم هيك كمرتبين يعني، جايين مرتبين، أي
أقل شيء الأثنين موجودة أعفن الـD و بعدين بيجيها ..
بيجينا الـC في نسبة التواجد و 22 أعفن و الـB جاية
بعدين بنسبة 22، تالت مرتبة و الـA رابع مرتبة هي
أكتر حاجة موجودة خلاص؟ طيب إيش الفكرة في الموضوع؟
قال ليه؟ بدنا نشوف اللي بيكون متكرر بشكل كبير،
نسبة تكراره عالية في داخل ال raw data هاي، إيش
بدنا نعمل فيه؟ بدنا نعطيه أقل طولبنعطي أش أقل طول
احنا مش كلهم طولهم اتنين بت اتنين بت اتنين بت صح؟
طيب، هل إيه؟ طب بدنا إيش نعمله اتنين بت اتنين بت؟
بدنا نغير في طريقة .. في طول التخزين بدل ما نخزنه
عشرة بت بدنا نخزنه قداش واحد بت، ماشي؟ طيب، فعلى
أي أساس بنوا العملية تبعتهم؟ قالوا ليه موجود أكتر
حاجة؟بنخلّي أقل طول و اللي موجود أقل إشي لنعمله
أطول طول طيب الطول اللي بدنا نعطيه من وين بدنا
نجيبه؟ عم تقدر ترمزيه بالشكل اللي انت عايزاه الطول
تبعك طبعا احنا هدول إش شفرة code ما هو احنا
مابنقدرش نعطي رموز تانية غير الصفر و الواحد يعني
ماشي؟ بس هذا إش بيعبر عن إن طول ال إيه بدل ما كان
two bit صار واحد bitالواحد هذا مالوش معنى عندي بس
يعني عشان اعبر ان الواحد بتعبر عن الايه؟ ماشي ان
الواحد بتعبر عن ايه؟ كان احنا ايش نرمزلها؟ صفر صفر
هالات لأ بدي ارمزلها برمز تاني ماشي فصارت الواحد
ايش؟ تعبر عن الايه؟ طوله واحد طب ال B في الدرجة
التانية بعدها صح؟ بنعطيها .. نزود الطول تبعها شوية
فصار طولها اتنينطولها قداش؟ اتنين ال C طولها قداش؟
تلاتة ال D طولها اربع طب واحدة قالت ليش حاطين 0001
طب مانحط 1111 يعني مثلا واحدة .. يعني هي رمز يا
بتحط صفر يا بتحط حرة يعني إيش بدك أن أنت برجعلك بس
عشان نعرف إيش معنى هذه القريقة okay طيب لو أنا
مثلا رمزت لل A بواحد و لل B ب11و لا تسيب واحد واحد
واحد و لا تديب واحد واحد واحد واحد تمام؟ أيوة هل
إنت تعالي صفيني إياهم زي هيك؟مش هنكتب بدل ال A
واحد بدل الصفر الصفر هنكتب واحد و بدلها دي هنحط ال
واحد واحد تبع ال B صح؟ و هنحط واحد واحد واحد واحد
.. مش معروفة ال A تل اطول مش متساوية فتخيل كل
العناصر هتيجيك واحدات طب و أنت كده كت ميزي الواحد
هدب البت الأول ولا الواحدين ولا التلاتة ولا .. مش
بعرفني انافبصير صعب فعشان هيك انا بس بستخدم
للتمييز .. هحط code للتمييز بالإضافة لطول العدد
لطول ال .. ال .. الرمز يعني ماشي؟ فعشان هيك راح
نروح نستعمل واحد و لمّا مابديكتيش يتعطى طول للتاني
زيبه صفر عشان لما نيجي نكتب تمام؟ لما نيجي نكتبها
بصير نكتب صفرعفوا بنكتب واحد و بعدين هذه إيش صارت؟
صفر واحد و هذه واحد و هذه واحد لإنه أنا .. بتعرفوا
ال database؟ ماخدتوش لسه ال database كأنه أنا إيش
صلت عاملة جدول جديد أو شفرة جديدة بدل ما كان ..
شوفوا قديم أول ما بدأنا نتخيل بهذا الشكلطيب هاي ال
A و ال B و ال C و ال D صح؟ ايش رمزنا لل A بالأول
00 او كانت هيك جايانة ان ال A 0000 و هذا 01 و هذا
10 و هذا 11 صح ولا لأ؟ قالت احنا شفرناها بطريقة
تانية و خلنا ال A تساوي هذه 1 و هذا 01 و هذا 0001
و هذا 0001 ماحدش إله عنافبصير في الاسترجاع لما انا
اشوف واحد بصير اشوف انا في عندي واحد لحاله بت
واحدة يعني اه في مين هي ال ايه فبرجع بدالها ايه في
انصف اللحال مع انصف اللحال في القائمة هى في انصف
اللحال لأ فحطال اخد معاها كمان واحدفحارف ان هدول
ال two بت لمين ده ال B خليني أوريكوا كده هيعني ان
انا حكينا واحد صفر واحد واحد واحد ايه كمان واحد
كمان واحد واحد وهادي ايه ايش ل ال B اللي هي صفر
واحد وهادي كمان صفر واحد صفر واحد هادي لصفر صفر
واحد صح؟ وهادي برضه صفر صفر واحد صفر صفر واحد
وهادي صفر صفر واحدوهنا صفر صفر واحد و هات صار ايش
واحد واحد واحد واحد و هكذا ماشي تعالوا شوفوا كيف
لما نيجي بده يقرأ هاي البيانات هشوف فالا قدر صارت
النسبة نيجي نقرأ هاي البيانات بتطلع في عندك واحد
لحال لإن هاي الطريق اللي احنا ما هو هنعمل
decompress صح؟ decompression مظبوط او decoding
هاخد .. هرجع للبيانات اللي أنا خزنتها هلأالواحد اه
في عندى واحد يبقى هذا element هيرجعلي بداله ايه طب
في عنده صفر ماعنديش طب في عندنا صفر واحد اه في صفر
واحد طب لأ تقوليلي مثلا ليش ماخد صفر واحد واحد
مافيش عندى حاجة اسمها صفر واحد واحد لازم يكون كل
واحد رمزه او شفرته أشمالها مختلفة عن التاني فهيصير
ياخد هذا ولا حد وهيجيكي بدالهم مثلا ال B هل انت في
عند .. هل في عندى واحد واحدماعنديش، هل عنا تلت
وحدات؟ أربع وحدات؟ كمسة؟ مافيش فالواحد هذا one bit
هو اللي موجود فالواحد يمين هدي إيه؟ و هدي إيه؟ و
هدي إيه؟ و هدي إيه؟ طيب تعالوا شوفوا أنا واحد، فين
دي واحد صفر؟ماعناش، يبقى هذه هي نفسها ايه؟ in one
element طيب، هل صفر فيه؟ لأ، في صفر واحد، صحيح،
لكن في صفر واحد صفر؟ ماعنديش، فهم two bitمعاي؟
فهذه رح ترجعلك بي بي بي طب هان تعالوا صفر في
عندنا؟ لأ صفر صفر في عندى؟ لأ طب صفر صفر واحد؟ ده
هاد الطريقة عشان لو انتى فكرتى كيف بدى أسترجع
أشدوا يعرفوا هذا one bit ولا two bit ولا تلاتة bit
ولا أربعة bit؟ ع حسب ال data الست اللى انت خزنتيها
جديد واضحك؟ فبصير يسترجع نفس المعلومات الأصل لكن
كتبناها هاد الأصل صح؟ كتبنا الأصل بطريقة تانيةبرضه
data صح؟ لكن شوفوا ال data الجديدة ايش عملت معانا
طبعا هذه الشفرة بناء على ان احنا اعطينا اكتر نسبة
تكرار اعطيناها اقل طول او اقل عفوة نسبة تكرار
اعطيناها اطول طول هنوفر مساحة في التخزين هنوفر
ايش؟ مساحة في التخزين فمثلا عندك اي اكم مرة
موجودة؟21 مرة، قدس طولها؟ واحد بت طيب وال B برضه
تمان مرات، بس قدس سر طولها؟ اتنين وال C خمس مرات،
قدس سر طولها؟ تلاتة ال D موجودة بس مرة واحدة، لكن
قدس طولها؟ أربع لو ضربتي هدول، لو جمعتيهم مع بعض،
قدس سر عندها كم بت؟ ستة و خمسين بتلكن في الأول
قداش كان .. لما كان كل واحد two bit .. two bit ..
two bit كان سبعين bit وفرنا قداش؟ اربعتاشر bit
كويسين اربعتاشر bit صح؟ هذا على two bit فمبارك لما
يكون عندك واحد byte ولا اربع عشرين bit لل pixel
صح؟ معاي؟ يبقى انتوا قداش؟ ستة و خمسين عرفنا إيش
أن واحد و أن اتنين؟يبقى N1 هي عدد البتات الأصلية،
ماشي؟ و N2 عدد البتات بعد عملية ال compressionبعد
عملية Aishq ال compression و Aishq ال compression
اللى احنا استخدمنا ال variable length coding خلاص
طيب لقينا ان N2 قداش صارت قلت عن N1 صارت 56 طب
بدنا نشوف بقداش نسبة ال compression اللى احنا
عملناها و قداش كان فيه نسبة التكرار طبعا فزي ما
شوفنا قبل شوية N1 على N2 نسبة ال compression من 70
ل 56لو قسمت 70 على 56 بيطلع 21.25% هاي نسبة ال
compression هذا ال compression ratio قداش
redundancy؟ كيف جبناها؟ 56 على 70 بالعكس نقص منهم
100% بيطلع معاكي قداش 20% نسبة التكرار كانت في
داخل هاي ال dataواضح ال compression ratio و
redundancy كل طريقة و إلها فكرتها يعني بس بالنسبة
لل variable length coding N1 هي عدد البتات الأصلية
N2 هي عدد البتات بعد عملية ال compression كيف
بنجيب N2 برجع لنوع ال compression أو الطريقة اللي
راح يستخدمها خلاص؟ طيب كيف؟
أه ما هو .. انا ساعتها هجيب .. هقولك ب .. بالله
بستعمل variable length coding احسبيلي كذا ب
Hoffman احسبيلي كذا بال run length coding احسبيلي
كذا مثلا كل حاجة وقلها طريقتها تمام؟ طيب اعرفني
ايش ال variable length coding هلقيت؟ مختصر ال
variable length coding انه انا بعمل تشفير او بعطي
أطواة لجديدةبناء على نسبة تكرار العنصر الأطول او
الاكثر طولا او تكرارا بنعطيه اقل طول والاقل تكرار
نعطيه اش اطول طول هاي فكرة ال variable length
coding طيب نشوف ال Hoffman Hoffman هذا مشهور جدا
فكرته مبنيه تقريبا او شبه فكرة variable length
codingبس يعني اعمل ال .. انظمها شوية، ايش يعني
أنظمها؟ يعني احنا الأطوار .. هو برضه بيعطي أطوار،
هو أخد بالك ال variable length هي هذي lossy ولا
lossless؟ lossless لإنه بترجع نفس البيانات اللي
كانت هي هي، بس رمزناها بشكل جديد عشان نوفر مساحة،
ماشي؟ لكن ماضيعنا إشي من البيانات، صح؟و Hoffman
كمان non-lossy، lossless، صح؟ بس ابتكر طريقة زي ما
بيقولوها standard ان انت تقدر تطلعي أطوال غير
متشابهة مش احنا اتفقنا ان انا اعطيت لل A و ال B و
ال C كل واحدة طول و الشرط التاني ان يكونوا مرمزين
كل واحد رمزه عن التاني مختلف عشان مايتشابهوش مع
بعض ف Hoffman راح عمل فكرة letree بتعرفوا letree؟
زي الشجرة عشان يشوف او يطلعلك ال code تبع كل رمز
موجود في داخل هاي ال .. ال pixel مثلا او في هاي
الصورة okay طيب نمشي نشوف بس لمحة عن Hoffmanبقول
like this example error free coding the
information is completely اش عن ال free coding ان
المعلومات بشكل كامل يتم استرجاحها بدون ما تفقد اي
نوع من البيانات this idea of variable length
coding الفكرة تبع ال variable length coding is
used in many places يعني صح احنا شايفينها حاجة
بسيطة يمكن او كذا لكن كانت أساس لعمليات كتيرواعتمد
عليها Hoffman اعتمد Hoffman على مين؟ على ال
variable length coding فرح اشتغل Hoffman مع طالب
لإله في الجامعة عملوا بحث وطلعوا بفكرة مين؟ ال
Hoffman codingلكن بتعطيكي طريقة محددة في عملية
إعطاء الشفرة لكل رمز شفرة H كل رمز وصارت معتمدة
فكرة Hoffman في معظم أعمليات ال compression وكانت
well this is very commonly applied to many
compression techniques as final stage فلو انتوا
قرأتوا عن طرق ال compression هتلاقي أي طريقة يمكن
بستعمل Hoffman بس حاططها في الآخربتلاقي Hoffman
عنده في المرحلة اللي قبل الأخيرة أو الأخيرة ماشي؟
يعني ممكن نستعمل variable ممكن نستعمل كمان شغل أو
كمان حاجة لكن هيستعمل Hoffman ماشي؟ و بستعملها في
آخر مرحلة من مراحل عملية ال compression في عندي
أنا طبعاطرق كثير مختلفة لإيجاد الـ Verbal Linked
Coding زي عسابى للمثال في طرق اسمها arithmetic
باستعمل طرق قيادية أو حسابية في عندك a coding وفي
عندنا ال LZW عرفنا ال LZW هو تبع الgef مظبوط وتبع
ال PNG coding وفي عندنا ال Z by P هدولة كلهم إيش
مالهم؟ non-lossy compression استعملوا نفس الفكرة
بس كل واحد إله طريقتهزي شبه ال variable ها شبه ال
variable بس كيف اشتغلوا كل واحد إيه له فكرته فال
variable اشتغلت بهذه الفكرة لو أنت طلعته أو حد
حاول يقرأ كيف انعملت هاي ال LZW وكيف انعملت هاتلون
بيشبهوا ال variable لل coding لكن ب .. يعني أفكار
مختلفة شوية بأفكار ايه مختلفة شوية طيب baptizing
histogram .. اه اش بستعمل هو ال histogram amount
فاكره ال histogram؟
أيوة اللي بعدد عدد ال colors في كل الصورة لكل
level صح ولا لأ؟ فهنا يبقى احنا برضه على العدد لو
أنا بدأ اشتغلها على الصورة كيف بيجيب Hoffman او
ايش بيستعمل Hoffman؟ بيجيبلي لكل level طبعا
هنستعملوا على ال gray ها انا ع سبيل المثال ع gray
level وبيجيبلك من كل level أكم مرة ان وجد هذا ال
color يبقى في عندنا تكرار صح؟ و بنقدر نطلع ان واحد
و لا بنقدرشبنقدر نطلعهم ولا نقدرش؟ صح؟ وبنقدر نطلع
N اتنين طيب، نفترض أنا المثال اللي راح نيجي نشوفه
بيعبر عن صورة بال .. ال grey عصابي المثال لكن ال
pixel الواحدة عبارة عن قداش؟ تلاتة bit يبقى أكم
level عندنا؟ تلاتة bit أكم level عندي؟ من التلاتة
أكم color بقدر أمثل من التلاتة؟
تمانية bit أو عفوا تمانية color تمانية color صح؟
تمانية color اللي هي إيش هم رمزهم؟ zero zero zero
zero zero one zero one zero zero one one هاي تلاتة
صح؟ الأربعة الخمسة والستة والسبعة صح؟هدول قداش؟
تمان ألوان فهي تلاتة bit في عندي إيش تاني؟ مش احنا
قولنا كل ما بنزيد ال bit بيزيد عدد الألوان؟ يبقى
أنا بس عندى تمانية color في هذه ال .. التلاتة bit
يبقى هتلاقوا إن المثال عشان ماحدش يسأل ليش أنا بس
من صفر لسبعة؟ لأن عشان إنه تلاتة bit و التلاتة bit
بيعطوك الألوان أو القيم من صفر لمين؟ لسبعة، مظبوط؟
طيب كيف بدنا نجيب أو إيش فكرة Hoffman بالنسبة لل
image يعني؟بيعمل كان جدول طبعا هي data set شوفتوا
احنا عملنا data set هناك بس كيف شكل ال data set
تبعت ال Hoffman بيروح بيرص او بصفطهم هيك ال levels
تبعت ال colors اللي هو بيشتغل عليها من صفر لحد مين
سبعة و عنده عمود بيحسب فيه probability ايش ال
probability نسبة وجود كل color في الصورة ماشي نسبة
وجود كل color في الصورة هنشوف كيف راح نحسبهاو بعمل
كمان عمود حاجة بيسموها ال code word هيعطيني الشفرة
هاد اللي هي 01 هاد بنسميه code row تمام؟ هو
هيستنتجه اه؟ هيطلعه من خلال هالعملية ان شاء الله
اذا قدرنا بنوركويا code row و بعدين بيعطي عمود
تاني اسمه length عشان يعد قداش طول ال code rowماشي
و في الآخر بده نعمل ال links في ال probability
عشان يطلع نسبة وجود أو نسبة التكرار تبع المعادلة
اللى موجودة عنده هلاقيت كيف بجيب ال probability؟
بنكملها ان شاء الله بس هنكملها ال probability كيف
بنجيبها؟عبارة عن HG على N ايش N؟ هلاقيت انه نفترض
ان انا عند بيكسل طبعا هو هانا مجهز ليهاهم ماتعطيلي
الاحتمال جاهز خلاص؟ بس نفترض ان انا عندي صورة
تلاتة في تلاتة اي كام بيكسل فيه؟ تسعة هاي الانواع
صح؟ عدد البيكسل تسعة هاد مين؟أو يعني .. مش .. okay
فانا أقول مثلا هذه أنوان أو اللي هي total number
of pixels total عفوا مين؟ total number of pixels
خلاص؟
طب و إيش hg؟ اللي هي كل level يعني مثلا كان عندي
هنا zero هنا zero و هنا zero واحد و واحد هنا مثلا
تلاتة هنا أربعة هنا خمسة هنا ستةOkay الصفر أكملها
نوجودة تلات مرات بقول تلاتة على تسعة هي لل zero
تلاتة على تسعة قدش بطلع تلت ليه تلاتة من عشرة صح؟
طيب الواحدموجود مرتين فهي اتنين على تسعة عرفته؟ زي
ال compression ratio زي ما جيبنا قدر ال a's موجود
أكملنا موجودة في ال .. في ال string هذا okay فنفس
الاشي بس هو هانا مش جايبنا يام نعطيك المؤادة لكيف
تحسب ال probability فهذا هي ال probability أو نسبة
وجود الصفر نسبة وجود الواحد نسبة وجود الاتنين
والتلاتة طب ممكن مايكونش ال color مثلا زي السبعة
مش موجود ولا مرة طبعا صفر مش هنا مشكلة خلاص؟فهي
بشرحلي بس كيف انا بجيب ال probability المرة الجاية
ان شاء الله هنشوف الجدول هذا كيف راح نكمله يعطيكوا
العافية