Perbandingan codec HEVC dari MSU. Cara meningkatkan hasil

Pada Oktober 2015, laporan perbandingan codec lainnya dirilis di VMiK Universitas Negeri Moskow, kali ini termasuk beberapa codec HEVC.

Titik awal untuk penelitian ini adalah bahwa kami melihat perbedaan dalam preset dalam tes untuk AVC dan HEVC - untuk AVC, profil cepat yang tidak dimodifikasi dengan satu GOP digunakan, dan untuk HEVC, yang dimodifikasi dengan beberapa GOP digunakan. Pada saat yang sama, untuk satu-satunya file “Apple Tree” yang dijelaskan dalam laporan terbuka, enkoder x264 ternyata lebih baik daripada x265 ketika dengan cepat ditranskode pada grafik ketergantungan SSIM pada bitrate tanpa memperhatikan kecepatan penyandian. Pertanyaan segera muncul: mungkin opsi ini atau yang jelas lainnya dapat mengubah gambar ini.

Laporan ini membandingkan preset, tetapi tidak memberikan rekomendasi untuk memperbaikinya. Pada artikel ini, kami membuat perbandingan yang serupa dan membuat rekomendasi untuk memodifikasi preset encoder x265. Untuk urutan video yang mirip dengan yang dipelajari dalam versi gratis laporan, perubahan yang diusulkan pada parameter enkode dapat meningkatkan efisiensi kompresi, sementara mereka merehabilitasi enkoder x265 saat merencanakan laporan.

Preset yang dimodifikasi tidak mengklaim universalitas, pengujian pada sejumlah besar urutan video berada di luar ruang lingkup penelitian ini. Namun, mereka dapat direkomendasikan sebagai titik awal ketika mencari peluang untuk meningkatkan efisiensi pengkodean x265.

Tentang proyek



Tugas pengkodean video dalam pemrosesan multimedia, apakah itu transmisi, pengeditan atau pengeditan, penyimpanan, muncul secara konstan baik ketika mengembangkan aplikasi dan layanan, dan ketika mereka dikonfigurasikan pada saat digunakan. Karena sejumlah besar codec video populer, bahkan sering dari jenis yang sama, tidak mudah untuk memilih yang optimal dari mereka dan kemudian mengatur pengaturan yang benar. Mungkin, dipandu oleh pertimbangan seperti itu, di laboratorium grafik komputer dan multimedia di fakultas matematika komputasi dan sibernetika (VMiK) dari Universitas Negeri Moskow sejak tahun 2000-an, pekerjaan telah berlangsung pada proyek untuk membandingkan codec video.

Pada Oktober 2015, sebuah laporan perbandingan codec diterbitkan yang mencakup beberapa codec dalam format HEVC, serta beberapa lainnya yang saat ini sedang dalam pengembangan aktif. Sebagai "referensi" mengadopsi kompresor x264. Salah satu yang menarik dalam laporan ini adalah kompresor x265, dan kami akan mempelajarinya.
Sebagai alat analisis, kita akan menggunakan SolveigMM Zond 265, penganalisa file HEVC / H.265 dan AVC / H.264.

gambar


Metode untuk membandingkan codec dan memilih parameter





Kami menjelaskan tekniknya. Perbandingan dalam laporan dilakukan sesuai dengan kriteria kualitas bitrate (SSIM, PSNR) -Speed. Prosedur yang dijelaskan dalam laporan untuk membandingkan rasio bitrate / kualitas metrik (paragraf C.4) adalah sebagai berikut.
Kami memilih beberapa nilai bitrate (misalnya, 7 nilai: 1, 2, 4, 6, 8, 10 dan 12 Mbps), bagi mereka kami mempertimbangkan metrik kualitas yang diperlukan untuk setiap codec.

Kami menandai nilai yang diperoleh pada grafik: kualitas metrik (sumbu absis) - bit rate (sumbu ordinat).

  1. Interpolasi secara linear.
  2. Kami memilih rentang terluas di mana semua grafik didefinisikan, dan menemukan area di bawah semua grafik di atasnya.
  3. Sebagai ukuran kualitas codec tertentu (atau preset), kami mengambil rasio luasnya dengan luas untuk codec referensi. Semakin rendah angkanya, semakin efisien codec.

Untuk referensi, pilih x265 dengan preset yang dipilih dalam laporan (tabel 1). Laporan ini tidak menggunakan versi terbaru dari kompresor, dapat ditemukan di sini: x265 1.5 + 460-ac85c775620f . Namun, ketika menggunakan versi terbaru, tidak ada yang berubah secara mendasar.
Preset kompresor yang digunakan ditunjukkan pada tabel 1 (untuk platform desktop).

Ripping
x265 -p sangat lambat - bitrate% BITRATE_KBPS %% SOURCE_FILE% -o% TARGET_FILE% --input-res% WIDTH% x% HEIGHT% --fps% FPS%
Pengkodean universal
x265 -p media - bitrate% BITRATE_KBPS %% SOURCE_FILE% -o% TARGET_FILE% --input-res% WIDTH% x% HEIGHT% --fps% FPS%
Pengodean ulang cepat
x265 -p ultrafast --ref 3 - bitrate% BITRATE_KBPS %% SOURCE_FILE% -o% TARGET_FILE% --input-res% WIDTH% x% HEIGHT% --fps% FPS%
Tabel 1. Pengaturan kompresor x265 dari laporan “MSU HEVC Video Codec Comparison.”

Untuk mendapatkan rekomendasi untuk memodifikasi pengaturan awal, kami menguji semua pengaturan yang terdiri dari - kontribusi apa yang dibuat setiap komponen terhadap kualitas dan kecepatan. Rencananya di sini adalah sebagai berikut.
  1. Kami menyandikan file, mengubah setiap parameter preset: dari transcoding cepat menjadi universal, dari universal ke "ripping". Pada saat yang sama, kami menghemat waktu penyandian.
  2. Kami menghitung ukuran kualitas (seperti area yang ditunjukkan di atas) dan waktu pengkodean relatif (nilai pengkodean FPS minimum untuk file “parameter yang telah diatur sebelumnya” relatif terhadap semua nilai bitrate yang dipilih).
  3. Dari tabel yang terdiri dari parameter variabel, ukuran kualitas, FPS minimum, kami memilih parameter yang dapat digunakan untuk meningkatkan preset.

Kami membatasi diri pada parameter preset untuk pengkodean universal dan untuk "ripping" (Tabel 2), mengungkapkan parameter "-p medium" dan "-p ultrafast". Tambahkan ke mereka dua lagi yang hilang dalam laporan: "--keyint -1 --tune ssim". Kami akan melengkapi parameter yang terdaftar dengan preset untuk transcoding cepat dan universal, masing-masing.
Pengkodean universal
--rc-lookahead 20 --scenecut 40 --ctu 64 --min-cu-size 8 --bframe 4 --b-adapt 2 --subme 1 --me hex --langsung-lewati --sao - signhide - weightp --rd 3 --aq-strength 1.0 --aq-mode 1 - cutree --no-fast-intra
Ripping
--weightb --amp - benar --rc-lookahead 40 --bframes 8 --tu-inter-depth 3 --tu-intra-depth 3 --rd 6 --rdoq 2 --psy-rdoq 1.0 - -subme 4 --max-merge 4 --me star --ref 5 --b-intra --lookahead-slices 0
Tabel 2. Parameter kandidat untuk memodifikasi preset laporan Perbandingan Codec Video MSU HEVC


Pengujian



Tautan pengunduhan untuk urutan uji Apple Tree (Gbr. 1), yang digunakan dalam versi gratis laporan, tidak ditentukan. Kami akan memilih yang serupa, menggunakan fitur utamanya - close-up, sejumlah besar detail kecil. Sebagai contoh, “ big_buck_bunny_1080p_h264.mov ”, sebuah interval 338 frame dari 24 detik:

ffmpeg -i big_buck_bunny_1080p_h264.mov -ss 00:00:24 -frame: v 338 -c: v rawvideo -pix_fmt yuv420pengambilan contoh

gambar
1. Karakteristik. Apple Tree ”

Agar tidak menghabiskan banyak waktu menuliskan angka-angka yang diperlukan dari antarmuka Zond 265 ketika mengimplementasikan tiga langkah dari rencana yang ditunjukkan di atas, akan lebih mudah untuk menggunakan kemampuannya untuk bekerja pada baris perintah (tabel 3):
zond265_x64% COMPRESSED_FILE% -iref% REFERENCE_420P_FILE% -sekarang -laporan t = kualitas, statstream qm = SSIM o =% TARGET_CSV_FILE%
Daftar semua parameter dan deskripsi terperinci dapat ditemukan di halaman dokumentasi Zond 265 .

Parameter
Deskripsi
-iref
Mengatur file YUV referensi
-laporan
Menentukan mode operasi Zond 265 pada baris perintah
t = kualitas, statstream
Di sini, generasi dua laporan dipilih: kualitas dan statistik pada aliran video
qm = SSIM
Metrik kualitas untuk perhitungan
o
Path ke file laporan CSV
-Sekarang
Tanpa jeda, Zond 265 itu sendiri harus pergi dari file ke file tanpa penundaan
Tabel 3. Parameter baris perintah Zond 265 yang diperlukan untuk mengkompilasi skrip

Berikut adalah dua skrip untuk Python 2.7: satu untuk penyandian 266 file (20 pengaturan untuk yang pertama, 18 pengaturan untuk preset kedua, untuk 7 bitrate: 1, 2, 4, 6, 8, 10, 12 Mbps), yang kedua untuk pelaporan dalam format CSV (file - rasio penyandian FPS dengan konfigurasi referensi - rasio metrik SSIM dengan konfigurasi referensi).
Seperti dapat dilihat dari tabel laporan untuk fragmen file “ big_buck_bunny_1080p_h264.mov ” (tabel 5 dan 6), Anda dapat memodifikasi konfigurasi, misalnya, seperti yang ditunjukkan pada tabel 4. Ingat untuk meningkatkan efisiensinilai Ukuran Kualitas harus kurang dari satu, dan nilai waktu pengkodean relatif harus lebih dari satu.
Pengujian dilakukan pada komputer dengan konfigurasi berikut: Intel Core i7-2600@3.4 GHz, RAM 16 GB. Peningkatan terbesar dalam kualitas disediakan oleh parameter "--min-cu-size 8" untuk konfigurasi pengkodean cepat, untuk pengkodean universal parameter "--rdoq-level 2" (tetapi sebagian besar juga memperlambat pengkodean).

Pengodean ulang cepat
x265 -p ultrafast --ref 3 --rc-lookahead 20 --min-cu-size 8 --bframe 4 --begitu lewati --cutree --tune ssim --bitrate% BITRATE_KBPS %% SOURCE_FILE% -o% TARGET_FILE% --input-res% WIDTH% x% HEIGHT% --fps% FPS%
Pengkodean universal
x265 -p medium --weightb --bframes 8 --tu-intra-depth 3 --psy-rdoq 1.0 --b-intra --lookahead-slices 0 --tune ssim --bitrate% BITRATE_KBPS %% SOURCE_FILE% - o% TARGET_FILE% --input-res% WIDTH% x% HEIGHT% --fps% FPS%
Tabel 4. Modifikasi preset laporan Perbandingan Codec Video MSU HEVC Video untuk meningkatkan efisiensi pengkodean pada laju pengkodean yang sama

Tabel 5. Laporan modifikasi preset pengodean cepat
image
5.


Tabel 6. Laporan tentang modifikasi preset pengkodean universal
image
6.


Pilihan opsi yang benar mudah diverifikasi dengan menjalankan skrip penyandian dengan preset yang dimodifikasi (tabel 7).

Konfigurasi
Ukuran kualitas
Waktu pengkodean relatif
Transcoding cepat (referensi)
1
1
Transcoding cepat, dimodifikasi
0,69
0,97
Transcoding Universal (referensi)
1
1
Transcoding Universal, Dimodifikasi
0,85
0,94
Tabel 7. Efisiensi pengkodean menggunakan preset yang dimodifikasi relatif terhadap preset laporan “MSU HEVC Video Codec Comparison”

Mari kita coba melihat apa yang dipengaruhi oleh perubahan opsi - buka file yang disandikan dalam Zond 265 dengan preset yang dimodifikasi saat dengan cepat mentranskode untuk bitrate 8 Mbps dan membandingkannya dengan file tersebut, disandikan preset tidak berubah. Ukuran unit pengkodean maksimum tetap sama, dan berukuran 32x32 (area “--ctu 32”). Tetapi ukuran blok minimum menurun dari 16 menjadi 8 (area “--min-cu-size 8”), parameter inilah yang memberikan peningkatan kualitas terbesar. Jumlah frame-B meningkat dari 3 menjadi 4 (area “--bframe 4”), tetapi jumlah maksimum frame “referensi” meningkat (area “--ref 4”). Area SSIM menunjukkan grafik SSIM / PSNR maksimum untuk tiga komponen: kecerahan (Luma) dan dua komponen warna (Cb, Cr). Mereka meningkat dari 0,9623-0,9966 menjadi 0,9771-0,9991. Parameter tambahan yang tersisa (--rc-lookahead 20 --early-skip --cutree) memengaruhi algoritma enkode, dan bukan tipe video yang dihasilkan, ini terutama tercermin dalam kecepatan enkode (lihat Tabel 5). Ini harus diperhatikansecara visual, gambar frame yang diterjemahkan telah berubah - artefak pengkodean sekarang tidak terlihat.

gambar
Gambar 2. Screenshot dari file Zond 265 yang dikodekan menggunakan konfigurasi terkoreksi dari pengkodean cepat.

Demikian pula, Anda dapat memeriksa parameter dari file yang dikodekan dengan preset pengkodean universal yang dimodifikasi dan tidak berubah (Gambar 3). Ukuran partisi TU minimal tidak berubah dan tetap sama dengan 4x4 (area "--tu-intra-depth 3"), jumlah B-frame tetap tidak berubah dan sama dengan 3 (area "--bframe 3"). SSIM meningkat dari 0,9789-0,9994 menjadi 0,9811-0,9992. Dibandingkan dengan konfigurasi transkode cepat, ukuran blok maksimum meningkat, menjadi sama dengan 64x64 (area "--ctu 64"), filter SAO (area "--sao") ditambahkan.

gambar
Gambar 3. Screenshot dari file Zond 265 yang dikodekan menggunakan konfigurasi pengkodean universal yang dikoreksi.

Dengan demikian, berdasarkan pengujian, daftar opsi diusulkan untuk meningkatkan efisiensi pengkodean (meningkatkan metrik SSIM dengan bit rate dan kecepatan pengkodean yang sama) untuk konfigurasi pengkodean yang cepat dan universal. Menggunakan perubahan yang diusulkan untuk file dengan sejumlah besar detail kecil, nilai "ukuran kualitas" integral dari "MSU HEVC Video Codec Comparison" laporan meningkat sebesar 31% untuk transfer cepat, dan 15% untuk konversi universal, dan kecepatan encoding tidak berubah secara signifikan. Karena Karena pengujian dilakukan untuk setiap opsi secara terpisah, dalam praktiknya, Anda dapat memilih dan hanya menggunakan beberapa opsi yang sesuai, dan bukan seluruh daftar yang diusulkan.

Referensi



  1. HEVC Video Codecs Comparison
  2. Blender Foundation | www.blender.org
  3. Zond 265 home page

Source: https://habr.com/ru/post/id388423/


All Articles