FMUSER Wirless Mengirim Video Dan Audio Lebih Mudah!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikans
sq.fmuser.org -> Albania
ar.fmuser.org -> Arab
hy.fmuser.org -> Armenia
az.fmuser.org -> Azerbaijan
eu.fmuser.org -> Basque
be.fmuser.org -> Belarusia
bg.fmuser.org -> Bulgaria
ca.fmuser.org -> Catalan
zh-CN.fmuser.org -> Cina (Sederhana)
zh-TW.fmuser.org -> Mandarin (Tradisional)
hr.fmuser.org -> Kroasia
cs.fmuser.org -> Ceko
da.fmuser.org -> Denmark
nl.fmuser.org -> Belanda
et.fmuser.org -> Estonia
tl.fmuser.org -> Filipina
fi.fmuser.org -> Finlandia
fr.fmuser.org -> Perancis
gl.fmuser.org -> Galicia
ka.fmuser.org -> Georgia
de.fmuser.org -> Jerman
el.fmuser.org -> Yunani
ht.fmuser.org -> Kreol Haiti
iw.fmuser.org -> Ibrani
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hongaria
is.fmuser.org -> Islandia
id.fmuser.org -> Bahasa Indonesia
ga.fmuser.org -> Irlandia
it.fmuser.org -> Italia
ja.fmuser.org -> Jepang
ko.fmuser.org -> Korea
lv.fmuser.org -> Latvia
lt.fmuser.org -> Lithuania
mk.fmuser.org -> Makedonia
ms.fmuser.org -> Melayu
mt.fmuser.org -> Malta
no.fmuser.org -> Norwegia
fa.fmuser.org -> Persia
pl.fmuser.org -> Polandia
pt.fmuser.org -> Portugis
ro.fmuser.org -> Rumania
ru.fmuser.org -> Rusia
sr.fmuser.org -> Serbia
sk.fmuser.org -> Slowakia
sl.fmuser.org -> Slovenia
es.fmuser.org -> Spanyol
sw.fmuser.org -> Swahili
sv.fmuser.org -> Swedia
th.fmuser.org -> Thailand
tr.fmuser.org -> Turki
uk.fmuser.org -> Ukraina
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnam
cy.fmuser.org -> Welsh
yi.fmuser.org -> Yiddish
Kata pengantar
Algoritma kompresi video H264 tidak diragukan lagi sekarang merupakan teknik kompresi video yang paling banyak digunakan dan paling populer. Dengan diperkenalkannya pustaka sumber terbuka seperti x264 / openh264 dan ffmpeg, sebagian besar pengguna tidak perlu lagi melakukan terlalu banyak penelitian tentang detail H264, yang sangat mengurangi biaya orang yang menggunakan H264.
Tetapi untuk memanfaatkan H264 dengan baik, kita masih harus memikirkan prinsip-prinsip dasar H264. Hari ini kita akan melihat prinsip-prinsip dasar H264.
Ringkasan H264
Teknologi kompresi H264 terutama menggunakan metode berikut untuk mengompresi data video. termasuk:
Kompresi prediksi intra-frame memecahkan masalah redundansi data spasial.
Kompresi prediksi antar-frame (estimasi gerak dan kompensasi) memecahkan masalah redundansi data domain waktu.
Integer Discrete Cosine Transform (DCT), yang mengubah korelasi spasial menjadi data yang tidak relevan dalam domain frekuensi dan kemudian mengkuantasinya.
Kompresi CABAC.
Bingkai terkompresi dibagi menjadi: bingkai I, bingkai P dan bingkai B:
I frame: key frame, menggunakan teknologi kompresi intra-frame.
P frame: frame referensi maju, saat mengompresi, hanya mengacu pada frame yang diproses sebelumnya. Gunakan teknologi kompresi audio bingkai.
Bingkai B: Bingkai referensi dua arah. Selama kompresi, ini mengacu pada bingkai sebelumnya dan bingkai berikutnya. Menggunakan teknologi kompresi antar frame.
Selain bingkai I / P / B, ada juga rangkaian gambar GOP.
GOP: Antara dua bingkai I adalah urutan gambar, dan hanya ada satu bingkai I dalam urutan gambar. Seperti yang ditunjukkan di bawah ini:
Sekarang kami akan menjelaskan teknologi kompresi H264 secara rinci.
Teknologi kompresi H264
Prinsip dasar H264 sebenarnya sangat sederhana, mari kita gambarkan secara singkat proses kompresi data H264. Bingkai video yang ditangkap oleh kamera (dihitung pada 30 bingkai per detik) dikirim ke buffer encoder H264. Pembuat enkode harus terlebih dahulu membagi macroblock untuk setiap gambar.
Ambil gambar berikut sebagai contoh:
Partisi macroblock
H264 menggunakan area 16X16 sebagai blok makro secara default, dan juga dapat dibagi menjadi ukuran 8X8.
Setelah membagi blok makro, hitung nilai piksel dari blok makro.
Dengan analogi, nilai piksel dari setiap blok makro dalam gambar dihitung, dan semua blok makro diproses sebagai berikut.
Sub-blok
H264 menggunakan macroblock 16X16 untuk gambar yang relatif datar. Namun, untuk mencapai tingkat kompresi yang lebih tinggi, sub-blok yang lebih kecil juga dapat dibagi menjadi makro blok 16X16. Ukuran sub-blok bisa 8X16, 16X8, 8X8, 4X8, 8X4, 4X4, yang sangat fleksibel.
Pada gambar di atas, sebagian besar dari blok makro 16X16 dalam bingkai merah memiliki latar belakang biru, dan bagian dari gambar tiga elang digambar dalam blok makro ini. Untuk memproses gambar parsial dari tiga elang dengan lebih baik, H264 Beberapa sub-blok dibagi menjadi makro blok 16X16.
Dengan cara ini, setelah kompresi intra-frame, data yang lebih efisien dapat diperoleh. Gambar di bawah adalah hasil dari mengompresi macroblock di atas menggunakan mpeg-2 dan H264. Separuh kiri merupakan hasil kompresi setelah pembagian sub blok MPEG-2, dan separuh kanan merupakan hasil kompresi sub blok H264. Dapat dilihat bahwa metode pembagian H264 memiliki keunggulan lebih.
Setelah blok makro dibagi, semua gambar dalam buffer encoder H264 dapat dikelompokkan.
Pengelompokan bingkai
Untuk data video, ada dua jenis redundansi data, satu adalah redundansi data dalam waktu, dan yang lainnya adalah redundansi data di ruang angkasa. Di antara mereka, redundansi data dalam waktu adalah yang terbesar. Pertama mari kita bicara tentang masalah redundansi waktu data video.
Mengapa redundansi waktu menjadi yang terbesar? Dengan asumsi bahwa kamera menangkap 30 bingkai per detik, data dari 30 bingkai ini sebagian besar terkait. Mungkin juga lebih dari 30 frame data, puluhan frame, atau ratusan frame data sangat terkait erat.
Untuk bingkai yang sangat erat kaitannya ini, sebenarnya, kita hanya perlu menyimpan satu bingkai data, dan bingkai lainnya dapat diprediksi dari bingkai ini menurut aturan tertentu, sehingga data video memiliki redundansi waktu paling banyak.
Untuk mencapai data kompres frame yang relevan melalui metode prediksi, maka frame video perlu dikelompokkan. Jadi bagaimana menentukan bahwa bingkai tertentu terkait erat dan dapat dikelompokkan bersama? Mari kita lihat contohnya. Di bawah ini adalah bingkai video yang diambil dari sekelompok bola biliar yang sedang bergerak. Bola billiard menggelinding dari pojok kanan atas ke pojok kiri bawah.
Encoder H264 akan mengambil dua frame yang berdekatan setiap kali membandingkan macroblock untuk menghitung kemiripan kedua frame. Seperti yang ditunjukkan di bawah ini:
Melalui pemindaian blok makro dan pencarian blok makro, dapat diketahui bahwa korelasi antara kedua frame tersebut sangat tinggi. Lebih lanjut, ditemukan bahwa derajat korelasi dari kelompok frame ini sangat tinggi. Oleh karena itu, bingkai di atas dapat dibagi menjadi satu kelompok. Algoritmanya adalah: pada gambar yang berdekatan, piksel yang umumnya berbeda hanya dalam 10%, perbedaan kecerahan tidak melebihi 2%, dan perbedaan kromatisitas hanya berubah dalam 1%. Kami pikir ini Grafik dapat dikelompokkan bersama.
Dalam kelompok bingkai seperti itu, setelah pengkodean, kami hanya menyimpan data lengkap dari kiriman pertama, dan bingkai lainnya dihitung dengan mengacu pada bingkai sebelumnya. Kami menyebut bingkai pertama IDR / I bingkai, dan bingkai lain kami sebut bingkai P / B, jadi kami menyebut grup bingkai data yang dikodekan GOP.
Estimasi gerak dan kompensasi
Setelah frame-frame tersebut dikelompokkan dalam encoder H264, maka perlu dilakukan perhitungan vektor gerak dari objek-objek tersebut dalam kelompok frame tersebut. Mengambil bingkai video biliar bergerak di atas sebagai contoh, mari kita lihat bagaimana cara menghitung vektor gerak.
Encoder H264 pertama-tama mengambil dua frame data video dari header buffer secara berurutan, kemudian melakukan pemindaian blok makro. Ketika sebuah objek ditemukan di salah satu gambar, pencarian dilakukan di sekitar gambar lainnya (di jendela pencarian). Jika benda ditemukan pada citra lain saat ini, maka vektor gerak benda tersebut dapat dihitung. Gambar berikut menunjukkan posisi bola billiard setelah dilakukan pencarian.
Melalui selisih posisi bola billiard pada gambar di atas maka arah dan jarak dari gambar tabel dapat dihitung. H264 mencatat jarak dan arah pergerakan bola di setiap frame secara bergantian, dan jadinya sebagai berikut.
Setelah vektor gerak dihitung, bagian yang sama (yaitu, bagian hijau) dikurangi untuk mendapatkan data kompensasi. Pada akhirnya, kita hanya perlu mengompres dan menyimpan data kompensasi, lalu gambar asli dapat dikembalikan saat decoding. Data terkompresi hanya perlu merekam sejumlah kecil data. Sebagai berikut:
Kami menyebut vektor gerak dan kompensasi sebagai teknologi kompresi antar-bingkai, yang memecahkan redundansi data bingkai video pada waktunya. Selain kompresi antar-frame, kompresi data juga harus dilakukan di dalam frame. Kompresi data intra-frame memecahkan redundansi data spasial. Sekarang kami akan memperkenalkan teknologi kompresi intra-frame.
Prediksi intra
Mata manusia memiliki tingkat pengenalan gambar, sangat sensitif terhadap kecerahan frekuensi rendah, dan tidak terlalu sensitif terhadap kecerahan frekuensi tinggi. Oleh karena itu, berdasarkan beberapa penelitian, data yang tidak sensitif terhadap mata manusia dapat dihilangkan dari sebuah gambar. Dengan cara ini, teknologi prediksi intra diusulkan.
Kompresi intra-frame H264 sangat mirip dengan JPEG. Setelah gambar dibagi menjadi beberapa blok makro, setiap blok makro dapat diprediksi dalam 9 mode. Temukan mode prediksi yang paling dekat dengan gambar aslinya.
Gambar berikut adalah proses memprediksi setiap blok makro di seluruh gambar.
Perbandingan antara gambar setelah prediksi intra dan gambar asli adalah sebagai berikut:
Kemudian citra asli dan citra intra-prediksi dikurangi untuk mendapatkan nilai sisa.
Kemudian simpan informasi mode prediksi yang kita dapatkan sebelumnya, sehingga kita dapat mengembalikan gambar asli saat decoding. Efeknya adalah sebagai berikut:
Setelah kompresi intra-frame dan antar-frame, meskipun datanya sangat berkurang, masih ada ruang untuk pengoptimalan.
Lakukan DCT pada data sisa
Data sisa dapat mengalami transformasi kosinus diskrit integer untuk menghilangkan korelasi data dan selanjutnya memampatkan data. Seperti yang ditunjukkan pada gambar di bawah, sisi kiri adalah blok makro dari data asli, dan sisi kanan adalah blok makro dari data sisa yang dihitung.
Blok makro dari data residual didigitalkan seperti yang ditunjukkan pada gambar di bawah ini:
Konversi DCT dilakukan pada macroblock data sisa.
Setelah menghapus data terkait, kita dapat melihat bahwa data tersebut dikompresi lebih lanjut.
Setelah DCT selesai, itu tidak cukup, dan CABAC diperlukan untuk kompresi lossless.
CABAC
Kompresi intra-frame di atas adalah teknik kompresi lossy. Dengan kata lain, setelah gambar dikompresi, gambar tidak dapat dikembalikan sepenuhnya. CABAC adalah teknologi kompresi lossless.
Teknologi kompresi lossless mungkin yang paling familiar bagi semua orang adalah Huffman coding, kode pendek untuk kata frekuensi tinggi, kode panjang untuk kata frekuensi rendah untuk mencapai tujuan kompresi data. VLC yang digunakan dalam MPEG-2 adalah algoritma seperti ini, kita ambil AZ sebagai contoh, A milik data frekuensi tinggi, dan Z milik data frekuensi rendah. Lihat bagaimana itu dilakukan.
CABAC juga merupakan kode pendek untuk data frekuensi tinggi dan kode panjang untuk data frekuensi rendah. Pada saat yang sama, ini akan memampatkan berdasarkan konteks, yang jauh lebih efisien daripada VLC. Efeknya adalah sebagai berikut:
Sekarang ganti AZ dengan bingkai video, dan itu akan terlihat seperti berikut.
Dari gambar diatas terlihat jelas bahwa skema kompresi lossless menggunakan CACBA jauh lebih efisien daripada VLC.
ringkasan
Pada titik ini, kami telah menyelesaikan prinsip pengkodean H264. Artikel ini terutama membahas poin-poin berikut:
1. Jianyin memperkenalkan beberapa konsep dasar di H264. Seperti bingkai I / P / B, GOP.
2. Menjelaskan prinsip dasar pengkodean H264 secara rinci, meliputi:
Pembagian blok makro
Pengelompokan gambar
Prinsip teknologi kompresi intra-frame
Prinsip teknologi kompresi antar frame.
DCT
Prinsip kompresi CABAC.
|
Masukkan email untuk mendapatkan kejutan
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikans
sq.fmuser.org -> Albania
ar.fmuser.org -> Arab
hy.fmuser.org -> Armenia
az.fmuser.org -> Azerbaijan
eu.fmuser.org -> Basque
be.fmuser.org -> Belarusia
bg.fmuser.org -> Bulgaria
ca.fmuser.org -> Catalan
zh-CN.fmuser.org -> Cina (Sederhana)
zh-TW.fmuser.org -> Mandarin (Tradisional)
hr.fmuser.org -> Kroasia
cs.fmuser.org -> Ceko
da.fmuser.org -> Denmark
nl.fmuser.org -> Belanda
et.fmuser.org -> Estonia
tl.fmuser.org -> Filipina
fi.fmuser.org -> Finlandia
fr.fmuser.org -> Perancis
gl.fmuser.org -> Galicia
ka.fmuser.org -> Georgia
de.fmuser.org -> Jerman
el.fmuser.org -> Yunani
ht.fmuser.org -> Kreol Haiti
iw.fmuser.org -> Ibrani
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hongaria
is.fmuser.org -> Islandia
id.fmuser.org -> Bahasa Indonesia
ga.fmuser.org -> Irlandia
it.fmuser.org -> Italia
ja.fmuser.org -> Jepang
ko.fmuser.org -> Korea
lv.fmuser.org -> Latvia
lt.fmuser.org -> Lithuania
mk.fmuser.org -> Makedonia
ms.fmuser.org -> Melayu
mt.fmuser.org -> Malta
no.fmuser.org -> Norwegia
fa.fmuser.org -> Persia
pl.fmuser.org -> Polandia
pt.fmuser.org -> Portugis
ro.fmuser.org -> Rumania
ru.fmuser.org -> Rusia
sr.fmuser.org -> Serbia
sk.fmuser.org -> Slowakia
sl.fmuser.org -> Slovenia
es.fmuser.org -> Spanyol
sw.fmuser.org -> Swahili
sv.fmuser.org -> Swedia
th.fmuser.org -> Thailand
tr.fmuser.org -> Turki
uk.fmuser.org -> Ukraina
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnam
cy.fmuser.org -> Welsh
yi.fmuser.org -> Yiddish
FMUSER Wirless Mengirim Video Dan Audio Lebih Mudah!
Kontak
Alamat:
No.305 Kamar HuiLan Building No.273 Huanpu Road Guangzhou China 510620
Kategori
Buletin