H.264

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

H.264/MPEG-4 AVC — міжнародний стандарт відеокомпресії. Був розроблений групою фахівців організації ITU (Study Group 16, фахівці з відео-кодування) під назвою H.26L. У 2001 році група ITU об'єдналась з MPEG-Visual та розробку стандарту було продовжено в команді Joint Video Team (JVT). Метою проекту була розробка методів стиснення відео-даних, що гарантували б, у порівнянні з існуючими, щонайменше вдвічі менший бітрейт зі збереженням рівня якості як для мобільних приладів, так і для телебачення. У 2003 році обидві організації затвердили стандарт. Назва стандарту ITU: H.264. Стандарт ISO/IEC має назву MPEG-4/AVC (Advanced Video Coding) і є десятою частиною стандарту MPEG-4 (MPEG-4/Part 10, ISO/IEC 14496-10).

З прийняттям розширення Scalable Video Coding (SVC) до стандарту були додані три профілі, що відповідають базовим, з додаванням можливості включати потоки більш низької роздільної здатності.

  • Scalable Baseline Profile
  • Scalable High Profile
  • Scalable High Intra Profile

Додавання розширення Multiview Video Coding (MVC) принесло ще два додаткових профілі:

  • Stereo High Profile — розрахований на стереоскопічне 3D-відео (два зображення).
  • Multiview High Profile — підтримує два або кілька зображень (каналів) в потоці з використанням як міжкадрового, так і міжканального стиснення, але не підтримує деякі можливості MVC.

Історія[ред.ред. код]

На початку 1998 р, "Експертна група з кодування відео" (Video Coding Experts Group) (VCEG – ITU-T SG16 Q.6) оголосила конкурс пропозицій щодо проекту під назвою H.26L, метою якого було збільшити вдвічі ефективність кодування (що означає зменшення необхідного бітрейту вдвічі для даного рівня якості) в порівнянні з будь-яким іншим стандартом відео кодування. VCEG очолив Гаррі Салліван (Microsoft, попередньо PictureTel, США). Перший проект дизайну для цього нового стандарту був прийнятий в серпні 1999 р.. У 2000 р., Thomas Wiegand (Heinrich Hertz Institute, Німеччина) став співголовою VCEG.

В грудні 2001 р., VCEG і Moving Picture Experts Group (MPEG – ISO/IEC JTC 1/SC 29/WG 11) створили Joint Video Team (JVT), з метою доопрацювати стандарт кодування відео.[1] Офіційне затвердження специфікації відбулося в березні 2003 року. JVT очолював (і очолює) Gary Sullivan, Thomas Wiegand, і Ajay Luthra (Motorola, США: згодом Arris, США). У червні 2004 року, проект розширення точності відтворення (FRExt) був завершений.З січня 2005 по листопад 2007 року JVT працював над розширенням стандарту H.264/AVC в напрямку маштабованості, за допомогою підтримки Annex (G), і це розширення має назву Scalable Video Coding (SVC). До адміністративної команди JVT долучився Jens-Rainer Ohm (Університет Аахена, Німеччина).З липня 2006 року по листопад 2009 року, JVT працювала над Multiview Video Coding (MVC), додатком до H.264/AVC для об’ємного телебачення і тривимірного телебачення. Ця робота включала в себе створення двох нових розділів стандарту: "Multiview High Profile" і "Stereo High Profile".

Загальний принцип[ред.ред. код]

Енкодер H.264 виконує процеси прогнозування, перетворення і кодування для створення стисненого потоку біт в форматі H.264. Декодер H.264 виконує відповідний пероцес декодування, зворотнього перетворення і реконструкції для відтворення відео послідовності.

Процес кодування[ред.ред. код]

Прогнозування[ред.ред. код]

Екнодер обаховує кадр по частинам, які називаються макроблоками (16x16 пікселів зображення). Він отримує дані для прогнозування макроблоків на основі попередньо-закодованих даних, або на основі поточного кадру (Інтра прогнозування) або на основі інших кадрів, які вже було закодовано і передано (Інтер прогнозування). Енкодер виділяє прогнозовану інформацію із поточного макроблоку і утворює залишок (корисну різницю). Пошук підхожого інтер прогнозування зазвичай описують як оцінку руху, а виділення інтер прогнозування із поточного макроблоку як компенсацію руху.

Методи прогнозування, які використовуються в стандарті H.264 є більш гнучкими, ніж ті що використовувались в попередніх стандартах, що дозволяє робити точне передбачення, а як наслідок більш ефективне стиснення. Інтра прогнозування використовує розміри блоків 16x16 і 4x4 для того, щоб передбачати макроблок із оточуючих, попередно закодованих пікселів в рамках одного і того ж кадру.

Інтер прогнозування використовує набір з різних розміром блоків (від 16x16 до 4x4) для прогнозування пікселів в поточному кадрі із схожих регіонів попередньо закодованих кадрів.

Перетворення і квантування[ред.ред. код]

Блок виділенних зразків перетворюється за допомогою цілочисленого перетворення розмірністю 4x4 або 8x8, що є приблизно подібною формою дискретного косинусного перетворення (ДКП). Перетворення дає в результаті набір коефіцієнтів, кожен з яких є зваженим значенням для стаднартного базисного зразку. При поєднанні, зважений базисний зразок відтворює блок виділених зразків.

Результат перетворення, блок коефіцієнтів перетворення, квантується, тобто кожен коефіцієнт ділиться на ціле значення. Квантування знижує точність коефіцієнтів перетворення відповідно до значення параметру квантування (QP). Зазвичай, результатом є блок, в якому більшість коефіцієнтів дорівнюють нулю, із декількома не нульовими коефіцієнтами. Великі значення QP означатимуть, що більше коефіцієнтів будуть мати значення нуль, що призведе до сильного стиснення, що коштуватиме поганою якістю зображення. Мале значення параметру QP означатиме, що більше не нульових коефіцієнтів залишиться після квантування, що дасть кращу якість декодованого зображення, але малу ефективність стискання.

Кодування бітового потоку[ред.ред. код]

Процес відео кодування утворює в результаті набір значень, які повинні кодуватися для того, щоб утворити стиснений бітовий потік. Цими даними є:

  • Квантовані коефіцієнти перетворення
  • інформація необхідна декодеру для відтворення прогнозування
  • інформація про структуру стиснених даних і засоби стиснення, що використовувалися під час кодування
  • інформація про повну відео послідовність.

Ці значення і параметри (синтаксичні елементи) перетворюються в бінарні коди із використанням кодування змінної довжити і/або арифметичного кодування. Кожен з цих методів кодування дозволяє отримати ефективне, компактне бінарне представлення інформації. Закодований бітовий потік можна зберігати і/або передавати.

Процес декодування[ред.ред. код]

Декодування бітового потоку[ред.ред. код]

Відео декодер отримує стиснений бітовий потік H.264, розбирає всі синтаксичні елементи і декодує інформацію описану вище (квантовані коефіцієнти трансформації, інформацію прогнозування, і ін.). Ця інформація використовується для зворотнього процесу кодування і відтворення послідовності відео зображень.

Масштабування і зворотне перетворення[ред.ред. код]

Коефіцієнти перетворення маштабовано. Кожен коефіцієнт помножено на ціле число, для збереження його початкової розмірності. При зворотньому перетовренні поєднуються стандартні базисні зразки, зваженими за допомогою перемаштабованих коефіцієнтів, щоб відновити кожен блок із залишкових даних. Ці блоки поєднуються разом, щоб сформувати макроблок із залишку.

Реконструкція[ред.ред. код]

Для кожного макроблоку, декодер формує едентичне прогнозування тому що було створено енкодером. Декодер додає дані прогнозування до декодованого залишку для відтворення декодованого макроблоку, який далі можна відобразити як частину відео кадру.

Див. також[ред.ред. код]

Джерела[ред.ред. код]

Примітки[ред.ред. код]

Комп'ютер Це незавершена стаття про комп'ютери.
Ви можете допомогти проекту, виправивши або дописавши її.