ڈکشنری

پکسل فارمیٹ کیا ہے؟

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

pixel-format

پکسل فارمیٹ تصویر یا ویڈیو کے خام پکچر ڈیٹا میں ہر پکسل کی ترتیب کو کہتے ہیں۔ یہ پروگرام کو بتاتا ہے کہ تصویر میں کون سے رنگی اجزا ہیں اور وہ کتنے بِٹس استعمال کرتے ہیں۔

ویڈیو رپورٹس اکثر اس فیلڈ کو pix_fmt کے نام سے دکھاتی ہیں، جس کی قدر yuv420p جیسی ہو سکتی ہے۔ ایسی قدر رنگ ماڈل، کرومہ سب سیمپلنگ اور بِٹ ڈیپتھ ظاہر کرتی ہے۔ کلر اسپیس ایک الگ فیلڈ ہوتا ہے۔

کون سی فائلیں اسے رکھتی ہیں

FFmpeg کا ffprobe پروگرام ہر ویڈیو اسٹریم کے لیے pix_fmt کی فہرست بناتا ہے۔ اس میں MP4، MOV، MKV اور WebM فائلیں شامل ہیں۔

امیجز بھی ایک قدر رپورٹ کرتی ہیں۔ FFmpeg 4:2:0 سیمپلنگ والی JPEG کے لیے yuvj420p اور 8 بٹ RGB PNG کے لیے rgb24 دیتا ہے۔

کور آرٹ والی آڈیو فائل بھی پکسل فارمیٹ رپورٹ کر سکتی ہے۔ FFmpeg اس تصویر کو ویڈیو اسٹریم کی طرح سمجھتا ہے۔

ExifTool، Windows HD Photo فائلوں (HDP اور WDP) سے PixelFormat نامی ٹیگ پڑھتا ہے۔ یہ 24-bit RGB اور 8-bit Gray جیسی قدریں دکھاتا ہے۔

قدریں کیسی نظر آتی ہیں

FFmpeg اپنے نام چھوٹے حصوں سے بناتا ہے۔ قدر yuv420p10le کے 5 حصے ہیں:

  • yuv: رنگ ماڈل۔ Y روشنی ہے، اور U اور V رنگ لے کر چلتے ہیں۔ U اور V کو Cb اور Cr بھی کہا جاتا ہے، جیسا کہ YCbCr میں۔
  • 420: سیمپلنگ۔ رنگ کی چوڑائی اور اونچائی، روشنی کے ڈیٹا کی آدھی ہوتی ہے۔
  • p: پلینر۔ ہر جزو کا الگ پلین ہوتا ہے۔ پیکڈ فارمیٹ میں اجزا ایک ہی اَرے میں اکٹھے رہتے ہیں۔
  • 10: ہر جزو کے لیے بِٹس کی تعداد۔ قدر yuv420p میں یہاں کوئی عدد نہیں ہوتا اور یہ 8 بِٹس استعمال کرتا ہے۔
  • le: بائٹ آرڈر، لِٹل اینڈین۔ آخر میں be ہو تو اس کا مطلب بِگ اینڈین ہوتا ہے۔

عام اقدار

نیچے دی گئی ہر عدد خام پکچر ڈیٹا میں فی پکسل اوسط بِٹس ظاہر کرتی ہے:

  • yuv420p: 12 بِٹس، رنگ آدھی چوڑائی اور آدھی اونچائی پر
  • yuv422p: 16 بِٹس، رنگ آدھی چوڑائی پر
  • yuv444p: 24 بِٹس، ہر پکسل کے لیے رنگ
  • yuvj420p: 12 بِٹس، yuv420p کی ہی ترتیب، لیکن پوری رینج کے ساتھ جو JPEG استعمال کرتا ہے
  • rgb24: 24 بِٹس، ریڈ، گرین اور بلو پیکڈ صورت میں
  • rgba: 32 بِٹس، شفافیت کے لیے اضافی الفا ویلیو کے ساتھ
  • gray: 8 بِٹس، صرف روشنی
  • pal8: 8 بِٹس، ہر ویلیو کسی پیلیٹ کے رنگ کی طرف اشارہ کرتی ہے

فل رینج میں 8 بٹ روشنی 0 سے 255 تک ہوتی ہے۔ لمیٹڈ رینج میں یہ 16 سے 235 تک رہتی ہے۔ FFmpeg yuvj ناموں کے بجائے الگ رینج فیلڈ استعمال کرنے کا مشورہ دیتا ہے۔

قدر کہاں سے آتی ہے

جو پروگرام اسٹریم کو انکوڈ کرتا ہے، وہی پکسل فارمیٹ طے کرتا ہے۔ FFmpeg میں آپ اسے -pix_fmt آپشن کے ساتھ منتخب کرتے ہیں۔

نام عموماً فائل میں براہِ راست محفوظ نہیں ہوتا۔ فائل پڑھنے والا پروگرام محفوظ شدہ تفصیلات سے یہ نام بناتا ہے۔

H.264 کے لیے FFmpeg اسٹریم ہیڈر میں موجود بِٹ ڈیپتھ اور کرومہ فارمیٹ استعمال کرتا ہے۔ PNG کے لیے FFmpeg امیج ہیڈر میں موجود بِٹ ڈیپتھ اور کلر ٹائپ استعمال کرتا ہے۔

آپ کی فائل کے لیے یہ کیوں اہم ہے

پکسل فارمیٹ خام پکچر ڈیٹا کا سائز طے کرتا ہے۔ ایک rgb24 فریم میں فی پکسل 24 بِٹس ہوتے ہیں، اور yuv420p فریم میں 12۔ پھر کوڈیکس اس ڈیٹا کو کمپریس کرتے ہیں، اس لیے یہ اعداد حتمی فائل سائز نہیں بتاتے۔

پکسل فارمیٹ یہ بھی طے کرتا ہے کہ فائل کتنا رنگی تفصیل محفوظ رکھتی ہے۔ انسانی آنکھ رنگ کے مقابلے میں روشنی کی بہت زیادہ تفصیل دیکھتی ہے، اسی لیے 4:2:0 سے نظر آنے والا نقصان بہت کم ہوتا ہے۔

اگر آپ 4:2:0 کو 4:4:4 میں تبدیل کریں، تو پروگرام غائب سیمپلز کو آس پاس کے سیمپلز سے حساب لگاتا ہے۔ 4:2:0 نے جو رنگی تفصیل ہٹا دی تھی، وہ واپس نہیں آتی۔

H.264 پروفائل بھی قدر چیک کرنے کی ایک وجہ ہے۔ Main اور High پروفائلز 8 بٹ رنگ کے ساتھ 4:2:0 سیمپلنگ کو سپورٹ کرتے ہیں۔

yuv444p یا yuv420p10le میں H.264 اسٹریم کے لیے زیادہ اونچا پروفائل درکار ہوتا ہے۔ Apple کے HLS قواعد میں H.264 کو High پروفائل یا اس سے کم پر ہونا چاہیے۔ YouTube اپ لوڈز کے لیے 4:2:0 کے ساتھ High پروفائل کی سفارش کرتا ہے۔

میٹا کیز