Tentang YUV Video

Video digital sering dikodekan dalam format YUV . Artikel ini menjelaskan konsep umum video YUV, bersama dengan beberapa terminologi, tanpa masuk jauh ke dalam matematika pemrosesan video YUV.

Jika Anda telah bekerja dengan grafik komputer, Anda mungkin terbiasa dengan warna RGB. Warna RGB dikodekan menggunakan tiga nilai: merah, hijau, dan biru. Nilai-nilai ini sesuai langsung dengan bagian spektrum yang terlihat. Tiga nilai RGB membentuk sistem koordinat matematika, yang disebut ruang warna. Komponen merah mendefinisikan satu sumbu sistem koordinat ini, biru mendefinisikan yang kedua, dan hijau mendefinisikan yang ketiga, seperti yang ditunjukkan dalam ilustrasi berikut. Warna RGB yang valid berada di suatu tempat dalam ruang warna ini. Misalnya, magenta murni adalah 100% biru, 100% merah, dan 0% hijau.

diagram showing rgb color space

Meskipun RGB adalah cara umum untuk mewakili warna, sistem koordinat lainnya dimungkinkan. Istilah YUV mengacu pada keluarga ruang warna, yang semuanya mengodekan informasi kecerahan secara terpisah dari informasi warna. Seperti RGB, YUV menggunakan tiga nilai untuk mewakili warna apa pun. Nilai-nilai ini disebut Y', U, dan V. (Bahkan, penggunaan istilah "YUV" ini secara teknis tidak akurat. Dalam video komputer, istilah YUV hampir selalu mengacu pada satu ruang warna tertentu bernama Y'CbCr, yang dibahas kemudian. Namun, YUV sering digunakan sebagai istilah umum untuk ruang warna apa pun yang bekerja dengan prinsip yang sama dengan Y'CbCr.)

Komponen Y, juga disebut luma, mewakili nilai kecerahan warna. Simbol utama (') digunakan untuk membedakan luma dari nilai yang terkait erat, luminans, yang ditunjuk Y. Luminance berasal dari nilai RGB linier , sedangkan luma berasal dari nilai RGB non-linear (dikoreksi gamma). Luminance adalah ukuran kecerahan sejati yang lebih dekat tetapi luma lebih praktis digunakan karena alasan teknis. Simbol utama sering dihilangkan, tetapi ruang warna YUV selalu menggunakan luma, bukan luminance.

Luma berasal dari warna RGB dengan mengambil rata-rata tertimbang komponen merah, hijau, dan biru. Untuk televisi definisi standar, rumus berikut digunakan:

Y' = 0.299R + 0.587G + 0.114B

Rumus ini mencerminkan fakta bahwa mata manusia lebih sensitif terhadap panjang gelombang cahaya tertentu daripada yang lain, yang mempengaruhi kecerahan warna yang dirasakan. Cahaya biru tampak redup, hijau tampak paling terang, dan merah berada di suatu tempat di antaranya. Rumus ini juga mencerminkan karakteristik fisik dari fosfor yang digunakan pada televisi awal. Rumus yang lebih baru, dengan mempertimbangkan teknologi televisi modern, digunakan untuk televisi definisi tinggi:

Y' = 0.2125R + 0.7154G + 0.0721B

Persamaan luma untuk televisi definisi standar didefinisikan dalam spesifikasi bernama ITU-R BT.601. Untuk televisi definisi tinggi, spesifikasi yang relevan adalah ITU-R BT.709.

Komponen Anda dan V, juga disebut nilai kroma atau nilai perbedaan warna , diturunkan dengan mengurangi nilai Y dari komponen merah dan biru dari warna RGB asli:

U = B - Y'

V = R - Y'

Bersama-sama, nilai-nilai ini berisi informasi yang cukup untuk memulihkan nilai RGB asli.

Manfaat YUV

Televisi Analog menggunakan YUV sebagian karena alasan historis. Sinyal televisi warna analog dirancang agar kompatibel dengan televisi hitam-putih. Sinyal televisi warna membawa informasi klorma (Anda dan V) ditumbalkan ke sinyal luma. Televisi hitam-putih mengabaikan klorma dan menampilkan sinyal gabungan sebagai gambar skala abu-abu. (Sinyal dirancang agar klorma tidak secara signifikan mengganggu sinyal luma.) Televisi warna dapat mengekstrak kroma dan mengonversi sinyal kembali ke RGB.

YUV memiliki keuntungan lain yang lebih relevan saat ini. Mata manusia kurang sensitif terhadap perubahan rona daripada perubahan kecerahan. Akibatnya, gambar dapat memiliki lebih sedikit informasi kroma daripada informasi luma tanpa mengorbankan kualitas gambar yang dirasakan. Misalnya, adalah umum untuk mengambil sampel nilai klorma pada setengah resolusi horizontal sampel luma. Dengan kata lain, untuk setiap dua sampel luma dalam satu baris piksel, ada satu sampel U dan satu sampel V. Dengan asumsi bahwa 8 bit digunakan untuk mengodekan setiap nilai, total 4 byte diperlukan untuk setiap dua piksel (dua Y', satu U, dan satu V), untuk rata-rata 16 bit per piksel, atau 30% kurang dari pengodean RGB 24-bit yang setara.

YUV secara inheren tidak lebih ringkas daripada RGB. Kecuali kroma di-downsample, piksel YUV berukuran sama dengan piksel RGB. Selain itu, konversi dari RGB ke YUV tidak rugi. Jika tidak ada downsampling, piksel YUV dapat dikonversi kembali ke RGB tanpa kehilangan informasi. Downsampling membuat gambar YUV lebih kecil dan juga kehilangan beberapa informasi warna. Namun, jika dilakukan dengan benar, kerugiannya tidak signifikan secara persepsi.

YUV di Video Komputer

Rumus yang tercantum sebelumnya untuk YUV bukanlah konversi yang tepat yang digunakan dalam video digital. Video digital umumnya menggunakan bentuk YUV yang disebut Y'CbCr. Pada dasarnya, Y'CbCr bekerja dengan menskalakan komponen YUV ke rentang berikut:

Komponen Rentang
Y' 16–235
Cb/Cr 16–240, dengan 128 mewakili nol

 

Rentang ini mengasumsikan 8 bit presisi untuk komponen Y'CbCr. Berikut adalah turunan tepat dari Y'CbCr, menggunakan definisi BT.601 dari luma:

  1. Mulai dengan nilai RGB dalam rentang [0...1]. Dengan kata lain, hitam murni adalah 0 dan putih murni adalah 1. Yang penting, ini adalah nilai RGB non-linear (gamma dikoreksi).

  2. Hitung luma. Untuk BT.601, Y' = 0,299R + 0,587G + 0,114B, seperti yang dijelaskan sebelumnya.

  3. Hitung nilai perbedaan kroma perantara (B - Y') dan (R - Y'). Nilai-nilai ini memiliki rentang +/- 0,886 untuk (B - Y'), dan +/- 0,701 untuk (R - Y').

  4. Skalakan nilai perbedaan klorma sebagai berikut:

    Pb = (0,5 / (1 - 0,114)) × (B - Y')

    Pr = (0,5 / (1 - 0,299)) × (R - Y')

    Faktor penskalakan ini dirancang untuk memberikan kedua nilai rentang numerik yang sama, +/- 0,5. Bersama-sama, mereka mendefinisikan ruang warna YUV bernama Y'PbPr. Ruang warna ini digunakan dalam video komponen analog.

  5. Skalakan nilai Y'PbPr untuk mendapatkan nilai Y'CbCr akhir:

    Y' = 16 + 219 × Y'

    Cb = 128 + 224 × Pb

    Cr = 128 + 224 × Pr

Faktor penskalaan terakhir ini menghasilkan rentang nilai yang tercantum dalam tabel sebelumnya. Tentu saja, Anda dapat mengonversi RGB langsung ke Y'CbCr tanpa menyimpan hasil perantara. Langkah-langkah dicantumkan secara terpisah di sini untuk menunjukkan bagaimana Y'CbCr berasal dari persamaan YUV asli yang diberikan di awal artikel ini.

Tabel berikut menunjukkan nilai RGB dan YCbCr untuk berbagai warna, sekali lagi menggunakan definisi BT.601 luma.

Warna R G B Y' Cb Cr
Hitam 0 0 0 16 128 128
Merah 255 0 0 81 90 240
Hijau 0 255 0 145 54 34
Biru 0 0 255 41 240 110
Cyan 0 255 255 170 166 16
Magenta 255 0 255 106 202 222
Kuning 255 255 0 210 16 146
Putih 255 255 255 235 128 128

 

Seperti yang ditunjukkan tabel ini, Cb dan Cr tidak sesuai dengan ide intuitif tentang warna. Misalnya, putih murni dan hitam murni keduanya mengandung tingkat netral Cb dan Cr (128). Nilai tertinggi dan terendah untuk Cb masing-masing adalah biru dan kuning. Untuk Cr, nilai tertinggi dan terendah adalah merah dan sian.

Untuk informasi lebih lanjut

Tipe Media Video

Jenis Media