ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

دوسرا حصہ: ویڈیو کوڈیک کیسے کام کرتا ہے۔

کوئی بھی راسٹر تصویر فارم میں نمائندگی کی جا سکتی ہے۔ دو جہتی میٹرکس. جب رنگوں کی بات آتی ہے تو، خیال کو کسی تصویر کو دیکھ کر تیار کیا جا سکتا ہے۔ تین جہتی میٹرکس، جس میں ہر رنگ کے ڈیٹا کو ذخیرہ کرنے کے لیے اضافی جہتیں استعمال کی جاتی ہیں۔

اگر ہم حتمی رنگ کو نام نہاد کا مجموعہ سمجھتے ہیں۔ بنیادی رنگ (سرخ، سبز اور نیلے)، ہمارے تین جہتی میٹرکس میں ہم تین طیاروں کی وضاحت کرتے ہیں: پہلا سرخ کے لیے، دوسرا سبز کے لیے اور آخری نیلے کے لیے۔
ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں
ہم اس میٹرکس کے ہر نقطہ کو پکسل (تصویری عنصر) کہیں گے۔ ہر پکسل میں ہر رنگ کی شدت (عام طور پر عددی قدر کے طور پر) کے بارے میں معلومات ہوتی ہیں۔ مثال کے طور پر، سرخ پکسل اس کا مطلب ہے کہ اس میں 0 سبز، 0 نیلا اور زیادہ سے زیادہ سرخ ہے۔ گلابی پکسل تین رنگوں کے امتزاج سے بنایا جا سکتا ہے۔ 0 سے 255 تک کی عددی رینج کا استعمال کرتے ہوئے، ایک گلابی پکسل کی تعریف اس طرح کی گئی ہے سرخ = 255, سبز = 192 и نیلا = 203.

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

یہ مضمون EDISON کے تعاون سے شائع کیا گیا تھا۔

ہم ترقی کر رہے ہیں۔ ویڈیو نگرانی، ویڈیو سٹریمنگ کے لیے ایپلی کیشنز، اور ہم بھی مصروف ہیں۔ سرجیکل روم میں ویڈیو ریکارڈنگ.

رنگین تصویر کو انکوڈ کرنے کے متبادل طریقے

رنگوں کی نمائندگی کرنے کے لئے بہت سے دوسرے ماڈل ہیں جو ایک تصویر بناتے ہیں. مثال کے طور پر، آپ انڈیکسڈ پیلیٹ استعمال کر سکتے ہیں، جس میں ہر پکسل کی نمائندگی کے لیے صرف ایک بائٹ کی ضرورت ہوتی ہے، بجائے اس کے کہ RGB ماڈل استعمال کرتے وقت تین کی ضرورت ہو۔ ایسے ماڈل میں، ہر رنگ کی نمائندگی کے لیے 2D میٹرکس کے بجائے 3D میٹرکس کا استعمال ممکن ہے۔ یہ میموری کو بچاتا ہے، لیکن ایک چھوٹا رنگ پہلو دیتا ہے۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

RGB

مثال کے طور پر نیچے دی گئی اس تصویر پر ایک نظر ڈالیں۔ پہلا چہرہ مکمل طور پر پینٹ کیا گیا ہے۔ دوسرے سرخ، سبز اور نیلے ہوائی جہاز ہیں (متعلقہ رنگوں کی شدت گرے اسکیل میں دکھائی گئی ہے)۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

ہم دیکھتے ہیں کہ اصل میں سرخ رنگ کے شیڈز انہی جگہوں پر ہوں گے جہاں دوسرے چہرے کے روشن ترین حصے دیکھے جاتے ہیں۔ جبکہ نیلے رنگ کی شراکت بنیادی طور پر صرف ماریو کی آنکھوں (آخری چہرے) اور اس کے لباس کے عناصر میں دیکھی جا سکتی ہے۔ نوٹس کریں کہ تینوں رنگین طیارے کہاں کم سے کم حصہ ڈالتے ہیں (تصاویر کے سیاہ ترین حصے) - ماریو کی مونچھیں۔

ہر رنگ کی شدت کو ذخیرہ کرنے کے لیے، بٹس کی ایک مخصوص تعداد کی ضرورت ہوتی ہے - اس مقدار کو کہا جاتا ہے۔ تھوڑا سا گہرائی. ہم کہتے ہیں کہ 8 بٹس خرچ کیے جاتے ہیں (0 سے 255 تک کی قدر کی بنیاد پر) ہر رنگ کے طیارے پر۔ پھر ہمارے پاس 24 بٹس (8 بٹس * 3 R/G/B طیارے) کی رنگین گہرائی ہے۔

تصویر کی ایک اور خاصیت ہے۔ اجازت، جو ایک جہت میں پکسلز کی تعداد ہے۔ اکثر کے طور پر اشارہ کیا جاتا ہے۔ چوڑائی × اونچائیجیسا کہ ذیل میں 4 بائی 4 مثال کی تصویر میں ہے۔
ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

امیجز/ویڈیوز کے ساتھ کام کرتے وقت ایک اور پراپرٹی جس سے ہم نمٹتے ہیں۔ پہلو کا تناسب، کسی تصویر یا پکسل کی چوڑائی اور اونچائی کے درمیان عام متناسب تعلق کو بیان کرنا۔

جب وہ کہتے ہیں کہ کوئی خاص فلم یا تصویر 16 x 9 سائز کی ہے، تو ان کا عام طور پر مطلب ہوتا ہے۔ ڈسپلے پہلو تناسب (ڈار - سے پہلو کا تناسب دکھائیں)۔ تاہم، بعض اوقات انفرادی پکسلز کی مختلف شکلیں ہوسکتی ہیں - اس معاملے میں ہم بات کر رہے ہیں۔ پکسل تناسب (برابر - سے پکسل کا پہلو تناسب).

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

میزبان کے لیے نوٹ: ڈی وی ڈی سے مساوی DAR 4 سے 3

اگرچہ اصل ڈی وی ڈی ریزولوشن 704x480 ہے، لیکن یہ اب بھی 4:3 پہلو کا تناسب برقرار رکھتا ہے کیونکہ PAR 10:11 (704x10 / 480x11) ہے۔

اور آخر میں، ہم تعین کر سکتے ہیں ویڈیو کی ایک ترتیب کی طرح n مدت کے لئے فریم وقت، جسے ایک اضافی جہت سمجھا جا سکتا ہے۔ اے n پھر فریم ریٹ ہے یا فریموں کی تعداد فی سیکنڈ (FPS - سے فریم فی سیکنڈ).

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

ویڈیو دکھانے کے لیے بٹس فی سیکنڈ کی تعداد اس کی ہے۔ ٹرانسمیشن کی رفتار - بٹریٹ.

بٹریٹ = چوڑائی * اونچائی * بٹ گہرائی * فریم فی سیکنڈ

مثال کے طور پر، ایک 30 fps، 24 bps، 480x240 ویڈیو کے لیے 82,944,000 bps یا 82,944 Mbps (30x480x240x24) کی ضرورت ہوگی - لیکن اگر کوئی کمپریشن طریقہ استعمال نہ کیا جائے۔

اگر منتقلی کی رفتار تقریبا مسلسل، پھر اسے کہا جاتا ہے۔ مسلسل ٹرانسمیشن کی رفتار (CBR - سے مسلسل بٹ کی شرح)۔ لیکن یہ بھی مختلف ہوسکتا ہے، اس صورت میں اسے کہا جاتا ہے متغیر بوڈ کی شرح (وی بی آر۔ - سے متغیر بٹ ریٹ).

یہ گراف محدود VBR دکھاتا ہے، جہاں مکمل طور پر سیاہ فریم کی صورت میں بہت زیادہ بٹس ضائع نہیں ہوتے۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

انجینئرز نے ابتدائی طور پر اضافی بینڈوتھ کا استعمال کیے بغیر ویڈیو ڈسپلے کے فریم ریٹ کو دوگنا کرنے کا طریقہ تیار کیا۔ یہ طریقہ کے طور پر جانا جاتا ہے منسلک ویڈیو; بنیادی طور پر، یہ پہلے "فریم" میں آدھی اسکرین اور باقی نصف اگلے "فریم" میں بھیجتا ہے۔

فی الحال، مناظر زیادہ تر استعمال کرتے ہوئے پیش کیے جاتے ہیں۔ ترقی پسند اسکیننگ ٹیکنالوجیز. یہ حرکت پذیر تصاویر کو ظاہر کرنے، ذخیرہ کرنے یا منتقل کرنے کا ایک طریقہ ہے جس میں ہر فریم کی تمام لائنیں ترتیب وار کھینچی جاتی ہیں۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

خیر! اب ہم اس بات سے واقف ہیں کہ تصویر کو ڈیجیٹل طور پر کیسے دکھایا جاتا ہے، اس کے رنگ کیسے ترتیب دیئے جاتے ہیں، اگر بٹ ریٹ مستقل (CBR) یا متغیر (VBR) ہے تو ہم ویڈیو دکھانے کے لیے کتنے بٹس فی سیکنڈ خرچ کرتے ہیں۔ ہم دیئے گئے فریم ریٹ کا استعمال کرتے ہوئے دیئے گئے ریزولوشن کے بارے میں جانتے ہیں، ہم بہت سی دوسری اصطلاحات سے واقف ہیں، جیسے انٹر لیسڈ ویڈیو، PAR اور کچھ دیگر۔

فالتو پن کو دور کرنا

یہ معلوم ہے کہ کمپریشن کے بغیر ویڈیو کو عام طور پر استعمال نہیں کیا جا سکتا۔ 720p ریزولوشن اور 30 ​​فریم فی سیکنڈ پر ایک گھنٹہ طویل ویڈیو 278 جی بی لے گی۔ ہم 1280 x 720 x 24 x 30 x 3600 (چوڑائی، اونچائی، بٹس فی پکسل، FPS اور وقت کو سیکنڈ میں) ضرب دے کر اس قدر پر پہنچتے ہیں۔

استعمال کریں بے نقصان کمپریشن الگورتھمDEFLATE کی طرح (PKZIP، Gzip اور PNG میں استعمال کیا جاتا ہے)، مطلوبہ بینڈوتھ کو کافی کم نہیں کرے گا۔ ہمیں ویڈیو کو کمپریس کرنے کے دوسرے طریقے تلاش کرنے ہوں گے۔

ایسا کرنے کے لیے، آپ ہمارے وژن کی خصوصیات کو استعمال کر سکتے ہیں۔ ہم رنگ سے زیادہ چمک کی تمیز کرنے میں بہتر ہیں۔ ایک ویڈیو ترتیب وار تصاویر کا ایک سلسلہ ہے جو وقت کے ساتھ ساتھ دہرایا جاتا ہے۔ ایک ہی منظر کے ملحقہ فریموں کے درمیان چھوٹے فرق ہیں۔ مزید برآں، ہر فریم میں ایک ہی (یا ملتے جلتے) رنگ کا استعمال کرتے ہوئے بہت سے علاقے ہوتے ہیں۔

رنگ، چمک اور ہماری آنکھیں

ہماری آنکھیں رنگ کی نسبت چمک کے لیے زیادہ حساس ہیں۔ اس تصویر کو دیکھ کر آپ خود ہی دیکھ سکتے ہیں۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

اگر آپ کو تصویر کے بائیں نصف حصے پر چوکوں کے رنگ نظر نہیں آتے ہیں۔ A и B اصل میں وہی ہیں، پھر یہ عام بات ہے۔ ہمارا دماغ ہمیں رنگ کی بجائے روشنی اور سایہ پر زیادہ توجہ دینے پر مجبور کرتا ہے۔ نامزد چوکوں کے درمیان دائیں جانب ایک ہی رنگ کا ایک جمپر ہے - اس لیے ہم (یعنی ہمارا دماغ) آسانی سے اس بات کا تعین کر لیتے ہیں کہ درحقیقت وہ ایک ہی رنگ کے ہیں۔

آئیے دیکھتے ہیں (ایک آسان طریقے سے) ہماری آنکھیں کیسے کام کرتی ہیں۔ آنکھ ایک پیچیدہ عضو ہے جو کئی حصوں پر مشتمل ہوتا ہے۔ تاہم، ہم شنک اور سلاخوں میں سب سے زیادہ دلچسپی رکھتے ہیں. آنکھ میں تقریباً 120 ملین سلاخیں اور 6 ملین شنک ہوتے ہیں۔

آئیے آنکھ کے کچھ حصوں کے الگ الگ افعال کے طور پر رنگ اور چمک کے تصور پر غور کریں (حقیقت میں، سب کچھ کچھ زیادہ پیچیدہ ہے، لیکن ہم اسے آسان کریں گے). چھڑی کے خلیات بنیادی طور پر چمک کے لئے ذمہ دار ہیں، جبکہ شنک خلیات رنگ کے لئے ذمہ دار ہیں. شنک کو تین اقسام میں تقسیم کیا گیا ہے، ان میں موجود روغن کی بنیاد پر: S-cones (نیلا)، M-cones (سبز) اور L-cones (سرخ)۔

چونکہ ہمارے پاس شنک (رنگ) کے مقابلے میں بہت زیادہ سلاخیں (چمک) ہیں، اس لیے ہم یہ نتیجہ اخذ کر سکتے ہیں کہ ہم رنگوں کے مقابلے سیاہ اور روشنی کے درمیان تبدیلیوں میں فرق کرنے کے زیادہ اہل ہیں۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

متضاد حساسیت کی خصوصیات

تجرباتی نفسیات اور بہت سے دوسرے شعبوں کے محققین نے انسانی وژن کے بہت سے نظریات تیار کیے ہیں۔ اور ان میں سے ایک کہا جاتا ہے۔ متضاد حساسیت کے افعال. ان کا تعلق مقامی اور وقتی روشنی سے ہے۔ مختصراً، یہ اس بارے میں ہے کہ مبصر کے نوٹس لینے سے پہلے کتنی تبدیلیاں درکار ہیں۔ لفظ "فنکشن" کی جمع کو نوٹ کریں۔ یہ اس حقیقت کی وجہ سے ہے کہ ہم نہ صرف سیاہ اور سفید تصویروں کے لیے بلکہ رنگین تصویروں کے لیے بھی متضاد حساسیت کے افعال کی پیمائش کر سکتے ہیں۔ ان تجربات کے نتائج سے پتہ چلتا ہے کہ زیادہ تر معاملات میں ہماری آنکھیں رنگ کی نسبت چمک کے لیے زیادہ حساس ہوتی ہیں۔

چونکہ ہم جانتے ہیں کہ ہم تصویر کی چمک کے لیے زیادہ حساس ہیں، اس لیے ہم اس حقیقت کو استعمال کرنے کی کوشش کر سکتے ہیں۔

رنگین ماڈل

ہم نے تھوڑا سا اندازہ لگایا کہ آر جی بی اسکیم کا استعمال کرتے ہوئے رنگین تصاویر کے ساتھ کیسے کام کیا جائے۔ دوسرے ماڈلز بھی ہیں۔ ایک ماڈل ہے جو چمک کو کروما سے الگ کرتا ہے اور اسے کہا جاتا ہے۔ YCbCr. ویسے، دوسرے ماڈل ہیں جو اسی طرح کی تقسیم کرتے ہیں، لیکن ہم صرف اس پر غور کریں گے.

اس رنگ کے ماڈل میں Y چمک کی نمائندگی کرتا ہے، اور دو رنگین چینلز بھی استعمال کرتا ہے: Cb (امیر نیلے) اور Cr (امیر سرخ) YCbCr RGB سے اخذ کیا جا سکتا ہے، اور ریورس کنورژن بھی ممکن ہے۔ اس ماڈل کا استعمال کرتے ہوئے ہم مکمل رنگین تصاویر بنا سکتے ہیں جیسا کہ ہم ذیل میں دیکھتے ہیں۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

YCbCr اور RGB کے درمیان تبدیل کریں۔

کوئی اعتراض کرے گا: اگر سبز استعمال نہ کیا جائے تو تمام رنگ حاصل کرنا کیسے ممکن ہے؟

اس سوال کا جواب دینے کے لیے، آئیے RGB کو YCbCr میں تبدیل کریں۔ آئیے معیار میں اپنائے گئے گتانک کا استعمال کریں۔ بی ٹی 601، جس کی یونٹ نے سفارش کی تھی۔ ITU-R. یہ تقسیم ڈیجیٹل ویڈیو کے معیارات کا تعین کرتی ہے۔ مثال کے طور پر: 4K کیا ہے؟ فریم ریٹ، ریزولوشن، کلر ماڈل کیا ہونا چاہیے؟

سب سے پہلے چمک کا حساب لگاتے ہیں۔ آئیے آئی ٹی یو کے ذریعہ تجویز کردہ مستقل استعمال کریں اور آر جی بی اقدار کو تبدیل کریں۔

Y 0.299 =R + 0.587G + 0.114B

چمک کے بعد، ہم نیلے اور سرخ رنگوں کو الگ کریں گے:

Cb = 0.564(B - Y)

Cr = 0.713(R - Y)

اور ہم YCbCr کا استعمال کرتے ہوئے واپس بدل سکتے ہیں اور سبز بھی حاصل کر سکتے ہیں:

R = Y + 1.402Cr

B = Y + 1.772Cb

G = Y - 0.344Cb - 0.714Cr

عام طور پر، ڈسپلے (مانیٹر، ٹی وی، اسکرین، وغیرہ) صرف RGB ماڈل استعمال کرتے ہیں۔ لیکن اس ماڈل کو مختلف طریقوں سے منظم کیا جا سکتا ہے:

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

رنگ سب سیمپلنگ

روشنی اور کرومینینس کے امتزاج کے طور پر پیش کی گئی تصویر کے ساتھ، ہم معلومات کو منتخب طور پر ہٹا کر کرومینینس کے مقابلے میں انسانی بصری نظام کی روشنی کے لیے زیادہ حساسیت کا فائدہ اٹھا سکتے ہیں۔ کروما سب سیمپلنگ تصویروں کو انکوڈنگ کرنے کا ایک طریقہ ہے جس میں لومیننس کے مقابلے کروما کے لیے کم ریزولوشن استعمال کیا جاتا ہے۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

کلر ریزولوشن کو کتنا کم کرنا جائز ہے؟! اس سے پتہ چلتا ہے کہ پہلے سے ہی کچھ خاکے موجود ہیں جو بیان کرتے ہیں کہ ریزولوشن اور انضمام کو کیسے ہینڈل کیا جائے (نتیجے کا رنگ = Y + Cb + Cr)۔

ان اسکیموں کے نام سے جانا جاتا ہے۔ نمونے لینے کے نظام اور 3 گنا تناسب کے طور پر ظاہر کیا جاتا ہے - a:x:y، جو روشنی اور رنگ کے فرق کے سگنل کے نمونوں کی تعداد کا تعین کرتا ہے۔

a - افقی نمونے لینے کا معیار (عام طور پر 4 کے برابر)
x - پکسلز کی پہلی قطار میں کروما نمونوں کی تعداد (افقی ریزولوشن کے نسبت a)
y - پکسلز کی پہلی اور دوسری قطاروں کے درمیان کروما نمونوں میں تبدیلیوں کی تعداد۔

استثناء ہے۔ 4:1:0، ہر 4-by-4 luminance ریزولوشن بلاک میں ایک کروما نمونہ فراہم کرنا۔

جدید کوڈیکس میں استعمال ہونے والی عام اسکیمیں:

  • 4:4:4 (کوئی ڈاون سیمپلنگ نہیں)
  • 4:2:2
  • 4:1:1
  • 4:2:0
  • 4:1:0
  • 3:1:1

YCbCr 4:2:0 - فیوژن کی مثال

یہاں YCbCr 4:2:0 کا استعمال کرتے ہوئے ایک ضم شدہ تصویر ہے۔ نوٹ کریں کہ ہم صرف 12 بٹس فی پکسل خرچ کر رہے ہیں۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

یہ وہی تصویر نظر آتی ہے، جو رنگین ذیلی نمونوں کی اہم اقسام کے ساتھ انکوڈ شدہ ہے۔ پہلی قطار حتمی YCbCr ہے، نیچے کی قطار کروما ریزولوشن دکھاتی ہے۔ معیار میں معمولی نقصان پر غور کرتے ہوئے بہت اچھے نتائج۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

یاد رکھیں جب ہم نے 278p ریزولوشن اور 720 ​​فریم فی سیکنڈ پر ایک گھنٹہ طویل ویڈیو فائل کو ذخیرہ کرنے کے لیے 30 GB اسٹوریج کی جگہ گنی؟ اگر ہم YCbCr 4:2:0 استعمال کرتے ہیں، تو یہ سائز نصف سے کم ہو جائے گا - 139 GB۔ ابھی تک، یہ اب بھی قابل قبول نتیجہ سے دور ہے۔

آپ FFmpeg کا استعمال کرتے ہوئے خود YCbCr ہسٹوگرام حاصل کر سکتے ہیں۔ اس تصویر میں، نیلے رنگ کا سرخ پر غلبہ ہے، جو ہسٹوگرام میں ہی واضح طور پر نظر آتا ہے۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

رنگ، چمک، رنگ پہلو - ویڈیو جائزہ

ہم اس زبردست ویڈیو کو دیکھنے کی تجویز کرتے ہیں۔ یہ بتاتا ہے کہ چمک کیا ہے، اور عام طور پر تمام نقطوں پر نقطے ہیں۔ ё چمک اور رنگ کے بارے میں

فریم کی اقسام

آئیے آگے بڑھیں۔ آئیے وقت کی فالتو پن کو ختم کرنے کی کوشش کرتے ہیں۔ لیکن پہلے، آئیے کچھ بنیادی اصطلاحات کی وضاحت کرتے ہیں۔ ہم کہتے ہیں کہ ہمارے پاس 30 فریم فی سیکنڈ والی فلم ہے، اس کے پہلے 4 فریمز یہ ہیں:

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

ہم فریموں میں بہت ساری تکرار دیکھ سکتے ہیں: مثال کے طور پر، ایک نیلے رنگ کا پس منظر جو فریم سے دوسرے فریم میں تبدیل نہیں ہوتا ہے۔ اس مسئلے کو حل کرنے کے لیے، ہم تجریدی طور پر انہیں تین قسم کے فریموں میں تقسیم کر سکتے ہیں۔

آئی فریم (Iاینٹرو فریم)

آئی فریم (حوالہ فریم، کلیدی فریم، اندرونی فریم) خود ساختہ ہے۔ اس سے قطع نظر کہ آپ کیا تصور کرنا چاہتے ہیں، ایک I-فریم بنیادی طور پر ایک جامد تصویر ہے۔ پہلا فریم عام طور پر ایک I-فریم ہوتا ہے، لیکن ہم باقاعدگی سے I-فریمز کا مشاہدہ کریں گے یہاں تک کہ پہلے فریموں میں بھی نہیں۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

پی فریم (Pترمیم شدہ فریم)

پی فریم (پیش گوئی کرنے والا فریم) اس حقیقت کا فائدہ اٹھاتا ہے کہ تقریبا ہمیشہ موجودہ تصویر کو پچھلے فریم کا استعمال کرتے ہوئے دوبارہ تیار کیا جاسکتا ہے۔ مثال کے طور پر، دوسرے فریم میں صرف تبدیلی گیند کا آگے بڑھنا ہے۔ ہم صرف ان فریموں کے درمیان فرق کو استعمال کرتے ہوئے، صرف تھوڑا سا فریم 2 میں ترمیم کرکے فریم 1 حاصل کر سکتے ہیں۔ فریم 2 بنانے کے لیے، ہم پچھلے فریم 1 کا حوالہ دیتے ہیں۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیںویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

بی فریم (Bi-پیش گوئی کرنے والا فریم)

اس سے بھی بہتر کمپریشن فراہم کرنے کے لیے نہ صرف ماضی بلکہ مستقبل کے فریموں کے لنکس کے بارے میں کیا خیال ہے؟! یہ بنیادی طور پر ایک B-فریم (دو طرفہ فریم) ہے۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیںویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیںویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

انٹرمیڈیٹ آؤٹ پٹ

یہ فریم قسمیں بہترین ممکنہ کمپریشن فراہم کرنے کے لیے استعمال ہوتی ہیں۔ ہم اگلے حصے میں دیکھیں گے کہ یہ کیسے ہوتا ہے۔ ابھی کے لیے، آئیے نوٹ کریں کہ استعمال ہونے والی میموری کے لحاظ سے سب سے زیادہ "مہنگا" آئی فریم ہے، پی فریم نمایاں طور پر سستا ہے، لیکن ویڈیو کے لیے سب سے زیادہ منافع بخش آپشن بی فریم ہے۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

وقتی فالتو پن (انٹر فریم پیشن گوئی)

آئیے دیکھتے ہیں کہ وقت کے ساتھ ساتھ تکرار کو کم سے کم کرنے کے لیے ہمارے پاس کون سے اختیارات ہیں۔ ہم کراس پیشین گوئی کے طریقوں کا استعمال کرتے ہوئے اس قسم کی فالتو پن کو حل کر سکتے ہیں۔

ہم فریم 0 اور 1 کی ترتیب کو انکوڈ کرنے کے لیے زیادہ سے زیادہ چند بٹس خرچ کرنے کی کوشش کریں گے۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

ہم پیدا کر سکتے ہیں گھٹاؤ، ہم صرف فریم 1 سے فریم 0 کو گھٹاتے ہیں۔ ہمیں فریم 1 ملتا ہے، صرف اس کے اور پچھلے فریم کے درمیان فرق کا استعمال کرتے ہیں، درحقیقت ہم صرف نتیجے میں باقی کو انکوڈ کرتے ہیں۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

لیکن کیا ہوگا اگر میں نے آپ کو بتایا کہ اس سے بھی بہتر طریقہ ہے جو اس سے بھی کم بٹس استعمال کرتا ہے؟! سب سے پہلے، آئیے فریم 0 کو بلاکس پر مشتمل ایک واضح گرڈ میں توڑ دیں۔ اور پھر ہم فریم 0 کے بلاکس کو فریم 1 کے ساتھ ملانے کی کوشش کریں گے۔ دوسرے لفظوں میں، ہم فریموں کے درمیان حرکت کا اندازہ لگائیں گے۔

ویکیپیڈیا سے - بلاک تحریک معاوضہ

بلاک موشن معاوضہ موجودہ فریم کو نان اوورلیپنگ بلاکس میں تقسیم کرتا ہے اور موشن کمپنسیشن ویکٹر بلاکس کی اصلیت کی اطلاع دیتا ہے (ایک عام غلط فہمی یہ ہے کہ پچھلا فریم کو نان اوورلیپنگ بلاکس میں تقسیم کیا گیا ہے، اور موشن کمپنسیشن ویکٹر بتاتے ہیں کہ وہ بلاکس کہاں جاتے ہیں۔ لیکن درحقیقت، یہ اس کے برعکس ہے - یہ پچھلا فریم نہیں ہے جس کا تجزیہ کیا گیا ہے، بلکہ اگلا؛ یہ واضح نہیں ہے کہ بلاکس کہاں حرکت کر رہے ہیں، لیکن وہ کہاں سے آئے ہیں)۔ عام طور پر سورس بلاکس سورس فریم میں اوورلیپ ہوتے ہیں۔ کچھ ویڈیو کمپریشن الگورتھم موجودہ فریم کو ایک سے نہیں بلکہ کئی پہلے منتقل کیے گئے فریموں سے جمع کرتے ہیں۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

تشخیص کے عمل کے دوران، ہم دیکھتے ہیں کہ گیند (x= 0، y=25) سے (x= 6، y=26)، اقدار x и y حرکت ویکٹر کا تعین کریں۔ بٹس کو محفوظ کرنے کے لیے ایک اور قدم جو ہم کر سکتے ہیں وہ ہے آخری بلاک پوزیشن اور پیشین گوئی کے درمیان صرف موشن ویکٹر کے فرق کو انکوڈ کرنا، اس لیے حتمی موشن ویکٹر ہوگا (x=6-0=6، y=26-25=1 )۔

ایک حقیقی صورت حال میں، اس گیند کو تقسیم کیا جائے گا n بلاکس، لیکن یہ معاملہ کے جوہر کو تبدیل نہیں کرتا.

فریم میں موجود اشیاء تین جہتوں میں حرکت کرتی ہیں، اس لیے جب گیند حرکت کرتی ہے، تو یہ بصری طور پر چھوٹی ہو سکتی ہے (یا دیکھنے والے کی طرف بڑھنے پر بڑی)۔ یہ عام بات ہے کہ بلاکس کے درمیان مکمل میچ نہیں ہوگا۔ یہاں ہمارے اندازے اور حقیقی تصویر کا ایک مشترکہ نقطہ نظر ہے۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

لیکن ہم دیکھتے ہیں کہ جب ہم حرکت کا تخمینہ استعمال کرتے ہیں، تو کوڈنگ کے لیے فریموں کے درمیان ڈیلٹا کا حساب لگانے کا آسان طریقہ استعمال کرنے کے مقابلے میں نمایاں طور پر کم ڈیٹا ہوتا ہے۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

حقیقی تحریک کا معاوضہ کیسا نظر آئے گا۔

یہ تکنیک ایک ساتھ تمام بلاکس پر لاگو ہوتی ہے۔ اکثر ہماری مشروط حرکت پذیر گیند ایک ساتھ کئی بلاکس میں تقسیم ہو جاتی ہے۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

آپ خود ان تصورات کا استعمال کرتے ہوئے محسوس کر سکتے ہیں۔ مشتری.

موشن ویکٹر دیکھنے کے لیے، آپ استعمال کرتے ہوئے ایک بیرونی پیشین گوئی ویڈیو بنا سکتے ہیں۔ ایف ایم پی ایم.

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

آپ بھی استعمال کر سکتے ہیں۔ انٹیل ویڈیو پرو تجزیہ کار (یہ ادا کیا جاتا ہے، لیکن ایک مفت آزمائش ہے جو صرف پہلے دس فریموں تک محدود ہے)۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

مقامی فالتو پن (اندرونی پیشن گوئی)

اگر ہم ایک ویڈیو میں ہر فریم کا تجزیہ کریں تو ہمیں بہت سے ایک دوسرے سے جڑے ہوئے علاقے ملیں گے۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

آئیے اس مثال کو دیکھتے ہیں۔ یہ منظر بنیادی طور پر نیلے اور سفید رنگوں پر مشتمل ہے۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

یہ ایک آئی فریم ہے۔ ہم پیشین گوئی کے لیے پچھلے فریم نہیں لے سکتے، لیکن ہم اسے سکیڑ سکتے ہیں۔ آئیے ریڈ بلاک کے انتخاب کو انکوڈ کرتے ہیں۔ اگر ہم اس کے پڑوسیوں کو دیکھتے ہیں، تو ہم دیکھتے ہیں کہ اس کے ارد گرد کچھ رنگوں کے رجحانات ہیں۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

ہم فرض کرتے ہیں کہ رنگ فریم میں عمودی طور پر پھیلتے ہیں۔ جس کا مطلب ہے کہ نامعلوم پکسلز کا رنگ اس کے پڑوسیوں کی قدروں پر مشتمل ہوگا۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

ایسی پیشن گوئی غلط ثابت ہو سکتی ہے۔ یہ اس وجہ سے ہے کہ آپ کو اس طریقہ (اندرونی پیشن گوئی) کو لاگو کرنے کی ضرورت ہے، اور پھر حقیقی اقدار کو منہا کرنا ہوگا۔ یہ ہمیں ایک بقایا بلاک دے گا، جس کے نتیجے میں اصل کے مقابلے میں بہت زیادہ کمپریسڈ میٹرکس ہوگا۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

اگر آپ اندرونی پیشین گوئیوں کے ساتھ مشق کرنا چاہتے ہیں، تو آپ ffmpeg کا استعمال کرتے ہوئے میکرو بلاکس اور ان کی پیشین گوئیوں کی ویڈیو بنا سکتے ہیں۔ ہر بلاک رنگ کے معنی کو سمجھنے کے لیے، آپ کو ffmpeg دستاویزات کو پڑھنا ہوگا۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

یا آپ Intel Video Pro Analyzer استعمال کر سکتے ہیں (جیسا کہ میں نے اوپر بتایا ہے، مفت ٹرائل ورژن پہلے 10 فریموں تک محدود ہے، لیکن یہ آپ کے لیے پہلے کافی ہو گا)۔

ویڈیو کوڈیک کیسے کام کرتا ہے؟ حصہ 1: بنیادی باتیں

دوسرا حصہ: ویڈیو کوڈیک کیسے کام کرتا ہے۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں