Порівняння стандартів

MPEG-4

MPEG-2

H.263

H.261

MPEG-1

Motion-JPEG

Motion-JPEG (або M-JPEG) є найбільш простим алгоритмом стиску відео. У ньому кожний кадр стискується незалежно алгоритмом JPEG. Цей прийом дає високу швидкість доступу до довільних кадрів, як у прямому, так і у зворотному порядку проходження. Відповідно легко реалізуються плавні "перемотування" в обох напрямках, аудио-візуальна синхронізація й, що саме головне - редагування. Типові операції JPEG зараз підтримуються на апаратному рівні більшістю відеокарт і даний формат дозволяє легко оперувати більшими обсягами даних при монтажі фільмів. Незалежний стиск окремих кадрів дозволяє накладати різні ефекти, не побоюючись, що взаємний вплив сусідніх кадрів внесе додаткові перекручування у фільм.

Характеристики Motion-JPEG

Потік, дозвіл (стиск): Потік і дозвіл довільні, стиск в 5-10 разів

Плюси: Забезпечує швидкий довільний доступ. Легко редагувати потік. Низька вартість апаратної реалізації.

Мінуси: Порівняно низький ступінь стиску.

Алгоритм MPEG-1 у цілому відповідає описаній вище загальній схемі побудови алгоритмів стиску.

Характеристики MPEG-1

Потік, дозвіл: 1.5 Мбит/з, 352х240х30, 352х288х25

Плюси: Порівняно простий в апаратній реалізації, містить перетворення, підтримувані на апаратному рівні більшою кількістю відеокарт.

Мінуси: Невисокий ступінь стиску. Мала гнучкість формату.

Стандарт H.261 специфицирует кодування й декодування відеопотоку для передачі по каналі p*64 Кбит, де p=1..30. Як канал може виступати, наприклад, кілька телефонних ліній.

Вхідний формат зображення - дозволу CIF або QCIF у форматі YUV (CCIR 601) частота кадрів від 30 fps і нижче. Використовується зменшення дозволу в 2 рази для компонентів кольоровості.

У вихідний потік записуються два типи кадрів: INTRA - стислі незалежно (відповідають I-Кадрам) і INTER - стислі з посиланням на попередній кадр (відповідають Р-Кадрам). У переданому кадрі не обов'язково присутні всі макроблоки зображення, якщо блок змінився незначно передавати його звичайно нема рації. Стиск в INTRA кадрах здійснюється за схемою стиску окремого зображення. В INTER кадрах виробляється аналогічний стиск різниці кожного переданого макроблоку з "найбільш схожим" макроблоком з попереднього кадру (компенсація руху). Для згладжування артефактів ДКП передбачена можливість застосування размытия усередині кожного блоку 8x8 пикселей. Стандарт вимагає, щоб INTRA кадри зустрічалися в потоці не рідше чим через кожні 132 INTER кадру (щоб не накопичувалася погрішність кодування й була можливість відновитися у випадку помилки в потоці).

Ступінь стиску залежить в основному від методу знаходження "схожих" макроблоків у попередньому кадрі, алгоритму рішення чи передавати конкретний макроблок, вибору способу кодування кожного макроблоку (INTER/INTRA) і вибору коефіцієнтів квантування результатів ДКП. Жоден з перераховані питання стандартом не регламентуються, залишаючи волю для побудови власних оптимальних алгоритмів.

Характеристики H.261

Потік, дозвіл: p*64 Кбит, p=1..30, CIF або QCIF

Плюси: Простий в апаратній реалізації.

Мінуси: Невисокий ступінь стиску. Обмеження на формат.

Даний стандарт є розширенням, доповненням і значним ускладненням H.261. Він містить "базовий" стандарт кодування, що практично не відрізняється по алгоритмах стиску від H.261, плюс безліч опциональных його розширень. Коротко перелічимо найбільш важливі відмінності:

- Використання арифметичного кодування замість кодів Хаффмана. Дає можливість на 5-10% підвищити ступінь стиску.

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

- Можливість завдання вектора зсуву для кожного блоку 8x8 у макроблоці, що в ряді випадків істотно збільшує стиск і знижує блочность зображення.

- Поява B-Кадрів, що дозволяє збільшити ступінь стиску, за рахунок ускладнення й збільшення часу роботи декодера.

- Підтримка великої кількості форматів вхідних відеоданих: sub-QCIF, QCIF, CIF, 4CIF, 16CIF і набудовува_ окремо. Основна відмінність від більше універсальних форматів полягає в адаптації для декількох фіксованих дозволів, що дозволяє робити менш універсальні, але більше швидкі процедури обробки кадрів. Побудований у такий спосіб декодер працює трохи швидше.

- Компенсація руху із субпиксельной точністю. Можливість зрушити блок на полпиксела також збільшує ступінь стиску, але збільшує час роботи декодера.

- Особливий режим стиску INTRA макроблоків з посиланням на сусідні макроблоки в оброблюваному кадрі, особливий режим квантування й спеціальна таблиця Хаффмана для поліпшення стиску I-Кадрів у ряді випадків.

- Згладжування границь блоків декодованого зображення для зменшення ефекту "блочности". Найчастіше при різкому русі в кадрі при стиску алгоритм виявляється змушений підвищити ступінь квантування блоків після ДКП щоб укластися у відведений на передачу бітовий потік. При цьому в кадрі виникають добре вам знайомі по JPEG блоки розміром 8х8. Як показала практика, "зрощування" границь, коли крайні пикселы блоків зрушують по яскравості так, щоб зменшити різницю, дозволяє найчастіше помітно підвищити візуальна якість фільму.

- Зміна дозволу й деформування базового кадру, що використовується в якості базового при стиску.

- Різні режими квантування й кодування по Хаффману.

Характеристики H.263

Потік, дозвіл: 0.04-20 Мбит/c, sub-QCIF, QCIF, CIF, 4CIF, 16CIF і дозволи, що набудовуються окремо.

Плюси: Алгоритм H.263 також як H.261 допускає швидку апаратну реалізацію, однак при цьому дозволяє домогтися більшого ступеня стиску при тім же якості. Підтримує стиск звуку.

Мінуси: По кількості закладених ідей перебуває між MPEG-2 і MPEG-4.

Як уже говорилося, MPEG-2 займається стиском оцифрованного відео при потоці даних від 3 до 10 Мбит/сек. Багато чого в ньому запозичено з формату CCIR-601. CCIR-601 являє собою стандарт цифрового відео з розміром переданого зображення 720х486 при 60 напівкадрах у секунду. Рядка зображення передаються із чергуванням, і два напівкадри становлять кадр. Цей прийом нерідко застосовують для зменшення мерехтіння. Хроматичні канали (U і V в YUV) передаються розміром 360х243 60 разів у секунду й також чергуються вже між собою. Подібний розподіл називається 4:2:2. Переклад з CCIR-601 в MPEG-I простий: треба поділити в 2 рази яркостную компоненту по горизонталі, поділити потік в 2 рази в тимчасовому вимірі (забравши чергування), додати другий хроматичний компонент і викинути "зайві" рядки, щоб розмір по вертикалі ділився на 16. Ми одержимо потік YUV кадрів розміром 352х240 із частотою 30 кадрів у секунду. Тут все просто.

Проблеми починаються, коли з'являється можливість збільшити потік даних і довести якість зображення до CCIR-601. Це не таке просте завдання, як здається. Проблема складається в чергуванні напівкадрів у вхідному форматі. Тривіальне рішення - працювати з кадрами 720х486 при 30 кадрах у секунду, як зі звичайним відео. Цей шлях приводить до неприємних ефектів при швидкому русі об'єктів на екрані. Між двома вихідними напівкадрами 720х243 зрушення стає помітним, а тому що наш кадр формується з вихідних напівкадрів через рядок, то при стиску відбувається розмивання об'єкта, що рухається. Винно в цьому ефекті ДКП, і якось виправити ситуацію, не зменшивши ступеня стиску відео, або не втративши у візуальній якості не можна. Досить розповсюдженим є застосування "деинтерлейсинга" (від англійського deinterlacing - видалення чергування рядків). Ця операція дозволяє видалити чергування, зміщаючи парні рядки в одному напрямку, а непарні в іншому, пропорційно відносному руху об'єкта в даній області екрана. У результаті ми одержуємо візуально більше якісне зображення, але трохи більше тривалу предобработку перед стиском.

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

Характеристики MPEG-2

Потік, дозвіл: 3-15 Мбит/c, універсальний

Плюси: Підтримка досить серйозних звукових стандартів Dolby Digital 5.1, DTS, висока універсальність, порівняльна простота апаратної реалізації.

Мінуси: Недостатня на сьогодні ступінь стиску, недостатня гнучкість.

MPEG-4 кардинально відрізняється від прийнятих раніше стандартів. Розглянемо найцікавіші й корисні нововведення.

- Розрахунок тривимірних сцен і робота із синтетичними об'єктами. До складу декодера MPEG-4 як складова частина входить блок візуалізації тривимірних об'єктів (Animation Framework eXtension - AFX - те, що в просторіччі називають даними для тривимірного движка). Ті, хто кодував відео, знають, скільки проблем доставляють титри й взагалі будь-які об'єкти, що накладаються поверх фільму, (логотипи, заставки й т.п.). Якщо добре виглядає основний план - будуть подпорчены накладаються объекты, що, якщо добре смотрятся вони - буде низкою загальний ступінь стиску. В MPEG-4 пропонується вирішити проблему кардинально. Об'єкти, що накладаються, розраховуються окремо й накладаються потім. Крім того, можна використовувати відеопотік навіть як текстуру, що накладається на поверхні об'єктів, що розраховуються. Така гнучка робота із тривимірними об'єктами дозволяє істотно підняти ступінь стиску при помітно кращій якості зображення. Більше того - ніхто не заважає робити відеоролики взагалі без живого відео, а состоящие тільки з розрахованих (синтетичних) об'єктів. Розмір їхнього опису буде в рази менше, ніж розмір аналогічних фільмів, стислих просто як потік кадрів. До речі, окремо в стандарті передбачена робота з "спрайтами" - статичними зображеннями, що накладаються на кадр. При цьому розмір спрайта може бути як зовсім маленький (логотип каналу в куточку екрана), так і перевищувати розмір кадру й "прокручиваться" (тобто в якості "спрайта" може бути заданий тло, а невеликі відео-об'єкти, наприклад, голову диктора, будуть на нього накладати). Це дає значну гнучкість при створенні MPEG-4 фільмів і дозволяє помітно зменшити обсяг кодируемой інформації.

- Объектно-ориентированная робота з потоком даних. Тепер робота з потоком даних стає объектно-ориентированной. При цьому дані можуть бути живим відео, звуковими даними, синтетичними об'єктами й т.д. З них створюються сцени, цими сценами можна управляти. Для простих смертних при цьому мало що зміниться, однак для програмістів об'єктне середовище означає кардинальне спрощення роботи з виникаючими складними структурами.

- Приміщення в потік двійкового коду "З++ подібного" мови BIFS. За допомогою BIFS у потік додаються описи об'єктів, класів об'єктів і сцен. Також на ньому можна міняти координати, розміри, властивості, поводження й реакцію об'єктів на дії користувача. У свій час Flash був названий революцією 2D графіки в Інтернеті. Аналогічний прорив в області відео робить MPEG-4.

- Активна зрительская позиція. Як було замічено вище, BIFS дозволяє задавати реакцію об'єктів сцени на дії користувача. Потенційно можливе видалення, додавання або переміщення об'єктів, уведення команд із клавіатури. Событийная модель запозичена з мови, що вже розвивалося довгий час, моделювання віртуальної реальності VRML. Для тих, хто грав у написані на VRML гри, мабуть, що в MPEG-4 буде зовсім реально створювати "квест"-подібні (і не тільки) гри. Найширший простір відкривається для створення навчальних і розважальних програм. Представляєте, скачиваете з Інтернету один файл, що відразу в собі містить усе, що необхідно для невеликого курсу лекцій, причому ви можете прослухати його, бачачи мовець голову викладача, або відключивши його, можете збільшити фрагменти ("спрайты") з матеріалами. А наприкінці - пройти короткий тест на розуміння предмета. До речі - у стандарті передбачена обробка команд на стороні сервера, тобто програма-переглядач може відіслати дані на сервер і одержати звідти оцінку. Відмінність від попередніх стандартів революційне.

- Синтезатор осіб і фігур. У стандарт закладений інтерфейс до модуля синтезу осіб і фігур. Наприклад, у файлі зберігаються ключові дані про профіль особи й текстури особи, а при записі фільму зберігаються тільки коефіцієнти зміни форми. Для передач типу новин, цей прийом дозволяє в десятки разів скоротити розмір файлу при чудовій якості.

- Синтезатор звуків і мови. Крім синтезу осіб у стандарт MPEG-4 також закладені алгоритми синтезу звуків, і навіть мови(!).

- Поліпшені алгоритми стиску відео. У стандарті передбачені блоки, відповідальні за потоки 4.8-65Кбит/із із прогресивним розгорненням і більші потоки з підтримкою чересстрочной розгорнення. Для передачі по ненадійних каналах можливе використання завадостійких методів кодування (за рахунок незначного збільшення обсягу переданих даних різко знижується ймовірність перекручування зображення). При передачі відео з одночасним переглядом закладена можливість огрубіти зображення, якщо декодер через обмеження каналу зв'язку не встигає одержати всю інформацію. Усього в стандарт закладено 3 рівні деталізації. Ця можливість дозволить легко адаптувати алгоритм для трансляций відео по мережі.

- Підтримка профілів на рівні стандарту. Зрозуміло, що реалізація всіх можливостей стандарту перетворює декодер у досить складну й більшу конструкцію. При цьому далеко не для всіх додатків необхідні якісь складні специфічні функції (наприклад, синтез мови). Творці стандарту надійшли просто: вони обмовили набори профілів, кожний з яких містить у собі набір обов'язкових функцій. Якщо у фільмі записано, що йому для програвання необхідні такий-то профіль і декодер цей профіль підтримує, то стандарт гарантує, що фільм буде програний правильно.

Вище коротко перераховані деякі відмінності MPEG-4 від попередніх стандартів. Треба відзначити, що на момент створення стандарту гострої потреби в описані вище речах ще не було. Інакше кажучи, ми маємо справу з добре продуманою роботою з формування стандарту, що була закінчена на той час, як у ньому виникла перша необхідність.

Творцями MPEG-4 врахований досвід попередників (зокрема VRML), коли занадто рання поява стандарту й відсутність у ньому механізму профілів серйозно підірвало його масове застосування. Будемо сподіватися, що масовому застосуванню MPEG-4 такі проблеми не загрожують.

Характеристики MPEG-4

Потік, дозвіл: 0, 0048-20 Мбит/c, підтримуються всі основні стандарти відеопотоків.

Плюси: Підтримка досить прогресивних звукових стандартів, високий ступінь універсальності, підтримка нових технологій (різні види синтезу звуку й зображення).

Мінуси: Висока складність реалізації.

 

Систематизуємо стандарти (табл. 15.1) і їхньої характеристики (табл. 15.2)

Таблиця 15.1.
Назва Рік Дозвіл і потік Аудио Застосування
MPEG-1 352х240х30, 352х288х25, 1.5 Мбит/з MPEG-1 Layer II VideoCD першого покоління
H.261 352х288х30, 176х144х30, 0, 04-2 Мбит/c (px64 Кбит/з, де p від 1 до 30) Апаратно реалізовані кодеки, відеоконференції
MPEG-2 Універсальний, 3-15 Мбит/c MPEG-1 Layer II, Dolby Digital 5.1, DTS DVD
H.263 sub-QCIF, QCIF, CIF, 4CIF, 16CIF і набудовуються особливо Підтримується Апаратно реалізовані кодеки, відеотелефони, відеоконференції
MPEG-3 не прийнятий 1993-95 Телебачення високої чіткості, 20-40 Мбит/c   HDTV
MPEG-4 Універсальний, 0, 0048-20 Мбит/c MPEG-1 Layer II, MPEG-1 Layer III, Dolby Digital 5.1, DTS VideoCD другого покоління

 

 

Таблиця 15.2.

Назва За рахунок чого досягається стиск Додаткові можливості
MPEG-1 ICT, DCT  
H.261 ICT, DCT, MC Передача потоку даних по р-каналах із пропускною здатністю 64Кбит (телеконференції по декількох телефонних лініях).
MPEG-2 ICT, DCT, MC  
MPEG-4 ICT, Wavelet, MC, спрайты, об'єкти із прозорим тлом, 3 d-рендеринг Убудована мова опису BIFS, синтезатор мови, функції анімації осіб, 3 D-Рендеринг і т.буд.

Питання для самоконтролю

1. Які параметри треба визначити, перш ніж порівнювати два алгоритми стиску відео?

2. Приведіть приклади ситуацій, коли архітектура комп'ютера дає переваги тому або іншому алгоритму стиску відео.

3. Якими властивостями відеопотоку ми можемо користуватися, створюючи алгоритм стиску? Приведіть приклади.

4. Що таке аудио-візуальна синхронізація? Чому виконання її вимог значно знижує ступінь стиску?

5. Назвіть основні вимоги до алгоритмів стиску відео.

6. Що таке I-Кадри, P-кадри?

7. Приведіть приклади програмно-апаратної реалізації алгоритмів стиску відео (повсякденні й досить нові).

8. Приведіть приклади областей використання відео НЕ критичних до вимоги "стійкості до помилок".