JPEG فارميٽ ڪيئن ڪم ڪندو آهي

JPEG تصويرون اسان جي ڊجيٽل زندگين ۾ هر جڳهه آهن، پر شعور جي هن پوشاڪ جي پويان الگورتھم آهن جيڪي تفصيلات کي هٽائي ڇڏيندا آهن جيڪي انساني اک لاء قابل نه هوندا آهن. نتيجو سڀ کان ننڍي فائل سائيز ۾ سڀ کان وڌيڪ بصري معيار آهي - پر اهو سڀ ڪجهه ڪيئن ڪم ڪندو آهي؟ اچو ته ڏسون جيڪي اسان جون اکيون نه ٿيون ڏسن!

JPEG فارميٽ ڪيئن ڪم ڪندو آهي

اهو وٺڻ آسان آهي هڪ دوست کي فوٽو موڪلڻ جي صلاحيت ۽ پريشان نه ٿيو ته اهي ڪهڙي ڊوائيس، برائوزر يا آپريٽنگ سسٽم استعمال ڪري رهيا آهن - پر اهو هميشه نه هو. 1980 جي شروعات تائين، ڪمپيوٽرن کي ڊجيٽل تصويرون ذخيرو ۽ ڊسپلي ڪري سگھن ٿا، پر هن کي ڪرڻ لاء بهترين طريقي جي باري ۾ ڪيترائي مقابلا خيال هئا. توهان صرف هڪ تصوير هڪ ڪمپيوٽر کان ٻئي ڏانهن نه موڪلي سگهو ٿا ۽ اميد آهي ته اهو ڪم ڪندو.

ان مسئلي کي حل ڪرڻ لاءِ 1986ع ۾ سڄي دنيا جي ماهرن جي هڪ ڪميٽي جوڙي وئي، جنهن جو نالو ڏنو ويو.فوٽوگرافي جي ماهرن جو گڏيل گروپ»(جوائنٽ فوٽوگرافڪ ماهرن جو گروپ، JPEG)، بين الاقوامي معيار جي تنظيم (ISO) ۽ انٽرنيشنل اليڪٽرو ٽيڪنيڪل ڪميشن (IEC) جي وچ ۾ گڏيل ڪوشش جي طور تي قائم ڪيو ويو، ٻن بين الاقوامي معيار جي تنظيمن جو صدر دفتر جنيوا، سوئٽزرلينڊ ۾ آهي.

ماڻهن جو هڪ گروپ JPEG سڏيو وڃي ٿو JPEG ڊجيٽل تصويري ڪمپريشن معيار 1992 ۾. ڪو به ماڻهو جيڪو انٽرنيٽ استعمال ڪيو آهي شايد شايد JPEG انڪوڊ ٿيل تصويرن سان مقابلو ڪيو آهي. اهو سڀ کان وڌيڪ عام طريقو آهي انڪوڊ ڪرڻ، موڪلڻ ۽ تصويرون رکڻ جو. ويب صفحن کان وٺي اي ميل تائين سوشل ميڊيا تائين، JPEG استعمال ڪيو ويندو آهي اربين ڀيرا هڪ ڏينهن ۾- عملي طور تي هر وقت جڏهن اسان هڪ تصوير آن لائن ڏسون ٿا يا موڪليندا آهيون. JPEG کان سواء، ويب گهٽ رنگا رنگ، سست، ۽ شايد گهٽ ٻلي جون تصويرون هونديون!

هي آرٽيڪل JPEG تصوير کي ڊيڪوڊ ڪرڻ جي باري ۾ آهي. ٻين لفظن ۾، ڪمپيوٽر تي ذخيرو ٿيل ڊيٽا کي اسڪرين تي ظاهر ٿيندڙ تصوير ۾ تبديل ڪرڻ جي ڪهڙي ضرورت آهي. اهو ڄاڻڻ جي لائق آهي، نه صرف ان ڪري ته اهو ضروري آهي ته اسان ٽيڪنالاجي کي سمجهڻ لاءِ هر روز استعمال ڪريون ٿا، پر ان ڪري به ڇاڪاڻ ته ان لاڪ ڪرڻ سان، اسان سمجهون ٿا ۽ وژن بابت، ۽ اسان جون اکيون ڪهڙيون تفصيل سان حساس آهن.

ان کان سواء، هن طريقي سان تصويرن سان راند تمام دلچسپ آهي.

JPEG فارميٽ ڪيئن ڪم ڪندو آهي

JPEG اندر ڏسي رهيو آهي

ڪمپيوٽر تي، سڀڪنھن شيء کي بائنري انگن جي ترتيب جي طور تي ذخيرو ٿيل آھي. عام طور تي اهي بٽ، صفر ۽ هڪ، اٺن جي گروپن ۾ ورهايل آهن بائيٽ ٺاهڻ لاء. جڏهن توهان ڪمپيوٽر تي JPEG تصوير کوليو ٿا، ڪجهه (هڪ برائوزر، هڪ آپريٽنگ سسٽم، ٻيو ڪجهه) بائٽس کي ڊيڪوڊ ڪرڻ گهرجي، اصل تصوير کي بحال ڪري رنگن جي فهرست جي طور تي جيڪو ڏيکاري سگهجي ٿو.

جيڪڏھن توھان ھي مٺي ڊائون لوڊ ڪريو هڪ ٻلي جي تصوير ۽ ان کي ٽيڪسٽ ايڊيٽر ۾ کوليو، توھان ڏسندؤ ته بي ترتيب ڪردارن جو ھڪڙو گروپ.

JPEG فارميٽ ڪيئن ڪم ڪندو آهي
هتي مان فائل جي مواد کي جانچڻ لاءِ Notepad++ استعمال ڪري رهيو آهيان، ڇاڪاڻ ته باقاعده ٽيڪسٽ ايڊيٽر جهڙوڪ نوٽ پيڊ ونڊوز تي محفوظ ڪرڻ کان پوءِ بائنري فائل کي خراب ڪري ڇڏيندو ۽ اهو هاڻي JPEG فارميٽ کي پورو نه ڪندو.

ورڊ پروسيسر ۾ تصوير کولڻ ڪمپيوٽر کي الجھائي ٿو، بلڪل ائين جيئن توهان پنهنجي دماغ کي پريشان ڪندا آهيو جڏهن توهان پنهنجون اکيون ڌوئي ۽ رنگ جا داغ ڏسڻ شروع ڪندا آهيو!

اهي جڳهيون جيڪي توهان ڏسندا آهن سڃاتل آهن فاسفين، ۽ نه آهن هڪ هلڪو محرک جو نتيجو يا ذهن طرفان پيدا ڪيل هڪ hallucination. اهي ٿي رهيا آهن ڇو ته توهان جو دماغ سوچي ٿو ته ڪنهن به برقي سگنلن ۾ نظرياتي اعصاب ۾ روشني بابت معلومات پهچائي ٿي. دماغ کي انهن فرضن کي ٺاهڻ جي ضرورت آهي ڇو ته اهو ڄاڻڻ جو ڪو طريقو ناهي ته سگنل هڪ آواز آهي، هڪ خواب، يا ٻيو ڪجهه. جسم ۾ سڀئي اعصاب بلڪل ساڳيا برقي تسلسل منتقل ڪن ٿا. توهان جي اکين تي دٻاء لاڳو ڪرڻ سان، توهان سگنل موڪليندا آهيو جيڪي بصري نه هوندا آهن، پر اکين جي ريڪٽرز کي چالو ڪندا آهن، جن کي توهان جو دماغ تفسير ڪري ٿو - انهي صورت ۾، غلط طور تي - ڪجهه بصري وانگر. توهان لفظي طور تي دٻاء ڏسي سگهو ٿا!

اهو سوچڻ عجيب آهي ته ڪمپيوٽر دماغ سان ڪيئن ملندڙ جلندڙ آهن، پر اهو پڻ هڪ ڪارائتو تشبيهه آهي انهي کي واضع ڪرڻ لاءِ ته ڊيٽا جي معنيٰ ڪيتري آهي- چاهي اهو جسم ذريعي اعصاب ذريعي منتقل ٿئي ٿو يا ڪمپيوٽر تي ذخيرو ٿيل آهي- ان تي منحصر آهي ته ان جي تشريح ڪيئن ڪئي وئي آهي. سڀ بائنري ڊيٽا 0s ۽ 1s مان ٺهيل آهي، بنيادي جزا جيڪي ڪنهن به قسم جي معلومات پهچائي سگھن ٿا. توهان جو ڪمپيوٽر اڪثر اهو ڄاڻندو آهي ته انهن جي تشريح ڪيئن ڪجي سراغ استعمال ڪندي جيئن فائل ايڪسٽينشن. هاڻي اسان ان کي مجبور ڪريون ٿا ته ان کي متن جي طور تي تشريح ڪريون، ڇاڪاڻ ته ٽيڪسٽ ايڊيٽر کي اها ئي اميد آهي.

سمجھڻ لاءِ ته JPEG کي ڪيئن ڊيڪوڊ ڪجي، اسان کي پاڻ کي اصل سگنل ڏسڻو پوندو - بائنري ڊيٽا. اهو ٿي سگهي ٿو هيڪساڊيڪل ايڊيٽر استعمال ڪندي، يا سڌو سنئون اصل مضمون ويب صفحو! هتي هڪ تصوير آهي، جنهن جي اڳيان ٽيڪسٽ فيلڊ ۾ ان جا سڀئي بائيٽ آهن (سر کان سواء)، ڊيسيمل فارم ۾ پيش ڪيا ويا آهن. توھان انھن کي تبديل ڪري سگھو ٿا، ۽ اسڪرپٽ ٻيهر انڪوڊ ڪندو ۽ اڏام تي نئين تصوير ٺاھيندو.

JPEG فارميٽ ڪيئن ڪم ڪندو آهي

توھان تمام گھڻو سکي سگھوٿا صرف ھن ايڊيٽر سان کيڏڻ سان. مثال طور، ڇا توهان ٻڌائي سگهو ٿا ته ڪهڙي ترتيب ۾ پکسلز ذخيرو ٿيل آهن؟

هن مثال جي عجيب ڳالهه اها آهي ته ڪجهه نمبرن کي تبديل ڪرڻ سان تصوير تي ڪو به اثر نه پوندو آهي، پر مثال طور، جيڪڏهن توهان پهرين لڪير ۾ نمبر 17 کي 0 سان مٽايو ته تصوير بلڪل خراب ٿي ويندي!

JPEG فارميٽ ڪيئن ڪم ڪندو آهي

ٻيون تبديليون، جهڙوڪ 7 آن لائن 1988 کي 254 نمبر سان تبديل ڪرڻ، رنگ تبديل ڪري ٿو، پر صرف ايندڙ پکسلز جو.

JPEG فارميٽ ڪيئن ڪم ڪندو آهي

شايد سڀ کان عجيب ڳالهه اها آهي ته ڪجهه انگ نه رڳو رنگ تبديل ڪندا آهن، پر تصوير جي شڪل پڻ. 70 ۾ 12 ۾ 2 کي تبديل ڪريو ۽ تصوير جي مٿين قطار کي ڏسو ته منهنجو مطلب ڇا آهي.

JPEG فارميٽ ڪيئن ڪم ڪندو آهي

۽ ڪابه پرواهه ناهي ته توهان ڪهڙي JPEG تصوير استعمال ڪندا آهيو، توهان هميشه اهي پراسرار شطرنج جا نمونا ڳوليندا جڏهن بائيٽ کي ايڊٽ ڪندا.

جڏهن ايڊيٽر سان کيڏڻ، اهو سمجهڻ ڏکيو آهي ته انهن بائيٽس مان هڪ فوٽو ڪيئن ٺاهيو وڃي ٿو، ڇاڪاڻ ته JPEG ڪمپريشن ٽن مختلف ٽيڪنالاجين تي مشتمل آهي، ترتيب سان سطحن ۾ لاڳو ڪيو ويو آهي. اسان هر هڪ کي الڳ الڳ مطالعو ڪنداسين ته پراسرار رويي کي ظاهر ڪرڻ لاء جيڪو اسان ڏسي رهيا آهيون.

JPEG کمپريشن جا ٽي سطح:

  1. رنگ جي نموني.
  2. ڊسڪريٽ ڪوسائن ٽرانسفارم ۽ نموني.
  3. ڊگھائي انڪوڊنگ کي هلائڻ, ڊيلٽا и هفمن

توهان کي ڪمپريشن جي شدت جو اندازو لڳائڻ لاءِ، ياد رکو ته مٿي ڏنل تصوير 79 انگن جي نمائندگي ڪري ٿي، يا اٽڪل 819 KB. جيڪڏهن اسان ان کي بغير ڪمپريشن جي ذخيرو ڪيو، هر پکسل کي ٽن نمبرن جي ضرورت پوندي - ڳاڙهي، سائي ۽ نيري اجزاء لاء. اهو رقم 79 نمبرن تائين، يا تقريبن. 917 KB JPEG کمپريشن جي نتيجي ۾، فائنل فائل 700 ڀيرا کان وڌيڪ گھٽجي وئي!

حقيقت ۾، هن تصوير کي وڌيڪ compress ڪري سگهجي ٿو. هيٺيون ٻه تصويرون ساڄي پاسي آهن - ساڄي پاسي واري تصوير کي 16 KB تائين دٻايو ويو آهي، يعني، 57 ڀيرا ننڍو نسخي کان ننڍو!

JPEG فارميٽ ڪيئن ڪم ڪندو آهي

جيڪڏهن توهان غور سان ڏسندا ته توهان ڏسندا ته اهي تصويرون هڪجهڙا نه آهن. اهي ٻئي تصويرون JPEG کمپريشن سان آهن، پر صحيح هڪ حجم ۾ تمام ننڍو آهي. اهو پڻ ٿورڙو خراب ڏسڻ ۾ اچي ٿو (پس منظر جي رنگن جي چوڪن کي ڏسو). ان ڪري JPEG کي نقصانڪار ڪمپريشن به سڏيو ويندو آهي. کمپريشن جي عمل دوران، تصوير تبديل ٿي ۽ ڪجهه تفصيل وڃائي ٿو.

1. رنگ جي نموني

هتي هڪ تصوير آهي جنهن سان صرف پهرين سطح جي ڪمپريشن لاڳو ڪئي وئي آهي.

JPEG فارميٽ ڪيئن ڪم ڪندو آهي
(Interactive version - in اصل آرٽيڪل). ھڪڙي انگ کي ختم ڪرڻ سان سڀ رنگ ختم ٿي ويندا آھن. بهرحال، جيڪڏهن ڇهن انگن کي هٽايو ويو آهي، اهو تصوير تي عملي طور تي ڪو اثر ناهي.

ھاڻي انگ اکر سمجھڻ ۾ ٿورو آسان آھي. هي رنگن جي لڳ ڀڳ هڪ سادي فهرست آهي، جنهن ۾ هر بائيٽ بلڪل هڪ پکسل تبديل ڪري ٿو، پر ساڳئي وقت اها اڳ ۾ ئي اڻ سڌريل تصوير جي اڌ سائيز آهي (جيڪو هن گهٽجي ويل سائيز ۾ اٽڪل 300 KB وٺندو). ڇا توهان اندازو لڳائي سگهو ٿا ڇو؟

توهان ڏسي سگهو ٿا ته اهي انگ معياري ڳاڙهي، سائي ۽ نيري حصن جي نمائندگي نٿا ڪن، ڇاڪاڻ ته جيڪڏهن اسان سڀني نمبرن کي صفر سان تبديل ڪنداسين، اسان کي سائي تصوير (بلڪه سفيد) ملندي.

JPEG فارميٽ ڪيئن ڪم ڪندو آهي

اهو ئي سبب آهي ته اهي بائيٽ Y (چمڪندڙ) لاء بيٺا آهن،

JPEG فارميٽ ڪيئن ڪم ڪندو آهي

سي بي (نسبتي نيري)،

JPEG فارميٽ ڪيئن ڪم ڪندو آهي

۽ سي آر (لاڳاپي) تصويرون.

JPEG فارميٽ ڪيئن ڪم ڪندو آهي

ڇو نه RGB استعمال ڪريو؟ سڀ کان پوء، اهو ڪيئن آهي جديد اسڪرينون ڪم ڪن ٿيون. توهان جو مانيٽر هر پکسل لاءِ مختلف شدت سان ڳاڙهي، سائي ۽ نيري سميت ڪنهن به رنگ کي ڊسپلي ڪري سگهي ٿو. اڇو حاصل ڪيو ويندو آهي ٽنهي کي مڪمل چمڪ تي ڦيرائڻ سان، ۽ ڪارو انهن کي بند ڪندي.

JPEG فارميٽ ڪيئن ڪم ڪندو آهي

اهو پڻ ساڳيو آهي ته ڪيئن انساني اک ڪم ڪري ٿي. اسان جي اکين ۾ رنگ ريڪٽرز کي سڏيو ويندو آهي "شنک“، ۽ ٽن قسمن ۾ ورهايل آهن، جن مان هر هڪ ڳاڙهي، سائي يا نيري رنگن لاءِ وڌيڪ حساس آهي [S-type Cones آهن حساس آهن واڱڻائي-نيري ۾ (S from English Short- short-wave spectrum)، M. -قسم - سائي-پيلو ۾ (انگريزي ميڊيم - وچولي-موج مان M)، ۽ L-قسم - پيلي-ڳاڙهي ۾ (انگريزيءَ مان L لانگ - ڊگھي-موج) اسپيڪرم جا حصا. انهن ٽن قسمن جي ڪنن جي موجودگي (۽ ڇنڊا، جيڪي اسپيڪٽرم جي زمرد جي سائي حصي ۾ حساس هوندا آهن) هڪ شخص کي رنگين نظر ڏئي ٿو. / تقريبن. ترجمو]. لاٽيوناسان جي اکين ۾ فوٽو ريسيپٽر جو هڪ ٻيو قسم، روشني ۾ تبديلين کي ڳولڻ جي قابل آهي، پر رنگ جي لحاظ کان تمام گهڻو حساس آهي. اسان جي اکين ۾ اٽڪل 120 ملين راڊ ۽ صرف 6 ملين ڪنز آهن.

اهو ئي سبب آهي ته اسان جون اکيون رنگ ۾ تبديلين جي ڀيٽ ۾ روشني ۾ تبديلين کي ڳولڻ ۾ گهڻو بهتر آهن. جيڪڏھن توھان رنگ کي چمڪ کان الڳ ڪريو ٿا، توھان ھڪڙو ننڍڙو رنگ ختم ڪري سگھو ٿا ۽ ڪو به ڪجھھ نوٽيس نه ڪندو. Chroma subsampling هڪ تصوير جي رنگ جي اجزاء کي نمايان ڪرڻ جو عمل آهي جيڪو روشني جي اجزاء کان گهٽ ريزوليوشن تي آهي. مٿين مثال ۾، هر پکسل ۾ بلڪل هڪ Y جزو آهي، ۽ چار پکسلز جي هر هڪ گروپ ۾ بلڪل هڪ Cb ۽ هڪ Cr جزو آهي. تنهن ڪري، تصوير ۾ اصل کان چار ڀيرا گهٽ رنگ معلومات شامل آهي.

YCbCr رنگ جي جاء استعمال نه رڳو JPEG ۾. اهو اصل ۾ 1938 ۾ ٽيليويزن جي پروگرامن لاء ايجاد ڪيو ويو. هر ڪنهن وٽ رنگين ٽي وي ناهي، تنهنڪري رنگ ۽ چمڪ کي الڳ ڪرڻ هر ڪنهن کي ساڳيو سگنل حاصل ڪرڻ جي اجازت ڏني آهي، ۽ ٽي ويز بغير رنگ جي صرف روشني جو حصو استعمال ڪندا آهن.

تنهن ڪري ايڊيٽر مان هڪ نمبر هٽائڻ مڪمل طور تي سڀني رنگن کي برباد ڪري ٿو. اجزاء فارم ۾ محفوظ ٿيل آهن YYYY Cb Cr (حقيقت ۾، ضروري ناهي ته انهي ترتيب ۾ - اسٽوريج آرڊر فائل جي هيڊر ۾ بيان ڪيل آهي). پهرين نمبر کي هٽائڻ سان Cb جي پهرين قيمت کي Y، Cr کي Cb طور سمجهيو ويندو، ۽ عام طور تي توهان وٽ هڪ ڊومينو اثر هوندو جيڪو تصوير جي سڀني رنگن کي مٽائي ڇڏيندو.

JPEG وضاحت توهان کي YCbCr استعمال ڪرڻ لاءِ مجبور نٿو ڪري. پر اڪثر فائلون ان کي استعمال ڪن ٿيون ڇاڪاڻ ته اها آر بي بي جي ڀيٽ ۾ بهتر نموني تصويرون پيدا ڪري ٿي. پر توهان کي ان لاءِ منهنجو لفظ وٺڻ جي ضرورت ناهي. هيٺ ڏنل جدول ۾ پنهنجو پاڻ لاءِ ڏسو ته هر فرد جي جزو جو نمونو RGB ۽ YCbCr ٻنهي ۾ ڪهڙو نظر ايندو.

JPEG فارميٽ ڪيئن ڪم ڪندو آهي
(Interactive version - in اصل آرٽيڪل).

نيري کي هٽائڻ جيترو ڳاڙهي يا سائي جي طور تي قابل ذڪر نه آهي. اهو ئي سبب آهي ته توهان جي اکين ۾ ڇهه ملين مخروط آهن، اٽڪل 64 سيڪڙو ڳاڙهي، 32 سيڪڙو سائي ۽ 2 سيڪڙو نيري سان حساس آهن.

Y جزو جي ھيٺان نموني (ھيٺ کاٻي پاسي) بھترين ڏٺو ويو آھي. جيتوڻيڪ هڪ ننڍڙي تبديلي قابل ذڪر آهي.

تصوير کي RGB کان YCbCr ۾ تبديل ڪرڻ سان فائل جي سائيز کي گھٽ نه ٿو ٿئي، پر اهو ان کي آسان بڻائي ٿو ته گهٽ نظر ايندڙ تفصيلن کي ڳولڻ جيڪي ختم ڪري سگهجن ٿيون. ٻئي اسٽيج ۾ نقصانڪار ڪمپريشن ٿئي ٿو. اهو هڪ وڌيڪ compressible فارم ۾ ڊيٽا پيش ڪرڻ جي خيال تي ٻڌل آهي.

2. Discrete cosine transform and sampling

کمپريشن جي هي سطح، سڀ کان وڌيڪ حصو لاء، ڇا JPEG سڀني بابت آهي. رنگن کي YCbCr ۾ تبديل ڪرڻ کان پوء، اجزاء انفرادي طور تي دٻايو ويندو آهي، تنهنڪري اسان صرف Y جزو تي ڌيان ڏئي سگهون ٿا ۽ هتي اهو آهي ته هن پرت کي لاڳو ڪرڻ کان پوء Y جزو بائيٽ ڪيئن نظر اچن ٿا.

JPEG فارميٽ ڪيئن ڪم ڪندو آهي
(Interactive version - in اصل آرٽيڪل). انٽرايڪٽو ورزن ۾، هڪ پکسل تي ڪلڪ ڪري ايڊيٽر کي ان لڪير ڏانهن اسڪرال ڪري ٿو جيڪا ان جي نمائندگي ڪري ٿي. ڪوشش ڪريو انگن کي ختم ڪرڻ جي آخر کان يا ڪجھ صفر شامل ڪريو ھڪڙي خاص نمبر تي.

پهرين نظر ۾، اهو تمام خراب کمپريشن وانگر ڏسڻ ۾ اچي ٿو. ھڪڙي تصوير ۾ 100 پکسلز آھن، ۽ انھن جي چمڪ (Y-components) کي ظاھر ڪرڻ لاءِ 000 انگن جي ضرورت آھي - اھو ڪجھ به نه دٻائڻ کان وڌيڪ خراب آھي!

بهرحال، نوٽ ڪريو ته انهن مان گهڻا نمبر صفر آهن. ان کان علاوه، سٽون جي آخر ۾ اهي سڀئي صفر تصوير کي تبديل ڪرڻ کان سواء ختم ڪري سگھجن ٿيون. اٽڪل 26 انگ باقي آهن، ۽ اهو لڳ ڀڳ 000 ڀيرا گهٽ آهي!

هن سطح تي شطرنج جي نمونن جو راز آهي. ٻين اثرات جي برعڪس اسان ڏٺو آھي، انھن نمونن جي ظاھر ۾ ڪا خرابي نه آھي. اهي سڄي تصوير جي عمارت بلاڪ آهن. ايڊيٽر جي هر لڪير ۾ بلڪل 64 انگ، ڊسڪريٽ ڪوسائن ٽرانسفارم (DCT) ڪوئفينٽس شامل آهن جيڪي 64 منفرد نمونن جي شدت سان ملن ٿا.

اهي نمونا cosine پلاٽ جي بنياد تي ٺهيل آهن. هتي آهي ته انهن مان ڪجهه نظر اچن ٿا:

JPEG فارميٽ ڪيئن ڪم ڪندو آهي
8 مان 64 odds

ھيٺ ڏنل ھڪڙي تصوير آھي جيڪا ڏيکاريندي سڀ 64 نمونن.

JPEG فارميٽ ڪيئن ڪم ڪندو آهي
(Interactive version - in اصل آرٽيڪل).

اهي نمونا خاص اهميت وارا آهن ڇو ته اهي 8x8 تصويرن جو بنياد ٺاهيندا آهن. جيڪڏهن توهان لڪير الجبرا کان ناواقف آهيو، ان جو مطلب آهي ته ڪنهن به 8x8 تصوير انهن 64 نمونن مان ٺاهي سگهجي ٿي. DCT تصويرن کي 8x8 بلاڪن ۾ ورهائڻ جو عمل آهي ۽ هر بلاڪ کي انهن 64 ڪوئفينٽس جي ميلاپ ۾ تبديل ڪري ٿو.

اهو جادو وانگر لڳي ٿو ته ڪا به تصوير 64 مخصوص نمونن سان ٺهيل ٿي سگهي ٿي. بهرحال، اهو ساڳيو ئي چوڻ آهي ته ڌرتيء تي ڪنهن به جڳهه کي ٻن انگن جي ذريعي بيان ڪري سگهجي ٿو - ويڪرائي ڦاڪ ۽ ڊگھائي [ظاهر ڪري ٿو اڌ گول / تقريبا. ترجمو]. اسان اڪثر ڪري ڌرتيءَ جي مٿاڇري کي ٻه طرفي سمجهون ٿا، تنهنڪري اسان کي فقط ٻه عدد گهرجن. هڪ 8x8 تصوير ۾ 64 طول و عرض آهن، تنهنڪري اسان کي 64 نمبرن جي ضرورت آهي.

اهو اڃا تائين واضح ناهي ته اهو اسان کي دٻاء جي لحاظ کان ڪيئن مدد ڪري ٿو. جيڪڏهن اسان کي 64x8 تصوير جي نمائندگي ڪرڻ لاءِ 8 نمبرن جي ضرورت آهي، ته اهو صرف 64 چمڪندڙ اجزاء کي محفوظ ڪرڻ کان بهتر ڇو ٿيندو؟ اسان اهو ئي سبب ڪريون ٿا ته اسان ٽن RGB نمبرن کي ٽن YCbCr نمبرن ۾ تبديل ڪيو: اهو اسان کي اجازت ڏئي ٿو ته ذيلي تفصيلات کي ختم ڪري سگهون.

اهو ڏسڻ ڏکيو آهي ته هن اسٽيج تي ڪهڙي تفصيل کي هٽايو ويو آهي ڇو ته JPEG DCT کي 8x8 بلاڪ تي لاڳو ڪري ٿو. بهرحال، ڪو به اسان کي ان کي پوري تصوير تي لاڳو ڪرڻ کان منع ڪري ٿو. هتي اهو آهي ته DCT سڄي تصوير تي لاڳو ڪيل Y جزو لاءِ نظر اچي ٿو:

JPEG فارميٽ ڪيئن ڪم ڪندو آهي

60 کان وڌيڪ نمبر ختم ڪري سگھجن ٿا آخر ۾ تصوير ۾ ڪا به قابل ذڪر تبديلين سان.

JPEG فارميٽ ڪيئن ڪم ڪندو آهي

بهرحال، ياد رکو ته جيڪڏهن اسان پهرين پنجن نمبرن کي صفر ڪريون، فرق واضح ٿي ويندو.

JPEG فارميٽ ڪيئن ڪم ڪندو آهي

شروع ۾ انگ اکر تصوير ۾ گھٽ تعدد تبديلين جي نمائندگي ڪن ٿا، جن کي اسان جون اکيون چڱيءَ طرح کڻن ٿيون. انگن اکرن جي پڇاڙيء ۾ اعلي تعدد ۾ تبديلين کي ظاهر ڪن ٿا جيڪي نوٽيس ڪرڻ وڌيڪ ڏکيو آهن. ”ڏسڻ لاءِ جيڪو اک نه ڏسي سگهي،“ اسان انهن اعليٰ تعدد جي تفصيلن کي الڳ ڪري سگھون ٿا پهرين 5000 نمبرن کي صفر ڪري.

JPEG فارميٽ ڪيئن ڪم ڪندو آهي

اسان تصوير جي سڀني علائقن کي ڏسون ٿا جتي وڏي تبديلي پکسل کان پکسل تائين ٿيندي آهي. ٻلي جون اکيون، هن جا ڳوڙها، ٽيري ڪمبل ۽ هيٺئين کاٻي ڪنڊ ۾ پاڇا بيٺا آهن. پهرين 10 نمبرن کي صفر ڪرڻ سان توهان اڳتي وڌي سگهو ٿا:

JPEG فارميٽ ڪيئن ڪم ڪندو آهي

20 000:

JPEG فارميٽ ڪيئن ڪم ڪندو آهي

40 000:

JPEG فارميٽ ڪيئن ڪم ڪندو آهي

60 000:

JPEG فارميٽ ڪيئن ڪم ڪندو آهي

اهي اعلي تعدد تفصيلات JPEG پاران ختم ڪيا ويا آهن کمپريشن اسٽيج دوران. رنگن کي ڊي سي ٽي ڪوفيفينٽس ۾ تبديل ڪرڻ ۾ ڪو به نقصان ناهي. نقصان نموني جي قدم تي ٿئي ٿو، جتي اعلي تعدد يا ويجھي صفر قدر ختم ٿي ويا آهن. جڏهن توهان JPEG بچت جي معيار کي گهٽ ڪندا آهيو، پروگرام ختم ٿيل قدرن جي تعداد لاءِ حد وڌائيندو آهي، جيڪو فائل جي سائيز کي گھٽائي ٿو، پر تصوير کي وڌيڪ عڪسل بڻائي ٿو. اهو ئي سبب آهي ته پهرين حصي ۾ تصوير، جيڪا 57 ڀيرا ننڍي هئي، اهڙي طرح نظر آئي. هر 8x8 بلاڪ کي اعلي معيار جي نسخي جي مقابلي ۾ تمام گهٽ DCT جي کوٽائي جي نمائندگي ڪئي وئي هئي.

توھان ٺاھي سگھوٿا ھڪڙو ٿڌو اثر جيئن تصويرن جي تدريجي اسٽريمنگ. توهان هڪ مبهم تصوير ڊسپلي ڪري سگهو ٿا جيڪا وڌيڪ ۽ وڌيڪ تفصيلي ٿي ويندي آهي جيئن وڌيڪ ۽ وڌيڪ ڪوفيفينٽ ڊائون لوڊ ڪيا ويندا آهن.

هتي، صرف تفريح لاءِ، اهو آهي جيڪو توهان صرف 24 نمبر استعمال ڪندي حاصل ڪيو:

JPEG فارميٽ ڪيئن ڪم ڪندو آهي

يا صرف 5000:

JPEG فارميٽ ڪيئن ڪم ڪندو آهي

تمام blurry، پر ڪنهن به طرح سڃاتل!

3. رن ڊگھائي انڪوڊنگ، ڊيلٽا ۽ هفمن

هينئر تائين، سمپيشن جي سڀني مرحلن کي نقصان پهچايو ويو آهي. آخري اسٽيج، ان جي ابتڙ، بغير نقصان جي اڳتي وڌندي آهي. اهو معلومات کي ختم نٿو ڪري، پر اهو خاص طور تي فائل جي سائيز کي گھٽائي ٿو.

توهان معلومات کي اڇلائڻ کان سواءِ ڪجهه ڪيئن دٻائي سگهو ٿا؟ تصور ڪريو ته اسان ڪيئن بيان ڪنداسين هڪ سادي ڪارو مستطيل 700 x 437.

JPEG ان لاءِ 5000 نمبر استعمال ڪري ٿو، پر تمام بھتر نتيجا حاصل ڪري سگھجن ٿا. ڇا توھان تصور ڪري سگھوٿا ھڪڙي انڪوڊنگ اسڪيم جيڪا اھڙي تصوير کي بيان ڪري سگھي ٿي جيترو ڪجھ بائٽس ۾؟

گهٽ ۾ گهٽ اسڪيم جنهن سان آئون اچي سگهان ٿو چار استعمال ڪري ٿو: ٽي هڪ رنگ جي نمائندگي ڪرڻ لاءِ، ۽ چوٿون اهو ظاهر ڪرڻ لاءِ ته ان رنگ ۾ ڪيترا پکسلز آهن. هن ٺهڪندڙ طريقي سان ورجائيندڙ قدرن جي نمائندگي ڪرڻ جي خيال کي رن-لمبائي انڪوڊنگ سڏيو ويندو آهي. اهو نقصانڪار آهي ڇو ته اسان انڪوڊ ٿيل ڊيٽا کي ان جي اصل شڪل ۾ بحال ڪري سگهون ٿا.

ڪارو مستطيل سان هڪ JPEG فائل 4 بائيٽ کان تمام وڏي آهي - ياد رکو ته ڊي سي ٽي سطح تي، 8x8 پکسل بلاڪ تي ڪمپريشن لاڳو ٿئي ٿو. تنهن ڪري، گهٽ ۾ گهٽ، اسان کي هر 64 پکسلز لاء هڪ DCT کوٽائي جي ضرورت آهي. اسان کي هڪ جي ضرورت آهي ڇاڪاڻ ته هڪ DCT ڪوفيشيٽ کي ذخيرو ڪرڻ جي بدران 63 صفر جي پٺيان، رن ڊگھائي انڪوڊنگ اسان کي هڪ نمبر محفوظ ڪرڻ جي اجازت ڏئي ٿي ۽ ظاهر ڪري ٿو ته "ٻيا سڀئي صفر آهن."

ڊيلٽا انڪوڊنگ هڪ ٽيڪنڪ آهي جنهن ۾ هر بائيٽ ۾ مطلق قدر جي بدران ڪجهه قدر کان فرق آهي. تنهن ڪري، ڪجهه بائيٽ کي ايڊٽ ڪرڻ سان ٻين سڀني پکسلز جو رنگ بدلجي ٿو. مثال طور، ذخيرو ڪرڻ بدران

12 13 14 14 14 13 13

اسان 12 سان شروع ڪري سگھون ٿا ۽ پوءِ آسانيءَ سان ظاھر ڪري سگھون ٿا ته ايندڙ نمبر حاصل ڪرڻ لاءِ اسان کي ڪيترو شامل ڪرڻ يا گھٽائڻو پوندو. ۽ ڊيلٽا ڪوڊنگ ۾ هي سلسلو فارم وٺي ٿو:

12 1 1 0 0 -1 0 1

تبديل ٿيل ڊيٽا اصل ڊيٽا کان ننڍو ناهي، پر ان کي دٻائڻ آسان آهي. رن ڊگھي انڪوڊنگ کان اڳ ڊيلٽا انڪوڊنگ کي لاڳو ڪرڻ تمام گھڻي مدد ڪري سگھي ٿو جڏهن ته اڃا تائين نقصان کان سواءِ ڪمپريشن ٿي رهيو آهي.

ڊيلٽا ڪوڊنگ 8x8 بلاڪ کان ٻاهر استعمال ٿيل ڪجھه ٽيڪنالاجي مان هڪ آهي. 64 ڊي سي ٽي جي کوٽائيز مان، هڪ صرف هڪ مسلسل موج فنڪشن آهي (مضبوط رنگ). اهو لوما اجزاء لاءِ هر بلاڪ جي سراسري چمڪ جي نمائندگي ڪري ٿو، يا سي بي اجزاء لاءِ سراسري نيري پن، وغيره. هر DCT بلاڪ جي پهرين قيمت کي DC ويليو چئبو آهي، ۽ هر DC ويليو ڊيلٽا انڪوڊ ٿيل آهي پوئين وارن جي حوالي سان. تنهن ڪري، پهرين بلاڪ جي روشني کي تبديل ڪندي سڀني بلاڪ کي متاثر ڪندو.

آخري اسرار رهي ٿو: ڪيئن اڪيلو تبديل ڪرڻ مڪمل طور تي سڄي تصوير کي برباد ڪري ٿو؟ هينئر تائين، کمپريشن جي سطحن ۾ اهڙيون خاصيتون نه آهن. جواب JPEG هيڊر ۾ آهي. پهرين 500 بائيٽ ۾ تصوير جي باري ۾ ميٽا ڊيٽا شامل آهي - ويڪر، اوچائي، وغيره، ۽ اسان اڃا تائين انهن سان ڪم نه ڪيو آهي.

هيڊر کان سواءِ JPEG کي ڊيڪوڊ ڪرڻ لڳ ڀڳ ناممڪن (يا تمام ڏکيو) آهي. ائين لڳندو ڄڻ مان تصوير کي توسان بيان ڪرڻ جي ڪوشش ڪري رهيو آهيان، ۽ مان پنهنجو تاثر بيان ڪرڻ لاءِ لفظن جي ايجاد ڪرڻ شروع ڪري رهيو آهيان. وضاحت شايد ڪافي ڳنڀير ٿي ويندي، ڇاڪاڻ ته مان لفظ ٺاهي سگھان ٿو بلڪل صحيح معني سان جيڪو مان بيان ڪرڻ چاهيان ٿو، پر ٻين سڀني لاء اهي مطلب نه هوندا.

اهو بيوقوف آواز آهي، پر ائين ئي ٿئي ٿو. هر JPEG تصوير ان لاءِ مخصوص ڪوڊ سان ٺهيل آهي. ڪوڊ ڊڪشنري هيڊر ۾ محفوظ ٿيل آهي. هن ٽيڪنڪ کي Huffman code سڏيو ويندو آهي ۽ لفظ کي Huffman table سڏيو ويندو آهي. هيڊر ۾، ٽيبل کي ٻن بائيٽن سان نشان لڳايو ويو آهي - 255 ۽ پوءِ 196. هر رنگ جو جزو پنهنجي ٽيبل رکي سگهي ٿو.

جدولن ۾ تبديليون بنيادي طور تي ڪنهن به تصوير کي متاثر ڪندي. ھڪڙو سٺو مثال آھي 15 هين لائين کي 1 ۾ تبديل ڪرڻ.

JPEG فارميٽ ڪيئن ڪم ڪندو آهي

اهو ٿئي ٿو ڇاڪاڻ ته جدول بيان ڪري ٿو ته ڪيئن انفرادي بٽ پڙهڻ گهرجي. هينئر تائين اسان صرف بائنري نمبرن سان ڪم ڪيو آهي ڊيسيمل فارم ۾. پر هي اسان کان اها حقيقت لڪائي ٿو ته جيڪڏهن توهان نمبر 1 کي بائيٽ ۾ ذخيرو ڪرڻ چاهيو ٿا ته اهو 00000001 جهڙو نظر ايندو، ڇاڪاڻ ته هر بائيٽ ۾ اٺ بِٽ هجڻ گهرجن، جيتوڻيڪ انهن مان صرف هڪ جي ضرورت هجي.

اهو ممڪن طور تي خلا جو هڪ وڏو فضول آهي جيڪڏهن توهان وٽ ڪيترائي ننڍا انگ آهن. Huffman ڪوڊ هڪ ٽيڪنڪ آهي جيڪا اسان کي هن ضرورت کي آرام ڪرڻ جي اجازت ڏئي ٿي ته هر نمبر کي اٺ بٽ تي قبضو ڪرڻ گهرجي. ان جو مطلب اهو آهي ته جيڪڏهن توهان ٻه بائيٽ ڏسو ٿا:

234 115

پوء، Huffman ٽيبل تي منحصر ڪري، اهي ٽي نمبر ٿي سگهن ٿا. انھن کي ڪڍڻ لاءِ، توھان کي پھريائين انھن کي ٽوڙڻو پوندو انفرادي بٽن ۾.

11101010 01110011

پوءِ اسان ٽيبل تي نظر وجهون ٿا ته انهن کي ڪيئن گروپ ڪجي. مثال طور، ھي ٿي سگھي ٿو پھريون ڇھ بٽ، (111010)، يا 58 ڊيسيمل ۾، ان کان پوءِ پنج بٽ (10011)، يا 19، ۽ آخر ۾ آخري چار بٽ (0011)، يا 3.

تنهن ڪري، دٻاء جي هن مرحلي تي بائيٽ کي سمجهڻ تمام ڏکيو آهي. بائيٽس جي نمائندگي نه ڪندا آھن جيڪي اھي نظر اچن ٿا. مان هن آرٽيڪل ۾ ٽيبل سان ڪم ڪرڻ جي تفصيل ۾ نه ويندس، پر مواد هن مسئلي تي آن لائن ڪافي آهي.

هڪ دلچسپ چال توهان هن علم سان ڪري سگهو ٿا هيڊر کي JPEG کان الڳ ڪرڻ ۽ ان کي الڳ الڳ ذخيرو ڪرڻ آهي. حقيقت ۾، اهو ظاهر ٿئي ٿو ته صرف توهان فائل پڙهي سگهو ٿا. فيسبوڪ اهو ڪري ٿو فائلن کي اڃا ننڍو ڪرڻ لاءِ.

ٻيو ڇا ٿي سگهي ٿو Huffman ٽيبل کي تبديل ڪرڻ لاء ڪافي آهي. ٻين لاء اهو هڪ ڀريل تصوير وانگر نظر ايندو. ۽ صرف توهان کي ان کي درست ڪرڻ جو جادو طريقو معلوم ٿيندو.

اچو ته اختصار ڪريون: پوءِ JPEG کي ڊيڪوڊ ڪرڻ جي ڪهڙي ضرورت آهي؟ ضروري:

  1. هيڊر مان Huffman ٽيبل (ز) ڪڍو ۽ بٽس کي ڊيڪوڊ ڪريو.
  2. هر رنگ ۽ هر 8x8 بلاڪ لاءِ روشنيءَ واري جزو لاءِ ڊسڪريٽ ڪوزائن ٽرانسفارم ڪوئفينٽس ڪڍو، انورس رن ڊگھائي ۽ ڊيلٽا انڪوڊنگ ٽرانسفارمز کي انجام ڏيو.
  3. هر 8x8 بلاڪ لاءِ پکسل ويلز حاصل ڪرڻ لاءِ ڪوفينٽس جي بنياد تي ڪوزائن کي گڏ ڪريو.
  4. اسڪيل رنگ جا حصا جيڪڏهن ذيلي نموني ڪئي وئي هئي (هي معلومات هيڊر ۾ آهي).
  5. هر پکسل جي نتيجي ۾ YCbCr قدرن کي RGB ۾ تبديل ڪريو.
  6. اسڪرين تي تصوير ڏيکاريو!

صرف هڪ ٻلي سان تصوير ڏسڻ لاء سنجيده ڪم! بهرحال، مون کي ان جي باري ۾ ڇا پسند آهي ته اهو ڏيکاري ٿو ته ڪيئن انساني-مرکزي JPEG ٽيڪنالاجي آهي. اهو اسان جي تصور جي خاصيتن تي مبني آهي، اسان کي روايتي ٽيڪنالاجي جي ڀيٽ ۾ گهڻو بهتر کمپريشن حاصل ڪرڻ جي اجازت ڏئي ٿي. ۽ هاڻي ته اسان سمجهون ٿا ته JPEG ڪيئن ڪم ڪري ٿو، اسان تصور ڪري سگهون ٿا ته اهي ٽيڪنالاجيون ٻين علائقن ڏانهن ڪيئن منتقل ڪري سگهجن ٿيون. مثال طور، ويڊيو ۾ ڊيلٽا انڪوڊنگ فائل جي سائيز ۾ هڪ اهم گهٽتائي مهيا ڪري سگهي ٿي، ڇاڪاڻ ته اڪثر ڪري اهي سڀئي علائقا آهن جيڪي فريم کان فريم تائين تبديل نه ڪندا آهن (مثال طور، پس منظر).

مضمون ۾ استعمال ٿيل ڪوڊ, کليل آهي، ۽ ان ۾ هدايتون شامل آهن ته تصويرن کي توهان جي پنهنجي تصويرن سان ڪيئن بدلجي.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو