Pixel फ़ॉर्मेट किसी इमेज या वीडियो के रॉ पिक्चर डेटा में हर पिक्सेल की बनावट होता है। यह प्रोग्राम को बताता है कि चित्र में कौन‑कौन से रंग घटक हैं और वे कितने बिट्स इस्तेमाल करते हैं।
वीडियो रिपोर्ट में यह फ़ील्ड अक्सर pix_fmt के रूप में दिखती है, जिसका मान yuv420p जैसा हो सकता है। ऐसा मान रंग मॉडल, chroma subsampling और bit depth दिखाता है। Color space अलग फ़ील्ड होता है।
कौन सी फाइलें इसे रखती हैं
FFmpeg के ffprobe प्रोग्राम में हर वीडियो स्ट्रीम के लिए pix_fmt दिखता है। इसमें MP4, MOV, MKV और WebM फ़ाइलें शामिल हैं।
इमेज फ़ाइलें भी एक मान दिखाती हैं। FFmpeg 4:2:0 sampling वाली JPEG फ़ाइल के लिए yuvj420p और 8‑bit RGB PNG के लिए rgb24 देता है।
Cover art वाली ऑडियो फ़ाइल भी pixel फ़ॉर्मेट रिपोर्ट कर सकती है। FFmpeg उस तस्वीर को एक वीडियो स्ट्रीम की तरह मानता है।
ExifTool, Windows HD Photo फ़ाइलों (HDP और WDP) से PixelFormat नाम का टैग पढ़ता है। यह 24-bit RGB और 8-bit Gray जैसे मान दिखाता है।
मूल्य कैसे दिखते हैं
FFmpeg अपने नाम छोटे हिस्सों से बनाता है। मान yuv420p10le के 5 हिस्से होते हैं:
yuv: रंग मॉडल। Y चमक (brightness) है, और U व V रंग को ले जाते हैं। U और V को YCbCr में Cb और Cr भी कहा जाता है।420: sampling। रंग डेटा की चौड़ाई और ऊँचाई, चमक (brightness) डेटा की आधी होती है।p: planar। हर घटक की अलग plane होती है। Packed फ़ॉर्मेट में घटक एक ही array में साथ रखे जाते हैं।10: हर घटक के लिए बिट्स। मानyuv420pमें यहाँ कोई संख्या नहीं होती और यह 8 बिट्स इस्तेमाल करता है।le: Byte order, little‑endian। अंत मेंbeहो तो उसका अर्थ big‑endian होता है।
सामान्य मान
नीचे दिए गए हर मान में संख्या रॉ पिक्चर डेटा में प्रति पिक्सेल औसत बिट्स दिखाती है:
yuv420p: 12 बिट्स, रंग की चौड़ाई और ऊँचाई, चमक की आधीyuv422p: 16 बिट्स, रंग की चौड़ाई, चमक की आधीyuv444p: 24 बिट्स, हर पिक्सेल के लिए रंगyuvj420p: 12 बिट्स,yuv420pजैसा लेआउट, लेकिन JPEG द्वारा इस्तेमाल की जाने वाली full range के साथrgb24: 24 बिट्स, packed red, green और bluergba: 32 बिट्स, transparency के लिए अतिरिक्त alpha मान के साथgray: 8 बिट्स, केवल चमक (brightness)pal8: 8 बिट्स, हर मान किसी palette color की ओर संकेत करता है
Full range में 8‑bit चमक 0 से 255 तक रहती है। Limited range में यह 16 से 235 तक रहती है। FFmpeg yuvj नामों की जगह अलग range फ़ील्ड इस्तेमाल करने की सलाह देता है।
मूल्य कहाँ से आता है
स्ट्रीम को encode करने वाला प्रोग्राम pixel फ़ॉर्मेट तय करता है। FFmpeg में आप इसे -pix_fmt विकल्प से चुनते हैं।
नाम आम तौर पर फ़ाइल में सीधे नहीं रखा जाता। पढ़ने वाला प्रोग्राम संग्रहीत विवरणों से नाम बनाता है।
H.264 के लिए FFmpeg, स्ट्रीम हेडर में bit depth और chroma फ़ॉर्मेट का उपयोग करता है। PNG के लिए FFmpeg, इमेज हेडर में bit depth और color type का उपयोग करता है।
यह आपकी फ़ाइल के लिए क्यों महत्वपूर्ण है
Pixel फ़ॉर्मेट रॉ पिक्चर डेटा का आकार तय करता है। rgb24 फ़्रेम में प्रति पिक्सेल 24 बिट्स होते हैं और yuv420p फ़्रेम में 12। इसके बाद कोडेक इस डेटा को compress करते हैं, इसलिए ये संख्याएँ अंतिम फ़ाइल आकार नहीं बतातीं।
Pixel फ़ॉर्मेट यह भी तय करता है कि फ़ाइल कितना रंग विवरण सुरक्षित रखती है। इंसानी आँख चमक में रंग से कहीं ज़्यादा विवरण देखती है, इसलिए 4:2:0 से आम तौर पर बहुत कम दिखने वाला नुकसान होता है।
यदि आप 4:2:0 को 4:4:4 में बदलते हैं, तो प्रोग्राम आस‑पास के नमूनों से गायब नमूने गिनकर निकालता है। 4:2:0 ने जो रंग विवरण हटा दिया था, वह फिर भी खोया ही रहता है।
H.264 प्रोफ़ाइल भी मान जाँचने का एक कारण है। Main और High प्रोफ़ाइल 8‑bit रंग को 4:2:0 sampling के साथ सपोर्ट करती हैं।
yuv444p या yuv420p10le वाले H.264 स्ट्रीम के लिए ऊँची प्रोफ़ाइल की ज़रूरत होती है। Apple के HLS नियम H.264 को High प्रोफ़ाइल या उससे नीचे तक सीमित करते हैं। YouTube अपलोड के लिए 4:2:0 के साथ High प्रोफ़ाइल की अनुशंसा करता है।