Avc кодек что это
H.264, MPEG-4 Part 10 или AVC (Advanced Video Coding) — стандарт сжатия видео, предназначенный для достижения высокой степени сжатия видеопотока при сохранении высокого качества.
Содержание
О стандарте
Он был создан ITU-T Video Coding Experts Group (VCEG) совместно с IEC Moving Picture Experts Group (MPEG) в рамках совместной программы Joint Video Team (JVT).
Стандарты ITU-T H.264 и ISO/IEC 2003 года.
Используется в цифровом телевидении высокого разрешения (HDTV) и как основной кодек для видеозаписей Министерством обороны США, компанией Apple (в том числе видеороликов плееров
Возможности
Стандарт H.264 / AVC / MPEG-4 Part 10 содержит ряд новых возможностей, позволяющих значительно повысить эффективность сжатия видео по сравнению с предыдущими (такими, как ASP) стандартами, обеспечивая также большую гибкость применения в разнообразных сетевых средах. Основные из них:
- Многокадровое предсказание кадров:
- Использование сжатых ранее кадров в качестве опорных (то есть с заимствованием части материала из них) куда более гибко, чем в предыдущих стандартах. Позволяется использование до 32 ссылок на другие кадры, тогда как в ASP и более ранних число ссылок ограничено одним или, в случае B-кадров, двумя кадрами. Это поднимает эффективность кодирования, так как позволяет кодеру выбирать для компенсации движения между большим количеством изображений. Данная функция обеспечивает небольшое улучшение в качестве и экономию битрейта в большинстве сцен. Однако для некоторых сцен, например с частыми повторяющимися участками, возвратно-поступательным движением и т. п. подобный подход при сохранении качества позволяет очень сильно снизить затраты битрейта.
- Независимость порядка воспроизведения изображений и порядка опорных изображений. В предшествующих стандартах устанавливалась жёсткая зависимость между порядком следования изображений для использования при компенсации движения и порядком следования изображений при воспроизведении. В новом стандарте эти ограничения в значительной мере устранены, что позволяет кодеру выбирать порядок изображений для компенсации движения и для воспроизведения с высокой степенью гибкости, которая ограничена только объёмом памяти, который гарантирует возможность декодирования. Устранение ограничения также позволяет в ряде случаев устранить дополнительную задержку, ранее связанную с двунаправленным предсказанием.
- Независимость методов обработки изображений и возможности их использования для предсказания движения. В предшествующих стандартах изображения, закодированные с использованием некоторых методов (например, двунаправленного предсказания), не могли использоваться в качестве опорных для предсказания движения других изображений видеопоследовательности. Устраняя это ограничение, новый стандарт обеспечивает кодеру большую гибкость и, во многих случаях, возможность использовать для предсказания движения изображение, более близкое по содержанию к кодируемому. с переменным размером блока (от 16x16 до 4x4 пикселя) позволяет крайне точно выделять области движения.
- Векторы движения, выводящие за границы изображения. В H.263, включена в новый стандарт.
- Шеститочечная фильтрация компонента яркости для полупиксельного предсказания с целью уменьшения зубчатости краев и, в конечном счёте, обеспечения большей чёткости изображения.
- Точность до четверти пиксела (Qpel) при компенсации движения обеспечивает очень высокую точность описания движущихся областей (что особенно актуально для медленного движения). Цветность, как правило, хранится с разрешением, уменьшенным вдвое по вертикали и горизонтали (прореживание цвета), поэтому компенсация движения для компонента цветности использует точность в одну восьмую пиксела цветности.
- Взвешенное предсказание, позволяющее использовать масштабирование и сдвиг после компенсации движения на величины, указанные кодером. Такая методика может чрезвычайно сильно поднять эффективность кодирования для сцен с изменением освещённости, например при эффектах затемнения, постепенного появления изображения.
- Метод представления макроблоков без потерь в PCM, при котором видеоданные представлены непосредственно, позволяющий точно описывать определённые области и допускающий строгое ограничение на количество закодированных данных для каждого макроблока.
- Улучшенный метод беспотерьного представления макроблоков, позволяющий точно описывать определённые области, при этом обычно затрачивая существенно меньше битов, чем PCM (поддерживается не во всех профилях).
- Адаптивное к изображению кодирование полей (PAFF), позволяющее кодировать каждый кадр как кадр или как пару полей (полукадров) — в зависимости от отсутствия\наличия движения.
- Адаптивное к макроблокам кодирование полей (MBAFF), позволяющее независимо кодировать каждую вертикальную пару макроблоков (блок 16×32) как прогрессивные или чересстрочные. Позволяет использовать макроблоки 16×16 в режиме разбиения на поля (сравните с 16×8 полумакроблоками в
- Новые функции преобразования:
- Точное целочисленное преобразование пространственных блоков 4×4 (концептуально подобное широко известному DCT, но упрощенное и способное обеспечить точное декодирование [1] ), позволяющее точное размещение разностных сигналов с минимумом шума, часто возникающего в предыдущих кодеках.
- Точное целочисленное преобразование пространственных блоков 8x8 (концептуально подобное широко известному DCT, но упрощенное и способное обеспечить точное декодирование; поддерживается не во всех профилях), обеспечивающее большую эффективность сжатия схожих областей, чем 4×4.
- Адаптивный выбор кодеком между размерами блока 4×4 и 8×8 (поддерживается не во всех профилях).
- Дополнительное преобразование Адамара, применяемое к дискретно-косинусным коэффициентам основного пространственного преобразования (к коэффициентов яркости, и, в особом случае, цветности) для достижения большей степени сжатия в однородных областях.
- Логарифмическое управление длиной шага для упрощения распределения битрейта кодером и упрощенного вычисления обратной длины квантования.
- Частотно-оптимизированные матрицы масштабирования квантования, выбираемые кодером для оптимизации квантования на основе человеческих особенностей восприятия (поддерживается не во всех профилях).
- Context-adaptive binary arithmetic coding (CABAC, контекстнозависимое адаптивное бинарное арифметическое кодирование) — алгоритм беспотерьного сжатия синтаксических элементов видеопотока на основе вероятности их появления. Поддерживается только в Main Profile и выше. Обеспечивает более эффективное сжатие, чем CAVLC, но требует значительно больше времени на расшифровку.
- Context-adaptive variable-length coding (CAVLC, контекстнозависимое адаптивное кодирование с переменной длиной кодового слова) — альтернатива CABAC меньшей сложности. Тем не менее, оно сложнее и эффективнее, чем алгоритмы, применяемые для тех же целей в более ранних технологиях сжатия видео (как правило это алгоритм Хаффмана).
- Часто используемое, простое и высоко структурированное кодирование словами переменной длины многих элементов синтаксиса, не закодированных CABAC или CAVLC, известное как коды Голомба (экспоненциальное кодирование Голомба).
- Определение уровня сетевой абстракции (NAL), позволяющее использовать один и тот же синтаксис видео в различных сетевых окружениях, включая наборы параметров последовательности (sequence parameter sets, SPSs) и наборы параметров изображения (picture parameter sets, PPSs), которые обеспечивают большую надёжность и гибкость, чем предыдущие технологии.
- Гибкое упорядочивание макроблоков (FMO), также известное как группы частей (поддерживается не во всех профилях) и произвольное упорядочивание частей (ASO) — методы реструктурирования порядка представления фундаментальных областей (макроблоков) в изображениях. При эффективном использовании гибкое упорядочивание макроблоков может существенно повысить устойчивость к потере данных.
Благодаря ASO, так как каждая часть изображения может быть декодирована независимо от других (при определённых ограничениях кодирования), новый стандарт позволяет посылать и получать их в произвольном порядке друг относительно друга. Это может снизить задержку в приложениях реального времени, особенно при использовании на сетях, имеющих режим работы доставка вне очереди Эти функции могут также использоваться для множества других целей помимо восстановления ошибок.
- Разбиение данных — функция, обеспечивающая разделение данных разной важности (например, векторы движения и другая информация предсказания имеет большую значимость для представления видеоконтента) по разным пакетам данных с разными уровнями защиты от ошибок (поддерживается не во всех профилях).
- Избыточные части. Возможность посылки кодером избыточного представления областей изображений, позволяя воспроизвести области изображений (обычно с некоторой потерей качества), данные о которых были потеряны в процессе передачи (поддерживается не во всех профилях).
- Нумерация кадров, позволяющая создание «подпоследовательностей» (включая временно́е масштабирование включением дополнительных кадров между другими) а также обнаружение (и скрытие) потерь целых кадров при сбоях канала или пропаже пакетов.
Недостатки
Кодеки для MPEG-4 AVC более требовательны к ресурсам, нежели кодеки на основе MPEG-4 ASP (такие, как DivX и XviD) [2] , однако это компенсируется другими достоинствами [3] .
Видео высокой четкости (High Definition, HD) в последние годы активно проникает из профессионального в бытовой сектор. На прилавках магазинов все больше телевизоров и плазменных панелей имеют заветные надписи "Full HD" и "HD Ready", а в отделах видеокамер значительную часть полок занимают камеры, способные снимать HD-видео. Даже цифровые фотокамеры-"мыльницы", имеющие функцию видеосъемки, все чаще способны снимать видео с разрешением не 640х480 точек, а 1280х720, а то и полноценное FullHD-видео с разрешением 1920х1080 точек (подробнее о современных видеокамерах можно прочитать в Путеводителе по цифровому видео).
В данном цикле статей мы постараемся дать ответы на некоторые вопросы, возникающие при работе с HD-видео, и рассказать, как решать наиболее распространенные задачи.
2. Что такое AVCHD?
Также не следует думать, что сжатие видео в формате AVC автоматически означает, что камера лучше, чем все остальные, не записывающие видео в этом формате. Качество изображения в первую очередь зависит от качества оптики, правильности работы автомата замера экспозиции, малошумности матрицы (об этом см. ниже), реального разрешения матрицы (или матриц, если их 3), алгоритмов обработки изображения процессором камеры, величины потока сжатых данных (битрейта), реализации кодера и других параметров.
- Видео и звук хранятся в контейнере MPEG Transport Stream.
- Звук в бытовых AVCHD-камерах хранится в формате AC3 (Dolby Digital).
Существует множество видеокамер, умеющих снимать видео высокой четкости в формате AVC, но не соответствующих стандарту AVCHD, например, фотовидеокамеры, сохраняющие видео в контейнерах MP4 и MOV (QuickTime). Технические особенности разных форматов HD-видео в формате AVC будут рассмотрены в следующих частях статьи.
3. Почему AVCHD?
Формат MPEG2 за счет междукадрового сжатия более эффективен по коэффициенту компрессии, чем DV, но за счет того, что площадь полного HD-кадра больше, чем SD, в 5-6 раз (для PAL и NTSC соответственно), требует большого потока данных для получения высокого качества результата. Поэтому для уменьшения заметности артефактов сжатия пришлось пойти на хитрость. На ленте сохраняется изображение, сжатое по горизонтали до разрешения 1440х1080 точек, а при воспроизведении оно растягивается до полного разрешения 1920х1080. Такой подход называется анаморфированием изображения, и пиксель в видео получается неквадратным. Это позволило достичь некого компромисса между качеством видео и потоком данных.
Однако, на динамичных сценах с большим количеством мелких деталей (колышущаяся на ветру листва, мелкие брызги воды у фонтана, сплав по горной реке) потока MPEG2-данных в 25 мегабит в секунду бывает недостаточно, и HDV-изображение иногда рассыпается на мелкие квадраты (хотя заметность этого обычно невысока). Ситуация усугубляется тем, что из-за высокого разрешения пиксели у матриц HD-видеокамер обычно мельче (имеют меньшую площадь), чем у хороших DV-видеокамер обычной четкости, в результате шумы имеют более высокий уровень, и изображение компрессируется с меньшей эффективностью.Как известно, шумы являются высокочастотными компонентами изображения, и при большом их количестве значительная часть сжатого потока данных расходуется на сохранение шумов вместо "полезной", основной части изображения. Поэтому эффективность сжатия видео тем выше, чем меньше в нем шумов исходно. Некоторый выигрыш в качестве дает предварительное подавление шумов в изображении, но слишком агрессивное шумоподавление вносит искажения и ухудшение детализации изображения.
4. Копирование AVCHD-видео с камеры в компьютер
Но и после финализации диск может по-прежнему не распознаваться компьютером. Причина этого обычно в том, что на AVCHD-дисках используется файловая система UDF 2.5, а в системе Windows XP по умолчанию нет поддержки этой файловой системы. Чтобы она появилась, необходимо установить соответствующий драйвер. В частности, для этого достаточно установить программу Nero InCD (более подробно об этом можно прочитать в FAQ по цифровому видео). После установки драйвера файлы на DVD-диске будут доступны через DVD-привод компьютера.
AVCHD-видеокамеры с другими носителями данных (Flash, жесткий диск) обычно подключаются к компьютеру по интерфейсу USB 2.0 кабелем, имеющимся в комплекте, и после подключения доступны в компьютере как съемный диск. Flash-носитель можно поместить во Flash Drive и копировать данные с него в компьютер вообще без участия видеокамеры, что имеет определенные удобства (например, можно иметь несколько Flash-карт, одна из которых находится в камере и используется для съемки видео, а данные с другой в это время копируются в компьютер).
Некоторые монтажные программы и плееры могут "не понимать" нестандартные расширения файлов, поэтому может понадобиться сменить расширение видеофайлов на .mpg.
Если копирование видеофайлов вручную представляет определенную трудность или неудобство, нелишним будет обратиться к компакт-диску, который обычно имеется в комплекте с AVCHD-видеокамерой. На нем обычно имеется программа, позволяющая перенести видео с видеокамеры в компьютер, и даже осуществить несложный монтаж. Причем, она может представлять интерес и для "продвинутых" пользователей, которые умеют копировать видео с камеры вручную.
Например, в комплекте с некоторыми видеокамерами имеется программа Picture Motion Browser.
5. Просмотр AVCHD-видео
После того, как видео скопировано в компьютер, возникает очевидное желание его просмотреть. По умолчанию в системе Windows, скорее всего, нет нужных декодеров, поэтому просмотреть видео с помощью Windows Media Player не удается.
Как уже было сказано выше, в комплекте с видеокамерами обычно имеется некоторое программное обеспечение (ПО), позволяющее скопировать видео с камеры в компьютер. Зачастую оно же может выполнять и функции плеера. Поэтому, первым делом можно попробовать установить ПО с прилагающегося диска, скопировать видео с камеры с его помощью, и попробовать просмотреть видео в нем же.Поэтому многим наверняка захочется установить какой-либо альтернативный декодер или плеер для формата AVCHD.
В частности, по отзывам некоторых участников форума "Цифровое видео", проблемы возникают при использовании Picture Motion Browser, который может не работать, если в системе установлены кодек-паки. А при необходимости осуществить монтаж видео проблемы могут быть еще серьезнее: хотя в плеерах видео может успешно открываться, монтажные программы могут сбоить и даже выходить из строя при попытке открыть в них те же видеофайлы, или в процессе их монтажа. Могут возникать прочие странности: например, по непонятным причинам в открытом файле монтажная программа может не обнаружить звук.
Что еще хуже, проблемы могут возникнуть в самом конце, на этапе вывода результата монтажа в результирующий файл. Локализовать причины этих проблем, и тем более решить их, обычно крайне сложно, а то и не представляется возможным. Даже после удаления кодек-паков в системе может остаться "мусор", и помогает в таком случае только полная переустановка системы "с нуля".
Декодер CoreAVC
Для воспроизведения AVCHD-видео можно установить отдельный декодер, не входящий в состав кодек-паков. Одним из лучших таких декодеров является CoreAVC.
Возникает справедливый вопрос: почему такой мощный процессор компьютера, как например, Pentium 4 с частотой 3 ГГц, может не справляться с плавным воспроизведением видео, а встроенный в маленькую видеокамеру процессор справляется не только с декодированием, но даже с кодированием видео в реальном времени? Неужели там установлен еще более мощный процессор?
Однако, вернемся к теме воспроизведения AVCHD-видео. Чтобы не иметь проблем с кодеками, лучше всего попробовать воспроизвести видео с помощью плееров, которые содержат все необходимые декодеры "на борту". Одним из таких плееров является Media Player Classic и его новый вариант Media Player Classic Home Cinema.
Media Player Classic
Прочитать более подробное описание и загрузить плеер желающие могут на русскоязычном сайте программы или обратиться в поиск.
Разработка этого плеера уже прекращена, но проект был развит энтузиастами, и новые версии плеера имеют название Media Player Classic Home Cinema.
Media Player Classic Home Cinema
Среди них присутствуют и нужные нам форматы: H.264/AVC (DXVA) и H.264/AVC (ffmpeg). Отличаются эти модули только тем, что первый использует ускорение декодирования видеокартой (DirecX Video Acceleration), а второй использует для декодирования модуль ffmpeg. На сайте программы сказано, что плеер умеет использовать ускорение лишь на ограниченном наборе видеокарт (в основном новых), но в будущем их список обещают расширить. По умолчанию включены оба декодера, и, если проблем при воспроизведении не возникает, отключать их не нужно.
Также авторы программы рекомендуют для декодирования в режиме DXVA выбрать правильный модуль отображения видео. Для этого в том же окне настроек нужно щелкнуть по категории "Воспроизведение/Вывод":
В случае, если система Windows XP, рекомендуется выбрать режим Overlay Mixer, VMR7, VMR9 или VMR9 renderless. Например, можно выбрать VMR7.
В случае системы Windows Vista рекомендуется выбрать режим EVR или EVR польз.
После этого скорость декодирования видео в плеере будет максимальной, но только при условии, если между декодером и конечным модулем отображения не будет добавлено дополнительных модулей (впрочем, для простого воспроизведения этого и не нужно).
Бывает, что в режиме использования ускорения декодирования видеокартой (DXVA-декодер) при воспроизведении некоторых AVCHD-файлов вместо изображения в плеере наблюдается чёрный прямоугольник. По отзывам некоторых участников Конференции, в решении проблемы может помочь установка последней версии DirectX, а также последней версии драйверов для используемой видеокарты. Этот совет относится не только к плееру MPC Home Cinema, но и любым другим.
Настройки и возможности плеера на этом далеко не исчерпываются, но их описание заслуживает отдельного материала, не вписывающегося в рамки данной статьи.
PowerDVD Ultra
Данный плеер уже не бесплатный, но обладает рядом преимуществ. В частности, умеет воспроизводить плейлисты из файлов, а версия Power DVD Ultra, которая и рекомендуется для воспроизведения AVCHD, умеет воспроизводить диски BluRay (в том числе и из файлов с жесткого диска). Производителем программы является компания Cyberlink.
Кроме того, плеер обладает одним из самых быстрых декодеров формата AVC, и также умеет использовать ускорение декодирования видеокартой. Причем, набор поддерживаемых видеокарт, судя по всему, очень широк. Многие пользователи отмечают, что во всех остальных плеерах AVCHD-видео играется неплавно, в то время как в PowerDVD Ultra воспроизведение происходит наиболее качественно.
Поэтому, если с другими декодерами и плеерами есть проблемы при воспроизведении AVCHD, то настоятельно рекомендуется попробовать плеер PowerDVD Ultra.
Elecard AVC HD Player
Эта разработка российской компании Elecard, как и продукт от Cyberlink, является коммерческой, и точно так же задействует аппаратные ресурсы видеокарты. С января 2009 года плеер входит в состав пакета AVC HD Suite, предназначенного для владельцев HD видеокамер. Как видно на рисунке ниже, плеер содержит в себе встроенные декодеры собственной Elecard-разработки.
Несмотря на относительную "молодость" данного программного обеспечения, работа плеера стабильна, капризов (вылетов, зависаний, дёрганий) практически не наблюдается. Кроме прочего, плеер оснащен быстро вызываемым, удобным и функциональным модулем Playlist, позволяющим упорядочить просмотр большого количества видеофайлов (любому владелецу AVCHD-видеокамеры знакома проблема сортировки огромного количества файлов, импортированных с его камеры).
Более подробно продукты компании Elecard мы рассмотрим в ближайшее время в рамках отдельного обзора пакета Elecard AVC HD Suite.
ArcSoft TotalMedia Theatre
Пожалуй, трудно найти иной плеер, который при проигрывании AVCHD будет столь же нетребовательным к "железной" составляющей ПК. Это говорит о неплохом декодере, встроенном в программу, и о качественно выполненном аппаратном взаимодействии.
На этом первую часть статьи мы завершим. Во второй части постараемся ответить на вопрос: как можно осуществить монтаж видео в формате AVCHD, и какие "подводные камни" нас при этом ожидают?
Современные медийные платформы позволяют пользователям наслаждаться высокодетализированным видео и потрясающими аудиоэффектами в режиме онлайн.
Однако создание подобного контента было бы невозможно без существования кодеков и контейнеров.
Чем кодеки отличаются от контейнера — их часто путают
Для ответа на вопрос, чем кодеки отличаются от контейнеров, необходимо понять, что такое кодеки.
Смысл понятия «кодек» лежит прямо в его названии:
Фактически кодек — это цифровой инструмент компрессии и декомпрессии данных. Компрессия (сжатие данных) необходима для экономии занимаемого файлом места. Например, несжатое видео высокой четкости в raw-формате, при 60 кадрах в секунду способно достигать размеров в полтерабайта на каждый час записи.
Восьмиканальная аудиодорожка в 24-битном разрешении будет занимать 16 мегабит за одну секунду записи. Такие объемы данных не подходят ни для штатного хранения, ни для их передачи онлайн, поэтому для их сжатия применяются специальные формулы, которые и называются кодеками.
Для хранения сжатой информации создаются контейнеры-обертки в определенном формате. Современные контейнеры способны хранить информацию, обработанную разными кодеками. Такие обертки указывают устройству на то, какими кодеками была сжата информация, и по какой формуле ее восстанавливать.
Если разобрать стандартное видео со звуком на кодеки и контейнеры, в результате получится три составные части:
- Видеокодек, отвечающий за степень сжатия и потери качества в процессе.
- Аудиокодек, отвечает за хранение звуковой дорожки.
- Контейнер-обертка, хранилище обоих кодеков и дополнительной метаинформации.
В случае если в видео нет звука, аудиокодек не нужен.
Популярные и прогрессивные кодеки
Большинство создаваемого видеоконтента обрабатывается кодеками XviD, MPEG-1\2, H.264, MPEG-4, DivX, WMV, MJPEG, RealVideo, Bink Video и их вариациями. Для аудиоформатов в основном используют AAC, Opus и MP3-кодеки. Из новинок стоит отметить кодек H.266/VVC, разрабатываемый для потоковой передачи видео в 4K и 8K.
Новый кодек позволяет вдвое сократить объем файла относительно H.265 кодека за счет более сложных алгоритмов. Сложные вычисления потребляют больше ресурсов, до 1000 % от потребления H.265 при кодировании, и до 200% при декодировании.
Какие кодеки в основном поддерживаются современными ТВ и обновляются ли они с прошивкой
Современные системы поддерживают большинство существующих кодеков.
Поддержка кодеков MPEG от первого до четвертого, вариации H.264 для воспроизведения Blu-Ray, а также XviD и DivX, входят в базовый пакет любого современного телевизора.
Ведущие производители всегда следят за ошибками и актуальностью своего программного обеспечения.
Обновление кодеков в процессе прошивки регулируется разработчиками индивидуально под каждую модель SmartTV.
Если новые кодеки необходимы, поддерживаются устройством на аппаратном уровне и не вызывают ошибок отображения, ничего не мешает разработчикам добавить их в ближайших обновлениях.
Не все устройства совместимы с новыми кодеками, поэтому установка неофициальных обновлений прошивки не рекомендуется потому как может привести к ошибкам воспроизведения.
Какие кодеки используются при проигрывании онлайн-видео (современные кодеки youtube)
В настоящее время стандартом большинства видеосервисов стали кодеки H.264 и MPEG-4, значительно реже встречаются кодеки FFDshow, XviD и DivX.
Одним из самых перспективных кодеков является бесплатный AV1-кодек. Разработан сообществом AOMedia, включающим в себя таких гигантов как AMD, Google, Netflix, Mozilla, Nvidia, Intel, ARM и Cisco. Исходный код кодека открыт и свободно распространяется без каких-либо лицензионных отчислений.
Что даст конечному пользователю переход ютуба на современный AV1
Кодек AV1 разрабатывался для воспроизведения видео онлайн, в браузерах Safari, Firefox, Edge и Chrome. Степень сжатия видео кодеком AV1 превосходит кодеки VP8 и H.264 от 30% до 50%, а кодек HEVC до 30–43 % на высоких битрейтах.
Полный переход видео платформы YouTube на AV1-кодек не только ускорит загрузку всех видеороликов от 20% до 50%, но и позволит стримить в разрешении 4K.
Для минимизации потерь качества, при сохранении и конвертации файла рекомендуется использовать кодеки AV1 для видео и Opus для аудио, обернутые в MP4-контейнер.
H.264, MPEG-4 Part 10 или AVC (Advanced Video Coding) — стандарт сжатия видео, предназначенный для достижения высокой степени сжатия видеопотока при сохранении высокого качества.
Содержание
О стандарте
Он был создан ITU-T Video Coding Experts Group (VCEG) совместно с IEC Moving Picture Experts Group (MPEG) в рамках совместной программы Joint Video Team (JVT).
Стандарты ITU-T H.264 и ISO/IEC 2003 года.
Используется в цифровом телевидении высокого разрешения (HDTV) и как основной кодек для видеозаписей Министерством обороны США, компанией Apple (в том числе видеороликов плееров
Возможности
Стандарт H.264 / AVC / MPEG-4 Part 10 содержит ряд новых возможностей, позволяющих значительно повысить эффективность сжатия видео по сравнению с предыдущими (такими, как ASP) стандартами, обеспечивая также большую гибкость применения в разнообразных сетевых средах. Основные из них:
- Многокадровое предсказание кадров:
- Использование сжатых ранее кадров в качестве опорных (то есть с заимствованием части материала из них) куда более гибко, чем в предыдущих стандартах. Позволяется использование до 32 ссылок на другие кадры, тогда как в ASP и более ранних число ссылок ограничено одним или, в случае B-кадров, двумя кадрами. Это поднимает эффективность кодирования, так как позволяет кодеру выбирать для компенсации движения между большим количеством изображений. Данная функция обеспечивает небольшое улучшение в качестве и экономию битрейта в большинстве сцен. Однако для некоторых сцен, например с частыми повторяющимися участками, возвратно-поступательным движением и т. п. подобный подход при сохранении качества позволяет очень сильно снизить затраты битрейта.
- Независимость порядка воспроизведения изображений и порядка опорных изображений. В предшествующих стандартах устанавливалась жёсткая зависимость между порядком следования изображений для использования при компенсации движения и порядком следования изображений при воспроизведении. В новом стандарте эти ограничения в значительной мере устранены, что позволяет кодеру выбирать порядок изображений для компенсации движения и для воспроизведения с высокой степенью гибкости, которая ограничена только объёмом памяти, который гарантирует возможность декодирования. Устранение ограничения также позволяет в ряде случаев устранить дополнительную задержку, ранее связанную с двунаправленным предсказанием.
- Независимость методов обработки изображений и возможности их использования для предсказания движения. В предшествующих стандартах изображения, закодированные с использованием некоторых методов (например, двунаправленного предсказания), не могли использоваться в качестве опорных для предсказания движения других изображений видеопоследовательности. Устраняя это ограничение, новый стандарт обеспечивает кодеру большую гибкость и, во многих случаях, возможность использовать для предсказания движения изображение, более близкое по содержанию к кодируемому. с переменным размером блока (от 16x16 до 4x4 пикселя) позволяет крайне точно выделять области движения.
- Векторы движения, выводящие за границы изображения. В H.263, включена в новый стандарт.
- Шеститочечная фильтрация компонента яркости для полупиксельного предсказания с целью уменьшения зубчатости краев и, в конечном счёте, обеспечения большей чёткости изображения.
- Точность до четверти пиксела (Qpel) при компенсации движения обеспечивает очень высокую точность описания движущихся областей (что особенно актуально для медленного движения). Цветность, как правило, хранится с разрешением, уменьшенным вдвое по вертикали и горизонтали (прореживание цвета), поэтому компенсация движения для компонента цветности использует точность в одну восьмую пиксела цветности.
- Взвешенное предсказание, позволяющее использовать масштабирование и сдвиг после компенсации движения на величины, указанные кодером. Такая методика может чрезвычайно сильно поднять эффективность кодирования для сцен с изменением освещённости, например при эффектах затемнения, постепенного появления изображения.
- Метод представления макроблоков без потерь в PCM, при котором видеоданные представлены непосредственно, позволяющий точно описывать определённые области и допускающий строгое ограничение на количество закодированных данных для каждого макроблока.
- Улучшенный метод беспотерьного представления макроблоков, позволяющий точно описывать определённые области, при этом обычно затрачивая существенно меньше битов, чем PCM (поддерживается не во всех профилях).
- Адаптивное к изображению кодирование полей (PAFF), позволяющее кодировать каждый кадр как кадр или как пару полей (полукадров) — в зависимости от отсутствия\наличия движения.
- Адаптивное к макроблокам кодирование полей (MBAFF), позволяющее независимо кодировать каждую вертикальную пару макроблоков (блок 16×32) как прогрессивные или чересстрочные. Позволяет использовать макроблоки 16×16 в режиме разбиения на поля (сравните с 16×8 полумакроблоками в
- Новые функции преобразования:
- Точное целочисленное преобразование пространственных блоков 4×4 (концептуально подобное широко известному DCT, но упрощенное и способное обеспечить точное декодирование [1] ), позволяющее точное размещение разностных сигналов с минимумом шума, часто возникающего в предыдущих кодеках.
- Точное целочисленное преобразование пространственных блоков 8x8 (концептуально подобное широко известному DCT, но упрощенное и способное обеспечить точное декодирование; поддерживается не во всех профилях), обеспечивающее большую эффективность сжатия схожих областей, чем 4×4.
- Адаптивный выбор кодеком между размерами блока 4×4 и 8×8 (поддерживается не во всех профилях).
- Дополнительное преобразование Адамара, применяемое к дискретно-косинусным коэффициентам основного пространственного преобразования (к коэффициентов яркости, и, в особом случае, цветности) для достижения большей степени сжатия в однородных областях.
- Логарифмическое управление длиной шага для упрощения распределения битрейта кодером и упрощенного вычисления обратной длины квантования.
- Частотно-оптимизированные матрицы масштабирования квантования, выбираемые кодером для оптимизации квантования на основе человеческих особенностей восприятия (поддерживается не во всех профилях).
- Context-adaptive binary arithmetic coding (CABAC, контекстнозависимое адаптивное бинарное арифметическое кодирование) — алгоритм беспотерьного сжатия синтаксических элементов видеопотока на основе вероятности их появления. Поддерживается только в Main Profile и выше. Обеспечивает более эффективное сжатие, чем CAVLC, но требует значительно больше времени на расшифровку.
- Context-adaptive variable-length coding (CAVLC, контекстнозависимое адаптивное кодирование с переменной длиной кодового слова) — альтернатива CABAC меньшей сложности. Тем не менее, оно сложнее и эффективнее, чем алгоритмы, применяемые для тех же целей в более ранних технологиях сжатия видео (как правило это алгоритм Хаффмана).
- Часто используемое, простое и высоко структурированное кодирование словами переменной длины многих элементов синтаксиса, не закодированных CABAC или CAVLC, известное как коды Голомба (экспоненциальное кодирование Голомба).
- Определение уровня сетевой абстракции (NAL), позволяющее использовать один и тот же синтаксис видео в различных сетевых окружениях, включая наборы параметров последовательности (sequence parameter sets, SPSs) и наборы параметров изображения (picture parameter sets, PPSs), которые обеспечивают большую надёжность и гибкость, чем предыдущие технологии.
- Гибкое упорядочивание макроблоков (FMO), также известное как группы частей (поддерживается не во всех профилях) и произвольное упорядочивание частей (ASO) — методы реструктурирования порядка представления фундаментальных областей (макроблоков) в изображениях. При эффективном использовании гибкое упорядочивание макроблоков может существенно повысить устойчивость к потере данных.
Благодаря ASO, так как каждая часть изображения может быть декодирована независимо от других (при определённых ограничениях кодирования), новый стандарт позволяет посылать и получать их в произвольном порядке друг относительно друга. Это может снизить задержку в приложениях реального времени, особенно при использовании на сетях, имеющих режим работы доставка вне очереди Эти функции могут также использоваться для множества других целей помимо восстановления ошибок.
- Разбиение данных — функция, обеспечивающая разделение данных разной важности (например, векторы движения и другая информация предсказания имеет большую значимость для представления видеоконтента) по разным пакетам данных с разными уровнями защиты от ошибок (поддерживается не во всех профилях).
- Избыточные части. Возможность посылки кодером избыточного представления областей изображений, позволяя воспроизвести области изображений (обычно с некоторой потерей качества), данные о которых были потеряны в процессе передачи (поддерживается не во всех профилях).
- Нумерация кадров, позволяющая создание «подпоследовательностей» (включая временно́е масштабирование включением дополнительных кадров между другими) а также обнаружение (и скрытие) потерь целых кадров при сбоях канала или пропаже пакетов.
Недостатки
Кодеки для MPEG-4 AVC более требовательны к ресурсам, нежели кодеки на основе MPEG-4 ASP (такие, как DivX и XviD) [2] , однако это компенсируется другими достоинствами [3] .
Читайте также: