Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Bahagian kedua dari: Cara codec video berfungsi

Mana-mana raster imej boleh diwakili dalam bentuk matriks dua dimensi. Apabila ia datang kepada warna, idea itu boleh dikembangkan dengan melihat imej sebagai matriks tiga dimensi, di mana dimensi tambahan digunakan untuk menyimpan data bagi setiap warna.

Jika kita menganggap warna akhir sebagai gabungan yang dipanggil. warna primer (merah, hijau dan biru), dalam matriks tiga dimensi kami, kami mentakrifkan tiga satah: yang pertama untuk merah, yang kedua untuk hijau dan yang terakhir untuk biru.
Bagaimanakah codec video berfungsi? Bahagian 1: Asas
Kami akan memanggil setiap titik dalam matriks ini sebagai piksel (elemen imej). Setiap piksel mengandungi maklumat tentang keamatan (biasanya sebagai nilai berangka) bagi setiap warna. Sebagai contoh, piksel merah bermakna ia mengandungi 0 hijau, 0 biru dan merah maksimum. Piksel merah jambu boleh dibentuk menggunakan gabungan tiga warna. Menggunakan julat angka dari 0 hingga 255, piksel merah jambu ditakrifkan sebagai Merah = 255, Hijau = 192 ΠΈ Biru = 203.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Artikel ini diterbitkan dengan sokongan EDISON.

Kami sedang membangun aplikasi untuk pengawasan video, penstriman video, dan juga kami bertunang rakaman video di dalam bilik pembedahan.

Cara alternatif untuk mengekod imej berwarna

Terdapat banyak model lain untuk mewakili warna yang membentuk imej. Sebagai contoh, anda boleh menggunakan palet diindeks, yang memerlukan hanya satu bait untuk mewakili setiap piksel, bukannya tiga yang diperlukan apabila menggunakan model RGB. Dalam model sedemikian, adalah mungkin untuk menggunakan matriks 2D dan bukannya matriks 3D untuk mewakili setiap warna. Ini menjimatkan memori, tetapi memberikan gamut warna yang lebih kecil.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

rgb

Sebagai contoh, lihat gambar di bawah ini. Muka pertama dicat sepenuhnya. Yang lain ialah satah merah, hijau dan biru (keamatan warna yang sepadan ditunjukkan dalam skala kelabu).

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Kami melihat bahawa warna merah dalam asal akan berada di tempat yang sama di mana bahagian paling terang pada muka kedua diperhatikan. Manakala sumbangan biru terutamanya hanya dapat dilihat pada mata Mario (wajah terakhir) dan elemen pakaiannya. Perhatikan di mana ketiga-tiga satah warna menyumbang paling sedikit (bahagian paling gelap pada imej) - misai Mario.

Untuk menyimpan keamatan setiap warna, bilangan bit tertentu diperlukan - kuantiti ini dipanggil kedalaman sedikit. Katakan 8 bit dibelanjakan (berdasarkan nilai dari 0 hingga 255) setiap satah warna. Kemudian kita mempunyai kedalaman warna 24 bit (8 bit * 3 satah R/G/B).

Satu lagi sifat imej ialah resolusi, iaitu bilangan piksel dalam satu dimensi. Selalunya dilambangkan sebagai lebar Γ— tinggi, seperti dalam imej contoh 4 dengan 4 di bawah.
Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Harta lain yang kami berurusan apabila bekerja dengan imej/video ialah Nisbah aspek, menerangkan hubungan berkadar normal antara lebar dan ketinggian imej atau piksel.

Apabila mereka mengatakan bahawa filem atau gambar tertentu bersaiz 16 hingga 9, mereka biasanya bermaksud nisbah aspek paparan (DAR - dari Nisbah Aspek Paparan). Walau bagaimanapun, kadangkala mungkin terdapat pelbagai bentuk piksel individu - dalam kes ini kita bercakap tentang nisbah piksel (PAR - dari Nisbah Aspek Piksel).

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Nota kepada tuan rumah: DVD sepadan dengan DAR 4 hingga 3

Walaupun resolusi DVD sebenar ialah 704x480, ia masih mengekalkan nisbah bidang 4:3 kerana PAR ialah 10:11 (704x10 / 480x11).

Dan akhirnya, kita boleh tentukan video seperti urutan n bingkai untuk tempoh tersebut masa, yang boleh dianggap sebagai dimensi tambahan. A n maka ialah kadar bingkai atau bilangan bingkai sesaat (FPS - dari Bingkai sesaat).

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Bilangan bit sesaat yang diperlukan untuk memaparkan video adalah jumlahnya kelajuan penghantaran - kadar bit.

kadar bit = lebar * tinggi * kedalaman bit * bingkai sesaat

Contohnya, video 30 fps, 24 bps, 480x240 memerlukan 82,944,000 bps atau 82,944 Mbps (30x480x240x24) - tetapi itu jika tiada kaedah pemampatan digunakan.

Jika kelajuan pemindahan hampir berterusan, maka ia dipanggil kelajuan penghantaran tetap (CBR - dari kadar bit tetap). Tetapi ia juga boleh berbeza-beza, dalam kes ini ia dipanggil kadar baud berubah-ubah (VBR - dari kadar bit berubah-ubah).

Graf ini menunjukkan VBR terhad, di mana tidak terlalu banyak bit terbuang dalam kes bingkai gelap sepenuhnya.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Jurutera pada mulanya membangunkan kaedah untuk menggandakan kadar bingkai yang dilihat bagi paparan video tanpa menggunakan lebar jalur tambahan. Kaedah ini dikenali sebagai video berjalin; Pada asasnya, ia menghantar separuh skrin dalam "bingkai" pertama dan separuh lagi dalam "bingkai" seterusnya.

Pada masa ini, adegan kebanyakannya dipaparkan menggunakan teknologi pengimbasan progresif. Ia adalah kaedah untuk memaparkan, menyimpan atau menghantar imej bergerak di mana semua garisan setiap bingkai dilukis secara berurutan.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Nah! Kini kita sedar tentang cara imej diwakili secara digital, bagaimana warnanya disusun, berapa banyak bit sesaat yang kita habiskan untuk menunjukkan video, jika kadar bit adalah malar (CBR) atau pembolehubah (VBR). Kami mengetahui tentang peleraian yang diberikan menggunakan kadar bingkai yang diberikan, kami biasa dengan banyak istilah lain, seperti video berjalin, PAR dan beberapa istilah lain.

Mengeluarkan lebihan

Adalah diketahui bahawa video tanpa pemampatan tidak boleh digunakan secara normal. Video selama sejam pada resolusi 720p dan 30 bingkai sesaat akan mengambil masa 278 GB. Kami mencapai nilai ini dengan mendarab 1280 x 720 x 24 x 30 x 3600 (lebar, tinggi, bit setiap piksel, FPS dan masa dalam saat).

Gunakan algoritma pemampatan tanpa kerugian, seperti DEFLATE (digunakan dalam PKZIP, Gzip dan PNG), tidak akan cukup mengurangkan lebar jalur yang diperlukan. Kita perlu mencari cara lain untuk memampatkan video.

Untuk melakukan ini, anda boleh menggunakan ciri penglihatan kami. Kami lebih baik membezakan kecerahan daripada warna. Video ialah satu siri imej berjujukan yang berulang dari semasa ke semasa. Terdapat perbezaan kecil antara bingkai bersebelahan adegan yang sama. Selain itu, setiap bingkai mengandungi banyak kawasan menggunakan warna yang sama (atau serupa).

Warna, kecerahan dan mata kita

Mata kita lebih sensitif kepada kecerahan daripada warna. Anda boleh lihat sendiri dengan melihat gambar ini.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Jika anda tidak melihat bahawa pada separuh kiri imej warna petak A ΠΈ B sebenarnya sama, maka itu perkara biasa. Otak kita memaksa kita untuk memberi lebih perhatian kepada cahaya dan naungan daripada warna. Di sebelah kanan antara petak yang ditetapkan terdapat pelompat dengan warna yang sama - jadi kita (iaitu otak kita) dengan mudah menentukan bahawa, sebenarnya, ia adalah warna yang sama.

Mari lihat (dengan cara yang mudah) bagaimana mata kita berfungsi. Mata adalah organ kompleks yang terdiri daripada banyak bahagian. Walau bagaimanapun, kami paling berminat dengan kon dan rod. Mata mengandungi kira-kira 120 juta batang dan 6 juta kon.

Mari kita pertimbangkan persepsi warna dan kecerahan sebagai fungsi berasingan bahagian mata tertentu (sebenarnya, semuanya agak rumit, tetapi kami akan memudahkannya). Sel rod bertanggungjawab terutamanya untuk kecerahan, manakala sel kon bertanggungjawab untuk warna. Kon dibahagikan kepada tiga jenis, bergantung pada pigmen yang terkandung di dalamnya: kon S (biru), kon M (hijau), dan kon L (merah).

Oleh kerana kita mempunyai lebih banyak rod (kecerahan) daripada kon (warna), kita boleh membuat kesimpulan bahawa kita lebih mampu membezakan peralihan antara gelap dan terang daripada warna.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Ciri Kepekaan Kontras

Penyelidik dalam psikologi eksperimen dan banyak bidang lain telah membangunkan banyak teori penglihatan manusia. Dan salah seorang daripada mereka dipanggil fungsi kepekaan kontras. Mereka berkaitan dengan pencahayaan spatial dan temporal. Ringkasnya, ini mengenai berapa banyak perubahan yang diperlukan sebelum pemerhati menyedarinya. Perhatikan bentuk jamak bagi perkataan "fungsi". Ini disebabkan oleh fakta bahawa kita boleh mengukur fungsi sensitiviti kontras bukan sahaja untuk imej hitam dan putih, tetapi juga untuk imej berwarna. Keputusan eksperimen ini menunjukkan bahawa dalam kebanyakan kes mata kita lebih sensitif kepada kecerahan daripada warna.

Memandangkan kita tahu bahawa kita lebih sensitif terhadap kecerahan imej, kita boleh cuba menggunakan fakta ini.

Model warna

Kami mengetahui sedikit cara untuk bekerja dengan imej berwarna menggunakan skema RGB. Terdapat model lain juga. Terdapat model yang memisahkan pencahayaan daripada kroma dan ia dikenali sebagai YCbCr. Dengan cara ini, terdapat model lain yang membuat bahagian yang sama, tetapi kami hanya akan mempertimbangkan yang ini.

Dalam model warna ini Y ialah perwakilan kecerahan, dan juga menggunakan dua saluran warna: Cb (biru kaya) dan Cr (merah kaya). YCbCr boleh diperoleh daripada RGB, dan penukaran terbalik juga mungkin. Menggunakan model ini kita boleh mencipta imej berwarna penuh seperti yang kita lihat di bawah:

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Tukar antara YCbCr dan RGB

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

Untuk menjawab soalan ini, mari tukar RGB kepada YCbCr. Mari kita gunakan pekali yang diterima pakai dalam piawaian BT.601, yang disyorkan oleh unit ITU-R. Bahagian ini menetapkan piawaian untuk video digital. Contohnya: apakah itu 4K? Apakah kadar bingkai, resolusi, model warna yang sepatutnya?

Mula-mula mari kita mengira kecerahan. Mari kita gunakan pemalar yang dicadangkan oleh ITU dan gantikan nilai RGB.

Y = 0.299R + 0.587G + 0.114B

Selepas kami mempunyai kecerahan, kami akan memisahkan warna biru dan merah:

Cb = 0.564(B - Y)

Cr = 0.713(R - Y)

Dan kita juga boleh menukar kembali dan juga menjadi hijau menggunakan YCbCr:

R = Y + 1.402Cr

B = Y + 1.772Cb

G = Y - 0.344Cb - 0.714Cr

Biasanya, paparan (monitor, TV, skrin, dll.) hanya menggunakan model RGB. Tetapi model ini boleh disusun dengan cara yang berbeza:

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Pensubsampelan warna

Dengan imej yang diwakili sebagai gabungan pencahayaan dan chrominance, kita boleh mengeksploitasi sensitiviti sistem visual manusia yang lebih besar terhadap kecerahan berbanding chrominance dengan mengalih keluar maklumat secara selektif. Pensubsampelan Chroma ialah kaedah pengekodan imej menggunakan peleraian yang kurang untuk kroma berbanding kecerahan.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Berapa banyak yang dibenarkan untuk mengurangkan resolusi warna?! Ternyata sudah ada beberapa rajah yang menerangkan cara mengendalikan resolusi dan penggabungan (Warna Hasil = Y + Cb + Cr).

Skim ini dikenali sebagai sistem pensampelan rendah dan dinyatakan sebagai nisbah 3 kali ganda - a:x:y, yang menentukan bilangan sampel kecerahan dan isyarat perbezaan warna.

a β€” standard persampelan mendatar (biasanya sama dengan 4)
x β€” bilangan sampel kroma dalam baris pertama piksel (peleraian mendatar berbanding dengan a)
y β€” bilangan perubahan dalam sampel kroma antara baris pertama dan kedua piksel.

Pengecualian adalah 4:1:0, menyediakan satu sampel kroma dalam setiap blok resolusi pencahayaan 4-oleh-4.

Skim biasa yang digunakan dalam codec moden:

  • 4:4:4 (tiada downsampling)
  • 4:2:2
  • 4:1:1
  • 4:2:0
  • 4:1:0
  • 3:1:1

YCbCr 4:2:0 - contoh gabungan

Berikut ialah imej yang digabungkan menggunakan YCbCr 4:2:0. Ambil perhatian bahawa kami hanya membelanjakan 12 bit setiap piksel.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Beginilah rupa imej yang sama, dikodkan dengan jenis utama subsampel warna. Baris pertama ialah YCbCr terakhir, baris bawah menunjukkan resolusi kroma. Keputusan yang sangat baik, memandangkan sedikit kehilangan kualiti.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Ingat apabila kami mengira 278 GB ruang storan untuk menyimpan fail video selama sejam pada resolusi 720p dan 30 bingkai sesaat? Jika kita menggunakan YCbCr 4:2:0, maka saiz ini akan dikurangkan separuh - 139 GB. Setakat ini, ia masih jauh daripada keputusan yang boleh diterima.

Anda boleh mendapatkan histogram YCbCr sendiri menggunakan FFmpeg. Dalam imej ini, biru menguasai merah, yang jelas kelihatan dalam histogram itu sendiri.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Warna, kecerahan, gamut warna - semakan video

Kami mengesyorkan menonton video hebat ini. Ia menerangkan apa itu kecerahan, dan secara amnya semua titik bertitik Ρ‘ tentang kecerahan dan warna.

Jenis Bingkai

Jom teruskan. Mari cuba untuk menghapuskan lebihan masa. Tetapi pertama, mari kita tentukan beberapa istilah asas. Katakan kita mempunyai filem dengan 30 bingkai sesaat, berikut ialah 4 bingkai pertamanya:

Bagaimanakah codec video berfungsi? Bahagian 1: Asas Bagaimanakah codec video berfungsi? Bahagian 1: Asas Bagaimanakah codec video berfungsi? Bahagian 1: Asas Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Kita boleh melihat banyak pengulangan dalam bingkai: sebagai contoh, latar belakang biru yang tidak berubah dari bingkai ke bingkai. Untuk menyelesaikan masalah ini, kita boleh mengklasifikasikannya secara abstrak kepada tiga jenis bingkai.

I-frame (IBingkai ntro)

Bingkai-I (bingkai rujukan, bingkai kunci, bingkai dalam) adalah serba lengkap. Tidak kira apa yang anda mahu gambarkan, bingkai-I pada asasnya ialah gambar statik. Bingkai pertama biasanya adalah bingkai-I, tetapi kami akan sentiasa memerhatikan bingkai-I walaupun bukan bingkai pertama.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

bingkai-P (PBingkai diredik)

Bingkai-P (bingkai ramalan) mengambil kesempatan daripada fakta bahawa hampir selalu imej semasa boleh dihasilkan semula menggunakan bingkai sebelumnya. Sebagai contoh, dalam bingkai kedua satu-satunya perubahan ialah bola bergerak ke hadapan. Kita boleh mendapatkan bingkai 2 dengan hanya mengubah sedikit bingkai 1, hanya menggunakan perbezaan antara bingkai ini. Untuk membina bingkai 2, kami merujuk kepada bingkai 1 sebelumnya.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas ← Bagaimanakah codec video berfungsi? Bahagian 1: Asas

bingkai B (BBingkai i-ramalan)

Bagaimana pula dengan pautan bukan sahaja ke masa lalu, tetapi juga ke bingkai masa depan untuk memberikan pemampatan yang lebih baik?! Ini pada asasnya ialah bingkai B (bingkai dua arah).

Bagaimanakah codec video berfungsi? Bahagian 1: Asas ← Bagaimanakah codec video berfungsi? Bahagian 1: Asas β†’ Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Pengeluaran pertengahan

Jenis bingkai ini digunakan untuk memberikan pemampatan yang terbaik. Kami akan melihat bagaimana ini berlaku dalam bahagian seterusnya. Buat masa ini, mari kita ambil perhatian bahawa yang paling "mahal" dari segi memori yang digunakan ialah bingkai-I, bingkai-P adalah lebih murah, tetapi pilihan yang paling menguntungkan untuk video ialah bingkai-B.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Lebihan sementara (ramalan antara bingkai)

Mari kita lihat pilihan yang kita ada untuk meminimumkan pengulangan dari semasa ke semasa. Kita boleh menyelesaikan jenis redundansi ini menggunakan kaedah ramalan silang.

Kami akan cuba menghabiskan sesedikit mungkin untuk mengekod jujukan bingkai 0 dan 1.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Kita boleh hasilkan penolakan, kita hanya tolak bingkai 1 daripada bingkai 0. Kita dapat bingkai 1, hanya gunakan perbezaan antara ia dan bingkai sebelumnya, sebenarnya kita hanya mengekod baki yang terhasil.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Tetapi bagaimana jika saya memberitahu anda bahawa terdapat kaedah yang lebih baik yang menggunakan lebih sedikit bit?! Mula-mula, mari pecahkan bingkai 0 kepada grid yang jelas yang terdiri daripada blok. Dan kemudian kami akan cuba memadankan blok dari bingkai 0 dengan bingkai 1. Dengan kata lain, kami akan menganggarkan pergerakan antara bingkai.

Dari Wikipedia - pampasan gerakan blok

Pampasan gerakan blok membahagikan bingkai semasa kepada blok tidak bertindih dan vektor pampasan gerakan melaporkan asal blok (salah tanggapan yang biasa ialah sebelumnya bingkai dibahagikan kepada blok tidak bertindih, dan vektor pampasan gerakan memberitahu ke mana blok tersebut pergi. Tetapi sebenarnya, ia adalah sebaliknya - bukan bingkai sebelumnya yang dianalisis, tetapi yang seterusnya; tidak jelas ke mana blok itu bergerak, tetapi dari mana asalnya). Biasanya blok sumber bertindih dalam bingkai sumber. Sesetengah algoritma pemampatan video memasang bingkai semasa daripada bahagian bukan satu pun, tetapi beberapa bingkai yang dihantar sebelum ini.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Semasa proses penilaian, kita melihat bahawa bola telah bergerak dari (x= 0, y=25) oleh (x= 6, y=26), nilai x ΠΈ y tentukan vektor gerakan. Satu lagi langkah yang boleh kita lakukan untuk mengekalkan bit ialah mengekod hanya perbezaan vektor gerakan antara kedudukan blok terakhir dan yang diramalkan, jadi vektor gerakan akhir ialah (x=6-0=6, y=26-25=1 ).

Dalam keadaan sebenar, bola ini akan dibahagikan kepada n blok, tetapi ini tidak mengubah intipati perkara itu.

Objek dalam bingkai bergerak dalam tiga dimensi, jadi apabila bola bergerak, ia boleh menjadi lebih kecil secara visual (atau lebih besar jika ia bergerak ke arah penonton). Adalah perkara biasa bahawa tidak akan ada padanan sempurna antara blok. Berikut ialah gabungan pandangan anggaran kami dan gambaran sebenar.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Tetapi kita melihat bahawa apabila kita menggunakan anggaran gerakan, terdapat lebih sedikit data untuk pengekodan berbanding apabila menggunakan kaedah yang lebih mudah untuk mengira delta antara bingkai.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Apakah rupa pampasan gerakan sebenar

Teknik ini digunakan pada semua blok sekaligus. Selalunya bola bergerak bersyarat kita akan dibahagikan kepada beberapa blok sekaligus.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Anda boleh merasai sendiri konsep ini menggunakan Musytari.

Untuk melihat vektor gerakan, anda boleh membuat video ramalan luaran menggunakan ffmpeg.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Anda juga boleh menggunakan Penganalisis Video Intel Intel (ia berbayar, tetapi terdapat percubaan percuma yang terhad kepada sepuluh bingkai pertama sahaja).

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Lebihan ruang (ramalan dalaman)

Jika kita menganalisis setiap bingkai dalam video, kita akan menemui banyak kawasan yang saling berkaitan.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Mari kita lihat contoh ini. Pemandangan ini terutamanya terdiri daripada warna biru dan putih.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Ini adalah bingkai-I. Kami tidak boleh mengambil bingkai sebelumnya untuk ramalan, tetapi kami boleh memampatkannya. Mari kita mengekod pemilihan blok merah. Jika kita melihat jirannya, kita dapati terdapat beberapa trend warna di sekelilingnya.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Kami menganggap bahawa warna tersebar secara menegak dalam bingkai. Ini bermakna warna piksel yang tidak diketahui akan mengandungi nilai jirannya.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Ramalan sedemikian mungkin ternyata tidak betul. Atas sebab inilah anda perlu menggunakan kaedah ini (ramalan dalaman), dan kemudian menolak nilai sebenar. Ini akan memberi kita blok baki, yang akan menghasilkan matriks yang lebih termampat berbanding dengan yang asal.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Jika anda ingin berlatih dengan ramalan dalaman, anda boleh membuat video sekatan makro dan ramalannya menggunakan ffmpeg. Untuk memahami maksud setiap warna blok, anda perlu membaca dokumentasi ffmpeg.

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Atau anda boleh menggunakan Intel Video Pro Analyzer (seperti yang saya nyatakan di atas, versi percubaan percuma terhad kepada 10 bingkai pertama, tetapi ini akan mencukupi untuk anda pada mulanya).

Bagaimanakah codec video berfungsi? Bahagian 1: Asas

Bahagian kedua dari: Cara codec video berfungsi

Sumber: www.habr.com

Tambah komen