Пространственная избыточность пикселей: что внутри одного кадра

Автор: Николай СапуновОбновлено: август 202616 мин чтения
Содержание статьи +

TL;DR

Один видеокадр может выглядеть почти однородным – почти каждый пиксель почти не отличается от соседнего – и именно эта повторяемость позволяет видеокодеку добиться значительной степени сжатия ещё до анализа следующего кадра. Технически это явление называют пространственной избыточностью (spatial redundancy), и кодек использует её в два этапа: сначала он предсказывает значение каждого небольшого блока пикселей на основе уже декодированных блоков сверху и слева, а затем преобразует оставшуюся ошибку предсказания в несколько чисел, большинство из которых близки к нулю. Эти два инструмента – intra-предсказание и дискретное косинусное преобразование (DCT) – вместе превращают 1080p-кадр объёмом около 6 МБ в I-кадр размером 60–200 КБ – и всё это происходит ещё до того, как кодек начнёт анализировать соседние кадры. В этой статье объясняется, как измеряется пространственная избыточность, как каждое поколение кодеков (H.264, H.265, AV1, VVC) расширяло свой инструментарий, и как читать лог энкодера, чтобы увидеть, как именно работает этот процесс.

Зачем это нужно

Каждое решение по кодированию, которое принимает ваша команда – интервал ключевых кадров, потолок битрейта, пресет энкодера, выбор «софт против хардвера» и даже сам кодек – в значительной степени зависит от того, насколько хорошо он справляется с избыточностью внутри кадра. Если вы понимаете пространственную избыточность, энкодер перестаёт быть чёрным ящиком: вы сможете читать жалобы на качество и понять, нужно ли улучшать intra-кодирование или искать проблему в другом месте; сможете аргументировать выбор AV1 вместо H.264 конкретными цифрами, а не общими словами; сможете говорить с инженерами о banding, blocking и mosquito noise так, будто эти термины вам знакомы не по чужим слайдам.

Целевая аудитория этой статьи – основатель, продуктовый менеджер, руководитель маркетинга или операционный специалист, не обладающий предварительными знаниями о принципах сжатия. К концу чтения вы сможете объяснить коллегам, что такое пространственная избыточность, посмотреть на кадр и понять, какие его участки кодек будет сжимать эффективно, а какие – с трудом, и проследить логическую цепочку от «небо на этом кадре – почти один и тот же оттенок синего» до «мы экономим пять мегабит в секунду трафика при том же качестве».

Повторяемость, приносящая доход от видео

Ещё до запуска кодека один кадр уже тратит большую часть своего объёма впустую. Кадр размером 1920×1080 при стандартном subsampling chroma 4:2:0 содержит примерно 1920 × 1080 × 1,5 = 3,11 миллиона сэмплов на кадр. При 8 битах на сэмпл это составляет 24,9 мегабита, или около 3,1 мегабайта на один кадр. При частоте 24 кадра в секунду несжатое видео в разрешении 1080p передаёт данные со скоростью примерно 600 Мбит/с. (Полную арифметику см. в математика битрейта.) Эти 3,1 МБ – переплата. Большинство сэмплов – это повторение соседних значений.

Полезная аналогия: представьте, что вы снимаете пустую переговорку. Стена за маркерной доской – это один и тот же цвет на тысячах соседних пикселей. Ваш телефон добросовестно записывает этот цвет тысячи раз. Компрессор, заметив, что стена однотонная, может записать цвет один раз и указать размер стены – и восстановить всю эту область по этим двум числам. Вот в чём суть пространственной избыточности: почти всё, что кодек делает внутри одного кадра, – это более сложные варианты той же идеи.

Технический термин – пространственная избыточность (spatial redundancy): корреляция между пикселями, расположенными близко друг к другу в пределах одного кадра. 1 Когда мы устраняем эту избыточность внутри одного кадра, операцию называют intra-encoding или просто пространственным сжатием. «Intra» с латыни означает «внутри» – кодек работает только с текущим кадром, анализируя изображение перед собой. Противоположный подход – inter-encoding (или межкадровое сжатие), при котором анализируются связи между кадрами. Подробно об этом – в отдельной статье: временная корреляция пикселей.

Сколько именно избыточности там есть? Исследование Петрова и Чжаопина (2003) на большой выборке естественных фотографий показало: парные корреляции пикселей сами по себе обеспечивают примерно 50% информационной избыточности в естественных изображениях; добавление трёхпиксельных корреляций даёт лишь около 4%. 2 Иначе говоря, доминирующий сигнал в любой фотографии – это «этот пиксель похож на соседа», а сигнал второго порядка – «эта пара пикселей похожа на следующую пару». Инженеры кодеков знают об этом десятилетиями, и intra-кодирование – прямое следствие этого факта.

Рис. 1. Пространственная избыточность на реальном кадре. Плоские области и плавные градиенты занимают большую часть изображения; блоки с высокой информацией сосредоточены по краям объектов и в мелких текстурах.

Как кодек реально устраняет избыточность

Современный intra-энкодер устраняет пространственную избыточность в три этапа. Первый – разбиение на блоки: кадр делится на небольшие квадраты, чтобы с каждым можно было работать независимо. Второй – intra-предсказание: энкодер предсказывает содержимое каждого блока на основе уже декодированных блоков сверху и слева, сохраняя лишь разницу между предсказанием и реальным значением («остаток», residual). Третий – преобразование и квантование: остаток преобразуется в частотные коэффициенты (с помощью DCT или его аналогов), а малые высокочастотные коэффициенты округляются почти до нуля. На диск записывается индекс режима предсказания и короткий список ненулевых коэффициентов.

Каждой стадии посвящена отдельная статья – архитектура гибридного кодека, intra-frame coding, transform coding и квантование. Цель этой статьи – сделать первые две стадии максимально конкретными, чтобы вы понимали, что делает кодек, когда по экрану ползёт его лог.

Стадия 1 – разбиение на блоки

Каждый современный кодек начинает с разбиения кадра на сетку из квадратных блоков. Размер наибольшего блока увеличивался с каждым поколением: H.264 использует macroblock размером 16×16 (и делит их далее до 4×4), H.265 / HEVC ввёл Coding Tree Unit (CTU) до 64×64, H.266 / VVC увеличил CTU до 128×128, а AV1 применяет superblock до 128×128. 3 Большие блоки эффективны в однородных областях – например, большой участок неба можно закодировать одним предсказанием, – а маленькие блоки лучше справляются с краями и текстурами, где изображение быстро меняется и грубое предсказание дало бы ошибку.

Внутри каждого блока кодек рекурсивно решает, стоит ли делить его дальше. Представьте, что вы накрыли кадр газетным листом: там, где изображение однородное, энкодер оставляет один большой лист; где оно насыщенное – разрезает на мелкие кусочки. Сам процесс принятия решений о разбиении требует затрат битов на сигнализацию, поэтому энкодер постоянно балансирует между «меньшие блоки лучше предсказывают» и «меньшие блоки тратят больше битов на описание».

Стадия 2 – intra-предсказание (рабочая лошадка)

Когда блок выбран, энкодер анализирует полосу пикселей вдоль верхнего и левого краёв блока – референсные пиксели – и на их основе предсказывает содержимое блока. К этому моменту референсные пиксели уже декодированы, поскольку декодер обрабатывает кадр в том же порядке (слева-сверху → справа-снизу), и те же пиксели будут доступны и на стороне декодера. Какое бы правило ни использовал энкодер для предсказания, его можно передать декодеру в виде небольшого индекса, и тот воспроизведёт ту же догадку. По каналу передаётся только разница между предсказанием и реальным значением.

Почти каждый кодек поддерживает три типа предсказаний:

  • DC mode – заполнить весь блок одним числом, обычно средним значением по референсным пикселям. Подходит для блоков, действительно однородных по тону.
  • Planar / smooth mode – заполнить блок плавным градиентом, интерполированным из референсных пикселей. Подходит для неба, стен с мягким освещением, тонов кожи.
  • Directional / angular modes – предположить, что в блоке присутствует выраженная направленная текстура (вертикальный край, край под углом 45°, горизонтальное волокно), и продолжить референсные пиксели вдоль этого направления. Подходит для заборов, кирпичных стен, волос, травы.

Количество направленных режимов значительно выросло со временем. В H.264 – 9 режимов для блока 4×4 (8 угловых плюс DC) и 4 режима для блока 16×16. 4 В H.265 / HEVC – 35 режимов: 33 угловых, плюс DC и planar. 5 В AV1 – 56 направленных режимов (8 базовых направлений, каждое с 7 тонкими смещениями по 3° в диапазоне от −9° до +9°), плюс DC, planar, три режима Smooth, Paeth-предсказатель и Chroma-from-Luma – всего около 62 intra-режимов, в зависимости от способа подсчёта. 6 В H.266 / VVC – 67 режимов, включая направленные, planar и DC, а также Matrix-based Intra Prediction (MIP), Multi-Reference Line (MRL), Intra Sub-Partitions (ISP) и Cross-Component Linear Model (CCLM) для chroma. 7

Каждый шаг в развитии кодеков – это, по сути, ответ на один вопрос: можно ли описать блок пикселей естественной фотографии меньшим числом битов, если предоставить энкодеру больше вариантов форм предсказания? Ответ снова и снова оказывался положительным. 56 направлений в AV1 против 33 в HEVC – прямая реакция на то, что в естественных изображениях разнообразие ориентаций границ шире, чем мог охватить грубый сеточный подход HEVC.

Рис. 2. Основные семейства intra-предсказания. Современный кодек пробует каждый применимый режим на каждом блоке и выбирает тот, при котором остаток минимален, а стоимость сигнализации – наименьшая.

Стадия 3 – преобразование и квантование (очистка)

После предсказания у энкодера остаётся небольшой блок ошибки – остаток. Если предсказание было точным, остаток в основном состоит из нулей, а ненулевые значения сосредоточены по краям движущихся объектов. Если же предсказание оказалось неудачным, остаток содержит почти всю энергию исходного блока. В любом случае кодек применяет математическое преобразование (обычно дискретное косинусное преобразование, DCT, или один из его аналогов), которое преобразует 8×8 или 16×16 остаток в 64 или 256 частотных коэффициентов. Левый верхний коэффициент – DC (средняя яркость блока), остальные – AC-коэффициенты, упорядоченные от низких частот к высоким.

Зачем это? Потому что у естественного видеоконтента есть ещё одно статистическое свойство: его энергия сосредоточена в низкочастотных коэффициентах. В типичном 8×8 DCT-блоке около 90% энергии приходится на первые 25 коэффициентов, а оставшиеся 39 близки к нулю. 8 Квантование округляет эти малые высокочастотные коэффициенты до нуля, ненулевые значения записываются в порядке «зигзаг», а длинная последовательность нулей в конце сжимается энтропийным кодером почти до нуля. (Подробнее об энтропийном кодировании – в статье введение в энтропийное кодирование.)

Короткий пример делает это наглядным. Допустим, остаточный блок выглядит так (числа – отклонение между предсказанным и реальным значением пикселя на условной шкале от −128 до +127):

 12   8   4   2   1   0   0   0
  8   6   3   1   0   0   0   0
  4   3   2   1   0   0   0   0
  2   1   1   1   0   0   0   0
  1   0   0   0   0   0   0   0
  0   0   0   0   0   0   0   0
  0   0   0   0   0   0   0   0
  0   0   0   0   0   0   0   0

После DCT энергия концентрируется в левом верхнем углу. Квантование этих коэффициентов при типичной шкале качества округляет большинство до нуля, оставляя, например, четыре ненулевых значения: DC = 18 и три небольших AC. Исходный 64-пиксельный блок (512 бит в исходном виде) теперь описывается индексом режима, четырьмя небольшими числами и флагом «остальные нули» – обычно менее 30 бит. Коэффициент сжатия одного такого блока составляет примерно 17:1, и достигается он за счёт пространственной избыточности, без использования информации из других кадров.

Сколько битов экономит каждый инструмент

Если просматривать логи реального кодирования H.265 или AV1, грубое правило выглядит так:

Источник экономии на I-кадреПримерная доля сжатия
Intra-prediction (выбор режима + остаток)50–65%
Преобразование + квантование (энергия → нули)25–35%
Энтропийное кодирование (CABAC, range coding)8–15%
Адаптация размера блока и разбиение5–10%

Цифры сдвигаются в зависимости от типа контента: для плоского контента используется intra-предсказание, для текстурного – преобразование. Однако в среднем intra-предсказание остаётся основным инструментом, а преобразование – вспомогательным. Сигнализация режима не бесплатна: исследования по HEVC показывают, что сигнализация intra-режимов забирает 8–12% битов в intra-кадре. 9 Поэтому энкодеры применяют трюк Most Probable Modes (MPM): три наиболее вероятных режима (на основе режимов соседних блоков) кодируются одним битом каждый, а длинные коды используются только для редких, необычных режимов.

Частая ошибка при чтении спецификации кодека – воспринимать длинный список intra-режимов как источник сжатия. Эти режимы сами по себе ничего не сжимают: они лишь переформулируют задачу, чтобы преобразование могло эффективно её завершить. Кодек с сотней режимов предсказания, но с плохим преобразованием всё равно будет плохо сжимать. Стадии работают вместе, и изменение одной из них в отдельности даёт ограниченный эффект.

Как каждое поколение кодеков развивало инструментарий

Прогресс удобнее всего воспринимать в виде таблицы. Каждая строка – это поколение кодеков, каждая колонка – параметр, который изменил данный стандарт.

КодекГодМакс. блокIntra-режимовПреобразованиеChroma-трюкОсобенности
MPEG-2199516×16 MBТолько DC8×8 DCT, фиксированноеIntra-блоки кодируются почти как JPEG
H.264 / AVC200316×16 MB9 (для 4×4) + 4 (16×16)Integer DCT 4×4I-PCM как fallback
H.265 / HEVC201364×64 CTU33 угловых + planar + DC = 35Integer DCT 4×4–32×32, DST 4×4Constrained intra prediction, MPM-список
VP9201364×64 SB10 (8 dir + DC + TM)ADST / DCT 4×4–32×32Адаптивное преобразование на уровне кадра
AV12018128×128 SB56 dir + DC + Planar + 3 Smooth + Paeth + CfL ≈ 624×4–64×64, ADST + DCT + IDTX + FLIPADSTChroma-from-LumaРекурсивное разбиение, Wedge intra
H.266 / VVC2020128×128 CTU65 угловых + planar + DC = 67 + MIP4×4–64×64, DCT-II + DST-VII + DCT-VIIICCLMMIP (NN-обученный), MRL, ISP

В таблице видны две закономерности. Во-первых, блоки становятся крупнее, а сетка предсказаний – тоньше одновременно. Superblock 128×128 не принёс бы пользы при наличии всего 9 углов для предсказания; ему нужны 56 или 67 вариантов, чтобы адекватно описать разнообразие ориентаций границ в блоке такого размера. Во-вторых, предсказание chroma становится умнее. Ранние кодеки воспринимали chroma-каналы почти как побочный продукт. Chroma-from-Luma в AV1 и CCLM в VVC используют тот факт, что chroma-каналы (цвет) и luma-канал (яркость) одного и того же блока не являются независимыми: резкие переходы в luma обычно сопровождаются резкими переходами и в chroma, и энкодер может сэкономить биты, передавая chroma-блок как линейную функцию уже декодированного luma-блока. 10 11

Удобно воспринимать таблицу так: каждая колонка – это отдельная настройка, которую может изменить будущий кодек. AV2 и ранние работы по нейронным кодекам крутят почти все эти «ручки» сильнее – увеличивают количество режимов предсказания, используют обученные предсказатели, делают chroma умнее – при этом не меняя саму постановку задачи. Эта постановка не менялась с H.261 1988 года: в первую очередь нужно убрать пространственную избыточность в каждом кадре.

Частая ошибка: «чем больше режимов – тем лучше качество»

Когда команды сравнивают кодеки на уровне спецификации, они часто приходят к выводу: кодек с большим числом intra-режимов всегда обеспечит лучшее качество. Это верно лишь наполовину.

Правда: при одинаковом битрейте кодек с большим количеством режимов предсказания обычно точнее подстраивается под любой блок, остаток меньше, результат преобразования – меньше, а значит, и файл получается компактнее. AV1 и VVC действительно превосходят H.264 и H.265 на схожем контенте.

Что не правда: дополнительные режимы не бесплатны. Энкодер должен попробовать их все (или пропустить большинство с помощью эвристик), что требует ресурсов CPU. Декодер вынужден разветвлять обработку в зависимости от режима для каждого блока – это тоже нагружает процессор и увеличивает потребление пропускной способности памяти. Кроме того, каждый используемый режим нужно сигнализировать декодеру, что расходует биты. После определённого предела добавление новых режимов перестаёт улучшать сжатие и начинает его ухудшать. Дизайнеры кодеков тщательно измеряют этот эффект, и большинство режимов, добавленных после ~35-го, дают крайне малый индивидуальный вклад (часто менее 0,2% BD-rate на режим); они остаются в кодеке, потому что важны именно комбинации режимов, даже если ни один из них по отдельности не является критичным.

Практическая версия этой ошибки – когда инженер выбирает пресет «помедленнее», видит, что нагрузка на CPU выросла в 4 раза, а качество – всего на 0,4 дБ по PSNR, и расстраивается: ведь в презентации было сказано, что современные кодеки «значительно лучше» старых. Презентация была права в целом – современные кодеки действительно эффективнее. Расстройство же вызвано убывающей отдачей от расширения поиска режимов на уровне пресета. (Подробнее в mode decision и rate-distortion optimization.)

Откуда экономия на реальном кадре

Возьмём спортивную трансляцию. Газон – один из самых простых элементов видео: однородный зелёный фон, который intra-энкодер описывает с помощью одного DC-режима с остатком, близким к нулю. Трибуны – один из самых сложных объектов: тысячи мелких текстур без выраженной направленной структуры. Табло посередине – резкие горизонтальные края, которые почти идеально предсказывает вертикально-направленный режим.

На 1080p I-кадре из такой трансляции энкодер может потратить около 8% доступных битов на газон (занимающий 50% площади кадра), 60% – на трибуны (30% площади) и 32% – на табло, лица и быстро движущиеся объекты (оставшиеся 20%). Коэффициент сжатия для газона составляет примерно 500:1, для трибун – около 20:1. В среднем по кадру при хорошо настроенном AV1-энкодере получается сжатие примерно 100:1. Разница между «хорошим» и «плохим» intra-кодированием проявляется почти полностью в самых сложных 30% изображения; лёгкие 70% обрабатываются любым кодеком ещё со времён MPEG-2.

Здесь же зарабатывает свой хлеб старший инженер: подкручивает энкодер так, чтобы редкие тяжёлые блоки получали больше битов, чем в среднем, а лёгкие – меньше. Алгоритмы rate-control (см. rate control: CBR, VBR, CRF) и адаптивное квантование – это способы реализации таких компромиссов.

Где здесь Фора Софт

Фора Софт с 2005 года выпустила более 250 видеопроектов в таких направлениях, как видеостриминг, видеоконференции, OTT, видеонаблюдение, e-learning, телемедицина и AR/VR. Чаще всего наша команда возвращается к настройке энкодера, отвечающей за intra-кодирование: интервал ключевых кадров, паттерны intra-refresh, согласование profile/level в WebRTC-сессиях и расстановка I-кадров – от этого зависит, насколько быстро поток восстановится после потери пакета на нестабильном канале. Правильная конфигурация intra-кодирования не универсальна: она различается для спортивного трансляции, телемедицинской консультации и вебинара на 1000 участников. Ошибки в настройке проявляются либо в виде завышенных расходов (слишком много I-кадров), либо в заметных ошибках декодирования (слишком мало). Когда мы сдаём стриминг-пайплайн, профиль intra-кодирования – одна из тех настроек, которую мы подбираем под тип контента, а не выбираем наугад.

Короткая прогулка по одному блоку

Чтобы всё вышесказанное стало конкретным, рассмотрим, что происходит с одним 8×8 блоком при кодировании относительно плоского неба в HEVC-энкодере.

Энкодер разбивает 32×32 область почти однотонного неба на четыре блока 16×16, замечает, что каждый из них почти однороден, и оставляет их без дальнейшего дробления. На первом блоке 16×16 он перебирает все 35 intra-режимов HEVC. Planar-режим даёт остаток с максимальным значением по модулю – 3 (на шкале от 0 до 255); следующий по качеству угловой режим даёт остаток с максимумом 8. Planar оказывается лучшим. Энкодер сохраняет: индекс режима = 1 (planar) и 16×16-остаток.

16×16-остаток поступает на 16×16 целочисленное DCT. Из 256 выходных коэффициентов DC равен 2,4 (маленькая средняя ошибка предсказания), три AC-коэффициента в левом верхнем углу находятся в диапазоне от 0,5 до 1,0, а оставшиеся 252 после квантования при типичном качестве округляются до нуля. Блок записывается в поток следующим образом: 5 бит сигнала режима (MPM-кодирование), 6 бит DC-коэффициента, 12 бит для трёх AC-коэффициентов плюс несколько флагов. Итого: примерно 30 бит на блок 16×16×8 = 2048 бит сырого.

Коэффициент сжатия на этом блоке – 2048 ÷ 30 ≈ 68:1, и он полностью обусловлен пространственной избыточностью. Умножьте это на каждый блок «небесного» кадра – и станет ясно, почему I-кадр с пляжной сценой стоит лишь доли от I-кадра с конфетти.

Ключевые выводы

  • Пространственная избыточность – это корреляция между соседними пикселями в одном кадре; её устранение является основным источником внутрикадрового сжатия.
  • Кодеки устраняют её, предсказывая блок на основе уже декодированных соседей, а затем преобразуя и квантуя разницу.
  • Количество режимов внутрикадрового предсказания росло: 9 (H.264) → 35 (HEVC) → 62 (AV1) → 67 + MIP (VVC); каждый этап приносит прирост эффективности в несколько процентов.
  • В типичном 8×8 DCT-блоке 90% энергии сосредоточено в 25 коэффициентах – именно поэтому квантование оказывается эффективным.
  • Самые сложные 30% кадра потребляют 60–70% битов I-кадра; плоские области кодируются почти бесплатно.
  • Выбор кодека во многом сводится к выбору того, сколько вычислительных ресурсов на внутрикадровое предсказание могут позволить себе ваши декодеры.

Что читать дальше

Иллюстрации

02_3-prostranstvennaya-izbytochnost-ikseley__01-izbytochnost-kartina.svg – упрощённый кадр в разрешении 1080p, представленный в виде сетки мелких блоков, окрашенных в зависимости от уровня информации (плоская область / плавный градиент / высокая детализация). Три аннотации указывают на блок плоской стены (зелёный), блок с направленным краем (синий) и блок с плотной толпой (оранжевый). Заголовок: «Пространственная избыточность на одном кадре». Подпись Фора Софт внизу справа.

02_3-prostranstvennaya-izbytochnost-ikseley__02-intra-prediction-modes.svg – восемь небольших квадратных панелей, демонстрирующих различные intra-режимы: DC (однородная заливка), planar (плавный градиент), вертикальный, горизонтальный, диагональ 45°, диагональ 135°, Paeth, Smooth-h. На каждой панели показаны референсные пиксели (тонкая верхняя строка и левая колонка тёмно-серого цвета) и заполненный блок. Под каждой панелью – подпись. Вверху – общий заголовок.

02_3-prostranstvennaya-izbytochnost-ikseley__03-codec-evolution.svg – горизонтальная временная шкала поколений кодеков (MPEG-2, 1995; H.264, 2003; HEVC, 2013; AV1, 2018; VVC, 2020) со столбчатой диаграммой числа intra-режимов и указанием максимального размера блока. Аннотации показывают приросты: «+8 режимов», «+26 режимов», «+27 режимов», «+5 + MIP». Присутствуют заголовок и нижняя подпись.

02_3-prostranstvennaya-izbytochnost-ikseley__04-Block-Walkthrough.svg – четырёхпанельная диаграмма обработки одного блока размером 16×16: (a) исходные пиксели неба, (b) intra-предсказание (планарное) с плавным градиентом, (c) остаток (почти нули), (d) DCT-коэффициенты с ярко выраженным левым верхним углом. Панели соединены стрелками.

Источники

  1. ScienceDirect Topics, Spatial Redundancy. https://www.sciencedirect.com/topics/computer-science/spatial-redundancy (доступ 2026-05-16).
  2. Petrov, Y. and Zhaoping, L. (2003), Local correlations, information redundancy, and sufficient pixel depth in natural images, Journal of the Optical Society of America A, 20(1), 56–66. https://opg.optica.org/josaa/abstract.cfm?uri=josaa-20-1-56
  3. Sullivan, G. J., Ohm, J.-R., Han, W.-J. and Wiegand, T. (2012), Overview of the High Efficiency Video Coding (HEVC) Standard, IEEE Trans. Circuits Syst. Video Technol., 22(12), 1649–1668; Chen, Y. et al. (2018), An Overview of Core Coding Tools in the AV1 Video Codec, AOMedia. https://www.jmvalin.ca/papers/AV1_tools.pdf
  4. ITU-T H.264 (2003 и более поздние редакции), Advanced video coding for generic audiovisual services – раздел 8.3 Intra prediction process. https://www.itu.int/rec/T-REC-H.264
  5. ITU-T H.265 (2013 и более поздние редакции), High Efficiency Video Coding – раздел 8.4 Intra prediction process; Elecard, Spatial (Intra) prediction in HEVC. https://www.elecard.com/page/spatial_intra_prediction_in_hevc
  6. AOMedia (2020), AV1 Bitstream & Decoding Process Specification – раздел 7.11 Intra prediction; Chen, Y. et al., A Technical Overview of AV1, arXiv:2008.06091. https://arxiv.org/abs/2008.06091
  7. Bross, B. et al. (2021), Overview of the Versatile Video Coding (VVC) Standard and its Applications, IEEE Trans. Circuits Syst. Video Technol., 31(10), 3736–3764; ITU-T H.266 (2020). https://ieeexplore.ieee.org/document/9402788
  8. ScienceDirect Topics, Energy Compaction; Khayam, S. A. (2003), The Discrete Cosine Transform (DCT): Theory and Application, Michigan State University Technical Report 802. https://www.cse.iitd.ac.in/~pkalra/col783-2017/DCT-TR802.pdf
  9. Lainema, J. and Ugur, K. (2012), Improved intra mode signaling for HEVC, MERL Technical Report TR2012-035. https://www.merl.com/publications/docs/TR2012-035.pdf
  10. Trudeau, L. N., Egge, N. E. and Barr, D. (2018), Predicting Chroma from Luma in AV1, in Proc. Data Compression Conference (DCC). https://arxiv.org/abs/1711.03951
  11. Bross, B. et al. (2021), Overview of the Versatile Video Coding (VVC) Standard and its Applications, IEEE Trans. Circuits Syst. Video Technol. – раздел IV.C Cross-component prediction. https://ieeexplore.ieee.org/document/9402788

Строите такую систему?

Подберём параметры кодирования под ваш контент и посчитаем стоимость доставки до старта разработки.