Хороший відеокодек універсальний; Ідеально підходить для стиснення зображень будь-якої роздільної здатності незалежно від вмісту та платформи. H.264 повністю відповідає всім вимогам сучасного кодека, а супровідник формату, MPEG-LA, працює над тим, щоб зробити його квазістандартним не лише для "офлайн", а й для онлайн-відео. На додаток до деяких прикладів, згаданих у вступі, формат H.264 набагато ширше використовується, немає області на рівні, де його неможливо знайти. Він використовується, серед іншого, багатьма постачальниками послуг IPTV та DVB-T/C, але його оптимізовану версію можна також знайти у відеокамерах, а в розширеному вигляді він також підходить для кодування 3D-матеріалів. Далі ми покажемо вам, як кодек працює на практиці.
Основи
Можливо, ми нікому не скажемо великої новинки, сказавши, що відео насправді є не що інше, як серія нерухомих зображень. Ось чому, якщо ми хочемо зрозуміти, як працює відеокодек, ми не можемо врізатися в середину речей, нам спочатку потрібно зрозуміти, як працює зберігання зображення (фотографії). Зокрема, нам слід знати про роботу методу стиснення з втратами, такого як формат JPG, оскільки H.264 також є втратним.
Більшість методів стиснення зображень та стиснення відео є втратними, що означає, що стиснений матеріал - будь то фото чи відео (чи аудіо) - не є точно таким же, як оригінал. Метою використання методів стиснення з втратами є можливість зберігати інформаційний вміст, який майже ідентичний оригіналу, у набагато меншому просторі, зберігаючи при цьому різницю між стисненим та оригінальним матеріалом зображення мінімальним. Є ціла низка причин, чому це може бути необхідним, просто візьміть дві найбільш тривіальні: для відео в Інтернеті вам потрібно просувати відео найкращої якості за відносно вузьку пропускну здатність, тоді як для дисків Blu-ray потрібно переконатися, що у фільмі є додатки та інше. вміщується на диск розміром 25 (або 50) Гбайт. Ефективність кодеків може коливатися в широких межах, найкращими є JPG, PNG та H.264, але при правильних налаштуваннях вони можуть створювати якість стисненого зображення, яке наші очі не можуть відрізнити від оригіналу.
Як і стандарти MPEG-2 та MPEG-4, стандарт H.264 визначає лише структуру, панель інструментів і не описує конкретний процес стиснення - це дає розробникам свободу, але також забезпечує сумісність, вводячи профілі.
Стиснення з втратою зображення
Незалежно від того, використовуєте ви формат RGB або YCbCr, відео має бути розділене на канали. У випадку кодування YPbPr, другий і третій канали мають менший інформаційний вміст. Компресор виконує наступні дії на кожному каналі.
Перший крок - розділити зображення на менші ділянки, блоки. Розмір області також залежить від кодека, H.264 використовує макроблоки 16 × 16 пікселів, в яких за бажанням 8 × 8 та/або 4 × 4 мікроблоки. Чим менший розмір блоку, тим більше корисної інформації залишається - проте, тим більше місця потрібно для зберігання даних. Ми продовжуватимемо використовувати 8 × 8 пікселів в описі для простоти - у цьому випадку кожен блок містить 64 пікселі.
Другий крок - визначити, скільки “важливого” інформаційного вмісту надходить у кожну область. Для цього компресори найчастіше є т.зв. Вони використовують алгоритм DCT (дискретне перетворення косинусів) для опису частотного спектра даної області. Результатом перетворення є ціла матриця 8 × 8, яка показує частоту пікселів. У матриці верхнє ліве значення, як правило, найменше, і значення коефіцієнтів збільшується (як правило) як праворуч, так і вниз. Чим нижчий діапазон частот, тим чутливіші наші очі до певної інформації. Тобто, чим нижче частотний вміст даного пікселя, тим він важливіший. Кодеки використовують дані частотного спектру, щоб визначити, наскільки точно слід зберігати даний піксель, тобто, в кінцевому рахунку, скільки (відносного) місця для зберігання слід використовувати для зберігання даного пікселя.
На раніше розрахованій матриці компресор тоді є так званим виконує квантування, яке може значно зменшити “динамічний діапазон” матриці. На практиці це означає просту операцію ділення з використанням іншої, переважно заздалегідь визначеної матриці. У випадку з H.264 матриця квантування дорівнює 52 градусам, а в деяких профілях можна використовувати власну матрицю.) Під час квантування коефіцієнти праворуч і вниз можуть стати 0, що означає, що існує відсутність відповідного коефіцієнта в даному місці відхилення. З цього вже випливає, що вихідне зображення не можна ідеально відновити з набору даних, отриманого в результаті квантування.
Під час стиснення кодек виконує наведені вище обчислення на всіх блоках, в результаті чого виникає багато «чисел». Це не зовсім так у випадку з H.264, де кодек оцінює вміст поточного блоку на основі інформаційного вмісту сусідніх блоків, які вже були оброблені, а потім зберігає різницю між розрахунковими та фактичними значеннями - це Зазвичай це можливо за меншу кількість (але не більше) бітів, оскільки блоки, як правило, подібні один до одного. Кінцевий результат однаковий, ми отримуємо багато "цифр".
Завдання зараз - зберегти ці числа в якомога меншому просторі. У випадку потоку H.264 для збереження набору даних можна використовувати два методи, залежно від профілю (до цього ми повернемось пізніше). Обидва - ентропічні; один - CAVLC, а інший - CABAC. CAVLC - це стандартне стиснення без втрат на основі словника, яке використовує коротший ключ для загальновживаних термінів, зменшуючи простір для зберігання. З іншого боку, CABAC - це багатоетапна процедура, заснована на імовірнісній моделі та арифметичному кодуванні. Перевагою є до 10-15% вища ефективність, але недоліком є те, що вона вимагає набагато більшої обчислювальної здатності під час відтворення, до половини загальної обчислювальної потужності, що використовується.!
- Кодування для акупунктури куріння, раку легенів, куріння - рука об руку, сторінка кодування куріння
- Кодування в Курінні Сочі, 25 кадрів кинути форум - Як кинути
- Локшина швидкого приготування штучних нігтів дуже химерна, але вона працює
- Необмежене (швидке реагування) кодування; Газета
- Гей творить урядову диво-зброю - ми показуємо балакучі цифри