Введение
Видеокодек – это программное обеспечение или устройство, обеспечивающее кодирование и декодирование цифрового видео, которое может включать или не включать использование сжатия и/или декомпрессии видео. Большинство кодеков, как правило, представляют собой реализации форматов кодирования видео. Сжатие может использовать компрессию данных с потерями, поэтому вопросы измерения качества становятся важными. Вскоре после того, как компакт-диск стал широко доступен как цифровая замена аналоговому аудио, появилась возможность хранить и использовать видео в цифровом формате. Вскоре возникло множество технологий для этого. Основная цель большинства методов сжатия видео – получить видео, максимально приближенное по качеству к исходному материалу, одновременно обеспечивая минимально возможный размер файла. Однако существуют и другие факторы, которые могут служить основой для сравнения.
Α video codec is software or a device that provides encoding and decoding for digital video, and which may or may not include the use of video compression and/or decompression. Most codecs are typically implementations of video coding formats. The compression may employ lossy data compression, so that quality measurement issues become important. Shortly after the compact disc became widely available as a digital format replacement for analog audio, it became feasible to also store and use video in digital form. A variety of technologies soon emerged to do so. The primary goal for most methods of compressing video is to produce video that most closely approximates the fidelity of the original source, while simultaneously delivering the smallest file size possible. However, there are also several other factors that can be used as a basis for comparison.
Качество видео
Качество, которого может достичь кодек, во многом зависит от используемого формата сжатия. Кодек – это не формат, и может существовать несколько кодеков, реализующих одну и ту же спецификацию сжатия; например, кодеки MPEG 1 обычно не обеспечивают соотношение качества к размеру, сравнимое с кодеками, реализующими более современную спецификацию H.264. Однако соотношение качества к размеру выходного потока, создаваемого различными реализациями одной и той же спецификации, также может варьироваться. Каждая спецификация сжатия определяет различные механизмы, с помощью которых исходное видео (по сути, последовательность несжатых цифровых изображений с полным разрешением) может быть уменьшено в размере – от простого сжатия битов (например, Lempel Ziv Welch) до психовизуального и обобщения движения, а также способ хранения выходных данных в виде битового потока. Пока кодировщик кодека соответствует спецификации, он может выбирать любую комбинацию этих методов для применения к различным частям контента. Декодировщик кодека, также соответствующий спецификации, распознает каждый из используемых механизмов и, таким образом, интерпретирует сжатый поток для восстановления исходного видео для отображения (хотя оно не будет идентично исходному видео, если сжатие было без потерь). Каждый кодировщик реализует спецификацию в соответствии со своими алгоритмами и параметрами, что означает, что сжатый выход разных кодеков будет различаться, приводя к различиям в качестве и эффективности между ними. Прежде чем сравнивать качество видео, обеспечиваемое разными кодеками, важно понимать, что каждый кодек может выдавать разную степень качества для заданного набора кадров в видеопоследовательности. На эту изменчивость влияет множество факторов. Во-первых, все кодеки имеют механизм управления битрейтом, который определяет битрейт и качество для каждого кадра. Различие между переменным битрейтом (VBR) и постоянным битрейтом (CBR) создает компромисс между стабильным качеством во всех кадрах, с одной стороны, и более постоянным битрейтом, необходимым для некоторых приложений, с другой. Во-вторых, некоторые кодеки различают различные типы кадров, такие как ключевые кадры и неключевые кадры, которые отличаются по важности для общего визуального качества и степени, в которой они могут быть сжаты. В-третьих, качество зависит от предварительной фильтрации, которая включена во все современные кодеки. Могут быть и другие факторы. Для достаточно длинного клипа можно выбрать последовательности, которые мало пострадали от сжатия, и последовательности, которые пострадали сильно, особенно если использовался CBR, при этом качество между кадрами может значительно варьироваться из-за различной степени сжатия, необходимой для достижения постоянного битрейта. Таким образом, в данном длинном клипе, например, полнометражном фильме, любые два кодека могут работать совершенно по-разному на определенной последовательности, в то время как на более широкой последовательности кадров кодеки могут быть примерно равными (или ситуация может быть обратной) по качеству. Пресс-релизы и любительские форумы иногда могут выбирать последовательности, которые, как известно, благоприятствуют определенному кодеку или стилю управления битрейтом при проведении обзоров.
Субъективное качество видео
Это касается восприятия видео зрителем и определяет его мнение о конкретной видеопоследовательности. Субъективные тесты качества видео достаточно затратны по времени (подготовка и проведение) и требуют значительных человеческих ресурсов. Существует множество способов демонстрации видеоэкспертам и регистрации их оценок. Некоторые из них стандартизированы, в основном в Рекомендации ITU-R BT.500-13 и Рекомендации ITU-T P.910. Цель измерения субъективного качества видео аналогична измерению среднего мнения об оценке (MOS) для аудио. Оценки экспертов можно усреднить, а среднее значение указать как есть или сопроводить заданным доверительным интервалом. Для усреднения могут применяться дополнительные процедуры. Например, оценки экспертов, чьи мнения считаются нестабильными (например, если их корреляция со средним мнением низкая), могут быть исключены. Это часто встречается при работе с видеокодеками. Когда кодеки с сопоставимыми объективными показателями демонстрируют различные субъективные результаты, основными причинами могут быть: Пре- и постфильтры широко используются в кодеках. Кодеки часто применяют предварительные фильтры, такие как шумоподавление, устранение мерцания, стабилизация изображения и т.п. Шумоподавление и устранение мерцания обычно сохраняют значение PSNR, одновременно повышая визуальное качество (наилучшие фильтры шумоподавления также увеличивают PSNR при средних и высоких битрейтах). Стабилизация изображения значительно снижает PSNR, но повышает визуальное качество. Постфильтры демонстрируют схожие характеристики: деблокинг и дерингинг сохраняют PSNR, но улучшают качество; добавление зернистости (предложено в H.264) по сути повышает качество видео, особенно на больших плазменных экранах, но снижает PSNR. Все фильтры увеличивают время сжатия/декомпрессии, таким образом улучшая визуальное качество, но снижая скорость кодирования и декодирования. Стратегия поиска движения (ME) также может приводить к разному визуальному качеству при одинаковом PSNR. Так называемый поиск истинного движения обычно не достигает минимального значения суммы абсолютных разностей (SAD) в ME кодека, но может обеспечить лучшее визуальное качество. Такие методы также требуют больше времени на сжатие. Стратегия управления скоростью потока. VBR обычно обеспечивает более высокие оценки визуального качества, чем CBR, при тех же средних значениях PSNR для последовательностей. Использовать длинные последовательности для субъективного тестирования затруднительно. Обычно используются три или четыре десятисекундных фрагмента, в то время как для объективных метрик применяются полные фильмы. Важен выбор последовательностей – более конкурентоспособны те, которые похожи на те, что разработчики используют для настройки своих кодеков.
Pre and postfilters are widely used in codecs. Codecs often use prefilters such as video denoising, deflicking, deshaking, etc. Denoising and deflicking normally maintain PSNR value while increasing visual quality (the best slow denoising filters also increase PSNR on medium and high bitrates). Deshaking greatly decreases PSNR, but increases visual quality. Postfilters show similar characteristics deblocking and deringing maintain PSNR, but increase quality; graining (suggested in H.264) essentially increases video quality, especially on big plasma screens, but decreases PSNR. All filters increase compression/decompression time, so they enhance visual quality but decrease the speed of coding and decoding. Motion estimation (ME) search strategy can also cause different visual quality for the same PSNR. So called true motion search commonly will not reach minimum sum of absolute differences (SAD) values in codec ME, but may result in better visual quality. Such methods also require more compression time. Rate control strategy. VBR commonly cause better visual quality marks than CBR for the same average PSNR values for sequences. It is difficult to use long sequences for subjective testing. Commonly, three or four ten second sequences are used, while full movies are used for objective metrics. Sequence selection is important those sequences that are similar to the ones used by developers to tune their codecs are more competitive.
Поддержка профилей
Современные стандарты определяют широкий спектр функций и требуют очень значительных программных или аппаратных усилий и ресурсов для их реализации. Обычно в любом конкретном продукте поддерживаются только выбранные профили стандарта. (Это очень распространено, например, для реализаций H.264). Стандарт H.264 включает в себя следующие семь наборов возможностей, которые называются профилями и ориентированы на конкретные классы приложений:
Базовый профиль (BP): В первую очередь предназначен для недорогих приложений с ограниченными вычислительными ресурсами, этот профиль широко используется в видеоконференцсвязи и мобильных приложениях. Основной профиль (MP): Изначально разработанный как основной потребительский профиль для вещания и хранения данных, этот профиль потерял свою актуальность с появлением Высокого профиля (HiP) для этих приложений. Расширенный профиль (XP): Предназначенный для потокового видео, этот профиль обладает относительно высокой степенью сжатия и дополнительными функциями для устойчивости к потере данных и переключению потоков на сервере. Высокий профиль (HiP): Основной профиль для приложений вещания и хранения данных на дисках, особенно для приложений высокой четкости. (Например, этот профиль используется в HD DVD и Blu-ray Disc). Высокий 10-битный профиль (Hi10P): Превосходя возможности современных потребительских продуктов, этот профиль основан на Высоком профиле и добавляет поддержку до 10 бит на образец для точности декодированного изображения. Высокий профиль 4:2:2 (Hi422P): В основном предназначен для профессиональных приложений, использующих чересстрочную развертку, этот профиль основан на Высоком 10-битном профиле и добавляет поддержку формата цветовой субдискретизации 4:2:2, используя до 10 бит на образец для точности декодированного изображения. Профиль прогнозирования высокого уровня 4:4:4 (Hi444PP): Этот профиль основан на Высоком профиле 4:2:2, поддерживает цветовой формат до 4:4:4, до 14 бит на образец, а также эффективное кодирование областей без потерь и кодирование каждого изображения в виде трех отдельных цветовых плоскостей. Высокий профиль многоракурсного просмотра: Этот профиль поддерживает два или более ракурса, используя как межкадровое (временное) прогнозирование, так и межракурсное прогнозирование MVC, но не поддерживает поля изображений и адаптивное кодирование полей макроблоков. Стандарт также содержит четыре дополнительных внутрикадровых профиля, которые определены как простые подмножества других соответствующих профилей. Они предназначены в основном для профессиональных приложений (например, камер и систем редактирования):
High 10 Intra Profile: High 10 Profile, ограниченный использованием только внутрикадрового кодирования. High 4:2:2 Intra Profile: High 4:2:2 Profile, ограниченный использованием только внутрикадрового кодирования. High 4:4:4 Intra Profile: High 4:4:4 Profile, ограниченный использованием только внутрикадрового кодирования. CAVLC 4:4:4 Intra Profile: High 4:4:4 Profile, ограниченный использованием только внутрикадрового кодирования и энтропийного кодирования CAVLC (т.е. не поддерживающего CABAC). Кроме того, стандарт теперь также содержит три профиля масштабируемого видеокодирования. Scalable Baseline Profile: Масштабируемое расширение Базового профиля. Scalable High Profile: Масштабируемое расширение Высокого профиля. Scalable High Intra Profile: Scalable High Profile, ограниченный использованием только внутрикадрового кодирования. Точное сравнение кодеков должно учитывать вариации профилей в каждом кодеке. См. также Профили и уровни MPEG 2.
Baseline Profile (BP): Primarily for lower cost applications with limited computing resources, this profile is used widely in videoconferencing and mobile applications. Main Profile (MP): Originally intended as the mainstream consumer profile for broadcast and storage applications, the importance of this profile faded when the High profile (HiP) was developed for those applications. Extended Profile (XP): Intended as the streaming video profile, this profile has relatively high compression capability and some extra tricks for robustness to data losses and server stream switching. High Profile (HiP): The primary profile for broadcast and disc storage applications, particularly for high definition television applications. (This is the profile adopted into HD DVD and Blu ray Disc, for example.) High 10 Profile (Hi10P): Going beyond today's mainstream consumer product capabilities, this profile builds on top of the High Profile, adding support for up to 10 bits per sample of decoded picture precision. High 4:2:2 Profile (Hi422P): Primarily targeting professional applications that use interlaced video, this profile builds on top of the High 10 Profile, adding support for the 4:2:2 chroma sampling format while using up to 10 bits per sample of decoded picture precision. High 4:4:4 Predictive Profile (Hi444PP): This profile builds on top of the High 4:2:2 Profile, supporting up to 4:4:4 chroma sampling, up to 14 bits per sample, and additionally supporting efficient lossless region coding and the coding of each picture as three separate color planes. Multiview High Profile: This profile supports two or more views using both inter picture (temporal) and MVC inter view prediction, but does not support field pictures and macroblock adaptive frame field coding. The standard also contains four additional all Intra profiles, which are defined as simple subsets of other corresponding profiles. These are mostly for professional (e. g., camera and editing system) applications:
High 10 Intra Profile: The High 10 Profile constrained to all Intra use. High 4:2:2 Intra Profile: The High 4:2:2 Profile constrained to all Intra use. High 4:4:4 Intra Profile: The High 4:4:4 Profile constrained to all Intra use. CAVLC 4:4:4 Intra Profile: The High 4:4:4 Profile constrained to all Intra use and to CAVLC entropy coding (i. e., not supporting CABAC). Moreover, the standard now also contains three Scalable Video Coding profiles. Scalable Baseline Profile: A scalable extension of the Baseline profile. Scalable High Profile: A scalable extension of the High profile. Scalable High Intra Profile: The Scalable High Profile constrained to all Intra use. An accurate comparison of codecs must take the profile variations within each codec into account. See also MPEG 2 Profiles and Levels.