Користувач:Galkinletter/Поліпшити

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

Формат кодування відео (або інколи формат стиснення відео) — це формат подання вмісту для зберігання або передачі цифрового відеовмісту (наприклад, у файлі даних або в потоковому потоці). Зазвичай він використовує стандартизований алгоритм стиснення відео, найчастіше заснований на кодуванні дискретного косинусного перетворення (DCT) та компенсації руху. Приклади форматів кодування відео включають H.262 (MPEG-2, частина 2), MPEG-4, частина 2, H.264 (MPEG-4, частина 10), HEVC (H.265), Theora, RealVideo RV40, VP9 та AV1 . Конкретна програмна чи апаратна реалізація, здатна стискати або декомпресувати до / з певного формату кодування відео, називається відеокодеком; прикладом відеокодека є Xvid, який є одним із декількох різних кодеків, що реалізує кодування та декодування відео у форматі кодування відео MPEG-4 Part 2 у програмному забезпеченні.

Деякі формати кодування відео задокументовані детальним документом технічної специфікації, відомим як специфікація кодування відео. Деякі такі специфікації написані та схвалені організаціями, що займаються стандартизацією, як технічні стандарти, і, таким чином, вони відомі як стандарт кодування відео. Термін «стандарт» також іноді використовується для фактичних стандартів, а також офіційних стандартів.

Відеовміст, кодований за допомогою певного формату кодування відео, зазвичай постачається з аудіопотоком (закодованим за допомогою формату кодування аудіо) всередині мультимедійного формату контейнера, такого як AVI, MP4, FLV, RealMedia або Matroska. Таким чином, користувач зазвичай не має файлу H.264, а замість цього має відеофайл .mp4, який є контейнером MP4, що містить відео, кодоване H.264, зазвичай поряд із аудіо, кодованим AAC. Формати мультимедійних контейнерів можуть містити будь-який з ряду різних форматів кодування відео; наприклад, формат контейнера MP4 може містити відео, або у форматі MPEG-2 Part 2, або у форматі кодування відео H.264, серед іншого. Інший приклад — початкова специфікація для типу файлу WebM, яка вказала формат контейнера (Matroska), а також який саме формат стиснення відео (VP8) та аудіо (Vorbis) використовується всередині контейнера Matroska, хоча сам формат контейнера Matroska може містити інші формати кодування відео (підтримка відео VP9 та аудіо Opus згодом була додана до специфікації WebM).

Різниця між «форматом» та «кодеком»[ред. | ред. код]

Хоча формати кодування відео, такі як H.264, іноді називають кодеками, існує чітка концептуальна різниця між специфікацією та її реалізаціями. Формати кодування відео описуються в специфікаціях, а програмне чи апаратне забезпечення для кодування / декодування даних у заданому форматі кодування відео з / до нестисненого відео є реалізацією цих специфікацій. Як аналогія, формат кодування відео H.264 (специфікація) — це кодек OpenH264 (конкретна реалізація), що мова програмування C (специфікація) — для компілятора GCC (конкретна реалізація). Зверніть увагу, що для кожної специфікації (наприклад, H.264) може бути багато кодеків, що реалізують цю специфікацію (наприклад, x264, OpenH264, H.264 / MPEG-4 AVC-продукти та реалізації).

Це розмежування не відображається послідовно термінологічно в літературі. Специфікація H.264 викликає стандарти кодування відео H.261, H.262, H.263 та H.264 і не містить слова кодек. Alliance for Open Media чітко розмежовує формат кодування відео AV1 та супровідний кодек, який вони розробляють, але називає сам формат кодування відео специфікацією відеокодека. Специфікація VP9 називає сам формат кодування відео VP9 кодеком.

Як приклад взаємозв'язку, сторінки Chromium та Mozilla із переліком їх відеоформатів підтримують обидва формати кодування відео, такі як кодеки H.264. Ще одним прикладом є те, що в оголошенні Cisco про відеокодек «безкоштовно як у пиві» прес-реліз посилається на формат кодування відео H.264 як «кодек» («вибір загального відеокодека»), але називає реалізація кодера / декодера H.264 «кодеком» незабаром після цього («наш кодек H.264 з відкритим кодом»).

Формат кодування відео не диктує всіх алгоритмів, що використовуються кодеком, що реалізує цей формат. Наприклад, велика частина того, як зазвичай працює стиснення відео, полягає у пошуку схожості між відеокадрами (збіг блоків), а потім у досягненні стиснення, копіюючи раніше закодовані подібні субмалюнки (наприклад, макроблоки) і додаючи невеликі відмінності, коли це необхідно. Пошук оптимальних комбінацій таких предикторів та відмінностей є важкою проблемою для НП, що означає, що практично неможливо знайти оптимальне рішення. Хоча формат кодування відео повинен підтримувати таке стиснення між кадрами у форматі бітового потоку, не вимагаючи без необхідності певних алгоритмів пошуку таких збігів блоків та інших кроків кодування, кодеки, що реалізують специфікацію кодування відео, мають певну свободу для оптимізації та інновацій у своєму виборі алгоритмів. Наприклад, у розділі 0.5 специфікації H.264 сказано, що алгоритми кодування не є частиною специфікації. Вільний вибір алгоритму також дозволяє різні компроміси між просторово-часовою складністю для одного і того ж формату кодування відео, тому живий канал може використовувати швидкий, але малоефективний алгоритм, тоді як одноразове кодування DVD для подальшого масового виробництва може торгувати довгим кодуванням -час для просторового кодування.

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

Концепція аналогового відео стиснення бере свій початок з 1929 року, коли Р. Д. Кел у Великій Британії запропонував концепцію передачі лише тих частин сцени, які змінювались від кадру до кадру. Концепція цифрового стиснення відео датується 1952 роком, коли дослідники Bell Labs Б. М. Олівер і К. В. Гаррісон запропонували використовувати диференціальну імпульсно-кодову модуляцію (DPCM) у відеокодуванні. Концепція міжкадрової компенсації руху бере свій початок з 1959 року, коли дослідники NHK Ю. Такі, М. Хаторі та С. Танака запропонували передбачуване міжкадрове кодування відео у часовому вимірі. У 1967 р. Дослідники Лондонського університету А. Х. Робінсон і К. Черрі запропонували кодування довжини пробігу (RLE), схему стиснення без втрат, щоб зменшити пропускну здатність передачі аналогових телевізійних сигналів .

Найдавніші алгоритми цифрового кодування відео були або для нестисненого відео, або використовували стиснення без втрат, обидва методи неефективні та непрактичні для цифрового кодування відео. Цифрове відео було представлено в 1970-х, спочатку використовуючи нестиснуту імпульсно-кодову модуляцію (PCM), що вимагає високої швидкості передачі даних близько 45–200 Мбіт / с для відео стандартної чіткості (SD), що досягало У 2000 разів більший, ніж пропускна здатність телекомунікацій (до 100 кбіт / с), доступна до 1990-х років . Подібним чином, для нестисненого відео високої чіткості (HD) 1080p потрібно бітрейт, що перевищує 1 Гбіт / с, що значно перевищує пропускну здатність, доступну в 2000-х.

DCT з компенсацією руху[ред. | ред. код]

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

Кодування DCT — це метод кодування перетворення з втратою блоків, який вперше був запропонований Насіром Ахмедом, який спочатку призначив його для стиснення зображень, коли він працював в Університеті штату Канзас у 1972 році. Потім Ахмед розробив його в практичний алгоритм стиснення зображень. Т. Натараджан і К. Р. Рао в Техаському університеті в 1973 р., І була опублікована в 1974 р.

Іншим ключовим розвитком було гібридне кодування з компенсацією руху. У 1974 році Алі Хабібі з Університету Південної Каліфорнії запровадив гібридне кодування, яке поєднує прогностичне кодування з кодуванням перетворень. Він дослідив кілька методів кодування перетворень, включаючи DCT, перетворення Адамара, перетворення Фур'є, перекоси перетворення та перетворення Кархунена-Лоева. Однак його алгоритм спочатку обмежувався внутрішньокадровим кодуванням у просторовому вимірі. У 1975 р. Джон А. Руз та Гунер С. Робінсон розширили гібридний алгоритм кодування Хабібі до часового виміру, використовуючи кодування перетворень у просторовому вимірі та прогнозне кодування у часовому вимірі, розробляючи гібридне кодування з компенсацією руху. Для кодування просторових перетворень вони експериментували з різними перетвореннями, включаючи DCT та швидке перетворення Фур'є (FFT), розробляючи для них міжкадрові гібридні кодери, і виявили, що DCT є найефективнішим завдяки своїй зменшеній складності, здатній стиснення даних зображення до 0,25 біт на піксель для відеотелефонної сцени з якістю зображення, порівнянною із типовим внутрішньокадровим кодером, що вимагає 2 біта на піксель.

DCT був застосований до кодування відео Вень-Сюн Чен, який розробив швидкий алгоритм DCT із C.H. Сміт та С. С. Фралік у 1977 р. та заснували Compression Labs для комерціалізації технології DCT. У 1979 р. Аніл К. Джайн та Джасван Р. Джайн далі розробили компенсацію руху з компенсацією руху DCT. Це призвело до того, що Чен розробив практичний алгоритм стиснення відео, який отримав назву DCT із компенсацією руху або адаптивним кодуванням сцени . DCT з компенсацією руху згодом став стандартним методом кодування для стиснення відео з кінця 1980-х років .

Стандарти кодування відео[ред. | ред. код]

Першим стандартом цифрового кодування відео було H.120, розробленим CCITT (нині ITU-T) у 1984 р. H.120 не використовувався на практиці, оскільки його ефективність була надто низькою. H.120 використовував кодування DPCM з компенсацією руху, алгоритм стиснення без втрат, який був неефективним для кодування відео. Наприкінці 1980-х років ряд компаній почали експериментувати з кодуванням дискретного косинусного перетворення (DCT), набагато ефективнішою формою стиснення для кодування відео. CCITT отримав 14 пропозицій щодо форматів стиснення відео на основі DCT, на відміну від єдиної пропозиції на основі стиснення векторного квантування (VQ). Стандарт H.261 був розроблений на основі стиснення DCT з компенсацією руху. H.261 був першим практичним стандартом кодування відео і був розроблений за патентами, ліцензованими від ряду компаній, зокрема Hitachi, PictureTel, NTT, BT та Toshiba . Починаючи з H.261, компенсація руху, компенсована DCT, була прийнята всіма основними стандартами кодування відео (включаючи формати H.26x та MPEG), що послідували. MPEG-1, розроблений Групами експертів з кінофільмів (MPEG), послідував у 1991 році, і він був розроблений для стиснення відео високої якості. У 1994 році його змінив MPEG-2 / H.262 , який був розроблений на основі патентів, ліцензованих низкою компаній, в першу чергу Sony, Thomson та Mitsubishi Electric. MPEG-2 став стандартним відеоформатом для цифрового телебачення DVD та SD. Його алгоритм DCT з компенсацією руху зміг досягти ступеня стиснення до 100: 1, що дозволило розвивати цифрові медіа-технології, такі як відео на вимогу (VOD) та телебачення високої чіткості (HDTV) [. 32] У 1999 році за ним пішов MPEG-4 / H.263, що стало значним стрибком уперед для технології стиснення відео. Він був розроблений на основі патентів, ліцензованих низкою компаній, насамперед Mitsubishi, Hitachi та Panasonic.

Найбільш широко використовуваний формат кодування відео станом на 2019 рік — H.264 / MPEG-4 AVC. Він був розроблений у 2003 році за патентами, що отримали ліцензію від ряду організацій, насамперед Panasonic, Godo Kaisha IP Bridge та LG Electronics. На відміну від стандартного DCT, який використовували його попередники, AVC використовує ціле число DCT. H.264 — один із стандартів кодування відео для дисків Blu-ray; усі програвачі Blu-ray Disc повинні мати можливість декодувати H.264. Він також широко використовується потоковими джерелами в Інтернеті, такими як відео з YouTube, Netflix, Vimeo та iTunes Store, вебпрограмним забезпеченням, таким як Adobe Flash Player та Microsoft Silverlight, а також різними трансляціями HDTV через ефір (стандарти Advanced Television Systems Committee, ISDB-T, DVB-T або DVB-T2), кабельний (DVB-C) та супутниковий (DVB-S2).

Основною проблемою для багатьох форматів кодування відео є патенти, що робить використання дорогим або потенційно ризикує отримати патентний позов через патенти на підводні човни. Мотивацією багатьох нещодавно розроблених форматів відеокодування, таких як Theora, VP8 і VP9, ​​було створення (вільного) стандарту кодування відео, охопленого лише патентами на безоплатну оплату. Статус патенту також був основною суперечкою щодо вибору форматів відео, які підтримуватимуть звичайні веббраузери всередині тегу відео HTML5.

Форматом кодування відео поточного покоління є HEVC (H.265), представлений в 2013 році. Хоча AVC використовує ціле число DCT із розмірами блоків 4x4 та 8x8, HEVC використовує цілі числа DCT та DST перетворення з різними розмірами блоків від 4x4 до 32x32. [38 ] HEVC сильно запатентована, причому більшість патентів належать Samsung Electronics, GE, NTT та JVC Kenwood. В даний час це оскаржується форматом AV1, який має бути вільно ліцензованим. Станом на 2019 рік AVC на сьогоднішній день є найбільш часто використовуваним форматом для запису, стиснення та розповсюдження відеовмісту, яким користується 91 % розробників відео, а потім HEVC, який використовують 43 % розробників.

Формати кодування відео без втрат, втрат та нестиснутого відео[ред. | ред. код]

Споживче відео зазвичай стискається за допомогою відеокодеків з втратами, оскільки це призводить до значно менших файлів, ніж стиснення без втрат. Хоча існують формати кодування відео, розроблені явно для стиснення з втратами або без втрат, деякі формати кодування відео, такі як Dirac та H.264, підтримують обидва.

Нестиснуті відеоформати, такі як Clean HDMI, — це форма відео без втрат, яка використовується в деяких випадках, наприклад, під час надсилання відео на дисплей через з'єднання HDMI. Деякі камери високого класу також можуть знімати відео безпосередньо в цьому форматі.

Формати кодування внутрішньокадрового відео[ред. | ред. код]

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

Оскільки міжкадрове стиснення копіює дані з одного кадру в інший, якщо оригінальний кадр просто вирізати (або втратити при передачі), наступні кадри не можуть бути реконструйовані належним чином. Зробити скорочення у стисненому внутрішньокадровому відео під час редагування відео майже так само просто, як і редагувати нестиснене відео: можна знайти початок і кінець кожного кадру, а просто копіювати побітно-розрядні кожен кадр, який потрібно зберегти, і кадрів, яких ніхто не хоче. Ще одна відмінність між внутрішньокадровим стисненням та міжкадровим стисненням полягає в тому, що в рамках внутрішньокадрових систем кожен кадр використовує подібний обсяг даних. У більшості міжкадрових систем певним кадрам (наприклад, «I кадри» у MPEG-2) заборонено копіювати дані з інших фреймів, тому вони потребують набагато більше даних, ніж інші кадри поблизу.

Можна створити комп'ютерний відеоредактор, який виявляє проблеми, спричинені редагуванням кадрів I, тоді як вони потрібні іншим кадрам. Це дозволило використовувати нові редактори, такі як HDV, для редагування. Однак цей процес вимагає набагато більшої обчислювальної потужності, ніж редагування внутрішньокадрового стисненого відео з однаковою якістю зображення. Але це стиснення не дуже ефективно використовувати для будь-якого аудіоформату.

Профілі та рівні[ред. | ред. код]

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

Профіль обмежує, які прийоми кодування дозволені. Наприклад, формат H.264 включає профілі базового, основного та високого (та інших). Хоча P-зрізи (які можна передбачити на основі попередніх зрізів) підтримуються у всіх профілях, B-зрізи (які можна передбачити як на основі попереднього, так і наступних фрагментів) підтримуються в основному та високому профілях, але не на базовому рівні. [ 50]

Рівень — це обмеження таких параметрів, як максимальна роздільна здатність і швидкість передачі даних.

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

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

  • Термін «кодування відео» можна побачити, наприклад, назви Advanced Video Coding, High Efficiency Video Coding та Video Coding Experts Group
  • Томас Віганд; Гері Дж. Салліван; Gisle Bjontegaard & Ajay Luthra (липень 2003). «Огляд стандарту кодування відео H.264 / AVC» (PDF). ОПЕРАЦІЇ IEEE НА СХЕМАХ І СИСТЕМАХ ДЛЯ ВІДЕОТЕХНОЛОГІЇ.
  • СЕРІЯ H: АУДІОВІЗУАЛЬНІ ТА МУЛЬТИМЕДІЙНІ СИСТЕМИ: Інфраструктура аудіовізуальних послуг — Кодування рухомого відео: Розширене кодування відео для загальних аудіовізуальних послуг". Itu.int. Процитовано 6 січня 2015.
  • Альянс за відкриті медіа. Процитовано 23.05.2016.
  • Адріан Грейндж; Пітер де Ріваз та Джонатан Хант. «Специфікація процесу потоку бітів і декодування VP9» (PDF).
  • Проекти Chromium. Процитовано 23.05.2016.
  • Медіа-формати, що підтримуються аудіо- та відеоелементами HTML ". Mozilla. Отримано 23.05.2016.
  • Горобина Троллоп (2013-10-30). «H.264 з відкритим кодом усуває бар'єри для WebRTC». Cisco. Процитовано 23.05.2016.
  • Глава 3: Модифікований алгоритм A * Prune для пошуку K-MCSP при стисненні відео "(PDF). Shodhganga.inflibnet.ac.in. Отримано 06.01.2015.
  • «Історія стиснення відео». МСЕ-Т. Спільна відеогрупа (JVT) ISO / IEC MPEG та ITU-T VCEG (ISO / IEC JTC1 / SC29 / WG11 та ITU-T SG16 Q.6). Липень 2002. С. 11, 24–9, 33, 40–1, 53–6. Процитовано 3 листопада 2019.
  • Робінзон, А. Х .; Черрі, К. (1967). «Результати прототипу схеми стиснення смуги пропускання телевізора». Праці IEEE. IEEE. 55 (3): 356—364. doi: 10.1109 / PROC.1967.5493.
  • Ганбарі, Мохаммед (2003). Стандартні кодеки: стиснення зображення до розширеного кодування відео. Інститут техніки та технологій. с. 1–2. ISBN 9780852967102.