Sözlük

Piksel Formatı Nedir?

Piksel formatı, bir video veya görüntünün her pikselin renk verilerini nasıl düzenlediğidir. Yuv420p gibi değerlerin dosyanız için ne anlama geldiğini öğrenin.

pixel-format

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ı. yuv420p değerinin burada bir sayısı yoktur ve 8 bit kullanır.
  • le: bayt sırası, little-endian. be son 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ğinde
  • yuv422p: 16 bit, renk parlaklığın yarı genişliğinde
  • yuv444p: 24 bit, her piksel için renk
  • yuvj420p: 12 bit, JPEG'in kullandığı tam aralığa sahip yuv420p yerleşimi
  • rgb24: 24 bit, paketlenmiş kırmızı, yeşil ve mavi
  • rgba: 32 bit, saydamlık için ek bir alfa değeriyle
  • gray: 8 bit, yalnızca parlaklık
  • pal8: 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.