Piksel formatı, bir resim veya videonun ham görüntü verilerinde her pikselin yerleşimidir. Bir programa, görüntünün hangi renk bileşenlerine sahip olduğunu ve bunların kaç bit kullandığını bildirir.
Video raporlarında bu alan genellikle pix_fmt olarak, yuv420p gibi bir değerle gösterilir. Bu tür bir değer, renk modelini, kroma alt örneklemesini ve bit derinliğini gösterir. Renk uzayı ayrı bir alandır.
Bunu hangi dosyalar içeriyor
FFmpeg'in ffprobe programı, her video akışı için pix_fmt bilgisini listeler. Bu, MP4, MOV, MKV ve WebM dosyalarını kapsar.
Görseller de bir değer raporlar. FFmpeg, 4:2:0 örneklemeli bir JPEG için yuvj420p ve 8 bit RGB bir PNG için rgb24 verir.
Kapak görseli olan bir ses dosyası da piksel formatı raporlayabilir. FFmpeg bu resmi bir video akışı olarak ele alır.
ExifTool, Windows HD Photo dosyalarından (HDP ve WDP) PixelFormat adlı bir etiketi okur. 24-bit RGB ve 8-bit Gray gibi değerler gösterir.
Değerlerin görünümü
FFmpeg adlarını kısa parçalardan oluşturur. yuv420p10le değeri 5 parçadan oluşur:
yuv: renk modeli. Y parlaklığı, U ve V ise rengi taşır. U ve V, YCbCr ifadesindeki gibi Cb ve Cr olarak da adlandırılır.420: örnekleme. Renk, parlaklık verisinin yarı genişliğinde ve yarı yüksekliğindedir.p: düzlemsel (planar). Her bileşenin ayrı bir düzlemi vardır. Paketli bir format bileşenleri tek bir dizide birlikte tutar.10: her bileşen için bit sayısı.yuv420pdeğerinin burada bir sayısı yoktur ve 8 bit kullanır.le: bayt sırası, little-endian.beson eki big-endian anlamına gelir.
Tipik değerler
Aşağıdaki her sayı, ham görüntü verilerinde piksel başına ortalama bit sayısını gösterir:
yuv420p: 12 bit, renk parlaklığın yarı genişliği ve yarı yüksekliğindeyuv422p: 16 bit, renk parlaklığın yarı genişliğindeyuv444p: 24 bit, her piksel için renkyuvj420p: 12 bit, JPEG'in kullandığı tam aralığa sahipyuv420pyerleşimirgb24: 24 bit, paketlenmiş kırmızı, yeşil ve mavirgba: 32 bit, saydamlık için ek bir alfa değeriylegray: 8 bit, yalnızca parlaklıkpal8: 8 bit, her değer bir palet rengine işaret eder
Tam aralıkta, 8 bit parlaklık 0 ile 255 arasında değişir. Sınırlı aralıkta 16 ile 235 arasında çalışır. FFmpeg, yuvj adları yerine ayrı bir aralık alanı kullanılmasını önerir.
Değerin kaynağı
Akışı kodlayan program piksel formatına karar verir. FFmpeg'de bunu -pix_fmt seçeneğiyle seçersiniz.
Adın kendisi genellikle dosyada saklanmaz. Okuyan program, saklanan ayrıntılardan adı oluşturur.
H.264 için FFmpeg, akış başlığındaki bit derinliği ve kroma formatını kullanır. PNG için FFmpeg, resim başlığındaki bit derinliği ve renk türünü kullanır.
Dosyanız için neden önemli
Piksel formatı, ham görüntü verisinin boyutunu belirler. Bir rgb24 karede piksel başına 24 bit, bir yuv420p karede 12 bit vardır. Daha sonra codec'ler bu veriyi sıkıştırır, bu yüzden bu sayılar nihai dosya boyutunu vermez.
Piksel formatı ayrıca dosyanın ne kadar renk ayrıntısını koruduğunu belirler. İnsan gözü renkten çok parlaklıkta ayrıntı görür, bu yüzden 4:2:0 çok az görünür kayba yol açar.
4:2:0'ı 4:4:4'e dönüştürürseniz, bir program eksik örnekleri yakındakilerden hesaplar. 4:2:0'ın kaldırdığı renk ayrıntısı kayıp kalır.
H.264 profili, bu değeri kontrol etmek için başka bir nedendir. Main ve High profilleri, 4:2:0 örneklemeli 8 bit rengi destekler.
yuv444p veya yuv420p10le içeren bir H.264 akışı, daha yüksek bir profile ihtiyaç duyar. Apple'ın HLS kuralları, High profil veya altındaki bir H.264 sürümünü gerektirir. YouTube, yüklemeler için 4:2:0 ile High profili önerir.