Формат кодирования видео - Video coding format

Формат кодирования видео (или иногда видео формат сжатия ) представляет собой содержание формат представления для хранения или передачи цифрового видео контента (например, в файле данных или битовый поток ). Обычно он использует стандартизированный алгоритм сжатия видео , чаще всего основанный на кодировании с дискретным косинусным преобразованием (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 и не содержит слова « кодек» . Альянс Открытого СМИ четко различает AV1 видео формат кодирования и сопутствующее кодек они развиваются, но называет себя видео формат кодирования видео кодек спецификации . Спецификация VP9 называет сам формат кодирования видео VP9 кодеком .

Например, страницы Chromium и Mozilla со списком их видеоформатов поддерживают оба формата кодирования видео, такие как кодеки H.264 . В качестве другого примера, в объявлении Cisco о видеокодеке «бесплатно как в пиве» в пресс-релизе формат кодирования видео H.264 упоминается как «кодек» («выбор общего видеокодека»), но упоминается кодек Cisco. реализация кодера / декодера H.264 вскоре после этого «кодек» («наш кодек H.264 с открытым исходным кодом»).

Формат кодирования видео не диктует все алгоритмы, используемые кодеком, реализующим формат. Например, большая часть того, как обычно работает сжатие видео, заключается в обнаружении сходства между видеокадрами (сопоставление блоков), а затем достижении сжатия путем копирования ранее закодированных похожих фрагментов изображения (например, макроблоков ) и добавления небольших различий, когда это необходимо. Поиск оптимальных комбинаций таких предикторов и различий является NP-сложной задачей, а это означает, что найти оптимальное решение практически невозможно. Хотя формат кодирования видео должен поддерживать такое сжатие между кадрами в формате битового потока, не требуя без надобности определенных алгоритмов для поиска таких совпадений блоков и других этапов кодирования, кодеки, реализующие спецификацию кодирования видео, имеют некоторую свободу для оптимизации и нововведений в своем выборе. алгоритмов. Например, в разделе 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 году Али Хабиби из Университета Южной Калифорнии представил гибридное кодирование, которое сочетает в себе кодирование с предсказанием и кодирование с преобразованием. Он изучил несколько методов преобразования кодирования, в том числе ДКПА, преобразование Адамар , преобразование Фурье , Slant преобразования и преобразования Карунена-Лоэв . Однако его алгоритм изначально был ограничен внутрикадровым кодированием в пространственном измерении. В 1975 году Джон А. Роуз и Ганер С. Робинсон расширили алгоритм гибридного кодирования Хабиби до временного измерения, используя кодирование с преобразованием в пространственном измерении и кодирование с предсказанием во временном измерении, разработав межкадровое гибридное кодирование с компенсацией движения. Для кодирования с пространственным преобразованием они экспериментировали с различными преобразованиями, включая DCT и быстрое преобразование Фурье (FFT), разрабатывая для них межкадровые гибридные кодеры, и обнаружили, что DCT является наиболее эффективным из-за его меньшей сложности, способного сжатие данных изображения до 0,25 бита на пиксель для сцены видеотелефона с качеством изображения, сравнимым с типичным внутрикадровым кодером, требующим 2 бита на пиксель.

DCT был применен к кодированию видео Вен-Сюн Ченом, который разработал быстрый алгоритм DCT с CH Smith и SC Fralick в 1977 году и основал Compression Labs для коммерциализации технологии DCT. В 1979 году Анил К. Джайн и Джасвант Р. Джайн усовершенствовали сжатие видео DCT с компенсацией движения. Это привело к тому, что в 1981 году Чен разработал практический алгоритм сжатия видео, названный 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 году, был разработан для сжатия видео с качеством VHS . На смену ему в 1994 году пришел MPEG-2 / H.262 , который был разработан с использованием патентов, лицензированных рядом компаний, в первую очередь Sony , Thomson и Mitsubishi Electric . MPEG-2 стал стандартным видеоформатом для цифрового телевидения DVD и SD . Его алгоритм DCT с компенсацией движения смог достичь степени сжатия до 100: 1, что позволило разработать цифровые мультимедийные технологии, такие как видео по запросу (VOD) и телевидение высокой четкости (HDTV). В 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 должны поддерживать декодирование H.264. Он также широко используется в потоковых интернет-источниках, таких как видео с YouTube , Netflix , Vimeo и iTunes Store , в веб-программном обеспечении, таком как Adobe Flash Player и Microsoft Silverlight , а также в различных трансляциях HDTV по наземным каналам ( стандарты Комитета по продвинутым телевизионным системам). , ISDB-T , DVB-T или DVB-T2 ), кабельное ( DVB-C ) и спутниковое ( DVB-S2 ).

Основной проблемой для многих форматов кодирования видео были патенты , из-за которых их использование было дорогим или потенциально могло быть связано с патентным иском из-за патентов на подводные лодки . Мотивация многие недавно разработанные видео кодирования форматов , такие как Theora , VP8 и VP9 была создать ( Libre ) стандарт кодирование видео покрыта только патенты безвозмездных. Статус патента также был основным предметом разногласий при выборе видеоформатов, которые основные веб-браузеры будут поддерживать внутри тега видео HTML5 .

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

Список стандартов кодирования видео

Хронология международных стандартов сжатия видео
Базовый алгоритм Стандарт кодирования видео Год Издатель (ы) Комитет (ы) Лицензиар (ы) Доля рынка (2019 г.) Популярные реализации
DPCM H.120 1984 CCITT VCEG N / A N / A Неизвестный
DCT H.261 1988 г. CCITT VCEG Hitachi , PictureTel , NTT , BT , Toshiba и т. Д. N / A Видеоконференцсвязь , видеотелефония
Motion JPEG (MJPEG) 1992 г. JPEG JPEG N / A N / A QuickTime
MPEG-1, часть 2 1993 г. ISO , IEC MPEG Fujitsu , IBM , Matsushita и др. N / A Видео-CD , Интернет-видео
H.262 / MPEG-2, часть 2 (видео MPEG-2) 1995 г. ИСО, МЭК, МСЭ-Т MPEG, VCEG Sony , Thomson , Mitsubishi и др. 29% DVD-видео , Blu-ray , DVB , ATSC , SVCD , SDTV
DV 1995 г. IEC IEC Sony, Panasonic Неизвестный Видеокамеры , цифровые кассеты
H.263 1996 г. ITU-T VCEG Mitsubishi, Hitachi , Panasonic и др. Неизвестный Видеоконференцсвязь, видеотелефония, H.320 , цифровая сеть с интеграцией служб (ISDN), мобильное видео ( 3GP ), MPEG-4 Visual
MPEG-4, часть 2 (MPEG-4 Visual) 1999 г. ISO, IEC MPEG Mitsubishi, Hitachi, Panasonic и др. Неизвестный Интернет-видео, DivX , Xvid
DWT Motion JPEG 2000 (MJ2) 2001 г. JPEG JPEG N / A Неизвестный Цифровое кино
DCT Расширенное кодирование видео (H.264 / MPEG-4 AVC) 2003 г. ИСО, МЭК, МСЭ-Т MPEG, VCEG Panasonic, Godo Kaisha IP Bridge , LG и т. Д. 91% Blu-ray , HD DVD , HDTV ( DVB , ATSC ), потоковое видео ( YouTube , Netflix , Vimeo ), iTunes Store , iPod Video , Apple TV , видеоконференцсвязь, Flash Player , Silverlight , VOD
Теора 2004 г. Зиф Зиф N / A Неизвестный Интернет-видео, веб-браузеры
ВК-1 2006 г. SMPTE SMPTE Microsoft , Panasonic, LG, Samsung и др. Неизвестный Blu-ray, Интернет-видео
Apple ProRes 2007 г. яблоко яблоко яблоко Неизвестный Видеопродакшн , пост-продакшн
Высокоэффективное кодирование видео (H.265 / MPEG-H HEVC) 2013 ИСО, МЭК, МСЭ-Т MPEG, VCEG Samsung, GE , NTT , JVC Kenwood и др. 43% UHD Blu-ray , DVB, ATSC 3.0 , потоковая передача UHD , высокоэффективный формат изображения , macOS High Sierra , iOS 11
AV1 2018 г. AOMedia AOMedia N / A 7% HTML5 видео
Универсальное кодирование видео (VVC / H.266) 2020 г. JVET JVET Неизвестный N / A N / A

Форматы кодирования видео без потерь, с потерями и без сжатия

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

Несжатые видеоформаты, такие как Clean HDMI , представляют собой форму видео без потерь, используемую в некоторых случаях, например, при отправке видео на дисплей через соединение HDMI . Некоторые высококачественные камеры также могут снимать видео непосредственно в этом формате.

Форматы внутрикадрового кодирования видео

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

Поскольку при межкадровом сжатии данные копируются из одного кадра в другой, если исходный кадр просто вырезан (или потерян при передаче), следующие кадры не могут быть восстановлены должным образом. Сделать `` нарезки '' в видео с внутрикадровым сжатием во время редактирования видео почти так же просто, как и редактировать несжатое видео: каждый находит начало и конец каждого кадра и просто копирует побитно каждый кадр, который нужно сохранить, и отбрасывает кадры никто не хочет. Еще одно различие между внутрикадровым и межкадровым сжатием состоит в том, что в внутрикадровых системах каждый кадр использует одинаковый объем данных. В большинстве межкадровых систем определенным кадрам (например, « I-кадрам » в MPEG-2 ) не разрешается копировать данные из других кадров, поэтому для них требуется гораздо больше данных, чем для других кадров поблизости.

Можно создать компьютерный видеоредактор, который выявляет проблемы, возникающие, когда одни кадры редактируются, а другие кадры нуждаются в них. Это позволило использовать для редактирования новые форматы, такие как HDV . Однако этот процесс требует гораздо большей вычислительной мощности, чем редактирование внутрикадрового сжатого видео с тем же качеством изображения. Но это сжатие не очень эффективно для использования в любом аудиоформате.

Профили и уровни

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

A профиль ограничивает котором кодирующие методы разрешены. Например, формат H.264 включает профили baseline , main и high (и другие). В то время как P-срезы (которые можно спрогнозировать на основе предыдущих срезов) поддерживаются во всех профилях, B-срезы (которые могут быть предсказаны на основе как предшествующих, так и последующих срезов) поддерживаются в основном и высоких профилях, но не в базовом плане .

Уровень представляет собой ограничение на такие параметры, как максимальное разрешение и скорость передачи данных.

Смотрите также

Ссылки и примечания