Kamus

Apakah Format Piksel?

Format piksel ialah cara video atau imej menyusun data warna bagi setiap piksel. Ketahui maksud nilai seperti yuv420p untuk fail anda.

pixel-format

Format piksel ialah susun atur setiap piksel dalam data gambar mentah bagi imej atau video. Ia memberitahu program komponen warna yang dimiliki gambar dan berapa banyak bit yang digunakan.

Laporan video selalunya memaparkan medan ini sebagai pix_fmt, dengan nilai seperti yuv420p. Nilai seperti ini menunjukkan model warna, pensampelan kroma, dan kedalaman bit. Ruang warna ialah satu medan berasingan.

Fail mana yang membawanya

Program ffprobe FFmpeg menyenaraikan pix_fmt untuk setiap strim video. Ini merangkumi fail MP4, MOV, MKV, dan WebM.

Imej juga melaporkan satu nilai. FFmpeg memberikan yuvj420p kepada JPEG dengan pensampelan 4:2:0 dan rgb24 kepada PNG RGB 8-bit.

Fail audio dengan seni kulit album juga boleh melaporkan format piksel. FFmpeg menganggap gambar itu sebagai strim video.

ExifTool membaca tag bernama PixelFormat daripada fail Windows HD Photo (HDP dan WDP). Ia memaparkan nilai seperti 24-bit RGB dan 8-bit Gray.

Bagaimana rupa nilai tersebut

FFmpeg membina namanya daripada bahagian-bahagian pendek. Nilai yuv420p10le mempunyai 5 bahagian:

  • yuv: model warna. Y ialah kecerahan, manakala U dan V membawa warna. U dan V juga dipanggil Cb dan Cr, seperti dalam YCbCr.
  • 420: pensampelan. Warna mempunyai separuh lebar dan separuh tinggi data kecerahan.
  • p: satah (planar). Setiap komponen mempunyai satah berasingan. Format pek mengekalkan komponen bersama dalam satu tatasusunan.
  • 10: bilangan bit bagi setiap komponen. Nilai yuv420p tiada nombor di sini dan menggunakan 8 bit.
  • le: susunan bait, little-endian. Akhiran be bermaksud big-endian.

Nilai tipikal

Setiap nombor di bawah ialah purata bit per piksel dalam data gambar mentah:

  • yuv420p: 12 bit, warna pada separuh lebar dan separuh tinggi
  • yuv422p: 16 bit, warna pada separuh lebar
  • yuv444p: 24 bit, warna bagi setiap piksel
  • yuvj420p: 12 bit, susun atur yuv420p dengan julat penuh yang digunakan JPEG
  • rgb24: 24 bit, merah, hijau dan biru yang dipadatkan
  • rgba: 32 bit, dengan nilai alfa tambahan untuk ketelusan
  • gray: 8 bit, kecerahan sahaja
  • pal8: 8 bit, setiap nilai merujuk kepada satu warna palet

Dalam julat penuh, kecerahan 8-bit berjalan dari 0 hingga 255. Dalam julat terhad, ia berjalan dari 16 hingga 235. FFmpeg mengesyorkan medan julat berasingan dan bukannya nama yuvj.

Dari mana nilai itu datang

Program yang mengekod strim menentukan format piksel. Dalam FFmpeg, anda memilihnya dengan pilihan -pix_fmt.

Nama itu sendiri biasanya tidak disimpan dalam fail. Program pembaca membina nama daripada butiran yang disimpan.

Untuk H.264, FFmpeg menggunakan kedalaman bit dan format kroma dalam pengepala strim. Untuk PNG, FFmpeg menggunakan kedalaman bit dan jenis warna dalam pengepala imej.

Mengapa ia penting untuk fail anda

Format piksel menentukan saiz data gambar mentah. Bingkai rgb24 mempunyai 24 bit per piksel, dan bingkai yuv420p mempunyai 12. Codec kemudian memampatkan data ini, jadi nombor ini tidak memberikan saiz fail akhir.

Format piksel juga menentukan berapa banyak butiran warna yang disimpan oleh fail. Mata manusia melihat jauh lebih banyak butiran dalam kecerahan berbanding warna, jadi 4:2:0 menyebabkan kehilangan yang hampir tidak kelihatan.

Jika anda menukar 4:2:0 kepada 4:4:4, program mengira sampel yang hilang daripada sampel berdekatan. Butiran warna yang dibuang oleh 4:2:0 kekal hilang.

Profil H.264 ialah satu lagi sebab untuk menyemak nilai ini. Profil Main dan High menyokong warna 8-bit dengan pensampelan 4:2:0.

Strim H.264 dalam yuv444p atau yuv420p10le memerlukan profil yang lebih tinggi. Peraturan HLS Apple memerlukan H.264 pada atau di bawah profil High. YouTube mengesyorkan profil High dengan 4:2:0 untuk muat naik.