MPEG-1
MPEG-1 adalah standar untuk kompresi lossy video dan audio. Hal ini dirancang untuk kompres mentah berkualitas VHS video digital dan CD audio ke bawah sampai 1,5 Mbit / s (26:1 dan rasio kompresi 6:1 masing-masing) [1] tanpa penurunan kualitas yang berlebihan, membuat Video CD, kabel digital / satelit TV dan penyiaran audio digital (DAB) mungkin. [2] [3]
Hari ini, MPEG-1 telah menjadi yang paling banyak kompatibel lossy audio / video format di dunia, dan digunakan dalam sejumlah besar produk dan teknologi. Mungkin yang paling terkenal bagian dari MPEG-1 standar adalah format audio MP3 itu diperkenalkan.
MPEG-1 standar ini diterbitkan sebagai ISO / IEC 11.172 - Informasi Teknologi-Coding dari gambar bergerak dan terkait audio digital media penyimpanan sampai dengan sekitar 1,5 Mbit / s. Standar terdiri dari lima Bagian berikut: [4] [5] [6] [7] [8]
1. Systems (penyimpanan dan sinkronisasi video, audio, dan data lain bersama-sama)
2. Video (compressed konten video)
3. Audio (terkompresi konten)
4. Kesesuaian pengujian (menguji kebenaran implementasi dari standar)
5. Referensi perangkat lunak (software contoh yang menunjukkan bagaimana untuk mengkodekan dan decode sesuai dengan standar)
Moving Picture Experts Group Tahap 1 (MPEG-1) Nama file ekstensi. Mpg,. Mpeg,. MP1,. Mp2,. Mp3,. M1v,. M1a,. M2A,. Mpa,. MPV
Jenis media Internet audio / mpeg, video / mpeg
Dikembangkan oleh ISO, IEC
Jenis format audio, video, wadah
Diperpanjang dari JPEG, H.261
Diperluas ke MPEG-2
Standar (s) ISO / IEC 11172
Isi
* 1 Sejarah
* 2 Paten
* 3 Aplikasi
* 4 Bagian 1: Sistem
stream 4,1 o Dasar
o Program 4,2 stream
o 4,3 Multiplexing
* 5 Bagian 2: Video
o Ruang warna 5,1
5,2 o Resolusi / Bitrate
o 5,3 Frame / gambar / blok tipe
+ 5.3.1 I-frame
+ 5.3.2 P-frame
+ 5.3.3 B-frame
+ 5.3.4 D-frame
o 5,4 Macroblocks
o 5,5 Motion vektor
o 5,6 DCT
o 5,7 kuantisasi
5,8 o Entropy coding
o 5,9 GOP konfigurasi untuk aplikasi khusus
* 6 Bagian 3: Audio
6,1 o Layer saya
6,2 o Layer II
+ 6.2.1 Sejarah / MUSICAM
+ 6.2.2 Detail teknis
+ 6.2.3 Kualitas
6,3 o Layer III/MP3
+ 6.3.1 Sejarah / ASPEC
+ 6.3.2 Detail teknis
+ 6.3.3 Kualitas
6,4 o MPEG-2 audio ekstensi
* 7 Bagian 4: kesesuaian pengujian
* 8 Bagian 5: Referensi software
* 9 Lihat pula
* 10 Referensi
* 11 Pranala luar
[sunting] Sejarah
Meniru pendekatan kolaboratif yang sukses dan teknologi kompresi yang dikembangkan oleh Joint Photographic Experts Group dan CCITT's Experts Group on Telephony (pencipta standar kompresi gambar JPEG dan H.261 untuk video conferencing standar masing-masing) dengan Moving Picture Experts Group (MPEG) kelompok kerja didirikan pada Januari 1988. MPEG dibentuk untuk menangani kebutuhan standar format video dan audio, dan membangun H.261 untuk mendapatkan kualitas yang lebih baik melalui penggunaan metode pengkodean yang lebih rumit. [2] [9]
Pengembangan MPEG-1 standar dimulai pada Mei 1988. 14 video dan 14 audio codec proposal yang diajukan oleh perusahaan-perusahaan individu dan institusi untuk evaluasi. Codec secara luas yang diuji untuk kompleksitas komputasi dan subjektif (dirasakan manusia) kualitas, pada kecepatan data 1,5 Mbit / s. Bitrate spesifik ini dipilih untuk pengiriman melalui jalur T-1/E-1 dan sebagai data perkiraan laju CD audio. [10] codec yang unggul dalam pengujian ini dipakai sebagai dasar untuk standar dan disempurnakan lebih lanjut, dengan tambahan fitur dan perbaikan lain yang tergabung dalam proses. [11]
Setelah 20 pertemuan kelompok penuh di berbagai kota di seluruh dunia, dan 4 ½ tahun pengembangan dan pengujian, standar terakhir (untuk bagian 1-3) telah disetujui pada awal bulan November 1992 dan diterbitkan beberapa bulan kemudian. [12] The melaporkan tanggal penyelesaian MPEG-1 standar, sangat bervariasi: sebagian besar rancangan standar lengkap diproduksi pada September 1990, dan sejak saat itu, hanya perubahan kecil diperkenalkan. [2] rancangan standar umum tersedia untuk pembelian. [13] standar selesai dengan pertemuan 6 November 1992 [14]. Berkeley Multimedia Plateau Research Group mengembangkan sebuah MPEG-1 decoder pada November 1992. [15] Pada Juli 1990, sebelum naskah pertama dari MPEG-1 standar bahkan sudah ditulis, pekerjaan dimulai pada standar kedua, MPEG-2, [ 16] dimaksudkan untuk memperpanjang MPEG-1 teknologi untuk menyediakan penuh video berkualitas penyiaran (seperti per CCIR 601) di bitrates tinggi (3-15 Mbit / s), dan mendukung interlaced video. [17] Karena sebagian kesamaan antara dua codec, MPEG-2 standar mencakup kompatibilitas mundur penuh dengan MPEG-1 video, maka setiap MPEG-2 decoder dapat memainkan MPEG-1 video. [18]
Terutama, MPEG-1 standar yang sangat ketat mendefinisikan bitstream, dan decoder fungsi, tetapi tidak menentukan berapa MPEG-1 encoding yang harus dilakukan (walaupun implementasi referensi disediakan dalam ISO/IEC-11172-5). [1] Ini berarti bahwa pengkodean MPEG-1 efisiensi secara drastis dapat bervariasi tergantung pada encoder digunakan, dan umumnya berarti encoders baru melakukan secara signifikan lebih baik daripada para pendahulu mereka. [19] Yang pertama tiga bagian (Sistem, Video dan Audio) dari ISO / IEC 11.172 orang diterbitkan pada bulan Agustus 1993. [20]
[sunting] Paten
MPEG-1 video dan Layer I / II audio yang mungkin dapat dilaksanakan tanpa membayar biaya lisensi. [21] [22] [23] [24] [25] ISO daftar satu database paten paten untuk ISO 11.172, AS 4.472.747 , yang berakhir pada tahun 2003. [26] yang hampir lengkap rancangan MPEG-1 standar yang tersedia secara publik sebagai ISO CD 11.172 [13] oleh 6 Desember 1991. [27] Karena umurnya, banyak paten di teknologi telah kedaluwarsa. Baik Kuro5hin artikel "Status Paten MPEG-1, H.261 dan MPEG-2" [28] atau benang pada gstreamer-devel [29] milis bisa daftar satu unexpired MPEG-1 video dan Layer saya / II audio paten. Lengkap MPEG-1 decoder dan encoder tidak dapat dilaksanakan bebas royalti karena ada perusahaan yang memerlukan biaya paten untuk implementasi dari MPEG-1 Layer 3 Audio Namun.
[sunting] Aplikasi
* Paling populer perangkat lunak komputer untuk pemutaran video termasuk MPEG-1 decoding, selain format yang didukung lainnya.
* Popularitas audio MP3 telah membentuk suatu basis terpasang besar hardware yang dapat playback MPEG-1 Audio (semua lapisan 3).
* "Hampir semua perangkat audio digital" dapat playback MPEG-1 Audio. [30] Banyak jutaan telah dijual to-date.
* Sebelum MPEG-2 menjadi meluas, banyak satelit digital / layanan TV kabel MPEG-1 digunakan secara eksklusif. [9] [19]
* Popularitas yang luas MPEG-2 dengan penyiaran berarti MPEG-1 yang dimainkan oleh sebagian besar kabel dan satelit digital set-top boxes, dan digital dan tape disc pemain, karena kompatibilitas mundur.
* MPEG-1 adalah eksklusif format video dan audio yang digunakan pada video CD (VCD), konsumen pertama format video digital, dan masih format yang sangat populer di seluruh dunia.
* The Super Video CD standar, berdasarkan VCD, menggunakan MPEG-1 Audio secara eksklusif, dan juga MPEG-2 video.
* DVD-Video format MPEG-2 menggunakan video terutama, tapi MPEG-1 dukungan secara eksplisit didefinisikan dalam standar.
* DVD Video standar yang diperlukan MPEG-1 Layer II PAL audio untuk negara, tapi telah diubah untuk membolehkan hanya AC-3/Dolby cakram digital. MPEG-1 Layer II audio masih diperbolehkan di DVD, meskipun baru ekstensi ke format, seperti MPEG Multichannel, jarang didukung.
* Kebanyakan DVD player juga mendukung Video CD dan MP3 CD playback, yang menggunakan MPEG-1.
* The internasional Digital Video Broadcasting (DVB) terutama menggunakan standar MPEG-1 Layer II audio, dan MPEG-2 video.
* The internasional Digital Audio Broadcasting (DAB) menggunakan standar MPEG-1 Layer II audio secara eksklusif, karena MP2's terutama kualitas tinggi, performa decoder sederhana persyaratan, dan toleransi kesalahan.
[sunting] Bagian 1: Sistem
Bagian 1 dari MPEG-1 sistem meliputi standar, dan didefinisikan dalam ISO/IEC-11172-1.
MPEG-1 Sistem logis menentukan tata letak dan metode yang digunakan untuk menyimpan disandikan audio, video, dan data lainnya ke dalam bitstream standar, dan untuk menjaga sinkronisasi antara isi yang berbeda. Format file ini khusus dirancang untuk media penyimpanan, dan pengiriman melalui saluran data, yang dianggap relatif dapat diandalkan. Terbatas perlindungan kesalahan didefinisikan oleh standar, dan kesalahan kecil dalam bitstream dapat menyebabkan cacat yang nyata.
Struktur ini kemudian menamai program MPEG stream: "The MPEG-1 Sistem desain pada dasarnya adalah identik dengan MPEG-2 Program Stream struktur." [31] Istilah ini lebih populer, tepat (membedakan itu dari transportasi MPEG streaming) dan akan digunakan di sini.
[sunting] Dasar stream
Dasar sungai (ES) adalah bitstreams mentah dari MPEG-1 audio dan video, output oleh encoder. File-file ini dapat didistribusikan pada mereka sendiri, seperti halnya dengan file MP3.
Selain itu, dasar sungai dapat dibuat lebih kuat dengan packetizing mereka, yaitu, membagi mereka ke dalam potongan independen, dan menambahkan cek redundansi siklik (CRC) checksum untuk setiap segmen untuk deteksi error. Ini adalah SD Packetized Stream (PES) struktur.
System Clock Reference (SCR) adalah nilai waktu disimpan dalam 33-bit header dari masing-masing ES, pada frekuensi / ketepatan dari 90 kHz, dengan 9-bit tambahan perpanjangan waktu tambahan yang menyimpan data dengan presisi dari 27 MHz. [ 32] [33] Ini adalah dimasukkan oleh encoder, berasal dari sistem time clock (STC). Dikodekan secara simultan stream audio dan video tidak akan memiliki nilai SCR identik Namun, karena buffering, encoding, jitter, dan penundaan lainnya.
[sunting] Program stream
Program Streaming (PS) yang bersangkutan dengan menggabungkan beberapa aliran packetized dasar (biasanya hanya satu PES audio dan video) ke dalam satu sungai, memastikan pengiriman simultan, dan memelihara sinkronisasi. Struktur PS dikenal sebagai multipleks, atau format wadah.
Waktu presentasi prangko (PTS) ada di PS untuk memperbaiki kesenjangan yang tak terelakkan antara audio dan video nilai SCR (waktu-base koreksi). 90 kHz PTS nilai dalam header PS memberitahu dekoder SCR video yang cocok dengan nilai-nilai yang nilai-nilai SCR audio. [32] PTS menentukan waktu untuk menampilkan sebagian dari sebuah program MPEG, dan juga digunakan oleh dekoder untuk menentukan kapan data dapat dibuang dari buffer. [34] Entah video atau audio akan tertunda oleh decoder sampai segmen yang sesuai tiba lain dan dapat diterjemahkan.
PTS yang tidak tepat dapat menimbulkan masalah. Decoders harus menerima program beberapa sungai yang telah concatenated (bergabung secara berurutan). Hal ini menyebabkan nilai-nilai PTS di tengah video untuk me-reset ke nol, yang kemudian mulai incrementing lagi. Seperti sampul PTS kesenjangan waktu dapat menyebabkan masalah yang harus ditangani secara khusus oleh decoder.
Decoding Sisa Stamps (DTS), tambahan, yang diperlukan karena B-frame. B-frame dalam video streaming, berdekatan frame harus dikodekan dan didekode out-of-order (memesan kembali frame). DTS sangat mirip dengan PTS, tapi bukan hanya penanganan bingkai yang berurutan, berisi waktu yang tepat-prangko untuk memberitahu dekoder kapan untuk decode dan menampilkan B-frame berikutnya (jenis frame dijelaskan di bawah), di depan para jangkar (P - atau I-) frame. Tanpa B-frame dalam video, PTS dan nilai-nilai DTS adalah identik. [35]
[sunting] Multiplexing
Menghasilkan PS, yang multiplekser yang akan Interleave (dua atau lebih) packetized dasar sungai. Hal ini dilakukan sehingga paket-paket dari aliran simultan dapat ditransfer melalui channel yang sama dan dijamin untuk kedua tiba di decoder tepat pada waktu yang sama. Ini adalah kasus time-division multiplexing.
Menentukan berapa banyak stream data dari masing-masing harus dalam setiap interleaved segmen (ukuran Interleave) adalah rumit, namun persyaratan penting. Interleaving yang tidak benar akan mengakibatkan atau underflows buffer overflows, sebagai penerima mendapatkan lebih dari satu aliran daripada yang dapat menyimpan (mis. audio), sebelum mendapat cukup data untuk men-decode aliran simultan lain (misalnya video). MPEG Video Buffer Verifier (VBV) membantu dalam menentukan apakah sebuah PS multiplexing dapat diterjemahkan oleh perangkat dengan throughput data tertentu rate dan ukuran buffer. [36] Ini memberikan umpan balik kepada muxer dan encoder, sehingga mereka dapat mengubah mux ukuran atau menyesuaikan bitrates seperti yang diperlukan untuk kepatuhan.
[sunting] Bagian 2: Video
Bagian 2 dari MPEG-1 standar mencakup video dan didefinisikan dalam ISO/IEC-11172-2. Desain sangat dipengaruhi oleh H.261.
MPEG-1 Video eksploitasi persepsi metode kompresi untuk mengurangi laju data yang dibutuhkan oleh sebuah video stream. Ini mengurangi atau membuang sama sekali informasi dalam frekuensi dan daerah-daerah tertentu dari gambar bahwa mata manusia memiliki kemampuan terbatas untuk memahami sepenuhnya. Ini juga menggunakan metode yang efektif untuk mengeksploitasi temporal (dari waktu ke waktu) dan spasial (di gambar) redundansi umum di video, untuk mencapai kompresi data yang lebih baik daripada yang mungkin sebaliknya. (Lihat: Video kompresi)
[sunting] Ruang warna
Contoh subsampling 4:2:0. Kedua pusat lingkaran tumpang tindih mewakili kroma kroma biru dan merah (warna) pixels, sementara 4 di luar lingkaran mewakili luma (kecerahan).
Sebelum encoding video ke MPEG-1, warna-ruang ditransformasikan menjadi Y'CbCr (Y '= Luma, Cb = Chroma Biru, Cr = Chroma Red). Luma (brightness, resolusi) yang disimpan secara terpisah dari kroma (warna, rona, fase) dan bahkan lebih jauh terpisah menjadi merah dan komponen biru. Kroma juga subsampled untuk 4:2:0, artinya itu hancur oleh satu setengah setengah secara vertikal dan horizontal, untuk hanya seperempat resolusi video. [1]
Karena mata manusia jauh kurang sensitif terhadap perubahan kecil pada warna daripada di kecerahan, kromanya subsampling adalah cara yang sangat efektif untuk mengurangi jumlah data video yang harus ditekan. Pada video dengan detail halus (kompleksitas spasial tinggi) ini dapat bermanifestasi sebagai aliasing kroma artefak. Dibandingkan dengan kompresi digital lainnya artefak, masalah ini tampaknya sangat jarang sumber jengkel.
Karena subsampling, video Y'CbCr harus selalu disimpan dengan menggunakan bahkan dimensi (dibagi dengan 2), jika tidak kroma mismatch ( "hantu") akan terjadi, dan akan muncul seperti bila warna depan, atau di belakang sisa video, banyak seperti bayangan.
Y'CbCr sering tidak akurat disebut YUV yang hanya digunakan dalam domain sinyal video analog. Demikian pula, istilah Chrominance pencahayaan dan sering digunakan sebagai pengganti (lebih akurat) istilah luma dan kroma.
[sunting] Resolusi / Bitrate
MPEG-1 mendukung resolusi hingga 4.095 × 4.095 (12-bit), dan bitrates sampai dengan 100 Mbit / s. [9]
MPEG-1 video yang paling sering dilihat menggunakan Sumber Input Format (SIF) resolusi: 352x240, 352x288, atau 320x240. Resolusi rendah ini, dikombinasikan dengan bitrate kurang dari 1,5 Mbit / s, membentuk apa yang dikenal sebagai parameter dibatasi bitstream (CPB), yang kemudian berganti nama menjadi "Rendah" (LL) profil dalam MPEG-2. Ini adalah minimum spesifikasi video decoder apapun harus mampu menangani, harus dipertimbangkan MPEG-1 sesuai. Hal ini dipilih untuk memberikan keseimbangan yang baik antara kualitas dan kinerja, yang memungkinkan penggunaan hardware yang cukup murah dari waktu. [2] [9]
[sunting] Frame / gambar / blok tipe
MPEG-1 memiliki beberapa frame / gambar jenis yang melayani berbagai tujuan. Yang paling penting, namun yang paling sederhana adalah I-frame.
[sunting] I-frame
I-frame adalah singkatan untuk intra-frame, disebut demikian karena mereka dapat diterjemahkan secara independen dari frame lain. Mereka mungkin juga dikenal sebagai I-gambar, atau keyframes karena mereka mirip fungsi ke tombol frame yang digunakan dalam animasi. Aku-frame dapat dipertimbangkan secara efektif identik dengan dasar gambar JPEG. [9]
Mencari kecepatan tinggi melalui MPEG-1 video hanya mungkin terdekat saya-frame. Ketika memotong video tidak mungkin untuk memulai pemutaran ulang segmen video sebelum pertama saya-bingkai dalam segmen (setidaknya tidak tanpa komputasi-intensif re-encoding). Untuk alasan ini, saya-frame-hanya MPEG video yang digunakan dalam aplikasi editing.
I-frame hanya kompresi sangat cepat, tetapi menghasilkan ukuran file yang sangat besar: faktor 3 × (atau lebih) lebih besar dari biasanya dikodekan MPEG-1 video, tergantung pada bagaimana kompleks temporal video tertentu. [2] I-frame hanya MPEG-1 video sangat mirip dengan MJPEG video. Sedemikian rupa sehingga kecepatan yang sangat tinggi dan secara teoritis lossless (pada kenyataannya, ada kesalahan pembulatan) konversi dapat dibuat dari satu format yang lain, memberikan beberapa pembatasan (warna ruang dan matriks kuantisasi) yang diikuti dalam penciptaan bitstream. [37]
Panjang antara I-frame dikenal sebagai kelompok gambar (GOP) ukuran. MPEG-1 paling sering menggunakan ukuran GOP 15-18. yaitu 1 I-frame untuk setiap 14-17 non-I-frame (beberapa kombinasi dari P-dan B-frame). Dengan lebih cerdas encoders, ukuran GOP dipilih secara dinamis, sampai beberapa pra-batas maksimum yang dipilih. [9]
Ditempatkan pada batas jumlah maksimum frame antara I-frame karena decoding complexing, decoder buffer ukuran, waktu pemulihan setelah kesalahan data, kemampuan mencari, dan akumulasi IDCT kesalahan dalam implementasi presisi rendah di hardware yang paling umum decoders (Lihat: IEEE -1.180).
[sunting] P-frame
P-frame adalah singkatan untuk Prediksi-frame. Mereka mungkin juga disebut maju-diperkirakan frame, atau antar-frame (B-frame juga antar-frame).
P-frame ada untuk meningkatkan kompresi dengan memanfaatkan temporal (dari waktu ke waktu) aliran video. P-frame hanya menyimpan perbedaan gambar dari frame (baik secara I-frame atau P-frame) segera sebelum itu (kerangka acuan ini juga disebut jangkar frame).
Perbedaan antara P-frame dan bingkai jangkar dihitung dengan menggunakan vektor gerak pada setiap macroblock dari frame (lihat di bawah). Vektor gerakan seperti data yang akan tertanam dalam P-frame untuk digunakan oleh decoder.
A P-frame dapat berisi sejumlah kode intra-blok, di samping ke depan diperkirakan setiap blok. [38]
Jika perubahan drastis video dari satu frame ke depan (seperti memotong), lebih efisien untuk menyalinnya sebagai I-frame.
[sunting] B-frame
B-frame singkatan dari dua arah-frame. Mereka mungkin juga akan dikenal sebagai diperkirakan mundur-frame atau B-gambar. B-frame cukup mirip dengan P-frame, kecuali mereka dapat membuat prediksi dengan menggunakan sebelumnya dan masa depan bingkai (yaitu dua jangkar frame).
Oleh karena itu diperlukan bagi pemain untuk decode pertama berikutnya aku-atau P-jangkar bingkai secara berurutan setelah B-frame, sebelum B-frame dapat diterjemahkan dan ditampilkan. Hal ini membuat B-frame yang sangat komputasi kompleks, memerlukan buffer data yang lebih besar, dan menyebabkan keterlambatan peningkatan pada kedua decoding dan selama encoding. Ini juga memerlukan waktu layar perangko (DTS) fitur dalam wadah / sistem aliran (lihat di atas). Dengan demikian, B-frame telah lama menjadi subyek banyak kontroversi, mereka sering dihindari dalam video, dan kadang-kadang tidak sepenuhnya didukung oleh hardware decoders.
Tidak ada bingkai lain yang diperkirakan dari B-frame. Karena ini, bitrate yang sangat rendah B-frame dapat disisipkan, di mana diperlukan, untuk membantu mengendalikan bitrate. Jika ini dilakukan dengan P-frame, P-frame masa depan akan diprediksi dari itu dan akan menurunkan kualitas keseluruhan urutan. Namun, sama halnya, masa depan P-frame masih harus menyandikan semua perubahan antara itu dan sebelumnya saya-atau P-jangkar frame (untuk kedua kalinya) di samping banyak perubahan yang dikodekan dalam B-frame. B-frame juga dapat bermanfaat dalam video di mana latar belakang di balik sebuah objek yang terungkap selama beberapa frame, atau dalam transisi memudar, seperti perubahan adegan. [2] [9]
A B-frame dapat berisi sejumlah kode intra-blok dan ke depan diperkirakan blok, di samping mundur-prediksi, atau diperkirakan bidirectionally blok. [9] [38]
[sunting] D-frame
MPEG-1 memiliki tipe frame yang unik yang tidak ditemukan di kemudian hari standar video. D-frame atau DC-gambar foto independen (intra-frame) yang telah dikodekan DC-saja (AC koefisien DCT dihapus-lihat di bawah) dan karenanya kualitas sangat rendah. D-frame tidak pernah direferensikan oleh I-, P-atau B-frame. D-bingkai hanya digunakan untuk preview video yang cepat, misalnya ketika mencari melalui video dengan kecepatan tinggi. [2]
Mengingat cukup tinggi kinerja peralatan decoding, fitur ini dapat diperkirakan oleh decoding I-frame instead. Ini memberikan preview kualitas yang lebih tinggi, dan tanpa perlu untuk D-frame mengambil tempat di sungai, namun tidak memperbaiki kualitas video.
[sunting] Macroblocks
Artikel utama: Macroblock
MPEG-1 beroperasi di video dalam serangkaian 8x8 blok untuk kuantisasi. Namun, karena chroma (warna) adalah subsampled oleh faktor 4, masing-masing sepasang (merah dan biru) kroma 4 blok sesuai dengan blok luma berbeda. Set dari 6 blok, dengan resolusi 16x16, disebut macroblock.
Sebuah macroblock adalah unit terkecil independen (warna) video. Motion vektor (lihat di bawah) beroperasi hanya pada tingkat macroblock.
Jika tinggi dan / atau lebar dari video tidak tepat kelipatan dari 16, baris penuh macroblocks masih harus dikodekan (meskipun tidak ditampilkan) untuk menyimpan sisa gambar (macroblock padding). Limbah ini sejumlah besar data dalam bitstream, dan harus benar-benar dihindari.
Beberapa decoders akan juga tidak benar menangani video dengan macroblocks parsial, sehingga terlihat artefak.
[sunting] Motion vektor
Untuk mengurangi jumlah redundansi spasial dalam video, hanya blok perubahan itu diperbarui, (hingga maksimum ukuran GOP). Ini dikenal sebagai pengisian bersyarat. Namun, hal ini sangat tidak efektif dengan sendirinya. Gerakan benda, dan / atau kamera dapat menyebabkan sebagian besar frame yang perlu diperbarui, meskipun hanya posisi objek yang sebelumnya telah berubah disandikan. Melalui estimasi gerak pembuat sandi dapat mengkompensasi gerakan ini dan menghapus sejumlah besar informasi yang berlebihan.
The encoder membandingkan frame dengan bagian-bagian yang berdekatan video dari frame jangkar (sebelumnya saya-atau P-frame) dalam pola berlian, sampai dengan (encoder-spesifik) jari-jari yang telah ditetapkan batas dari daerah macroblock saat ini. Bila sebuah pertandingan yang ditemukan, hanya arah dan jarak (yaitu vektor dari gerak) dari sebelumnya area video macroblock saat ini harus dikodekan ke dalam antar-frame (P-atau B-frame). Kebalikan dari proses ini, dilakukan oleh dekoder untuk merekonstruksi gambar, disebut gerak kompensasi.
Sebuah prediksi pertandingan jarang macroblock gambar saat ini dengan sempurna, namun. Perbedaan antara pencocokan yang diperkirakan daerah, dan bingkai nyata / macroblock disebut kesalahan prediksi. Semakin besar kesalahan, semakin banyak tambahan data harus dikodekan dalam bingkai. Untuk kompresi video efisien, sangatlah penting bahwa encoder mampu secara efektif dan tepat gerakan melakukan estimasi.
Gerak vektor catatan jarak antara dua bidang pada layar didasarkan pada jumlah piksel (disebut pels). MPEG-1 video menggunakan gerakan vektor (MV) ketepatan dari satu setengah dari satu pixel, atau setengah-Pel. Ketepatan yang lebih halus dari MVS, semakin akurat pertandingan cenderung, dan kompresi lebih efisien. Ada trade-off presisi yang lebih tinggi, namun. MVS halus menghasilkan ukuran data yang lebih besar, sebagai angka yang lebih besar harus disimpan dalam rangka untuk setiap MV, meningkat coding semakin tingginya tingkat kompleksitas sebagai interpolasi di macroblock diperlukan baik untuk encoder dan decoder, dan semakin berkurang (minimal keuntungan) dengan MVS presisi tinggi. Setengah-Pel terpilih sebagai trade-off yang ideal. (Lihat: qpel)
Karena tetangga macroblocks cenderung memiliki gerakan sangat mirip vektor, informasi berlebihan ini dapat dikompres cukup efektif dengan menjadi disimpan DPCM-disandikan. Hanya (lebih kecil) jumlah perbedaan antara MVS untuk setiap macroblock perlu disimpan di final bitstream.
P-frame punya 1 gerakan vektor per macroblock, relatif terhadap bingkai jangkar sebelumnya. B-frame, bagaimanapun, dapat menggunakan 2 gerakan vektor; satu dari jangkar sebelumnya frame, dan satu dari masa depan bingkai jangkar. [38]
Parsial macroblocks, dan batas hitam / bar dikodekan ke dalam video yang tidak jatuh persis di batas macroblock, menyebabkan malapetaka dengan prediksi gerakan. Blok padding / informasi perbatasan mencegah macroblock dari erat sesuai dengan wilayah lain video, dan sebagainya, secara signifikan lebih besar kesalahan prediksi informasi harus dikodekan untuk setiap salah satu dari beberapa lusin parsial layar macroblocks sepanjang perbatasan. DCT encoding dan kuantisasi (lihat di bawah) juga tidak hampir sama efektif bila ada besar / kontras gambar yang tajam dalam satu blok.
Yang lebih serius dengan adanya masalah macroblocks yang mengandung signifikan, acak, tepi suara, di mana gambar transisi ke (biasanya) hitam. Semua masalah di atas juga berlaku untuk tepi kebisingan. Selain itu, tambah keacakan hanya mungkin untuk menekan secara signifikan. Semua efek ini akan menurunkan kualitas (atau meningkatkan bitrate) dari video secara substansial.
[sunting] DCT
Setiap blok 8x8 dikodekan dengan terlebih dahulu menerapkan Diskrit Teruskan cosine Transform (FDCT) dan kemudian proses kuantisasi. Proses yang FDCT (dengan sendirinya) secara teori lossless, dan dapat dibalikkan dengan menerapkan suatu Inverse DCT (IDCT) untuk mereproduksi nilai-nilai asli (dalam hal tidak adanya kuantisasi dan kesalahan pembulatan). Dalam kenyataannya, ada beberapa (kadang-kadang besar) kesalahan pembulatan diperkenalkan baik oleh kuantisasi dalam encoder (seperti dijelaskan dalam bagian berikutnya) dan oleh pendekatan IDCT kesalahan dalam decoder. Diperbolehkan minimum akurasi perkiraan decoder IDCT didefinisikan oleh ISO / IEC 23002-1. (Sebelum 2006, hal itu ditentukan oleh IEEE 1180-1990.)
Proses yang FDCT mengubah blok 8x8 piksel tidak dikompresi nilai (kecerahan atau perbedaan warna nilai-nilai) ke dalam sebuah array diindeks 8x8 frekuensi nilai-nilai koefisien. Salah satunya adalah (statistik tinggi varians) koefisien DC, yang mewakili nilai rata-rata dari seluruh 8x8 blok. 63 lainnya koefisien adalah statistik koefisien AC lebih kecil, yang positif atau negatif sinusoidal masing-masing mewakili nilai penyimpangan dari nilai blok flat diwakili oleh koefisien DC.
Contoh yang disandikan blok 8x8 FDCT:
\ begin (bmatrix) -415 & -30 & -61 & 27 & 56 & -20 & -2 & 0 \ \ 4 & -22 & -61 & 10 & 13 & -7 & -9 & 5 \ \ -47 & 7 & 77 & -25 & -29 & 10 & 5 & -6 \ \ -49 & 12 & 34 & -15 & -10 & 6 & 2 & 2 \ \ 12 & -7 & -13 & -4 & -2 & 2 & -3 & 3 \ \ -8 & 3 & 2 & -6 & -2 & 1 & 4 & 2 \ \ -1 & 0 & 0 & -2 & -1 & -3 & 4 & -- 1 \ \ 0 & 0 & -1 & -4 & -1 & 0 & 1 & 2 \ end (bmatrix)
Karena nilai koefisien DC secara statistik berkorelasi dari satu blok ke berikutnya, itu DPCM dikompresi menggunakan enkoding. Hanya (lebih kecil) jumlah masing-masing DC perbedaan antara nilai dan nilai koefisien DC di blok ke kiri perlu diwakili di final bitstream.
Selain itu, konversi frekuensi dilakukan dengan menerapkan DCT statistik decorrelation menyediakan fungsi yang efisien untuk memusatkan sinyal menjadi lebih sedikit tinggi nilai-nilai amplitudo sebelum menerapkan kuantisasi (lihat di bawah).
[sunting] kuantisasi
Kuantisasi (data digital) adalah, pada dasarnya, proses mengurangi akurasi sinyal, dengan membaginya menjadi beberapa langkah lebih besar ukuran (yaitu menemukan beberapa terdekat, dan membuang sisanya / modulus).
Kerangka tingkat quantizer adalah angka dari 0 hingga 31 (walaupun encoders biasanya akan menghilangkan / menonaktifkan beberapa nilai-nilai ekstrim) yang menentukan seberapa banyak informasi yang akan dihapus dari frame tertentu. Kerangka tingkat quantizer adalah dinamis baik dipilih oleh encoder untuk mempertahankan pengguna tertentu ditentukan kecepatan bit, atau (lebih jarang) secara langsung ditentukan oleh pengguna.
Berlawanan dengan kepercayaan populer, yang tetap tingkat frame-quantizer (ditentukan oleh pengguna) tidak memberikan tingkat kualitas konstan. Sebaliknya, ini adalah metrik yang sewenang-wenang yang akan memberikan tingkat yang agak berbeda-beda kualitas, tergantung pada isi dari setiap frame. Mengingat dua file yang identik ukuran, yang disandikan pada bitrate rata-rata akan terlihat lebih baik daripada yang disandikan dengan quantizer tetap (variabel bitrate). Constant enkoding quantizer dapat digunakan, bagaimanapun, secara akurat menentukan minimum dan maksimum bitrates mungkin untuk pengkodean video tertentu.
Sebuah matriks kuantisasi merupakan serangkaian 64-angka (0-255) yang menceritakan betapa pembuat sandi relatif penting atau tidak penting setiap potongan informasi visual. Setiap angka dalam matriks sesuai dengan komponen frekuensi tertentu dari gambar video.
Contoh matriks kuantisasi:
\ begin (bmatrix) 16 & 11 & 10 & 16 & 24 & 40 & 51 & 61 \ \ 12 & 12 & 14 & 19 & 26 & 58 & 60 & 55 \ \ 14 & 13 & 16 & 24 & 40 & 57 & 69 & 56 \ \ 14 & 17 & 22 & 29 & 51 & 87 & 80 & 62 \ \ 18 & 22 & 37 & 56 & 68 & 109 & 103 & 77 \ \ 24 & 35 & 55 & 64 & 81 & 104 & 113 & 92 \ \ 49 & 64 & 78 & 87 & 103 & 121 & 120 & 101 \ \ 72 & 92 & 95 & 98 & 112 & 100 & 103 & 99 \ end (bmatrix)
Kuantisasi dilakukan dengan mengambil masing-masing 64 nilai frekuensi DCT blok, membagi mereka dengan tingkat frame-quantizer, kemudian membagi mereka dengan nilai-nilai dalam matriks kuantisasi. Akhirnya, hasilnya dibulatkan ke bawah. Ini secara signifikan mengurangi, atau sama sekali menghilangkan, informasi dalam beberapa komponen frekuensi gambar. Biasanya, informasi frekuensi tinggi kurang visual penting, dan jadi frekuensi tinggi jauh lebih kuat dikuantisasi (drastis dikurangi). MPEG-1 benar-benar menggunakan kuantisasi dua matriks, satu untuk intra-blok (I-blok) dan satu lagi untuk antar-blok (P-dan B-blok), jadi kuantisasi dari berbagai jenis blok dapat dilakukan secara mandiri, dan sebagainya, lebih efektif . [2]
Proses kuantisasi ini biasanya mengurangi sejumlah besar AC koefisien ke nol, (dikenal sebagai data tipis) yang kemudian dapat ditekan dengan lebih efisien pengkodean entropi (lossless compression) pada langkah berikutnya.
Contoh blok DCT terkuantisasi:
\ begin (bmatrix) -3 & -26 & -6 & 2 & 2 & -1 & 0 & 0 \ \ 0 & -2 & -4 & 1 & 1 & 0 & 0 & 0 \ \ -3 & 1 & 5 & -1 & -1 & 0 & 0 & 0 \ \ -4 & 1 & 2 & -1 & 0 & 0 & 0 & 0 \ \ 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \ \ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \ \ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \ \ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \ end (bmatrix)
Kuantisasi menghilangkan sejumlah besar data, dan merupakan langkah utama dalam pengolahan lossy MPEG-1 encoding video. Ini juga merupakan sumber utama dari sebagian besar MPEG-1 kompresi video artefak, seperti blockiness, warna pita, suara, dering, perubahan warna, et al. Ini terjadi ketika video dikodekan dengan kecepatan bit yang tidak mencukupi, dan encoder karena itu terpaksa menggunakan frame tinggi tingkat quantizers (kuat kuantisasi) melalui banyak dari video.
[sunting] Entropy coding
Beberapa langkah dalam pengkodean MPEG-1 video adalah lossless, yang berarti mereka akan dibalikkan atas decoding, untuk menghasilkan yang persis sama (asli) nilai. Karena ini langkah kompresi data lossless tidak menambahkan suara ke dalam, atau mengubah isi (tidak seperti kuantisasi), kadang-kadang disebut sebagai pengkodean tak bersuara. [30] Karena kompresi lossless bertujuan untuk menghilangkan redundansi sebanyak mungkin, diketahui sebagai pengkodean entropi dalam bidang teori informasi.
DCT blok yang cenderung memiliki frekuensi yang paling penting ke arah sudut kiri atas. Koefisien nol cenderung ke arah kanan bawah. Kompresi maksimum dapat dicapai oleh zig-zag scanning dari blok DCT mulai dari kiri atas dan menggunakan Run-length encoding teknik.
Koefisien DC dan gerakan vektor adalah DPCM-disandikan.
Run-length encoding (RLE) adalah metode yang sangat sederhana dari penekanan pengulangan.
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar