Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Bagian kedua: Cara kerja codec video

Raster apa pun ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ dapat direpresentasikan dalam bentuk matriks dua dimensi. Kalau bicara soal warna, idenya bisa dikembangkan dengan melihat gambar sebagai matriks tiga dimensi, yang menggunakan dimensi tambahan untuk menyimpan data untuk setiap warna.

Jika kita menganggap warna akhir sebagai kombinasi dari apa yang disebut. warna primer (merah, hijau dan biru), dalam matriks tiga dimensi kita mendefinisikan tiga bidang: yang pertama untuk merah, yang kedua untuk hijau dan yang terakhir untuk biru.
Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar
Kami akan menyebut setiap titik dalam matriks ini sebagai piksel (elemen gambar). Setiap piksel berisi informasi tentang intensitas (biasanya dalam bentuk nilai numerik) setiap warna. Misalnya, piksel merah artinya mengandung 0 hijau, 0 biru dan maksimal merah. Piksel merah muda dapat dibentuk dengan menggunakan kombinasi tiga warna. Menggunakan rentang numerik dari 0 hingga 255, piksel merah muda didefinisikan sebagai Merah = 255, Hijau = 192 ΠΈ Biru = 203.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Artikel ini diterbitkan dengan dukungan EDISON.

Kami sedang berkembang aplikasi untuk pengawasan video, streaming video, dan kami juga bertunangan rekaman video di ruang bedah.

Cara alternatif untuk menyandikan gambar berwarna

Ada banyak model lain untuk merepresentasikan warna-warna yang membentuk suatu gambar. Misalnya, Anda dapat menggunakan palet yang diindeks, yang hanya memerlukan satu byte untuk mewakili setiap piksel, bukan tiga byte yang diperlukan saat menggunakan model RGB. Dalam model seperti itu, dimungkinkan untuk menggunakan matriks 2D dan bukan matriks 3D untuk mewakili setiap warna. Ini menghemat memori, namun memberikan gamut warna yang lebih kecil.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

RGB

Misalnya, lihat gambar di bawah ini. Wajah pertama dicat seluruhnya. Bidang lainnya adalah bidang merah, hijau, dan biru (intensitas warna terkait ditampilkan dalam skala abu-abu).

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Kita melihat bahwa rona merah pada aslinya akan berada di tempat yang sama di mana bagian paling terang dari wajah kedua diamati. Sedangkan kontribusi warna biru terutama terlihat hanya pada mata Mario (wajah terakhir) dan elemen pakaiannya. Perhatikan di mana ketiga bidang warna memberikan kontribusi paling sedikit (bagian paling gelap dari gambar) - kumis Mario.

Untuk menyimpan intensitas setiap warna, diperlukan sejumlah bit - jumlah ini disebut kedalaman sedikit. Misalkan 8 bit digunakan (berdasarkan nilai 0 hingga 255) per bidang warna. Kemudian kita memiliki kedalaman warna 24 bit (8 bit * 3 bidang R/G/B).

Sifat lain dari suatu gambar adalah Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, yang merupakan jumlah piksel dalam satu dimensi. Sering dilambangkan sebagai lebar Γ— tinggi, seperti pada contoh gambar 4 kali 4 di bawah ini.
Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Properti lain yang kami tangani saat bekerja dengan gambar/video adalah rasio aspek, menggambarkan hubungan proporsional normal antara lebar dan tinggi suatu gambar atau piksel.

Ketika mereka mengatakan bahwa film atau gambar tertentu berukuran 16 kali 9, biasanya yang mereka maksud adalah rasio aspek tampilan (DAR - dari Rasio Aspek Tampilan). Namun, terkadang ada perbedaan bentuk masing-masing piksel - dalam hal ini yang sedang kita bicarakan rasio piksel (PAR - dari Rasio Aspek Piksel).

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Catatan untuk nyonya rumah: DVD соотвСтствуСт DAR 4 hingga 3

Meskipun resolusi DVD sebenarnya adalah 704x480, namun tetap mempertahankan rasio aspek 4:3 karena PAR-nya adalah 10:11 (704x10 / 480x11).

Dan akhirnya, kita bisa menentukannya Video seperti rangkaian n bingkai untuk periode tersebut waktu, yang dapat dianggap sebagai dimensi tambahan. A n maka adalah frame rate atau jumlah frame per detik (FPS - dari Bingkai per detik).

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Jumlah bit per detik yang diperlukan untuk menampilkan video adalah miliknya kecepatan transmisi - kecepatan bit.

bitrate = lebar * tinggi * kedalaman bit * frame per detik

Misalnya, video 30 fps, 24 bps, 480x240 memerlukan 82,944,000 bps atau 82,944 Mbps (30x480x240x24) - namun itu jika tidak ada metode kompresi yang digunakan.

Jika kecepatan transfer hampir konstan, lalu disebut kecepatan transmisi konstan (CBR - dari kecepatan bit konstan). Namun bisa juga bermacam-macam, dalam hal ini disebut tingkat baud variabel (VBR - dari kecepatan bit variabel).

Grafik ini menunjukkan VBR terbatas, di mana tidak terlalu banyak bit yang terbuang dalam kasus bingkai yang benar-benar gelap.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Para insinyur awalnya mengembangkan metode untuk menggandakan frame rate yang dirasakan dari tampilan video tanpa menggunakan bandwidth tambahan. Metode ini dikenal sebagai video interlaced; Pada dasarnya, ia mengirimkan separuh layar di "bingkai" pertama dan separuh lainnya di "bingkai" berikutnya.

Saat ini, sebagian besar adegan dirender menggunakan teknologi pemindaian progresif. Ini adalah metode menampilkan, menyimpan atau mentransmisikan gambar bergerak di mana semua garis dari setiap frame digambar secara berurutan.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Dengan baik! Sekarang kita mengetahui bagaimana sebuah gambar direpresentasikan secara digital, bagaimana warnanya diatur, berapa bit per detik yang kita habiskan untuk menampilkan video, apakah bit ratenya konstan (CBR) atau variabel (VBR). Kita mengetahui tentang resolusi tertentu dengan menggunakan frame rate tertentu, kita mengenal banyak istilah lain, seperti video interlaced, PAR, dan beberapa lainnya.

Menghapus redundansi

Diketahui bahwa video tanpa kompresi tidak dapat digunakan secara normal. Video berdurasi satu jam dengan resolusi 720p dan 30 frame per detik akan memakan 278 GB. Kita mendapatkan nilai ini dengan mengalikan 1280 x 720 x 24 x 30 x 3600 (lebar, tinggi, bit per piksel, FPS, dan waktu dalam hitungan detik).

Menggunakan algoritma kompresi lossless, seperti DEFLATE (digunakan di PKZIP, Gzip dan PNG), tidak akan cukup mengurangi bandwidth yang dibutuhkan. Kita harus mencari cara lain untuk mengompresi video.

Untuk melakukan ini, Anda dapat menggunakan fitur visi kami. Kami lebih baik dalam membedakan kecerahan daripada warna. Video adalah serangkaian gambar berurutan yang berulang seiring waktu. Ada perbedaan kecil antara frame yang berdekatan dalam adegan yang sama. Selain itu, setiap bingkai berisi banyak area yang menggunakan warna yang sama (atau serupa).

Warna, kecerahan dan mata kita

Mata kita lebih sensitif terhadap kecerahan daripada warna. Anda dapat melihatnya sendiri dengan melihat gambar ini.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Jika Anda tidak melihatnya di bagian kiri gambar, warna kotak A ΠΈ B sebenarnya sama, maka itu normal. Otak kita memaksa kita untuk lebih memperhatikan cahaya dan bayangan daripada warna. Di sisi kanan antara kotak yang ditunjuk ada jumper dengan warna yang sama - sehingga kita (yaitu otak kita) dengan mudah menentukan bahwa sebenarnya warnanya sama.

Mari kita lihat (dengan cara yang sederhana) cara kerja mata kita. Mata merupakan organ kompleks yang terdiri dari banyak bagian. Namun, kami paling tertarik pada kerucut dan batang. Mata mengandung sekitar 120 juta batang dan 6 juta kerucut.

Mari kita pertimbangkan persepsi warna dan kecerahan sebagai fungsi terpisah dari bagian mata tertentu (sebenarnya, semuanya agak lebih rumit, tetapi kami akan menyederhanakannya). Sel batang terutama bertanggung jawab atas kecerahan, sedangkan sel kerucut bertanggung jawab atas warna. Kerucut dibagi menjadi tiga jenis, tergantung pigmen yang dikandungnya: Kerucut S (biru), Kerucut M (hijau), dan Kerucut L (merah).

Karena kita memiliki lebih banyak batang (kecerahan) daripada kerucut (warna), kita dapat menyimpulkan bahwa kita lebih mampu membedakan transisi antara gelap dan terang daripada warna.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Fitur Sensitivitas Kontras

Para peneliti di bidang psikologi eksperimental dan banyak bidang lainnya telah mengembangkan banyak teori tentang penglihatan manusia. Dan salah satunya dipanggil fungsi sensitivitas kontras. Mereka terkait dengan iluminasi spasial dan temporal. Singkatnya, ini tentang berapa banyak perubahan yang diperlukan sebelum pengamat menyadarinya. Perhatikan bentuk jamak dari kata β€œfungsi”. Hal ini disebabkan oleh fakta bahwa kita dapat mengukur fungsi sensitivitas kontras tidak hanya untuk gambar hitam putih, tetapi juga untuk gambar berwarna. Hasil percobaan ini menunjukkan bahwa dalam banyak kasus, mata kita lebih sensitif terhadap kecerahan dibandingkan warna.

Karena kita tahu bahwa kita lebih sensitif terhadap kecerahan gambar, kita dapat mencoba menggunakan fakta ini.

Model warna

Kami menemukan sedikit cara bekerja dengan gambar berwarna menggunakan skema RGB. Ada model lain juga. Ada model yang memisahkan luminansi dari kroma dan dikenal sebagai YCbCr. Omong-omong, ada model lain yang membuat pembagian serupa, tapi kami hanya akan mempertimbangkan yang ini.

Dalam model warna ini Y adalah representasi kecerahan, dan juga menggunakan dua saluran warna: Cb (biru kaya) dan Cr (merah kaya). YCbCr dapat diturunkan dari RGB, dan konversi sebaliknya juga dimungkinkan. Dengan menggunakan model ini kita dapat membuat gambar penuh warna seperti yang kita lihat di bawah ini:

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Konversi antara YCbCr dan RGB

Seseorang akan keberatan: bagaimana mungkin mendapatkan semua warna jika hijau tidak digunakan?

Untuk menjawab pertanyaan ini, mari kita ubah RGB ke YCbCr. Mari kita gunakan koefisien yang diadopsi dalam standar BT.601, yang direkomendasikan oleh unit ITU-R. Divisi ini menetapkan standar untuk video digital. Misalnya: apa itu 4K? Berapa kecepatan bingkai, resolusi, model warna?

Pertama mari kita hitung kecerahannya. Mari kita gunakan konstanta yang diusulkan oleh ITU dan ganti nilai RGB.

Y = 0.299R + 0.587G + 0.114B

Setelah kita mendapatkan kecerahannya, kita akan memisahkan warna biru dan merah:

Cb = 0.564(B - Y)

Cr = 0.713(R - Y)

Dan kita juga dapat mengkonversi kembali dan bahkan menjadi ramah lingkungan menggunakan YCbCr:

R = Y + 1.402Cr

B = Y + 1.772Cb

G = Y - 0.344Cb - 0.714Cr

Biasanya, tampilan (monitor, TV, layar, dll.) hanya menggunakan model RGB. Namun model ini dapat diatur dengan berbagai cara:

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Subsampling warna

Dengan gambar yang direpresentasikan sebagai kombinasi luminance dan chrominance, kita dapat mengeksploitasi sensitivitas sistem visual manusia yang lebih besar terhadap luminance dibandingkan chrominance dengan menghilangkan informasi secara selektif. Subsampling kroma adalah metode pengkodean gambar menggunakan resolusi kroma yang lebih kecil dibandingkan luminansi.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Berapa yang diperbolehkan untuk mengurangi resolusi warna?! Ternyata sudah ada beberapa diagram yang menjelaskan cara menangani resolusi dan penggabungan (Warna yang Dihasilkan = Y + Cb + Cr).

Skema ini dikenal sebagai sistem downsampling dan dinyatakan sebagai rasio 3 kali lipat - a:x:y, yang menentukan jumlah sampel sinyal pencahayaan dan perbedaan warna.

a β€” standar pengambilan sampel horizontal (biasanya sama dengan 4)
x β€” jumlah sampel kroma pada baris pertama piksel (resolusi horizontal relatif terhadap a)
y β€” jumlah perubahan sampel kroma antara piksel baris pertama dan kedua.

Pengecualiannya adalah 4:1:0, menyediakan satu sampel kroma di setiap blok resolusi pencahayaan 4-kali-4.

Skema umum yang digunakan dalam codec modern:

  • 4:4:4 (tidak ada downsampling)
  • 4:2:2
  • 4:1:1
  • 4:2:0
  • 4:1:0
  • 3:1:1

YCbCr 4:2:0 - contoh fusi

Berikut adalah gambar yang digabungkan menggunakan YCbCr 4:2:0. Perhatikan bahwa kami hanya menghabiskan 12 bit per piksel.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Ini adalah tampilan gambar yang sama, dikodekan dengan jenis subsampling warna utama. Baris pertama adalah YCbCr terakhir, baris paling bawah menunjukkan resolusi kroma. Hasil yang sangat lumayan, mengingat sedikit penurunan kualitas.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Ingatkah saat kami menghitung ruang penyimpanan sebesar 278 GB untuk menyimpan file video berdurasi satu jam dengan resolusi 720p dan 30 frame per detik? Jika kita menggunakan YCbCr 4:2:0, maka ukuran ini akan berkurang setengahnya - 139 GB. Sejauh ini, masih jauh dari hasil yang dapat diterima.

Anda bisa mendapatkan sendiri histogram YCbCr menggunakan FFmpeg. Pada gambar ini, warna biru mendominasi warna merah, yang terlihat jelas pada histogram itu sendiri.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Warna, kecerahan, gamut warna - ulasan video

Kami merekomendasikan menonton video yang luar biasa ini. Ini menjelaskan apa itu kecerahan, dan secara umum semua titiknya bertitik Ρ‘ tentang kecerahan dan warna.

Jenis Bingkai

Mari kita lanjutkan. Mari kita coba menghilangkan redundansi waktu. Namun pertama-tama, mari kita definisikan beberapa terminologi dasar. Katakanlah kita memiliki film dengan 30 frame per detik, berikut 4 frame pertamanya:

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Kita bisa melihat banyak pengulangan dalam bingkai: misalnya, latar belakang biru yang tidak berubah dari bingkai ke bingkai. Untuk mengatasi masalah ini, secara abstrak kita dapat mengklasifikasikannya menjadi tiga jenis frame.

bingkai-I (Ibingkai ntro)

I-frame (bingkai referensi, bingkai kunci, bingkai dalam) berdiri sendiri. Terlepas dari apa yang ingin Anda visualisasikan, I-frame pada dasarnya adalah foto statis. Frame pertama biasanya merupakan frame-I, namun kita akan secara teratur mengamati frame-I bahkan di antara frame-frame pertama.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

bingkai-P (PBingkai yang diprediksi)

Bingkai-P (bingkai prediktif) memanfaatkan fakta bahwa hampir selalu gambar saat ini dapat direproduksi menggunakan bingkai sebelumnya. Misalnya saja pada frame kedua yang berubah hanyalah bola yang bergerak maju. Kita bisa mendapatkan frame 2 hanya dengan sedikit memodifikasi frame 1, hanya menggunakan perbedaan antara frame-frame tersebut. Untuk membuat frame 2, kita mengacu pada frame 1 sebelumnya.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar ← Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

bingkai B (Bi-Bingkai prediktif)

Bagaimana dengan tautan tidak hanya ke frame masa lalu, tetapi juga ke frame masa depan untuk memberikan kompresi yang lebih baik?! Ini pada dasarnya adalah B-frame (bingkai dua arah).

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar ← Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar β†’ Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Penarikan menengah

Jenis bingkai ini digunakan untuk memberikan kompresi terbaik. Kita akan melihat bagaimana hal ini terjadi di bagian selanjutnya. Untuk saat ini, mari kita perhatikan bahwa yang paling "mahal" dalam hal konsumsi memori adalah I-frame, P-frame jauh lebih murah, tetapi opsi yang paling menguntungkan untuk video adalah B-frame.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Redundansi temporal (prediksi antar-frame)

Mari kita lihat pilihan apa yang kita miliki untuk meminimalkan pengulangan dari waktu ke waktu. Kita dapat mengatasi redundansi jenis ini dengan menggunakan metode prediksi silang.

Kami akan mencoba menggunakan bit sesedikit mungkin untuk mengkodekan urutan frame 0 dan 1.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Kami bisa memproduksi pengurangan, kita cukup mengurangi frame 1 dari frame 0. Kita mendapatkan frame 1, hanya menggunakan selisih antara frame tersebut dan frame sebelumnya, sebenarnya kita hanya mengkodekan sisa yang dihasilkan.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Tetapi bagaimana jika saya memberi tahu Anda bahwa ada metode yang lebih baik yang menggunakan bit lebih sedikit?! Pertama, mari kita pecahkan frame 0 menjadi grid bening yang terdiri dari blok-blok. Lalu kita akan mencoba mencocokkan blok dari frame 0 dengan frame 1. Dengan kata lain, kita akan memperkirakan pergerakan antar frame.

Dari Wikipedia - kompensasi gerakan blok

Kompensasi gerak blok membagi frame saat ini menjadi blok-blok yang tidak tumpang tindih dan vektor kompensasi gerak melaporkan asal usul blok-blok tersebut (kesalahpahaman yang umum adalah bahwa sebelumnya bingkai dibagi menjadi blok-blok yang tidak tumpang tindih, dan vektor kompensasi gerak menunjukkan ke mana perginya blok-blok tersebut. Namun kenyataannya, yang terjadi adalah sebaliknya - bukan frame sebelumnya yang dianalisis, melainkan frame berikutnya; tidak jelas ke mana balok-balok tersebut bergerak, tetapi dari mana asalnya). Biasanya blok sumber tumpang tindih dalam bingkai sumber. Beberapa algoritma kompresi video merakit frame saat ini dari bagian-bagian yang tidak hanya satu, tetapi beberapa frame yang dikirimkan sebelumnya.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Selama proses evaluasi, kita melihat bahwa bola telah bergerak dari (x= 0, y=25) sampai (x= 6, y=26), nilai x ΠΈ y menentukan vektor gerak. Langkah lain yang dapat kita lakukan untuk melestarikan bit adalah dengan mengkodekan hanya perbedaan vektor gerak antara posisi blok terakhir dan prediksi, sehingga vektor gerak akhir adalah (x=6-0=6, y=26-25=1 ).

Dalam situasi nyata, bola ini akan terbagi menjadi n blok, tapi ini tidak mengubah inti permasalahan.

Objek dalam bingkai bergerak dalam tiga dimensi, sehingga saat bola bergerak, secara visual ia bisa menjadi lebih kecil (atau lebih besar jika bergerak ke arah penonton). Wajar jika tidak akan ada kecocokan sempurna antar blok. Berikut adalah gabungan perkiraan kami dan gambaran sebenarnya.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Namun kita melihat bahwa saat kita menggunakan estimasi gerakan, data yang diperlukan untuk pengkodean jauh lebih sedikit dibandingkan saat menggunakan metode penghitungan delta antar frame yang lebih sederhana.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Seperti apa kompensasi gerak sebenarnya

Teknik ini diterapkan pada semua blok sekaligus. Seringkali bola kita yang bergerak bersyarat akan dibagi menjadi beberapa blok sekaligus.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Anda dapat merasakan sendiri konsep-konsep ini dengan menggunakan jupyter.

Untuk melihat vektor gerak, Anda dapat membuat video prediksi eksternal menggunakan ffmpeg.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Anda juga bisa menggunakan Penganalisis Video Pro Intel (berbayar, tapi ada uji coba gratis yang terbatas pada sepuluh frame pertama saja).

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Redundansi spasial (perkiraan internal)

Jika kita menganalisis setiap frame dalam sebuah video, kita akan menemukan banyak area yang saling berhubungan.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Mari kita lihat contoh ini. Pemandangan ini sebagian besar terdiri dari warna biru dan putih.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Ini adalah bingkai-I. Kami tidak dapat mengambil frame sebelumnya untuk prediksi, tetapi kami dapat mengompresnya. Mari kita mengkodekan pilihan blok merah. Jika kita melihat tetangganya, kita melihat ada beberapa tren warna di sekitarnya.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Kami berasumsi bahwa warna tersebar secara vertikal di dalam bingkai. Artinya warna piksel yang tidak diketahui akan mengandung nilai tetangganya.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Perkiraan seperti itu mungkin salah. Karena alasan inilah Anda perlu menerapkan metode ini (perkiraan internal), dan kemudian mengurangi nilai sebenarnya. Ini akan memberi kita blok sisa, yang akan menghasilkan matriks yang jauh lebih terkompresi dibandingkan aslinya.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Jika Anda ingin berlatih dengan prediksi internal, Anda dapat membuat video makroblok dan prediksinya menggunakan ffmpeg. Untuk memahami arti setiap warna blok, Anda harus membaca dokumentasi ffmpeg.

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Atau Anda dapat menggunakan Intel Video Pro Analyzer (seperti yang saya sebutkan di atas, versi uji coba gratis terbatas pada 10 frame pertama, tetapi ini sudah cukup untuk Anda pada awalnya).

Bagaimana cara kerja codec video? Bagian 1: Dasar-dasar

Bagian kedua: Cara kerja codec video

Sumber: www.habr.com

Tambah komentar