Pixel format adalah tata letak setiap piksel dalam data gambar mentah dari sebuah gambar atau video. Ini memberi tahu program komponen warna apa saja yang dimiliki gambar dan berapa bit yang digunakan.
Laporan video sering menampilkan field ini sebagai pix_fmt, dengan nilai seperti yuv420p. Nilai seperti ini menunjukkan model warna, chroma subsampling, dan bit depth. Color space adalah field terpisah.
File mana yang membawanya
Program ffprobe milik FFmpeg mencantumkan pix_fmt untuk setiap stream video. Ini mencakup file MP4, MOV, MKV, dan WebM.
Gambar juga melaporkan nilai. FFmpeg memberi yuvj420p pada JPEG dengan sampling 4:2:0 dan rgb24 pada PNG RGB 8-bit.
File audio dengan cover art juga dapat melaporkan pixel format. FFmpeg memperlakukan gambar tersebut sebagai stream video.
ExifTool membaca tag bernama PixelFormat dari file Windows HD Photo (HDP dan WDP). Ini menampilkan nilai seperti 24-bit RGB dan 8-bit Gray.
Seperti apa bentuk nilainya
FFmpeg membentuk namanya dari bagian-bagian pendek. Nilai yuv420p10le memiliki 5 bagian:
yuv: model warna. Y adalah kecerahan, dan U serta V membawa warna. U dan V juga disebut Cb dan Cr, seperti pada YCbCr.420: sampling. Warna memiliki setengah lebar dan setengah tinggi dari data kecerahan.p: planar. Setiap komponen memiliki bidang terpisah. Format packed menyimpan komponen bersama dalam satu array.10: jumlah bit untuk setiap komponen. Nilaiyuv420ptidak memiliki angka di sini dan menggunakan 8 bit.le: urutan byte, little-endian. Akhiranbeberarti big-endian.
Nilai umum
Setiap angka di bawah ini adalah rata-rata bit per piksel dalam data gambar mentah:
yuv420p: 12 bit, warna pada setengah lebar dan setengah tinggiyuv422p: 16 bit, warna pada setengah lebaryuv444p: 24 bit, warna untuk setiap pikselyuvj420p: 12 bit, tata letakyuv420pdengan rentang penuh yang digunakan JPEGrgb24: 24 bit, merah, hijau, dan biru dalam bentuk packedrgba: 32 bit, dengan nilai alpha tambahan untuk transparansigray: 8 bit, hanya kecerahanpal8: 8 bit, setiap nilai mengarah ke satu warna palet
Dalam rentang penuh, kecerahan 8-bit berjalan dari 0 hingga 255. Dalam rentang terbatas, ini berjalan dari 16 hingga 235. FFmpeg menyarankan field rentang terpisah, bukan nama yuvj.
Dari mana nilai berasal
Program yang mengenkode stream menentukan pixel format. Di FFmpeg, Anda memilihnya dengan opsi -pix_fmt.
Namanya sendiri biasanya tidak disimpan di dalam file. Program pembaca membentuk nama dari detail yang disimpan.
Untuk H.264, FFmpeg menggunakan bit depth dan format chroma dalam header stream. Untuk PNG, FFmpeg menggunakan bit depth dan tipe warna dalam header gambar.
Mengapa ini penting bagi file Anda
Pixel format menentukan ukuran data gambar mentah. Satu frame rgb24 memiliki 24 bit per piksel, dan satu frame yuv420p memiliki 12. Codec kemudian mengompresi data ini, sehingga angka-angka ini tidak menunjukkan ukuran file akhir.
Pixel format juga menentukan seberapa banyak detail warna yang dipertahankan file. Mata manusia melihat jauh lebih banyak detail dalam kecerahan dibanding warna, sehingga 4:2:0 hanya menyebabkan sedikit kehilangan yang terlihat.
Jika Anda mengonversi 4:2:0 ke 4:4:4, program menghitung sampel yang hilang dari sampel di sekitarnya. Detail warna yang dihilangkan oleh 4:2:0 tetap hilang.
Profil H.264 adalah alasan lain untuk memeriksa nilainya. Profil Main dan High mendukung warna 8-bit dengan sampling 4:2:0.
Stream H.264 dalam yuv444p atau yuv420p10le memerlukan profil yang lebih tinggi. Aturan HLS Apple mewajibkan H.264 pada atau di bawah profil High. YouTube merekomendasikan profil High dengan 4:2:0 untuk upload.