RU2817389C2 - Кодер, декодер и соответствующие способы получения внутрикадрового режима цветности - Google Patents

Кодер, декодер и соответствующие способы получения внутрикадрового режима цветности Download PDF

Info

Publication number
RU2817389C2
RU2817389C2 RU2022105233A RU2022105233A RU2817389C2 RU 2817389 C2 RU2817389 C2 RU 2817389C2 RU 2022105233 A RU2022105233 A RU 2022105233A RU 2022105233 A RU2022105233 A RU 2022105233A RU 2817389 C2 RU2817389 C2 RU 2817389C2
Authority
RU
Russia
Prior art keywords
mode
value
block
intra
video
Prior art date
Application number
RU2022105233A
Other languages
English (en)
Other versions
RU2022105233A (ru
Inventor
Бяо ВАН
Семих ЕСЕНЛИК
Ананд Мехер КОТРА
Хань ГАО
Елена Александровна АЛЬШИНА
Original Assignee
Хуавей Текнолоджиз Ко., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Хуавей Текнолоджиз Ко., Лтд. filed Critical Хуавей Текнолоджиз Ко., Лтд.
Publication of RU2022105233A publication Critical patent/RU2022105233A/ru
Application granted granted Critical
Publication of RU2817389C2 publication Critical patent/RU2817389C2/ru

Links

Images

Abstract

Изобретение относится к средствам для кодирования видео. Технический результат заключается в повышении эффективности кодирования видео. Получают начальное значение режима внутрикадрового предсказания для компонента цветности текущего блока кодирования. Получают отображенное значение режима внутрикадрового предсказания для компонента цветности текущего блока кодирования в соответствии с заданным отношением отображения и начальным значением режима внутрикадрового предсказания, когда значение информации указания формата цветности для текущего блока кодирования равно заданному значению, причем заданное значение равно 2. При этом то, что заданное значение равно 2 означает, что форматом цветности является 4:2:2. Кодируют текущий блок кодирования в соответствии с отображенным значением режима внутрикадрового предсказания. Причем для демонстрации заданного отношения отображения используется таблица. 7 н. и 2 з.п. ф-лы, 15 ил.

Description

Область техники, к которой относится изобретение
Варианты осуществления настоящей заявки (раскрытия) относятся, в общем, к области обработки изображений или видео и, в частности, к получению режима внутрикадрового предсказания цветности.
Уровень техники
Кодирование видео (кодирование и декодирование видео) используется в широком диапазоне приложений цифрового видео, например, в широковещательном цифровом телевидении, передаче видео через Интернет и мобильные сети, в диалоговых приложениях в режиме реального времени, таких как видеоразговор, видеоконференц-связь, DVD. и диски Blu-ray, системы сбора и редактирования содержания видео и записывающие видеокамеры приложений безопасности.
Объем видеоданных, необходимых для изображения даже относительно короткого видео, может быть значительным, что может привести к затруднениям в тех случаях, когда данные должны передаваться в потоковом режиме или иным образом по сети связи с ограниченной пропускной способностью. Таким образом, перед передачей по современным телекоммуникационным сетям видеоданные, как правило, сжимаются. Размер видео также может быть проблемой, когда видео хранится на запоминающем устройстве, так как ресурсы памяти могут быть ограничены. В источнике устройства сжатия видео часто используют программное обеспечение и/или аппаратные средства для кодирования видеоданных перед передачей или хранением, тем самым уменьшая объем данных, необходимых для представления цифровых видеоизображений. Затем сжатые данные принимаются в месте назначения устройством распаковки видео, которое декодирует видеоданные. При ограниченных сетевых ресурсах и постоянно растущих требованиях к более высокому качеству видео желательно использовать улучшенные технологии сжатия и распаковки, которые позволили бы повысить степень сжатия с минимальными потерями без какой-либо потери качества изображения или вообще без них.
Раскрытие сущности изобретения
Варианты осуществления настоящей заявки обеспечивают устройства и способы кодирования и декодирования согласно независимым пунктам формулы изобретения.
Предмет изобретения, изложенный в независимых пунктах формулы изобретения, обеспечивает решение вышеупомянутых и других задач. Дополнительные формы реализации очевидны из зависимых пунктов формулы изобретения, описания и фигур.
Первый аспект настоящего изобретения предоставляет способ кодирования, реализуемый устройством декодирования, причем способ содержит: получение битового потока видео; декодирование битового потока видео для получения значения информации указания формата цветности для текущего блока кодирования; получение начального значения режима внутрикадрового предсказания для компонента цветности текущего блока кодирования; получение отображенного значения режима внутрикадрового предсказания для компонента цветности текущего блока кодирования в соответствии с заданным отношением отображения к начальному значению режима внутрикадрового предсказания, когда значение информации указания формата цветности для текущего блока кодирования равно заданному значению; получение значения выборки предсказания для компонента цветности текущего блока кодирования в соответствии с отображенным значением режима внутрикадрового предсказания.
Согласно вариантам осуществления настоящего изобретения для формата субдискретизации цветности отношение отображения между режимами внутрикадрового предсказания получается гораздо точнее. Повышается эффективность кодирования.
Как показано на фиг. 13, раскрыт способ кодирования, реализуемый устройством декодирования, причем способ содержит:
S1301: получение битового потока видео.
Битовый поток может быть получен в соответствии с беспроводной сетью или проводной сетью. Битовый поток может передаваться с веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, витой пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасная, радио и микроволновая технологии, WIFI, Bluetooth, LTE или 5G.
В одном варианте осуществления битовый поток представляет собой последовательность битов в виде потока единиц уровня сетевой абстракции (NAL) или байтового потока, который формирует представление последовательности единиц доступа (AU), образующих одну или более кодированных видеопоследовательностей (CVS).
В некоторых вариантах осуществления для процесса декодирования сторона декодера считывает битовый поток и извлекает декодированные изображения из битового потока; для процесса кодирования сторона кодера создает битовый поток.
Как правило, битовый поток будет содержать синтаксические элементы, которые сформированы синтаксической структурой. Синтаксический элемент представляет собой элемент данных, представленный в битовом потоке.
Синтаксическая структура представляет собой ноль или более синтаксических элементов, присутствующих вместе в битовом потоке в указанном порядке.
В конкретном примере форматы битового потока определяют соотношение между потоком единиц уровня сетевой абстракции (NAL) и байтовым потоком, каждый из которых упоминается как битовый поток.
Битовый поток может иметь один из двух форматов: формат потока единиц NAL или формат байтового потока. Формат потока единиц NAL концептуально является более «базовым» типом. Формат потока единиц NAL содержит последовательность синтаксических структур, называемых единицами NAL. Эта последовательность упорядочивается в порядке декодирования. На порядок декодирования (и содержание) единиц NAL в потоке единиц NAL накладываются ограничения.
Формат байтового потока может быть создан из формата потока единиц NAL путем упорядочения единиц NAL в порядке декодирования и добавления к каждой единице NAL префикса начального кода и нуля или более байтов с нулевым значением для формирования байтового потока. Формат потока единиц NAL может быть извлечен из формата байтового потока путем поиска местоположения уникального шаблона префикса начального кода в этом потоке байтов.
В этом пункте определяется отношение между исходным и декодированным изображением, которое передается посредством битового потока.
Источник видео, представленный битовым потоком, представляет собой последовательность изображений в порядке декодирования.
Исходные и декодированные изображения состоят из одного или более массивов выборок:
– Только яркость (Y) (монохромный).
– Яркость и две цветности (YCbCr или YCgCo).
– Зеленый, синий и красный (GBR, также известный как RGB).
– Массивы, представляющие другие неспецифицированные монохромные или трехцветные выборки цветов (например, YZX, также известные как XYZ).
Переменные и термины, связанные с этими массивами, обозначаются как яркость (L или Y) и цветность, где два массива цветности обозначаются как Cb и Cr; независимо от фактического используемого способа представления цвета. Фактический используемый способ представления цвета может быть указан в синтаксисе, указанном в параметрах VUI, как определено в ITU-T H.SEI | ISO/IEC 23002-7.
Переменные SubWidthC и SubHeightC указаны в таблице 1 в зависимости от структуры выборки формата цветности, которая указана посредством sps_chroma_format_idc и sps_separate_colour_plane_flag.
Таблица 1. Значения SubWidthC и SubHeightC, полученные из sps_chroma_format_idc и sps_separate_colour_plane_flag
sps_chroma_format_idc sps_separate_color_plane_flag Формат цветности SubWidthC SubHeightC
0 0 Монохромный 1 1
1 0 4:2:0 2 2
2 0 4:2:2 2 1
3 0 4:4:4 1 1
3 1 4:4:4 1 1
При дискретизации монохромного изображения имеется только один массив выборок, который номинально считается массивом яркости.
При дискретизации 4:2:0 каждый из двух массивов цветности имеет половину высоты и половину ширины массива яркости.
При дискретизации 4:2:2 каждый из двух массивов цветности имеет одинаковую высоту и половину ширины массива яркости.
При дискретизации 4:4:4, в зависимости от значения sps_separate_colour_plane_flag, применяется следующее:
– Если значение sps_separate_colour_plane_flag равно 0, каждый из двух массивов цветности имеет ту же высоту и ширину, что и массив яркости.
– В противном случае (sps_separate_colour_plane_flag равен 1) три цветовые плоскости обрабатываются отдельно как монохромные дискретизированные изображения.
S1302: получение начального значения режима внутрикадрового предсказания для компонента цветности текущего блока кодирования.
Начальное значение режима внутрикадрового предсказания может быть получено путем синтаксического анализа значения индекса, кодированного в битовом потоке видео, или может быть определено начальное значение режима внутрикадрового предсказания в соответствии со значением синтаксиса, которое синтаксически анализируется из битового потока видео.
В одной реализации начальное значение режима внутрикадрового предсказания для компонента цветности текущего блока кодирования получается на основе режима внутрикадрового предсказания для компонента яркости текущего блока кодирования.
В конкретном примере следующие процессы используются для получения начального значения режима внутрикадрового предсказания для компонента цветности текущего блока кодирования.
Входными данными для этого процесса являются:
- местоположение яркости (xCb, yCb), указывающее верхнюю левую выборку текущего блока кодирования цветности относительно верхней левой выборки яркости текущего изображения,
- переменная cbWidth, указывающая ширину текущего блока кодирования в выборках яркости,
- переменная cbHeight, указывающая высоту текущего блока кодирования в выборках яркости,
- переменная treeType, указывающая, используется ли одинарное или двойное дерево.
В этом процессе получают режим внутрикадрового предсказания цветности IntraPredModeC[xCb][yCb] и флаг прямого режима цветности MIP MipChromaDirectFlag[xCb][yCb].
Если treeType равно SINGLE_TREE, sps_chroma_format_idc равно 3, intra_chroma_pred_mode равно 4, и intra_mip_flag[xCb][yCb] равно 1, применяется следующее:
- Флаг прямого режима цветности MIP MipChromaDirectFlag[xCb][yCb] устанавливается равным 1.
- Режим внутрикадрового предсказания цветности IntraPredModeC[xCb][yCb] устанавливается равным IntraPredModeY[xCb][yCb].
В противном случае применяется следующее:
- Флаг прямого режима цветности MIP MipChromaDirectFlag[xCb][yCb] устанавливается равным 0.
- Соответствующий режим внутрикадрового предсказания яркости lumaIntraPredMode получается следующим образом:
– Если intra_mip_flag[xCb+cbWidth/2][yCb+cbHeight/2] равно 1, lumaIntraPredMode устанавливается равным INTRA_PLANAR.
– В противном случае, если CuPredMode[0][xCb+cbWidth/2][yCb+cbHeight/2] равно MODE_IBC или MODE_PLT, lumaIntraPredMode устанавливается равным INTRA_DC.
– В противном случае lumaIntraPredMode устанавливается равным IntraPredModeY[xCb + cbWidth/2][yCb+cbHeight/2].
- Режим внутрикадрового предсказания цветности IntraPredModeC[xCb][yCb] получается следующим образом:
– Если cu_act_enabled_flag[xCb][yCb] равно 1, режим внутрикадрового предсказания цветности IntraPredModeC[xCb][yCb] устанавливается равным lumaIntraPredMode.
– В противном случае, если BdpcmFlag[xCb][yCb][1] равно 1, IntraPredModeC[xCb][yCb] устанавливается равным BdpcmDir[xCb][yCb][1]? INTRA_ANGULAR50 : INTRA_ANGULAR18.
– В противном случае (cu_act_enabled_flag[ xCb ][ yCb ] равно 0, и BdpcmFlag[ xCb ][ yCb ][ 1 ] равно 0), режим внутрикадрового предсказания цветности IntraPredModeC[ xCb ][ yCb ] получается с использованием cclm_mode_flag, cclm_mode_idx, intra_chroma_pred_mode и lumaIntraPredMode, как представлено в таблице 20.
Таблица 20. Спецификация IntraPredModeC[xCb][yCb] в зависимости от cclm_mode_flag, cclm_mode_idx, intra_chroma_pred_mode и lumaIntraPredMode
cclm_mode_flag cclm_mode_idx intra_chroma_pred_mode lumaIntraPredMode
0 50 18 1 X ( 0 <= X <= 66 )
0 - 0 66 0 0 0 0
0 - 1 50 66 50 50 50
0 - 2 18 18 66 18 18
0 - 3 1 1 1 66 1
0 - 4 0 50 18 1 X
1 0 - 81 81 81 81 81
1 1 - 82 82 82 82 82
1 2 - 83 83 83 83 83
S1303: декодирование битового потока видео для получения значения информации указания формата цветности для текущего блока кодирования.
В варианте осуществления информация указания формата цветности представляет собой синтаксис sps_chroma_format_idc, представленный в таблице 1. sps_chroma_format_idc указывает выборку цветности относительно выборки яркости.
В примере синтаксис sps_chroma_format_idc декодируется из набора параметров последовательности, например:
Этап S1302 может выполняться перед этапом S1303; или этап S1303 может выполняться перед этапом S1302; или они могут выполняться параллельно.
S1304: получение отображенного значения режима внутрикадрового предсказания для компонента цветности текущего блока кодирования в соответствии с заданным отношением отображения и начальному значению режима внутрикадрового предсказания, когда значение информации указания формата цветности для текущего блока кодирования равно заданному значению.
В варианте осуществления заданное значение равно 2 или 1. Заданное значение 2 означает, что форматом цветности является 4:2:2, заданное значение 1 означает, что форматом цветности является 4:2:0.
В примере, когда значение sps_chroma_format_idc равно 2, режим Y внутрикадрового предсказания цветности получается с использованием режима X внутрикадрового предсказания цветности, и затем режим X внутрикадрового предсказания цветности устанавливается равным режиму Y внутрикадрового предсказания цветности.
Отношение отображения между режимом X и режимом Y может быть показано в соответствии с таблицей 2, таблицей 3, таблицей 4, таблицей 5, таблицей 6, таблицей 8, таблицей 10, таблицей 12, таблицей 14, таблицей 15 или таблицей 18.
Например, когда значение sps_chroma_format_idc равно 2, режим Y внутрикадрового предсказания цветности получается с использованием режима X внутрикадрового предсказания цветности в таблице 20, как представлено в таблице 21, и после этого режим X внутрикадрового предсказания цветности устанавливается равным режиму Y внутрикадрового предсказания цветности.
Таблица 21. Спецификация процесса отображения 4:2:2 из режима X внутрикадрового предсказания цветности в режим Y, когда значение sps_chroma_format_idc равно 2
режим X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
режим Y 0 1 61 62 63 64 65 66 2 3 5 6 8 10 12 13 14 16
режим X 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
режим Y 18 20 22 23 24 26 28 30 31 33 34 35 36 37 38 39 40 41
режим X 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
режим Y 41 42 43 43 44 44 45 45 46 47 48 48 49 49 50 51 51 52
режим X 54 55 56 57 58 59 60 61 62 63 64 65 66
режим Y 52 53 54 55 55 56 56 57 57 58 59 59 60
S1305: получение значения выборки предсказания для компонента цветности текущего блока кодирования в соответствии с отображенным значением режима внутрикадрового предсказания.
Отображенное значение режима внутрикадрового предсказания используется в качестве «значения режима внутрикадрового предсказания» для получения значения выборки предсказания. Детали этого процесса можно найти в ITU H.264, ITU H.265 или других документах.
Как показано на фиг. 14, второй аспект настоящего изобретения предоставляет устройство 1400 декодирования, причем устройство декодирования содержит:
блок 1401 приема, который выполнен с возможностью получения битового потока видео;
блок 1402 обработки параметров, который выполнен с возможностью декодирования битового потока видео для получения начального значения режима внутрикадрового предсказания для компонента цветности текущего блока кодирования;
и блок 1402 обработки параметров также выполнен с возможностью декодирования битового потока видео для получения значения информации указания формата цветности для текущего блока кодирования;
блок 1403 отображения, который выполнен с возможностью получения отображаемого значения режима внутрикадрового предсказания для компонента цветности текущего блока кодирования в соответствии с заданным отношением отображения и начальному значению режима внутрикадрового предсказания, когда значение информации указания формата цветности для текущего блока кодирования равно заданному значению;
блок 1404 предсказания, который выполнен с возможностью получения значения выборки предсказания для компонента цветности текущего блока кодирования в соответствии с отображенным значением режима внутрикадрового предсказания.
Способ согласно первому аспекту изобретения может быть выполнен устройством согласно второму аспекту изобретения. Дополнительные признаки и формы реализации вышеупомянутых способов соответствуют признакам и формам реализации устройства согласно второму аспекту изобретения.
В варианте осуществления третий аспект настоящего изобретения предоставляет способ кодирования, реализуемый кодирующим устройством, содержащий: получение начального значения режима внутрикадрового предсказания для текущего блока кодирования; определение того, равно или нет отношение между шириной компонента яркости текущего блока кодирования и шириной компонента цветности текущего блока кодирования пороговому значению; получение отображенного значения режима внутрикадрового предсказания для компонента цветности текущего блока кодирования в соответствии с заданным отношением отображения и начальным значением режима внутрикадрового предсказания, когда отношение между шириной для компонента яркости текущего блока кодирования и шириной для компонента цветности текущего блока кодирования равно пороговому значению; кодирование текущего блока кодирования в соответствии с отображенным значением режима внутрикадрового предсказания.
В одной реализации способ дополнительно содержит:
кодирование значения информации указания формата цветности для текущего блока кодирования в битовый поток, причем значение информации указания формата цветности представляет собой отношение между шириной для компонента яркости текущего блока кодирования и шириной для компонента цветности текущего блока кодирования.
В одной из реализаций следующая таблица используется для представления заданных отношений отображения.
режим X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
режим Y 0 1 60 61 62 63 64 65 2 3 5 6 8 10 12 13 14 16 18
или
режим X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
режим Y 0 1 61 62 63 64 65 66 2 3 5 6 8 10 12 13 14 16 18
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
В одной из реализаций следующая таблица используется для представления заданных отношений отображения.
режим X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
режим Y 0 1 61 62 63 64 65 66 2 3 5 6 8 10 12 13 14 16
режим X 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
режим Y 18 20 22 23 24 26 28 30 31 33 34 35 36 37 38 39 40 41
режим X 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
режим Y 41 42 43 43 44 44 45 45 46 47 48 48 49 49 50 51 51 52
режим X 54 55 56 57 58 59 60 61 62 63 64 65 66
режим Y 52 53 54 55 55 56 56 57 57 58 59 59 60
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Дополнительные варианты осуществления способа согласно третьему аспекту изобретения (сторона кодирования) могут быть выполнены в соответствии со способом согласно второму аспекту изобретения (сторона декодирования).
В варианте осуществления раскрыт декодер (30) или кодер (20), содержащий схему обработки для выполнения способа согласно любому из вышеупомянутых вариантов осуществления и реализации.
В варианте осуществления раскрыт компьютерный программный продукт, содержащий программный код для выполнения способа в соответствии с любым из вышеупомянутых вариантов осуществления и реализации.
В варианте осуществления раскрыт декодер или кодер, содержащий:
один или более процессоров; и
энергонезависимый машиночитаемый носитель информации, подключенный к процессорам и хранящий программу для исполнения процессорами, причем программа при ее исполнении процессорами, конфигурирует декодер для выполнения способа в соответствии с любым из вышеупомянутых вариантов осуществления и реализации.
В варианте осуществления раскрыт невременный носитель информации, который включает в себя кодированный битовый поток, декодированный устройством декодирования изображения, причем битовый поток генерируется путем разделения кадра видеосигнала или сигнала изображения на множество блоков и включает в себя множество синтаксических элементов, при этом множество синтаксических элементов содержит указатель n (синтаксис sps_chroma_format_idc) в соответствии с любым из вышеупомянутых вариантов осуществления и реализации.
Подробности одного или более вариантов осуществления изложены на сопроводительных чертежах и в описании, представленном ниже. Другие признаки, задачи и преимущества будут очевидны из описания, чертежей и формулы изобретения.
Краткое описание чертежей
Ниже приведено более подробное описание вариантов осуществления изобретения со ссылкой на сопроводительные фигуры и чертежи, на которых:
фиг. 1A – блок-схема, показывающая пример системы кодирования видео, выполненной с возможностью реализации вариантов осуществления изобретения;
фиг. 1B – блок-схема, показывающая другой пример системы кодирования видео, выполненной с возможностью реализации вариантов осуществления изобретения;
фиг. 2 – блок-схема, показывающая пример видеокодера, выполненного с возможностью реализации вариантов осуществления изобретения;
фиг. 3 – блок-схема, показывающая примерную структуру видеодекодера, выполненного с возможностью реализации вариантов осуществления изобретения;
на фиг. 4 – блок-схема, иллюстрирующая пример устройства кодирования или устройства декодирования;
на фиг. 5 – блок-схема, иллюстрирующая другой пример устройства кодирования или устройства декодирования;
на фиг. 6 – пример формата субдискретизации цветности 4:4:4;
на фиг. 7 – пример формата субдискретизации цветности 4:2:0;
на фиг. 8 – пример формата субдискретизации цветности 4:2:2;
на фиг. 9 – блок-схема, иллюстрирующая пример режимов предсказания;
на фиг. 10 – пример соответствующих режимов исходного режима и случая, когда субдискретизация цветности применяется в горизонтальном направлении с использованием формата субдискретизации цветности 4:2:2;
на фиг. 11 – блок-схема, показывающая примерную структуру системы 3100 доставки содержания, которая реализует услугу доставки содержания;
на фиг. 12 – блок-схема, показывающая структуру примера терминального устройства;
на фиг. 13 – блок-схема, показывающая вариант осуществления способа, который относится к настоящему изобретению;
на фиг. 14 – блок-схема, показывающая вариант осуществления устройства согласно настоящему изобретению.
Приведенные ниже идентичные ссылочные позиции относятся к идентичным или по меньшей мере функционально эквивалентным признакам, если явно не указано иное.
Осуществление изобретения
В нижеследующем описании делается ссылка на сопроводительные чертежи, которые составляют часть раскрытия и которые показывают в качестве иллюстрации конкретные аспекты вариантов осуществления изобретения или конкретные аспекты, в которых могут использоваться варианты осуществления настоящего изобретения. Понятно, что варианты осуществления изобретения могут использоваться в других аспектах и содержать структурные или логические изменения, не изображенные на фигурах. Поэтому нижеследующее подробное описание не следует воспринимать в ограничивающем смысле, и объем настоящего изобретения определяется сопроводительной формулой изобретения.
Например, понятно, что раскрытие в связи с описанным способом также справедливо для соответствующего устройства или системы, которые выполнены с возможностью выполнения способа, и наоборот. Например, если описан один этап или множество конкретных этапов способа, соответствующее устройство может включать в себя один или множество блоков, например, функциональных блоков, для выполнения описанного одного или множества этапов способа (например, один блок, выполняющий один или множество этапов или множество блоков, каждый из которых выполняет один или несколько из множества этапов), даже если такой один или более блоков явно не описаны или не проиллюстрированы на фигурах. С другой стороны, например, если конкретное устройство описано на основе одного или множества блоков, например, функциональных блоков, соответствующий способ может включать в себя один этап для выполнения функциональных возможностей одного или множества блоков (например, один этап, выполняющий функции одного или множества блоков, или множество этапов, каждый из которых выполняет функции одного или более из множества блоков), даже если такой один или множество этапов явно не описаны или не проиллюстрированы на фигурах. Кроме того, понятно, что признаки различных примерных вариантов осуществления и/или аспектов, описанных в данном документе, могут быть объединены друг с другом, если специально не указано иное.
Кодирование видео, как правило, относится к обработке последовательности изображений, которые образуют видео или видеопоследовательность. Вместо термина «изображение» можно использовать термин «кадр» или «картинка» как синонимы в области кодирования видео. Кодирование видео (или кодирование в целом) содержит две части: кодирование видео и декодирование видео. Кодирование видео выполняется на стороне источника, как правило, содержащего обработку (например, путем сжатия) исходных видеоизображений для уменьшения объема данных, необходимого для представления видеоизображений (для более эффективного хранения и/или передачи). Декодирование видео выполняется на стороне назначения и, как правило, содержит обратную обработку по отношению к кодеру для восстановления видеоизображений. Варианты осуществления, относящиеся к «кодированию» видеоизображений (или изображений в целом), следует понимать как относящиеся к «кодированию» или «декодированию» видеоизображений или соответствующих видеопоследовательностей. Комбинация части кодирования и части декодирования также упоминается как CODEC (кодирование и декодирование).
В случае кодирования видео без потерь исходные видеоизображения могут быть восстановлены, то есть восстановленные видеоизображения имеют то же качество, что и исходные видеоизображения (при условии отсутствия потерь при передаче или других потерь данных во время хранения или передачи). В случае кодирования видео с потерями выполняется дополнительное сжатие, например, путем квантования, чтобы уменьшить объем данных, представляющих видеоизображения, которые не могут быть полностью восстановлены в декодере, то есть качество восстановленных видеоизображений ниже или хуже по сравнению с качеством исходных видеоизображений.
Несколько стандартов кодирования видео принадлежат к группе «гибридных видеокодеков с потерями» (то есть объединяют пространственное и временное предсказание в области выборки и кодирование с двумерным преобразованием для применения квантования в области преобразования). Каждое изображение видеопоследовательности, как правило, разделяется на набор неперекрывающихся блоков, и кодирование, как правило, выполняется на уровне блоков. Другими словами, в кодере видео, как правило, обрабатывается, то есть кодируется, на уровне блока (видеоблока), например, с использованием пространственного (изображения с внутрикадровым предсказанием) предсказания и/или временного (изображения с межкадровым предсказанием) предсказания для выработки блока предсказания, вычитания блока предсказания из текущего блока (блока, который обрабатывается на данный момент времени или который должен быть обработан) для получения остаточного блока, преобразовывая остаточного блока и квантования остаточного блока в области преобразования для уменьшения объема данных, подлежащих передаче (сжатию), тогда как в декодере обратная обработка по сравнению с кодером применяется к закодированному или сжатому блоку для восстановления текущего блока для представления. Кроме того, кодер дублирует контур обработки декодера, так что оба будут вырабатывать идентичные предсказания (например, внутрикадровое предсказание и межкадровое предсказание) и/или восстановления для обработки, то есть кодирования, последующих блоков.
В следующих вариантах осуществления системы 10 кодирования видео, видеокодер 20 и видеодекодер 30 описываются на основе фиг. 1-3.
На фиг. 1A показана схематичная блок-схема, иллюстрирующая примерную систему 10 кодирования, например, систему 10 кодирования видео (или систему 10 короткого кодирования), которая может использовать технологии этой настоящей заявки. Видеокодер 20 (или короткий кодер 20) и видеодекодер 30 (или короткий декодер 30) системы 10 кодирования видео представляют примеры устройств, которые могут быть выполнены с возможностью выполнения технологий в соответствии с различными примерами, описанными в настоящей заявке.
Как показано на фиг. 1A, система 10 кодирования содержит устройство-источник 12, выполненное с возможностью предоставления данных 21 кодированного изображения, например, в устройство-адресат 14 для декодирования данных 13 кодированного изображения.
Устройство-источник 12 содержит кодер 20 и может дополнительно, то есть необязательно, содержать источник 16 изображения, препроцессор (или блок предварительной обработки) 18, например, препроцессор 18 изображения, и интерфейс связи или блок 22 связи.
Источник 16 изображения может содержать или быть устройством захвата изображения любого типа, например, камерой для захвата реального изображения, и/или устройства выработки изображения любого типа, например, процессором компьютерной графики для выработки компьютерного анимационное изображение или любое другое устройство для получения и/или предоставления реального изображения, компьютерного изображения (например, содержания экрана, изображения виртуальной реальности (VR)) и/или любой их комбинации (например, изображение дополненной реальности (AR)). Источником изображения может быть память или хранилище любого типа, в котором хранятся любые из вышеупомянутых изображений.
В отличие от препроцессора 18 и обработки, выполняемой блоком 18 предварительной обработки, изображение или данные 17 изображения также могут называться необработанным изображением или данными 17 необработанного изображения.
Препроцессор 18 выполнен с возможностью приема (необработанных) данных 17 изображения и выполнения предварительной обработки данных 17 изображения для получения предварительно обработанного изображения 19 или предварительно обработанных данных 19 изображения. Предварительная обработка, выполняемая препроцессором 18 может, например, содержать обрезку, преобразование цветового формата (например, из RGB в YCbCr), цветокоррекцию или устранение шумов. Можно понять, что блок 18 предварительной обработки может быть необязательным компонентом.
Видеокодер 20 выполнен с возможностью приема предварительно обработанных данных 19 изображения и предоставления кодированных данных 21 изображения (дополнительные подробности будут описаны ниже, например, со ссылкой на фиг. 2).
Интерфейс 22 связи устройства-источника 12 может быть выполнен с возможностью приема данных 21 кодированного изображения и передачи данных 21 кодированного изображения (или любой их дальнейшей обработанной версии) по каналу связи 13 в другое устройство, например, в устройство-адресат 14 или любое другое устройство для хранения или прямого восстановления.
Устройство-адресат 14 содержит декодер 30 (например, видеодекодер 30) и может дополнительно, то есть необязательно, содержать интерфейс связи или блок 28 связи, постпроцессор 32 (или блок 32 последующей обработки) и устройство 34 отображения.
Интерфейс 28 связи устройства-адресата 14 выполнен с возможностью приема кодированных данных 21 изображения (или любой их дальнейшей обработанной версии), например, непосредственно из устройства-источника 12 или из любого другого источника, например, запоминающего устройства, например, устройства хранения кодированных данных изображения, и предоставления данных 21 кодированного изображения в декодер 30.
Интерфейс 22 связи и интерфейс 28 связи могут быть выполнены с возможностью передачи или приема кодированных данных 21 изображения или кодированных данных 13 через прямую линию связи между устройством-источником 12 и устройством-адресатом 14, например, прямое проводное или беспроводное соединение, или через любой вид сети, например, проводную или беспроводную сеть или любую их комбинацию, или любой вид частной и публичной сети, или любую их комбинацию.
Интерфейс 22 связи может быть, например, выполнен с возможностью упаковки данных 21 кодированного изображения в соответствующий формат, например, в пакеты, и/или обработки данных кодированного изображения с использованием любого типа кодирования передачи или обработки для передачи по каналу связи или сети связи.
Интерфейс 28 связи, образующий аналог интерфейса 22 связи, может быть, например, выполнен с возможностью приема переданных данных и обработки переданных данных с использованием любого вида соответствующего декодирования или обработки передачи и/или распаковки для получения данных 21 кодированного изображения.
Как интерфейс 22 связи, так и интерфейс 28 связи могут быть сконфигурированы как интерфейсы однонаправленной связи, как показано стрелкой для канала 13 связи на фиг. 1A, указывающей от устройства-источника 12 к устройству-адресату 14, или как интерфейсы двунаправленной связи и могут быть выполнены, например, с возможностью отправки и приема сообщений, например, для установки соединения, подтверждения и обмена любой другой информацией, относящейся к каналу связи и/или передаче данных, например, передаче данных кодированного изображения.
Декодер 30 выполнен с возможностью приема данных 21 кодированного изображения и предоставления данных 31 декодированного изображения или декодированного изображения 31 (дополнительные подробности будут описаны ниже, например, со ссылкой на фиг. 3 или фиг. 5).
Процессор 32 последующей обработки устройства-адресата 14 выполнен с возможностью последующей обработки данных 31 декодированного изображения (также называемых данными восстановленного изображения), например, декодированного изображения 31, для получения данных 33 постобработанного изображения, например, постобработанного изображения 33. Последующая обработка, выполняемая блоком 32 последующей обработки, может содержать, например, преобразование цветового формата (например, из YCbCr в RGB), цветокоррекцию, обрезку или повторную выборку, или любую другую обработку, например, для подготовки декодированных данных 31 изображения для отображения, например, устройством 34 отображения.
Устройство 34 отображения устройства-адресата 14 выполнено с возможностью приема данных 33 изображения после последующей обработки для отображения изображения, например, пользователю или зрителю. Устройство 34 отображения может быть или содержать любой вид дисплея для представления восстановленного изображения, например, интегрированный или внешний дисплей или монитор. Дисплеи могут, например, содержать жидкокристаллические дисплеи (LCD), дисплеи на органических светодиодах (OLED), плазменные дисплеи, проекторы, микросветодиодные дисплеи, жидкие кристаллы на кремнии (LCoS), цифровой световой процессор (DLP) или любые другие дисплеи.
Хотя на фиг. 1A показаны устройство-источник 12 и устройство-адресат 14 как отдельные устройства, варианты осуществления устройств могут также содержать обе или как функциональные возможности устройства-источника 12 или соответствующие функциональные возможности, так и устройства-адресата 14 или соответствующие функциональные возможности. В таких вариантах осуществления устройство-источник 12 или соответствующие функциональные возможности и устройство-адресат 14 или соответствующие функциональные возможности могут быть реализованы с использованием одних и тех же аппаратных средств и/или программного обеспечения или с помощью отдельных аппаратных средств и/или программного обеспечения или любой их комбинации.
Как будет очевидно специалистам в данной области техники на основе описания, наличие и (точное) разделение функциональных возможностей различных блоков или функций в устройстве-источнике 12 и/или устройстве-адресате 14, как показано на фиг. 1A, может варьироваться в зависимости от фактического устройства и приложения.
Кодер 20 (например, видеокодер 20) или декодер 30 (например, видеодекодер 30) или как кодер 20, так и декодер 30 могут быть реализованы с помощью схемы обработки, показанной на фиг. 1B, такой как один или более микропроцессоров, процессоров цифровых сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретных логических схем, аппаратных средств, специализированных схем кодирования видео или любых их комбинаций. Кодер 20 может быть реализован с помощью схемы 46 обработки для осуществления различных блоков, как обсуждалось в отношении кодера 20, показанного на фиг. 2, и/или любой другой системы или подсистемы кодера, описанной в данном документе. Декодер 30 может быть реализован с помощью схемы 46 обработки для осуществления различных блоков, как обсуждалось в отношении декодера 30, показанного на фиг. 3, и/или любой другой системы или подсистемы декодера, описанной в данном документе. Схема обработки может быть выполнена с возможностью выполнения различных операций, как описано ниже. Как показано на фиг. 5, если технологии реализованы частично в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем невременном машиночитаемом носителе информации и может выполнять инструкции в аппаратных средствах, используя один или более процессоров для выполнения технологий настоящего раскрытия. Любой из видеокодера 20 и видеодекодера 30 может быть интегрирован как часть объединенного кодера/декодера (CODEC) в одном устройстве, например, как показано на фиг. 1B.
Устройство-источник 12 и устройство-адресат 14 могут содержать любое из широкого разнообразия устройств, включая любые виды портативных или стационарных устройств, например, портативные или портативные компьютеры, мобильные телефоны, смартфоны, планшеты или планшетные компьютеры, камеры, настольные компьютеры, телевизионные приставки, телевизоры, устройства отображения, цифровые медиаплееры, игровые приставки, устройства потокового видео (например, серверы предоставления услуг по передаче содержания или серверы доставки содержания), устройство широковещательного приемника, устройство широковещательного передатчика или тому подобное, и могут использовать или не использовать операционную систему любого типа. В некоторых случаях устройство-источник 12 и устройство-адресат 14 могут быть выполнены с возможностью поддержания беспроводной связи. Таким образом, устройство-источник 12 и устройство-адресат 14 могут быть устройствами беспроводной связи.
В некоторых случаях система 10 кодирования видео, проиллюстрированная на фиг. 1A, является просто примером, и технологии настоящей заявки могут применяться к настройкам кодирования видео (например, кодированию видео или декодированию видео), которые необязательно включают в себя какой-либо обмен данными между устройствами кодирования и декодирования. В других примерах данные извлекаются из локальной памяти, передаются потоком по сети или т.п. Устройство кодирования видео может кодировать и сохранять данные в памяти, и/или устройство декодирования видео может извлекать и декодировать данные из памяти. В некоторых примерах кодирование и декодирование выполняются устройствами, которые не обмениваются данными друг с другом, а просто кодируют данные в память и/или извлекают и декодируют данные из памяти.
Для удобства описания в данном документе описаны варианты осуществления изобретения, например, со ссылкой на высокоэффективное кодирование видео (HEVC) или на эталонное программное обеспечение универсального кодирования видео (VVC), стандарт кодирования видео следующего поколения, разработанный объединенной группой сотрудничества по кодированию видео (JCT-VC) группы экспертов по кодированию видео ITU-T (VCEG) и группы экспертов по движущимся изображениям (MPEG) ISO/IEC. Обычный специалист в данной области техники поймет, что варианты осуществления изобретения не ограничиваются HEVC или VVC.
Кодер и способ кодирования
На фиг. 2 показана схематичная блок-схема примерного видеокодера 20, который выполнен с возможностью реализации технологий настоящей заявки. В примере, показанном на фиг. 2, видеокодер 20 содержит вход 201 (или входной интерфейс 201), блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования и блок 212 обработки обратного преобразования, блок 214 восстановления, блок 220 контурного фильтра, буфер 230 декодированных изображений (DPB), блок 260 выбора режима, блок 270 энтропийного кодирования и выход 272 (или выходной интерфейс 272). Блок 260 выбора режима может включать в себя блок 244 межкадрового предсказания, блок 254 внутрикадрового предсказания и блок 262 разделения. Блок 244 межкадрового предсказания может включать в себя блок оценки движения и блок компенсации движения (не показаны). Видеокодер 20, показанный на фиг. 2, может также упоминаться как гибридный видеокодер или видеокодер, соответствующий гибридному видеокодеку.
Блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 260 выбора режима могут упоминаться как формирующие прямой путь сигнала кодера 20, тогда как блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 декодированных изображений (DPB), блок 244 межкадрового предсказания и блок 254 внутрикадрового предсказания могут упоминаться как формирующие обратный путь прохождения сигнала видеокодера 20, где обратный путь прохождения сигнала видеокодера 20 соответствует пути сигнала декодера (смотри видеодекодер 30 на фиг. 3). Блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, контурный фильтр 220, буфер декодированных изображений (DPB) 230, блок 244 межкадрового предсказания и блок 254 внутрикадрового предсказания также относятся к формированию «встроенного декодера» видеокодера 20.
Изображения и разделение изображения (изображения и блоки)
Кодер 20 может быть выполнен с возможностью приема, например, через вход 201, изображения 17 (или данных 17 изображения), например, изображения, состоящего из последовательности изображений, образующих видео или видеопоследовательность. Принятое изображение или данные изображения могут быть также предварительно обработанным изображением 19 (или предварительно обработанными данными 19 изображения). Для упрощения изложения нижеследующее описание относится к изображению 17. Изображение 17 также может называться текущим изображением или изображением, которое должно быть кодировано (в частности, при видеокодировании, чтобы отличать текущее изображение от других изображений, например, ранее кодированных и/или декодированных изображений одной и той же видеопоследовательности, то есть видеопоследовательности, которая также содержит текущее изображение).
(Цифровое) изображение представляют собой или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности. Выборка в массиве может также называться пикселем (сокращенная форма английского словосочетания «picture element» (элемент изображения)) или пэлом. Количество выборок в горизонтальном и вертикальном направлении (или по оси) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета, как правило, используются три цветовых компонента, то есть изображение может быть представлено или включать в себя три массива выборок. В формате RBG или цветовом пространстве изображение содержит соответствующий массив выборок красного, зеленого и синего цветов. Однако при кодировании видео каждый пиксель, как правило, представлен в формате яркости и цветности или в цветовом пространстве, например, YCbCr, которое содержит компонент яркости, обозначенный Y (иногда вместо него также используется L), и два компонента цветности, обозначенные Cb и Cr. Компонент Y яркости (или короткой яркости) представляет яркость или интенсивность уровня серого (например, как в полутоновом изображении), в то время как два компонента цветности (или короткой цветности) Cb и Cr представляют компоненты цветности или информации о цвете. Соответственно, изображение в формате YCbCr содержит массив выборок яркости значений выборок яркости (Y) и два массива выборок цветности значений цветности (Cb и Cr). Изображения в формате RGB могут быть обращены или преобразованы в формат YCbCr, и наоборот, этот процесс также известен как преобразование цвета или конверсия. Если изображение является монохромным, оно может содержать только массив выборок яркости. Соответственно, изображение может быть, например, массивом выборок яркости в монохромном формате или массивом выборок яркости и двумя соответствующими массивами выборок цветности в цветовой формат 4:2:0, 4:2:2 и 4:4:4.
Варианты осуществления видеокодера 20 могут содержать блок разделения изображения (не показан на фиг. 2), выполненный с возможностью разделения изображения 17 на множество (обычно не перекрывающихся) блоков 203 изображения. Эти блоки также могут упоминаться как корневые блоки, макроблоки (H.264/AVC) или блоки дерева кодирования (CTB) или блоки дерева кодирования (CTU) (H.265/HEVC и VVC). Единица разделения изображения может быть выполнена с возможностью использования одного и того же размера блока для всех изображений видеопоследовательности и соответствующей сетки, определяющей размер блока, или изменения размера блока между изображениями, или поднаборами или группами изображений, и разделения каждого изображения на соответствующие блоки.
В дополнительных вариантах осуществления видеокодер может быть выполнен с возможностью приема непосредственно блока 203 изображения 17, например, одного, нескольких или всех блоков, образующих изображение 17. Блок 203 изображения может также называться текущим блоком изображения или блоком изображения, подлежащим кодированию.
Подобно изображению 17, блок 203 изображения снова представляют собой или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности (значениями выборок), хотя и меньшего размера, чем изображение 17. Другими словами, блок 203 может содержать, например, один массив выборок (например, массив яркости в случае монохромного изображения 17 или массив яркости или цветности в случае цветного изображения) или три массива выборок (например, массив яркости и два массива цветности в случае цветного изображения 17) или любое другое количество и/или любой вид массивов в зависимости от применяемого цветового формата. Количество выборок в горизонтальном и вертикальном направлениях (или по горизонтальной и вертикальной осям) блока 203 определяют размер блока 203. Соответственно, блок может быть, например, массивом выборок размером MxN (размером M столбцов на N строк) или массивом коэффициентов преобразования размером MxN.
Варианты осуществления видеокодера 20, как показано на фиг. 2, могут быть выполнены с возможностью кодирования изображения 17 поблочно, например, кодирование и предсказание выполняются для каждого блока 203.
Варианты осуществления видеокодера 20, показанного на фиг. 2, могут быть дополнительно выполнены с возможностью разделения и/или кодирования изображения с использованием слайсов (также называемых видеослайсами), причем изображение может быть разделено на или закодировано с использованием одного или несколько слайсов (обычно не перекрывающихся), и каждый слайс может содержать один или более блоков (например, CTU).
Варианты осуществления видеокодера 20, показанного на фиг. 2, могут быть дополнительно выполнены с возможностью разделения и/или кодирования изображения с использованием групп тайлов (также называемых группами тайлов) и/или тайлов (также называемых видеотайлами), в котором изображение может быть разделено на или закодировано с использованием одной или более групп тайлов (обычно не перекрывающихся), и каждая группа тайлов может содержать, например, один или более блоков (например, CTU) или один или несколько тайлов, где каждый тайл, например, может иметь прямоугольную форму и может содержать один или более блоков (например, CTU), например, полные или дробные блоки.
Вычисление остатка
Блок 204 вычисления остатка может быть выполнен с возможностью вычисления остаточного блока 205 (также называемого остатком 205) на основе блока 203 изображения и блока 265 предсказания (дополнительные подробности о блоке 265 предсказания будут предоставлены позже), например, путем вычитания значений выборок блока 265 предсказания из значений выборок блока 203 изображения, выборки за выборкой (пиксель за пикселем), чтобы получить остаточный блок 205 в области выборки.
Преобразование
Блок 206 обработки преобразования может быть выполнен с возможностью применения преобразования, например, дискретного косинусного преобразования (DCT) или дискретного синусоидального преобразования (DST), к значениям выборок остаточного блока 205 для получения коэффициентов 207 преобразования в области преобразования. Коэффициенты 207 преобразования также могут называться остаточными коэффициентами преобразования и представлять остаточный блок 205 в области преобразования.
Блок 206 обработки преобразования может быть выполнен с возможностью применения целочисленных аппроксимаций DCT/DST, таких как преобразования, указанные для H.265/HEVC. По сравнению с ортогональным преобразованием DCT, такие целочисленные аппроксимации, как правило, масштабируются с определенным коэффициентом. Чтобы сохранить норму остаточного блока, который обрабатывается прямым и обратным преобразованиями, в процессе преобразования применяются дополнительные коэффициенты масштабирования. Коэффициенты масштабирования, как правило, выбираются на основе определенных ограничений, таких как коэффициенты масштабирования, являющиеся степенью два для операций сдвига, разрядность коэффициентов преобразования, компромисс между точностью и затратами на реализацию и т.д. Конкретные коэффициенты масштабирования, например, указываются для обратного преобразования, например, с помощью блока 212 обработки обратного преобразования (и соответствующего обратного преобразования, например, с помощью блока 312 обработки обратного преобразования в видеодекодере 30), и, соответственно, могут быть указаны соответствующие коэффициенты масштабирования для прямого преобразования, например, с помощью блока 206 обработки преобразования, в кодере 20.
Варианты осуществления видеокодера 20 (соответственно, блока 206 обработки преобразования) могут быть выполнены с возможностью вывода параметров преобразования, например, типа преобразования или преобразований, например, напрямую или в закодированом или сжатом виде через блок 270 энтропийного кодирования, так что, например, видеодекодер 30 может принимать и использовать параметры преобразования для декодирования.
Квантование
Блок 208 квантования может быть выполнен с возможностью квантования коэффициентов 207 преобразования для получения квантованных коэффициентов 209, например, путем применения скалярного квантования или векторного квантования. Квантованные коэффициенты 209 также могут упоминаться как квантованные коэффициенты 209 преобразования или квантованные остаточные коэффициенты 209.
Процесс квантования может уменьшить глубину в битах, связанную с некоторыми или всеми коэффициентами 207 преобразования. Например, n-разрядный коэффициент преобразования может быть округлен до m--разрядного коэффициента преобразования во время квантования, где n больше, чем m. Степень квантования может быть изменена путем регулировки параметра квантования (QP). Например, для скалярного квантования может применяться другое масштабирование для достижения более тонкого или более грубого квантования. Меньшие размеры шагов квантования соответствуют более тонкому квантованию, тогда как большие размеры шагов квантования соответствуют более грубому квантованию. Применимый размер шага квантования может быть указан параметром квантования (QP). Параметр квантования может, например, быть индексом для заранее определенного набора применимых размеров шага квантования. Например, малые параметры квантования могут соответствовать точному квантованию (малым размерам шагов квантования), и большие параметры квантования могут соответствовать грубому квантованию (большим размерам шагов квантования) или наоборот. Квантование может включать в себя деление на размер шага квантования, и соответствующее и/или обратное деквантование, например, с помощью блока 210 обратного квантования, может включать в себя умножение на размер шага квантования. Варианты осуществления согласно некоторым стандартам, например, HEVC, могут быть выполнены с возможностью использования параметра квантования для определения размера шага квантования. В общем, размер шага квантования может быть вычислен на основе параметра квантования с использованием аппроксимации с фиксированной точкой уравнения, включающего в себя деление. Дополнительные коэффициенты масштабирования могут быть введены для квантования и деквантования, чтобы восстановить норму остаточного блока, который может быть изменен из-за масштабирования, используемого в приближении с фиксированной точкой уравнения для размера шага квантования и параметра квантования. В одной примерной реализации масштабирование обратного преобразования и деквантование могут быть объединены. В качестве альтернативы могут использоваться таблицы квантования, выполненные с учетом потребностей заказчика, и кодер может передавать их в декодер, например, в битовом потоке. Квантование представляет собой операцию с потерями, в которой потери возрастают с увеличением размера шага квантования.
Варианты осуществления видеокодера 20 (соответственно, блок 208 квантования) могут быть выполнены с возможностью вывода параметров квантования (QP), например, напрямую или в закодированном виде через блок 270 энтропийного кодирования, так что, например, видеодекодер 30 может принимать и применять параметры квантования для декодирования.
Обратное квантование
Блок 210 обратного квантования выполнен с возможностью применения обратного квантования блока 208 квантования к квантованным коэффициентам для получения деквантованных коэффициентов 211, например, путем применения обратной схемы квантования, применяемой блоком 208 квантования, на основе или с использованием того же размер шага квантования, что и у блока 208 квантования. Деквантованные коэффициенты 211 также могут упоминаться как деквантованные остаточные коэффициенты 211 и соответствовать (хотя, как правило, они не идентичны коэффициентам преобразования из-за потери при квантовании) коэффициентам 207 преобразования.
Обратное преобразование
Блок 212 обработки обратного преобразования выполнен с возможностью применения обратного преобразования, применяемого блоком 206 обработки преобразования, например, обратного дискретного косинусного преобразования (DCT) или обратного дискретного синусоидального преобразования (DST) или других обратных преобразований, чтобы получить восстановленный остаточный блок 213 (или соответствующие деквантованные коэффициенты 213) в области выборки. Восстановленный остаточный блок 213 может также называться блоком 213 преобразования.
Восстановление
Блок 214 восстановления (например, суммирующее устройство или сумматор 214) выполнен с возможностью сложения блока 213 преобразования (то есть восстановленного остаточного блока 213) с блоком 265 предсказания, чтобы получить восстановленный блок 215 в области выборки, например, путем сложения (выборки за выборкой) значений выборок восстановленного остаточного блока 213 и значений выборок блока 265 предсказания.
Фильтрация
Блок 220 контурного фильтра (или сокращенно «контурный фильтр» 220) выполнен с возможностью фильтрации восстановленного блока 215, чтобы получить отфильтрованный блок 221, или, в общем, для фильтрации восстановленных выборок для получения отфильтрованных выборок. Блок контурного фильтра выполнен, например, с возможностью сглаживания пиксельных переходов или иного повышения качества видео. Блок 220 контурного фильтра может содержать один или несколько контурных фильтров, таких как фильтр удаления блочности, фильтр адаптивного к выборке смещение (SAO) или один или несколько других фильтров, например, двусторонний фильтр, адаптивный контурный фильтр (ALF), повышение резкости, сглаживающие фильтры или объединённые фильтры или любые их комбинации. Хотя блок 220 контурного фильтра показан на фиг. 2 как контурный фильтр, в других конфигурациях блок 220 контурного фильтра может быть реализован как постконтурный фильтр. Отфильтрованный блок 221 может также называться фильтрованным восстановленным блоком 221.
Варианты осуществления видеокодера 20 (соответственно, блока 220 контурного фильтра) могут быть выполнены с возможностью вывода параметров контурного фильтра (таких как информация об адаптивном смещении выборки), например, напрямую или в закодированном виде через блок 270 энтропийного кодирования, так что, например, декодер 30 может принимать и применять одни и те же параметры контурного фильтра или соответствующие контурные фильтры для декодирования.
Буфер декодированного изображения
Буфер 230 декодированных изображений (DPB) может быть памятью, в которой хранятся опорные изображения или, в общем, данные опорных изображений для кодирования видеоданных видеокодером 20. DPB 230 может быть сформирован любым из множества запоминающих устройств, таких как динамическое оперативное запоминающее устройство (DRAM), в том числе синхронное DRAM (SDRAM), магниторезистивное RAM (MRAM), резистивное RAM (RRAM) или другие типы запоминающих устройств. Буфер 230 декодированных изображений (DPB) может быть выполнен с возможностью хранения одного или более фильтрованных блоков 221. Буфер 230 декодированных изображений может быть дополнительно выполнен с возможностью хранения других ранее отфильтрованных блоков, например, ранее восстановленных и отфильтрованных блоков 221 одного и того же текущего изображения или различных изображений, например, ранее восстановленных изображений, и может предоставлять полные ранее восстановленные, то есть декодированные, изображения (и соответствующие опорные блоки и выборки) и/или частично восстановленное текущее изображение (и соответствующие опорные блоки и выборки), например, для межкадрового предсказания. Буфер декодированных изображений (DPB) 230 также может быть выполнен с возможностью хранения одного или более нефильтрованных восстановленных блоков 215 или, в общем, нефильтрованных восстановленных выборок, например, если восстановленный блок 215 не фильтруется блоком 220 контурной фильтрации, или любой другой дополнительно обработанной версии восстановленных блоков или выборок.
Выбор режима (разделение и предсказание)
Блок 260 выбора режима содержит блок 262 разделения, блок 244 межкадрового предсказания и блок 254 внутрикадрового предсказания и выполнен с возможностью приема или получения исходных данных изображения, например, исходного блока 203 (текущего блока 203 текущего изображения 17), и данных восстановленного изображения, например, отфильтрованных и/или нефильтрованных восстановленных выборок или блоков одного и того же (текущего) изображения и/или из одного или множества ранее декодированных изображений, например, из буфера 230 декодированных изображений или других буферов (например, строкового буфера, не показан). Данные восстановленного изображения используются в качестве данных опорного изображения для предсказания, например, межкадрового предсказания или внутрикадрового предсказания, чтобы получить блок 265 предсказания или предиктор 265.
Блок 260 выбора режима может быть выполнен с возможностью определения или выбора разделения для текущего режима предсказания блока (включая отсутствие разделения) и режима предсказания (например, режима внутрикадрового или межкадрового предсказания) и выработки соответствующего блока 265 предсказания, который используется для вычисления остаточного блока 205 и для восстановления восстановленного блока 215.
Варианты осуществления блока 260 выбора режима могут быть выполнены с возможностью выбора разделения и режима предсказания (например, из тех, которые поддерживаются или доступны для блока 260 выбора режима), которые обеспечивают наилучшее совпадение или, другими словами, минимальный остаток (минимальный остаток означает лучшее сжатие для передачи или хранения), или минимальное количество служебных данных сигнализации (минимальное количество служебных данных сигнализации означает лучшее сжатие для передачи или хранения), или которое учитывает или уравновешивает и то, и другое. Блок 260 выбора режима может быть выполнен с возможностью определения разделения и режима предсказания на основе оптимизации отношения «скорость-искажение» (RDO), то есть выбора режима предсказания, который обеспечивает минимальное искажение скорости. Такие термины, как «лучший», «минимальный», «оптимальный» и т.д. в данном контексте необязательно относятся, в общем, к «лучшему», «минимальному», «оптимальному» и т.д., но также могут относиться к выполнению критерия завершения или выбора, такому как значение, которое превышает или находится ниже порогового значения, или к другим ограничениям, потенциально ведущим к «неоптимальному выбору», но уменьшающим сложность и время обработки.
Другими словами, блок 262 разделения может быть выполнен с возможностью разделения блока 203 на более маленькие разделы или подблоки (которые снова образуют блоки), например, итеративно с использованием разделения квадродерева (QT), двоичного разделения (BT) или разделения троичного дерева (TT) или любой их комбинации, и выполнения, например, предсказания для каждого из разделов блоков или подблоков, причем выбор режима содержит выбор древовидной структуры разделенного блока 203, и режимы предсказания применяются к каждому из разделов блока или подблоков.
Далее будут объяснены более подробно разделение (например, с помощью блока 260 разделения) и обработка предсказания (с помощью блока 244 межкадрового предсказания и блока 254 внутрикадрового предсказания), выполняемые примерным видеокодером 20.
Разделение
Блок 262 разделения может разделять (или разбивать) текущий блок 203 на меньшие разделы, например, на меньшие блоки квадратной или прямоугольной формы. Эти меньшие блоки (которые также могут называться подблоками) могут быть дополнительно разделены на еще более меньшие разделы. Это также называется разделением дерева или иерархическим разделением дерева, в котором корневой блок, например, на уровне корневого дерева 0 (уровень 0 иерархии, глубина 0), может быть рекурсивно разделен, например, разделен на два или более блоков следующего более низкого уровня дерева, например, на узлы на уровне дерева 1 (уровень 1 иерархии, глубина 1), причем эти блоки могут быть снова разделены на два или более блоков следующего более низкого уровня, например, уровень 2 дерева (уровень 2 иерархии, глубина 2) и т.д. До тех пор, пока разделение не будет завершено, например, так как критерий завершения выполнен, например, достигнута максимальная глубина дерева или минимальный размер блока. Блоки, которые не разделяются далее, также называются листовыми блоками или листовыми узлами дерева. Дерево, использующее разделение на два раздела, называется двоичным деревом (BT), дерево, использующее разделение на три раздела, называется троичным деревом (TT), и дерево, использующее разделение на четыре раздела, называется квадродеревом (QT).
Как упоминалось ранее, используемый в данном документе термин «блок», может быть частью, в частности, квадратной или прямоугольной частью изображения. Со ссылкой, например, на HEVC и VVC, блок может представлять собой или соответствовать единице дерева кодирования (CTU), единице кодирования (CU), единице предсказания (PU) и единице преобразования (TU) и/или соответствующим блокам, например, блоку дерева кодирования (CTB), блоку кодирования (CB), блоку преобразования (TB) или блоку предсказания (PB).
Например, единица дерева кодирования (CTU) может представлять собой или содержать CTB выборок яркости, два соответствующих CTB выборок цветности изображения, которое имеет три массива выборок, или CTB выборок монохромного изображения или изображения, которое кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодирования выборок. Соответственно, блок дерева кодирования (CTB) может быть блоком размером NxN выборок для некоторого значения N, так что разделение компонента на CTB является разделением. Единица кодирования (CU) может представлять собой или содержать блок кодирования выборок яркости, два соответствующих блока кодирования выборок цветности изображения, которое имеет три массива выборок, или блок кодирования выборок монохромного изображения или изображения, которое кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодирования выборок. Соответственно, блок кодирования (CB) может быть блоком MxN выборок для некоторых значений M и N, так что разделение CTB на блоки кодирования является разделением.
В вариантах осуществления, например, согласно HEVC, единица дерева кодирования (CTU) может быть разделена на CU с использованием структуры квадродерева, обозначенной как дерево кодирования. Решение о том, кодировать ли область изображения с использованием межкадрового (временного) или внутрикадрового (пространственного) предсказания, принимается на уровне CU. Каждая CU может быть дополнительно разделена на одну, две или четыре PU в соответствии с типом разделения PU. Внутри одной PU применяется один и тот же процесс предсказания, и соответствующая информация передается в декодер на основе PU. После получения остаточного блока путем применения процесса предсказания на основе типа разделения PU, CU может быть разделена на единицы преобразования (TU) в соответствии с другой структурой квадродерева, аналогичной дереву кодирования для CU.
В вариантах осуществления, например, в соответствии с последним разрабатываемым в настоящее время стандартом кодирования видео, который называется универсальным кодированием видео (VVC), объединенный способ разделения квадродерева и двоичного дерева (QTBT) используется, например, для разделения блока кодирования. В блочной структуре QTBT CU может иметь квадратную или прямоугольную форму. Например, единица дерева кодирования (CTU) сначала разделяется структурой квадродерева. Листовые узлы квадродерева дополнительно разделяются с помощью структуры двоичного дерева или третичного (или тройного) дерева. Листовые узлы дерева разделения называются единицами кодирования (CU), и эта сегментация используется для предсказания и процесса преобразования без какого-либо дальнейшего разделения. Это означает, что CU, PU и TU имеют одинаковый размер блока в структуре блока кодирования QTBT. Параллельно с блочной структурой QTBT можно использовать многочисленные разделы, например, троичное дерево.
В одном примере блок 260 выбора режима видеокодера 20 может быть выполнен с возможностью выполнения любой комбинации технологий разделения, описанных в данном документе.
Как описано выше, видеокодер 20 выполнен с возможностью определения или выбора наилучшего или оптимального режима предсказания из набора (например, заранее определенных) режимов предсказания. Набор режимов предсказания может содержать, например, режимы внутрикадрового предсказания и/или режимы межкадрового предсказания.
Внутрикадровое предсказание
Набор режимов внутрикадрового предсказания может содержать 35 различных режимов внутрикадрового предсказания, например, ненаправленные режимы, такие как режим DC (или среднего значения) и планарный режим, или направленные режимы, например, как определено в HEVC, или может содержать 67 различных режимов внутрикадрового предсказания, например, ненаправленные режимы, такие как режим DC (или среднего значения) и планарный режим, или направленные режимы, например, как определено для VVC.
Блок 254 внутрикадрового предсказания выполнен с возможностью использования восстановленных выборок соседних блоков одного и того же текущего изображения для выработки блока 265 внутрикадрового предсказания согласно режиму внутрикадрового предсказания набора режимов внутрикадрового предсказания.
Блок 254 внутрикадрового предсказания (или, в общем, блок 260 выбора режима) дополнительно выполнен с возможностью вывода параметров внутрикадрового предсказания (или, в общем, информации, указывающей выбранный режим внутрикадрового предсказания для блока) в блок 270 энтропийного кодирования в виде синтаксических элементов 266 для включения в кодированные данные 21 изображения, чтобы, например, видеодекодер 30 мог принимать и использовать параметры предсказания для декодирования.
Межкадровое предсказание
Набор (или возможных) режимов межкадрового предсказания зависит от доступных опорных изображений (то есть предыдущих по меньшей мере частично декодированных изображений, например, сохраненных в DBP 230) и других параметров межкадрового предсказания, например, от того, все ли опорное изображение или только часть его, например, область окна поиска вокруг области текущего блока, опорного изображения используется для поиска наиболее подходящего опорного блока, и/или, например, применяется или нет интерполяция пикселей, например, половинная пиксельная/полупиксельная и/или четвертьпиксельная интерполяция.
Дополнительно к вышеупомянутым режимам предсказания могут применяться режим пропуска и/или прямой режим.
Блок 244 межкадрового предсказания может включать в себя блок оценки движения (ME) и блок компенсации движения (MC) (оба не показаны на фиг. 2). Блок оценки движения может быть выполнен с возможностью приема или получения блока 203 изображения (блока 203 текущего изображения текущего изображения 17) и декодированного изображения 231, или по меньшей мере одного или множества ранее восстановленных блоков, например, восстановленных блоков одного или множества других/различных ранее декодированных изображений 231 для оценки движения. Например, видеопоследовательность может содержать текущее изображение и ранее декодированные изображения 231, или, другими словами, текущее изображение и ранее декодированные изображения 231 могут представлять собой или могут формировать последовательность изображений, образующих видеопоследовательность.
Кодер 20 может, например, быть выполнен с возможностью выбора опорного блока из множества опорных блоков одного и того же или разных изображений из множества других изображений и предоставления опорного изображения (или индекса опорного изображения) и/или смещения (пространственного смещения) между позицией (координаты x, y) опорного блока и позицией текущего блока в качестве параметров межкадрового предсказания для блока оценки движения. Это смещение также называется вектором движения (MV).
Блок компенсации движения выполнен с возможностью получения, например, приема, параметра межкадрового предсказания и выполнения межкадрового предсказания на основе или с использованием параметра межкадрового предсказания для получения блока 265 межкадрового предсказания. Компенсация движения, выполняемая блоком компенсации движения, может включать в себя выборку или выработку блока предсказания на основе вектора движения/блока, определенного посредством оценки движения, и, возможно, выполнение интерполяции с точностью до подпикселя. Интерполяционная фильтрация может вырабатывать дополнительные выборки пикселей из известных выборок пикселей, таким образом потенциально увеличивая количество блоков предсказания кандидатов, которые могут использоваться для кодирования блока изображения. После приема вектора движения для PU текущего блока изображения блок компенсации движения может найти блок предсказания, на который указывает вектор движения, в одном из списков опорных изображений.
Блок компенсации движения может также вырабатывать синтаксические элементы, ассоциированные с блоками, и видеослайсы для использования видеодекодером 30 при декодировании блоков изображения видеослайса. В качестве альтернативы или в дополнение к слайсам и соответствующим синтаксическим элементам могут быть выработаны или использованы группы тайлов и/или тайлы и соответствующие синтаксические элементы.
Энтропийное кодирование
Блок 270 энтропийного кодирования выполнен с возможностью применения, например, алгоритма или схемы энтропийного кодирования (например, схемы кодирования с переменной длиной (VLC), контекстно-адаптивной схемы VLC (CAVLC), схемы арифметического кодирования, бинаризации, контекстно-адаптивного двоичного арифметического кодирования (CABAC), основанного на синтаксисе контекстно-адаптивного двоичного арифметического кодирования (SBAC), энтропийного кодирования с интервалом вероятности (PIPE) или другой методология или технологии энтропийного кодирования) или обхода (без сжатия) квантованных коэффициентов 209, параметров межкадрового предсказания, параметров внутрикадрового предсказания, параметров контурного фильтра и/или других синтаксических элементов для получения данных 21 кодированного изображения, которые могут выводиться через выход 272, например, в виде кодированного битового потока 21, так что, например, видео декодер 30 может принимать и использовать параметры для декодирования. Кодированный битовый поток 21 может быть передан в видеодекодер 30 или сохранен в памяти для последующей передачи или поиска видеодекодером 30.
Другие структурные вариации видеокодера 20 могут использоваться для кодирования видеопотока. Например, кодер 20, не основанный на преобразовании, может квантовать остаточный сигнал напрямую без блока 206 обработки преобразования для определенных блоков или кадров. В другой реализации кодер 20 может иметь блок 208 квантования и блок 210 обратного квантования, объединенные в единый блок.
Декодер и способ декодирования
На фиг. 3 показан пример видеодекодера 30, который выполнен с возможностью реализации технологий этой настоящей заявки. Видеодекодер 30 выполнен с возможностью приема данных 21 кодированного изображения (например, кодированного битового потока 21), например, закодированного кодером 20, для получения декодированного изображения 331. Данные кодированного изображения или битовый поток содержат информацию для декодирования данных кодированного изображения, например, данных, которые представляют блоки изображения кодированного видеослайса (и/или группы тайлов или тайлы) и ассоциированные с ними синтаксические элементы.
В примере на фиг. 3 декодер 30 содержит блок 304 энтропийного декодирования, блок 310 обратного квантования, блок 312 обработки обратного преобразования, блок 314 восстановления (например, сумматор 314), контурный фильтр 320, буфер декодированных изображений (DBP) 330, блок 360 применения режима, блок 344 межкадрового предсказания и блок 354 внутрикадрового предсказания. Блок 344 межкадрового предсказания может представлять собой или включать в себя блок компенсации движения. В некоторых примерах видеодекодер 30 может выполнять этап декодирования, в целом обратный этапу кодирования, описанному применительно к видеокодеру 100, показанному на фиг. 2.
Как объяснялось в отношении кодера 20, блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, контурного фильтра 220, буфер декодированных изображений (DPB) 230, блок 344 межкадрового предсказания и блок 354 внутрикадрового предсказания также упоминаются как формирующие «встроенный декодер» видеокодера 20. Соответственно, блок 310 обратного квантования может быть идентичен по своим по функциям блоку 110 обратного квантования, блок 312 обработки обратного преобразования может быть идентичен по своим по функциям блоку 212 обработки обратного преобразования, блок 314 восстановления может быть идентичен по своим по функциям блоку 214 восстановления, контурный фильтр 320 может быть идентичен по своим по функциям контурному фильтру 220, и буфер 330 декодированных изображений может быть идентичен по своим по функциям буферу 230 декодированных изображений. Таким образом, пояснения, предоставленные для соответствующих блоков и функций видеокодера 20, применяются, соответственно, к соответствующим блокам и функциям видеодекодера 30.
Энтропийное декодирование
Блок 304 энтропийного декодирования выполнен с возможностью синтаксического анализа битового потока 21 (или, в общем, данных 21 кодированного изображения) и выполнения, например, энтропийного декодирования кодированных данных 21 изображения для получения, например, квантованных коэффициентов 309 и/или декодированных параметров кодирования (не показаны на фиг. 3), например, любых или всех параметров межкадрового предсказания (например, индекса опорного изображения и вектора движения), параметра внутрикадрового предсказания (например, режима или индекса внутрикадрового предсказания), параметров преобразования, параметров квантования, параметров контурного фильтра и/или других синтаксических элементов. Блок 304 энтропийного декодирования может быть выполнен с возможностью применения алгоритмов или схем декодирования, соответствующих схемам кодирования, которые описаны в отношении блока 270 энтропийного кодирования кодера 20. Блок 304 энтропийного декодирования может быть дополнительно выполнен с возможностью предоставления параметров межкадрового предсказания, параметра внутрикадрового предсказания и/или других синтаксических элементов для блока 360 применения режима и других параметров для других блоков декодера 30. Видеодекодер 30 может принимать синтаксические элементы на уровне видеослайса и/или уровне видеоблока. В качестве альтернативы или в дополнение к слайсам и соответствующим синтаксическим элементам, могут приниматься и/или использоваться группы тайлов и/или тайлы и соответствующие синтаксические элементы.
Обратное квантование
Блок 310 обратного квантования может быть выполнен с возможностью приема параметров квантования (QP) (или, в общем, информации, относящейся к обратному квантованию) и квантованных коэффициентов из кодированных данных 21 изображения (например, путем синтаксического анализа и/или декодирования, например, с помощью блока 304 энтропийного декодирования) и применения на основе параметров квантования обратного квантования к декодированным квантованным коэффициентам 309 для получения деквантованных коэффициентов 311, которые также могут называться коэффициентами преобразования 311. Процесс обратного квантования может включать в себя использование параметра квантования, определенного с помощью видеокодера 20 для каждого видеоблока в видеослайсе (или тайле или группе тайлов) для того, чтобы определить степень квантования и, аналогично, степень обратного квантования, которое будет применяться.
Обратное преобразование
Блок 312 обработки обратного преобразования может быть выполнен с возможностью приема деквантованных коэффициентов 311, также называемых коэффициентами 311 преобразования, и применения преобразования к деквантованным коэффициентам 311 для получения восстановленных остаточных блоков 213 в области выборки. Восстановленные остаточные блоки 213 также могут называться блоками 313 преобразования. Преобразование может быть обратным преобразованием, например, обратным DCT, обратным DST, обратным целочисленным преобразованием или концептуально аналогичным процессом обратного преобразования. Блок 312 обработки обратного преобразования может быть дополнительно выполнен с возможностью приема параметров преобразования или соответствующей информации из данных 21 кодированного изображения (например, путем синтаксического анализа и/или декодирования, например, с помощью блока 304 энтропийного декодирования), чтобы определять преобразование, которое должно применяться к деквантованным коэффициентам 311.
Восстановление
Блок 314 восстановления (например, суммирующее устройство или сумматор 314) может быть выполнен с возможностью сложения восстановленного остаточного блока 313 с блоком 365 предсказания для получения восстановленного блока 315 в области выборки, например, путем сложения значений выборок восстановленного остаточного блока 313 и значений выборок блока 365 предсказания.
Фильтрация
Блок 320 контурной фильтрации (либо в контуре кодирования, либо после контура кодирования) выполнен с возможностью фильтрации восстановленного блока 315 для получения отфильтрованного блока 321, например, для сглаживания пиксельных переходов или иного повышения качества видео. Блок 320 контурного фильтра может содержать один или несколько контурных фильтров, таких как фильтр удаления блочности, фильтр адаптивного к выборке смещение (SAO) или один или несколько других фильтров, например, двусторонний фильтр, адаптивный контурный фильтр (ALF), повышение резкости, сглаживающие фильтры или объединённые фильтры или любые их комбинации. Хотя блок 320 контурного фильтра показан на фиг. 3 как контурный фильтр, в других конфигурациях блок 320 контурного фильтра может быть реализован как постконтурный фильтр.
Буфер декодированного изображения
Декодированные видеоблоки 321 изображения затем сохраняются в буфере 330 декодированных изображений, который хранит декодированные изображения 331 в качестве опорных изображений для последующей компенсации движения для других изображений и/или для вывода, соответственно, отображения.
Декодер 30 выполнен с возможностью вывода декодированного изображения 311, например, через вывод 312, для представления или просмотра пользователю.
Предсказание
Блок 344 межкадрового предсказания может быть идентичен модулю 244 межкадрового предсказания (в частности, модулю компенсации движения), и блок 354 внутрикадрового предсказания может быть идентичен модулю 254 межкадрового предсказания по своим функциям и выполняет решения относительно разделения или разбиения и предсказание на основе параметров разделения и/или предсказания или соответствующей информации, принятой из данных 21 кодированного изображения (например, путем синтаксического анализа и/или декодирования, например, с помощью блока 304 энтропийного декодирования). Блок 360 применения режима может быть выполнен с возможностью выполнения предсказания (внутрикадрового предсказания или межкадрового предсказания) для каждого блока на основе восстановленных изображений, блоков или соответствующих выборок (фильтрованных или нефильтрованных) для получения блока 365 предсказания.
Когда видеослайс кодируется как слайс (I) с внутрикадровым предсказанием, блок 354 внутрикадрового предсказания блока 360 применения режима конфигурируется для выработки блока 365 предсказания для блока изображения текущего видеослайса на основе просигнализированного режима внутрикадрового предсказания и данных из ранее декодированных блоков текущего изображения. Когда видеоизображение кодируется как слайс с межкадровым предсказанием (то есть B или P), блок 344 межкадрового предсказания (например, блок компенсации движения) блока 360 применения режима конфигурируется для создания блоков 365 предсказания для видеоблока текущего видеослайса на основе векторов движения и других синтаксических элементов, принятых из блока 304 энтропийного декодирования. Для межкадрового предсказания блоки предсказания могут быть созданы из одного из опорных изображений в одном из списков опорных изображений. Видеодекодер 30 может создавать списки опорных кадров, Список 0 и Список 1, используя технологии построения по умолчанию на основе опорных изображений, хранящихся в DPB 330. То же самое или аналогичное может применяться для вариантов осуществления с использованием групп тайлов (например, групп видетайлов) или тайлов (например, видеотайлов) альтернативно или в дополнение к слайсам (например, видеослайсам), например, видео может быть закодировано с использованием групп тайлов I, P или B и/или тайлов.
Блок 360 применения режима выполнен с возможностью определения информации предсказания для видеоблока текущего видеослайса путем анализа векторов движения или ассоциированной информации и других синтаксических элементов, и использует информацию предсказания для создания блоков предсказания для текущего видеоблока, который будет декодирован. Например, блок 360 применения режима использует некоторые из принятых синтаксических элементов для определения режима предсказания (например, внутрикадрового предсказания или межкадрового предсказания), используемого для кодирования видеоблоков видеослайса, тип слайса межкадрового предсказания (например, B-слайс, P-слайс или GPB-слайс), информацию создания одного или более списков опорных изображений для слайса, векторы движения для каждого межкадрового кодированного видеоблока слайса, статус межкадрового предсказания для каждого межкадрового кодированного видеоблока слайса и другую информацию для декодирования видеоблоков в текущем видеослайсе. То же самое или аналогичное может применяться для или посредством вариантов осуществления с использованием групп тайлов (например, групп видеотайлов) и/или тайлов (например, видеотайлов) в качестве или в дополнение к слайсам (например, видеослайсам), например, видео может быть закодировано с использованием группы тайлов I, P или B и/или тайлов.
Варианты осуществления видеодекодера 30, как показано на фиг. 3, могут быть выполнены с возможностью разделения и/или декодирования изображения с использованием слайсов (также называемых видеослайсами), где изображение может быть разделено на или декодировано с использованием одного или более слайсов (обычно не перекрывающихся), и каждый слайс может содержать один или более блоков (например, CTU).
Варианты осуществления видеодекодера 30, который показан на фиг. 3, могут быть выполнены с возможностью разделения и/или декодирования изображения с использованием групп тайлов (также называемых группами тайлов) и/или тайлов (также называемых видеотайлами), где изображение может быть разделено на или декодировано с использованием одной или более групп тайлов (обычно не перекрывающихся), и каждая группа тайлов может содержать, например, один или более блоков (например, CTU) или один или более тайлов, причем каждый тайл, например, может иметь прямоугольную форму и может содержать один или более блоков (например, CTU), например, полные или дробные блоки.
Другие варианты видеодекодера 30 могут использоваться для декодирования данных 21 кодированного изображения. Например, декодер 30 может вырабатывать выходной видеопоток без блока 320 контурной фильтрации. Например, декодер 30, не основанный на преобразовании, может выполнять обратное квантование остаточного сигнала напрямую без блока 312 обработки обратного преобразования для определенных блоков или кадров. В другой реализации видеодекодер 30 может иметь блок 310 обратного квантования и блок 312 обработки обратного преобразования, которые объединены в единый блок.
Следует понимать, что в кодере 20 и декодере 30 результат обработки текущего этапа может быть дополнительно обработан и затем передан на следующий этап. Например, после интерполяционной фильтрации, получения вектора движения или контурной фильтрации может выполняться дополнительная операция, такая как отсечение (Clip) или сдвиг, над результатом обработки интерполяционной фильтрации, получение вектора движения или контурная фильтрация.
Следует отметить, что дополнительные операции могут применяться к производным векторам движения текущего блока (включая, но не ограничиваясь ими, векторы движения контрольной точки аффинного режима, векторы движения подблока в аффинном режиме, планарном, и режиме ATMVP, временное движение векторы и т.д.). Например, значение вектора движения ограничено заданным диапазоном в соответствии с представляющим его битом. Если представляющим битом вектора движения является bitDepth, то диапазон равен -2^(bitDepth-1) ~ 2^(bitDepth-1)-1, где «^» означает возведение в степень. Например, если bitDepth установлен равным 16, диапазон составляет -32768 ~ 32767; если bitDepth установлен равным 18, диапазон составляет -131072 ~ 131071. Например, значение производного вектора движения (например, MV четырех подблоков 4x4 в одном блоке 8x8) ограничено таким образом, чтобы максимальная разность между целыми частями четырех MV подблока 4x4 не превышала N пикселей, например, не более 1 пикселя. В данном документе представлены два способа ограничения вектора движения в соответствии с bitDepth.
Способ 1: удалить старший бит переполнения (старший значащий бит) с помощью потоковых операций.
ux= ( mvx+2bitDepth ) % 2bitDepth … (1)
mvx = ( ux >= 2bitDepth-1 ) ? (ux − 2bitDepth ) : ux … (2)
uy= ( mvy+2bitDepth ) % 2bitDepth … (3)
mvy = ( uy >= 2bitDepth-1 ) ? (uy − 2bitDepth ) : uy … (4)
где mvx – горизонтальный компонент вектора движения блока или подблока изображения, mvy – вертикальный компонент вектора движения блока или подблока изображения, и ux и uy указывают промежуточное значение.
Например, если значение mvx равно -32769, после применения формул (1) и (2) результирующее значение будет равно 32767. В компьютерной системе десятичные числа хранятся в виде дополнения до двух. Дополнение до двух -32769 равно 1,0111,1111,1111,1111 (17 разрядов), затем старший бит отбрасывается, поэтому полученное дополнение до двух равно 0111,1111,1111,1111 (десятичное число 32767), что совпадает с результатом при применении формулы (1) и (2).
ux= ( mvpx + mvdx +2bitDepth ) % 2bitDepth … (5)
mvx = ( ux >= 2bitDepth-1 ) ? (ux − 2bitDepth ) : ux … (6)
uy= ( mvpy + mvdy +2bitDepth ) % 2bitDepth … (7)
mvy = ( uy >= 2bitDepth-1 ) ? (uy − 2bitDepth ) : uy … (8)
Операции могут применяться во время суммирования mvp и mvd, как показано в формулах (5)-(8).
Способ 2. Удалить старший бит переполнения путем отсечения значения
vx = Clip3(-2bitDepth-1, 2bitDepth-1 -1, vx)
vy = Clip3(-2bitDepth-1, 2bitDepth-1 -1, vy)
где vx – горизонтальный компонент вектора движения блока изображения или подблока, vy – вертикальный компонент вектора движения блока изображения или подблока; x, y и z, соответственно, соответствуют трем входным значениям процесса отсечения MV, и определение функции Clip3 выглядит следующим образом:
На фиг. 4 показано схематичное представление устройства 400 кодирования видео согласно варианту осуществления раскрытия. Устройство 400 кодирования видео подходит для реализации раскрытых вариантов осуществления, которые описаны в данном документе. В варианте осуществления устройство 400 кодирования видео может быть декодером, таким как видеодекодер 30 (фиг. 1A) или кодер, такой как видеокодер 20 (фиг. 1А).
Устройство 400 кодирования видео содержит входные порты 410 (или входные порты 410) и блоки 420 приемника (Rx) для приема данных; процессор, логический блок или центральный процессор (CPU) 430 для обработки данных; блоки 440 передатчика (Tx) и выходные порты 450 (или порты 450 вывода) для передачи данных; и память 460 для хранения данных. Устройство 400 кодирования видео может также содержать оптико-электрические (OE) компоненты и электрические-оптические (EO) компоненты, подключенные к входным портам 410, блокам 420 приемника, блокам 440 передатчика и выходным портам 450 для вывода или ввода оптических или электрических сигналов.
Процессор 430 реализован аппаратно и программно. Процессор 430 может быть реализован в виде одной или более микросхем CPU, ядер (например, в виде многоядерного процессора), FPGA, ASIC и DSP. Процессор 430 подключен к входным портам 410, блокам 420 приемника, блокам 440 передатчика, выходными портам 450 и памяти 460. Процессор 430 содержит блок 470 кодирования. Блок 470 кодирования реализует раскрытые варианты осуществления, описанные выше. Например, блок 470 кодирования реализует, обрабатывает, подготавливает или предоставляет различные операции кодирования. Таким образом, включение блока 470 кодирования обеспечивает существенное повышение функциональных возможностей устройства 400 кодирования видео и выполняет преобразование устройства 400 кодирования видео в другое состояние. В качестве альтернативы, блок 470 кодирования реализован в виде инструкций, хранящихся в памяти 460 и исполняемых процессором 430.
Память 460 может содержать один или несколько дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных при переполнении для хранения программ, когда такие программы выбраны для исполнения, и для хранения инструкций и данных, которые считываются во время исполнения программы. Память 460 может быть, например, энергозависимой и/или энергонезависимой и может быть постоянным запоминающим устройством (ROM), оперативным запоминающим устройством (RAM), троичной памятью с адресацией по содержанию (TCAM) и/или статическим оперативным запоминающим устройством (SRAM).
На фиг. 5 показана упрощенная блок-схема устройства 500, которое может использоваться как одно или оба из устройства-источника 12 и устройства-адресата 14 (фиг. 1) согласно примерному варианту осуществления.
Процессор 502 в устройстве 500 может быть центральным процессором. В качестве альтернативы, процессор 502 может быть устройством любого другого типа или множеством устройств, способных манипулировать или обрабатывать информацию, существующую в настоящее время или разработанную в будущем. Хотя раскрытые реализации могут быть реализованы с помощью одного процессора, как показано, например, с помощью процессора 502, преимущества в скорости и эффективности могут быть достигнуты с использованием более чем одного процессора.
В одной реализации память 504 в устройстве 500 может быть постоянным запоминающим устройством (ROM) или оперативным запоминающим устройством (RAM). В качестве памяти 504 может использоваться любой другой подходящий тип запоминающего устройства. Память 504 может включать в себя код и данные 506, к которым обращается процессор 502 с использованием шины 512. Память 504 может дополнительно включать в себя операционную систему 508 и прикладные программы 510, причем прикладные программы 510 включают в себя по меньшей мере одну программу, которая позволяет процессору 502 выполнять описанные в данном документе способы. Например, прикладные программы 510 могут включать в себя приложения 1-N, которые дополнительно включают в себя приложение кодирования видео, которое выполняет описанные в данном документе способы.
Устройство 500 может также включать в себя одно или несколько устройств вывода, таких как дисплей 518. В одном примере дисплей 518 может быть сенсорным дисплеем, который объединяет дисплей с сенсорным элементом, способным воспринимать ввод касанием. Дисплей 518 может быть подключен к процессору 502 через шину 512.
Хотя в данном документе показана одна шина, шина 512 устройства 500 может состоять из нескольких шин. Кроме того, вторичное хранилище 514 может быть напрямую связано с другими компонентами устройства 500, или может быть доступно через сеть и может содержать один интегрированный блок, такой как карта памяти, или несколько блоков, например, несколько карт памяти. Таким образом, устройство 500 может быть реализовано в широком разнообразии конфигураций.
Субдискретизация компонентов цветности
При кодировании видео, как правило, имеется один компонент яркости (Y) и два компонента цветности (Cb и Cr) для входного видео. На практике компоненты цветности, как правило, субдискретизируются для того, чтобы уменьшить пропускную способность для хранения и перехода для видео.
Существует несколько форматов субдискретизации цветности. В некоторых примерах также имеется один формат субдискретизации цветности, для которого не нужно делать субдискретизацию цветности для видео, например, формат субдискретизации цветности 4:4:4. В формате субдискретизации цветности 4:4:4 три компонента Y, U, V равномерно распределены в кадре, как показано в примере на фиг. 6. В этом примере, если размер компонента яркости в видео равен 1, то общий размер видео равен 3.
На практике широко используется один формат субдискретизации цветности 4:2:0, где компонент цветности субдискретизируется наполовину по горизонтали и вертикали в соответствии с компонентом яркости, как показано в примере на фиг. 7, размер Cb или Cr равен четверти размера компонента яркости. Таким образом, в формате 4:2:0 общий размер видео составляет 1(Y) + 0,25(Cb) + 0,25(Cr) = 1,5 размера компонента яркости. По сравнению с форматом субдискретизации цветности 4:4:4 формат 4:2:0 экономит половину размера, необходимого для хранения или передачи видеопотока.
В другом примере раскрыт формат субдискретизации цветности 4:2:2, при этом компоненты цветности субдискретизируются по горизонтали, как показано в примере на фиг. 8. В этом случае размер Cb или Cr равен половине компонента яркости. Таким образом, общий размер видео в этом формате составляет 1(Y) + 0,5(Cb) + 0,5(Cr) = 2 размера компонента яркости. По сравнению с форматом субдискретизации цветности 4:4:4 формат 4:2:2 экономит треть размера, необходимого для хранения или перехода.
В этом примере размер компонента яркости в видео принимается равным 1.
В примере, показанном в ITU-T JVET O2001 (ссылка: http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/15_Gothenburg/wg11/JVET-O2001-v14.zip), переменные и термины связанные с этими массивами, обозначаются как яркость (L или Y) и цветность, где два массива цветности обозначаются как Cb и Cr.
Переменные SubWidthC и SubHeightC указаны в приведенной ниже таблице 1 в зависимости от структуры выборки формата цветности, которая указана посредством chroma_format_idc и separate_colour_plane_flag. Другие значения chroma_format_idc, SubWidthC и SubHeightC могут быть определены в будущем с помощью стандарта ITU-T | ISO/IEC.
Таблица 1. Значения SubWidthC и SubHeightC, полученные из
chroma_format_idc и component_colour_plane_flag
chroma_format_idc separate_colour_plane_flag Формат цветности SubWidthC SubHeightC
0 0 Монохромный 1 1
1 0 4:2:0 2 2
2 0 4:2:2 2 1
3 0 4:4:4 1 1
3 1 4:4:4 1 1
chroma_format_idc указывает выборку цветности относительно выборки яркости (как представлено в таблице 1 и связанных с этим абзацах). Значение chroma_format_idc должно находиться в диапазоне от 0 до 3 включительно.
При дискретизации монохромного изображения имеется только один массив выборок, который номинально считается массивом яркости.
При дискретизации 4:2:0 каждый из двух массивов цветности имеет половину высоты и половину ширины массива яркости.
При дискретизации 4:2:2 каждый из двух массивов цветности имеет одинаковую высоту и половину ширины массива яркости.
При дискретизации 4:4:4, в зависимости от значения separate_colour_plane_flag, применяется следующее:
– Если для параметра component_colour_plane_flag установлено значение 0, каждый из двух массивов цветности имеет ту же высоту и ширину, что и массив яркости.
– В противном случае (separate_colour_plane_flag равно 1) три цветовые плоскости обрабатываются отдельно как дискретизированные монохромные изображения.
Количество битов, необходимых для представления каждой из выборок в массивах яркости и цветности в видеопоследовательности, находится в диапазоне от 8 до 16 включительно, причем количество битов, используемых в массиве яркости, может отличаться от количества битов, используемые в массивах цветности.
Когда значение chroma_format_idc равно 1, номинальное вертикальное и горизонтальное относительное расположение выборок яркости и цветности на изображениях показано на фиг. 7. Альтернативные относительные местоположения выборок цветности могут быть указаны в информации об удобстве использования видео.
Когда значение chroma_format_idc равно 2, выборки цветности размещаются совместно с соответствующими выборками яркости, и их номинальное расположение на изображении показано на фиг. 8.
Когда значение chroma_format_idc равно 3, все выборки массива размещаются совместно для всех случаев изображений, и номинальные местоположения в изображении являются такими, как показано на фиг. 6.
Режимы углового внутрикадрового предсказания и их соответствующая направленная интерпретация
В примере, показанном на фиг. 9, режимы углового внутрикадрового предсказания показаны сплошной линией со стрелками (от 2 до 66). Среди них режимы 18, 50 соответствуют горизонтальному и вертикальному направлениям предсказания, соответственно. Относительно горизонтального направления режимы 2 и 34 соответствуют 45° и -45°, соответственно. Относительно вертикального направления режимы 66 и 34 соответствуют 45° и -45°.
В некоторых примерах угол этих режимов (например, входные значения 2, 18, 34, 50, 66) определяется неявно значением расстояния, как представлено в таблице 2 с помощью режима в качестве входных значений и расстояния в качестве выходных значений.
Таблица 2. Отображаемое значение расстояния с входными режимами внутрикадрового предсказания
Соответствующий градус режима X может быть получен как
градус = arctan(output(x)/32)
В этом примере, режим 2 вывода будет выводить значение 32, и соответствующий угол для режима 2 равен 45°. Аналогичным образом, режимы 18, 34, 50, 66 будут выводить значения 0, -32, 0, 32 и соответствующие градусы 0, -45°, 0, 45°, соответственно. Следует отметить, что режим 18 (горизонтального предсказания) и 50 (вертикального предсказания) соответствуют степени 0, и режим 34 соответствует перекрытию -45° относительно двух режимов 0 градусов.
Как показано на фиг. 10, для режима от 0 до 34 соседний край желаемого угла параллелен горизонтальному направлению, и противоположный край желаемого угла параллелен вертикальному направлению. Требуемый угол, соответствующий режиму 8, показан в левой части фиг. 10. Для режимов 34-66 соседний край желаемого угла параллелен вертикальному направлению, и противоположный край желаемого угла параллелен горизонтальному направлению.
В некоторых примерах некоторые режимы (например, режимы 3, 4, 6…26) не имеют выходных значений, кратных 32. Соответствующие градусы для этих режимов неравномерно распределены среди углов, равных 45 градусам, между режимами 2, 18, 34., 50, 66. Как показано на фиг. 9, режимы определяются более плотно, когда их соответствующий угол ближе к горизонтальному (режим 18) и вертикальному (режим 50) градусам.
В некоторых примерах некоторые режимы внутрикадрового предсказания (например, 8, 28, 40 и 60…) будут выводить значение, кратное 16 (но не 32), что соответствует углу, чей противоположный край равен половине соседнего (функция тангенса этих углов равна 0,5 или -0,5).
В некоторых примерах имеются широкоугольные режимы от -1 до -14 и от 67 до 80. Эти режимы не кодируются напрямую, но отображаются, когда отношение сторон блока не равно 1:1.
Правило отображения определяется как следующий процесс с вводом nW в качестве ширины блока, nH в качестве высоты блока и predModeIntra в качестве режима ввода угла:
Переменная whRatio устанавливается равной Abs(Log2(nW / nH)).
Для неквадратных блоков (nW не равно nH) режим внутрикадрового предсказания predModeIntra изменяется следующим образом:
Если все следующие условия (эти условия используются для определения того, следует или нет применять процесс широкоугольного отображения) выполняются, predModeIntra устанавливается равным (predModeIntra + 65).
- nW больше, чем nH,
- predModeIntra больше или равно 2,
- predModeIntra меньше ( whRatio > 1 ) ? ( 8 + 2 * whRatio ) : 8.
В противном случае, если все следующие условия (эти условия используются для определения того, следует или нет применять процесс широкоугольного отображения) истинны, predModeIntra устанавливается равным (predModeIntra – 67).
- nH больше, чем nW,
- predModeIntra меньше или равно 66,
- predModeIntra больше, чем ( whRatio > 1 ) ? ( 60 − 2 * whRatio ) : 60.
Возьмем, к примеру, блок с соотношением сторон 1:2 (ширина блока равна половине высоты), режимы 61-66 predModeIntra будут отображаться в -6 - -1, так как они удовлетворяют следующим условиям:
- nH больше, чем nW,
- predModeIntra меньше или равно 66,
- predModeIntra больше, чем ( whRatio > 1 ) ? ( 60 − 2 * whRatio ) : 60, где whRatio = Abs(Log2(nW / nH)) = 1.
Получение режима внутрикадрового предсказания цветности, когда компонент цветности субдискретизируется по горизонтали или вертикали
В некоторых примерах для формата субдискретизации цветности 4:2:2 может быть определена таблица отображения для получения окончательных режимов внутриуглового предсказания цветности, где исходные режимы углового предсказания цветности регулируются на основе измененного отношения вследствие субдискретизации.
В одном примере, как показано на фиг. 10, блок без субдискретизации цветности (левая сторона) имеет одинаковую ширину и высоту. Режимы 2, 8, 18, 34, 50, 66 помечены своим направлением предсказания. Когда компонент цветности применяется с форматом субдискретизации цветности 4:2:2 (то есть компонент цветности субдискретизируется только по горизонтали, выборки цветности выравниваются с выборками яркости через каждые два столбца, как показано на фиг. 8), ширина компонента цветности равна половине ширины компонента яркости.
В этом случае отношение сторон блока цветности составляет 1:2 из-за субдискретизации цветности. Таким образом, исходные режимы регулируются (отображаются) в соответствии с компонентом цветности с субдискретизацией по горизонтали. В этом случае режим 2 отображается в режим 61 для регулировки уменьшения наполовину в горизонтальном направлении. Так как отношение сторон субдискретизированного блока составляет 1:2, и если отображаемый режим 61 удовлетворяет условиям для процесса широкоугольного отображения, отображенный режим 61 будет дополнительно отображаться в режим -6 в соответствии с процессом широкоугольного отображения.
Режим -6 соответствует выходному значению 64 в соответствии с таблицей 2. Таким образом, соответствующий градус конечного угла после субдискретизации цветности равен
градус = arctan(64/32)
Значение тангенса этого угла в два раза превышает значение тангенса режима 2, что отражает уменьшение смежного края режима 2 вдвое из-за субдискретизации цветности.
Режим 8 отображается в режим 2, так как положение половинной ширины соответствует режиму 8 (как показано слева на фиг. 10), и режим 8 соответствует углу 45° из-за ширины в горизонтальном направлении. Аналогичным образом, режимы 34 и 60 отображаются в режимы 40 и 60, соответственно. В этих примерах режимы предсказания по горизонтали и вертикали, степень которых равна нулю, не отображаются в другие режимы, или режим по горизонтали/вертикали по-прежнему отображается в один и тот же режим.
Для отображения режима внутрикадрового предсказания, когда субдискретизируются компоненты цветности (например, формат субдискретизации цветности 4:2:2), таблица отображения определяется следующим образом:
Таблица 3. Таблица отображения внутрикадровых режимов (режим X) без субдискретизации цветности в режимы (режим Y) с форматом субдискретизации цветности 4:2:2
режим X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
режим Y 0 1 61 62 63 64 65 66 2 3 4 6 8 10 12 13 14 16
режим X 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
режим Y 18 20 22 23 24 26 28 30 32 33 34 35 36 37 38 39 40 41
режим X 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
режим Y 42 43 44 44 44 45 46 46 46 47 48 48 48 49 50 51 52 52
режим X 54 55 56 57 58 59 60 61 62 63 64 65 66
режим Y 52 53 54 54 54 55 56 56 56 57 58 59 60
В одном варианте осуществления настоящего изобретения предлагается заменить отображение режима 2 на 7 на 60 на 65, как представлено в таблице 4.
Таблица 4. Таблица отображения внутрикадровых режимов (режим X) без субдискретизации цветности в режимы (режим Y) с форматом субдискретизации цветности 4:2:2, при этом режим ввода находится в диапазоне от 0 до 7
режим X 0 1 2 3 4 5 6 7
режим Y 0 1 60 61 62 63 64 65
В приведенном выше примере режим 2 будет отображаться в режим 61. В этом варианте осуществления режим 2 будет отображаться в режим 60, как показано на фиг. 10.
В одном варианте осуществления настоящего изобретения предлагается заменить отображение режима 2 в режим 7 на отображение режима 61 в режим 66, как представлено в таблице 5, что совпадает с отображением режима 2 в режим 7 в таблице 3.
Таблица 5. Таблица отображения внутрикадровых режимов (режим X) без субдискретизации цветности в режимы (режим Y) с форматом субдискретизации цветности 4:2:2, при этом режим ввода находится в диапазоне от 0 до 7
режим X 0 1 2 3 4 5 6 7
режим Y 0 1 61 62 63 64 65 66
В одном варианте осуществления настоящего изобретения предлагается отображать режимы 8-18 в следующие режимы, как представлено в таблице 6.
Таблица 6. Таблица отображения внутрикадровых режимов (режим X) без субдискретизации цветности в режимы (режим Y) с форматом субдискретизации цветности 4:2:2, при этом режим ввода находится в диапазоне от 8 до 18
режим X 8 9 10 11 12 13 14 15 16 17 18
режим Y 2 3 5 6 8 10 12 13 14 16 18
В одном варианте осуществления настоящего изобретения следующая таблица 7 используется для того, чтобы показать то, как получаются отображаемые режимы.
Таблица 7. Получение режима для форматов субдискретизации цветности 4:2:2 с использованием таблицы отображения с режимами ввода без субдискретизации цветности
без субдискретизации с субдискретизацией
Значение тангенса= output(x)/32 угол режимы без субдискре-тизации Значение тангенса =2*(output(x)/32) угол режимы
с ближайшим углом
1 45 2 2 63,43495
0,90625 42,18444 3 1,8125 61,11342
0,8125 39,09386 4 1,625 58,3925
0,71875 35,70669 5 1,4375 55,17551
0,625 32,00538 6 1,25 51,34019
0,5625 29,35775 7 1,125 48,36646
0,5 26,56505 8 1 45 2
0,4375 23,62938 9 0,875 41,18593 3
0,375 20,55605 10 0,75 36,8699 5
0,3125 17,35402 11 0,625 32,00538 6
0,25 14,03624 12 0,5 26,56505 8
0,1875 10,61966 13 0,375 20,55605 10
0,125 7,125016 14 0,25 14,03624 12
0,09375 5,355825 15 0,1875 10,61966 13
0,0625 3,576334 16 0,125 7,125016 14
0,03125 1,789911 17 0,0625 3,576334 16
0 0 18 0 0 18
В левой части показаны режимы 2-18 ввода, при этом каждый режим соответствует значению тангенса и углу. В случае без субдискретизации угол для этих режимов можно определить как:
градус = arctan(output(x)/32)
Коэффициент 32 масштабирования можно рассматривать как ширину, показанную на фиг. 10, для режимов 2-34. Для этих режимов соседний край желаемого угла параллелен горизонтальному направлению, и противоположный край желаемого угла параллелен вертикальному направлению. Желаемый угол, соответствующий режиму 8, показан в левой части фиг. 10. Напротив, для режимов 34-66 (так как угол, соответствующий режиму 34, представляет собой перекрывающийся угол (-45 градусов), который относится как к горизонтальному, так и к вертикальному направлению), соседний край желаемого угла параллелен вертикальному направлению, и противоположный край желаемого угла параллелен горизонтальному направлению.
Из-за субдискретизации цветности для режимов 2-34 значение тангенса с субдискретизацией удваивается, так как соседний край (параллельно ширине) составляет половину; для режимов 34-66 значение тангенса с субдискретизацией равно половине, так как противоположный край равен половине.
В примере удвоенное значение тангенса указано для каждого режима в правой части таблицы 7. Однако угол не пропорционален тангенсу прямолинейно. Таким образом, эти удвоенные значения тангенса необходимо преобразовать обратно в значения углов. Используя преобразованное значение угла в правой части с субдискретизацией цветности, режимы с ближайшим углом в левой части таблицы 7 являются режимами вывода.
В общих словах, чтобы узнать соответствующий режим отображения, сначала создается справочная таблица, используя следующие шаги с режимом X ввода:
• Согласно таблице 2 получить выходное значение.
• В качестве альтернативы или в дополнение, вычислить значение тангенса этого режима как output(X)/32.
• В качестве альтернативы или в дополнение, вычислить угол, используя полученное значение тангенса: например, arctan(output(x)/32).
• В качестве альтернативы или в дополнение, создать справочную таблицу с использованием трех вышеуказанных шагов, используя диапазон режим X ввода, где X принадлежит 2..18, как показано в левой части таблицы 7, включая значения тангенса столбцов, значение угла и режимы ввода.
Чтобы получить отображенный режим с режимом X ввода, применяются следующие шаги:
• В качестве альтернативы или в дополнение, удвоить значение тангенса режима X как 2*output(X)/32.
• В качестве альтернативы или в дополнение, вычислить угол в формате субдискретизации цветности 4:2:2, используя удвоенное значение тангенса: например, arctan(2*output(X)/32).
• В качестве альтернативы или в дополнение, согласно вычисленному значению угла в формате субдискретизации цветности 4:2:2 найти ближайший угол в справочной таблице (например, список углов без субдискретизации цветности в таблице 7).
• В качестве альтернативы или в дополнение, в соответствии с ближайшим углом в справочной таблице, выбрать соответствующий режим получения.
Для простоты описанный выше процесс называется процессом получения режима получения.
В одном примере режим 10 ввода получает свои режимы получения следующим образом после создания справочной таблицы:
• удвоить значение тангенса в режиме 10 как 2 * 12/32 = 0,75.
• вычислить угол в формате субдискретизации цветности 4:2:2, используя удвоенное значение тангенса: например, arctan(0,75) = 36,8699°
• по вычисленной величине угла 36,8699° найти ближайший угол в справочной таблице 35,70669°
• в соответствии с ближайшим углом 35,70669° в справочной таблице подобрать соответствующий режим 5 вывода.
Следовательно, режим 10 ввода отображается в режим 5.
В одном варианте осуществления настоящего изобретения предлагается отображать режимы 19-28 в следующие режимы, как представлено в таблице 8.
Таблица 8. Таблица отображения внутрикадровых режимов (режим X) без субдискретизации цветности в режимы (режим Y) с форматом субдискретизации цветности 4:2:2, при этом режим ввода находится в диапазоне от 19 до 28
режим X 19 20 21 22 23 24 25 26 27 28
режим Y 20 22 23 24 26 28 30 31 33 34
В одном варианте осуществления настоящего изобретения следующая таблица 9 используется для того, чтобы показать то, как получаются отображаемые режимы.
Таблица 9. Получение режима для форматов субдискретизации цветности 4:2:2 с использованием таблицы отображения с режимами ввода без субдискретизации цветности
без субдискретизации с субдискретизацией
Значение тангенса=
output(x)/32
угол° режимы без субдискрети-зации Значение тангенса= 2*(output(x) /32) угол режимы с ближайшим углом
-0,03125 -1,78991 19 -0,0625 -3,57633 20
-0,0625 -3,57633 20 -0,125 -7,12502 22
-0,09375 -5,35583 21 -0,1875 -10,6197 23
-0,125 -7,12502 22 -0,25 -14,0362 24
-0,1875 -10,6197 23 -0,375 -20,556 26
-0,25 -14,0362 24 -0,5 -26,5651 28
-0,3125 -17,354 25 -0,625 -32,0054 30
-0,375 -20,556 26 -0,75 -36,8699 31
-0,4375 -23,6294 27 -0,875 -41,1859 33
-0,5 -26,5651 28 -1 -45 34
-0,5625 -29,3578 29
-0,625 -32,0054 30
-0,71875 -35,7067 31
-0,8125 -39,0939 32
-0,90625 -42,1844 33
-1 -45 34
Таблица 9 может быть получена аналогичным образом с использованием процесса получения режима получения, определенного в предыдущем варианте осуществления. В этом примере при выработке справочной таблицы (левая часть таблицы 9) используются режимы 19-34 ввода.
В одном варианте осуществления настоящего изобретения предлагается отображать режимы 29-34 в следующие режимы, как представлено в таблице 10.
Таблица 10. Таблица отображения внутрикадровых режимов (режим X) без субдискретизации цветности в режимы (режим Y) с форматом субдискретизации цветности 4:2:2, при этом режим ввода находится в диапазоне 29-34
режим X 29 30 31 32 33 34
режим Y 35 36 37 38 39 40
В одном варианте осуществления настоящего изобретения следующая таблица 11 используется для того, чтобы показать то, как получаются отображаемые режимы.
Таблица 11. Получение режима для форматов субдискретизации цветности 4:2:2 с использованием таблицы отображения с режимами ввода без субдискретизации цветности
без субдискретизации с субдискретизацией
Значение тангенса=
output(x)/32
угол° режимы без субдискре-тизации Значение тангенса =2*(output(x)/32) Значение тангенса =1/(2*(output(x)/32)) Дополни-тельный угол режимы с ближайшим дополнитель-ным углом
-0,5625 -29,3578 29 -1,125 -0,88889 -41,6335 35
-0,625 -32,0054 30 -1,25 -0,8 -38,6598 36
-0,71875 -35,7067 31 -1,4375 -0,69565 -34,8245 37
-0,8125 -39,0939 32 -1,625 -0,61538 -31,6075 38
-0,90625 -42,1844 33 -1,8125 -0,55172 -28,8866 39
-1 -45 34 -2 -0,5 -26,5651 40
-0,90625 -42,1844 35
-0,8125 -39,0939 36
-0,71875 -35,7067 37
-0,625 -32,0054 38
-0,5625 -29,3578 39
-0,5 -26,5651 40
В примере таблица 11 может быть получена с использованием процесса получения режима получения, как определено в предыдущем варианте осуществления, за исключением следующих аспектов:
• при выработке справочной таблицы используются режимы 29-40 ввода.
• Для режимов 29-34 требуется еще один шаг для получения режима получения. Угол, соответствующий значению 2*tangent(output(x)/32), меньше -45° (или абсолютное значение угла больше 45°). Эти углы (меньше -45°) нельзя использовать напрямую, так как наименьший угол, который можно получить, равен -45°. В этом случае используются их дополнительные углы, и отображаемый угол противоположен указанной выше границе текущего блока (вместо левой границы текущего блока). Таким образом, смежный край отображаемого угла и противоположный край меняются местами, и, следовательно, значение тангенса их дополнительных углов 1/2*tangent(output(x)/32) используется для получения правильного угла, который используется для определения ближайшего угла в справочной таблице.
В одном варианте осуществления настоящего изобретения предлагается отображать режимы 35-50 в следующие режимы, как представлено в таблице 12.
Таблица 12: Таблица отображения внутрикадровых режимов (режим X) без субдискретизации цветности в режимы (режим Y) с форматом субдискретизации цветности 4:2:2, при этом режим ввода находится в диапазоне от 35 до 50
режим X 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
режим Y 41 41 42 43 43 44 44 45 45 46 47 48 48 49 49 50
В одном варианте осуществления настоящего изобретения следующая таблица 13 используется для того, чтобы показать то, как получаются отображаемые режимы.
Таблица 13. Получение режима для форматов субдискретизации цветности 4:2:2 с использованием таблицы отображения с режимами ввода без субдискретизации цветности
без субдискретизации с субдискретизацией
Значение тангенса=
output(x)/32
угол° режимы без субдискрети-зации Значение тангенса= 0,5*(output(x)/32) угол режимы с ближайшим дополнительным углом
-0,90625 -42,1844 35 -0,45313 -24,3765 41
-0,8125 -39,0939 36 -0,40625 -22,1094 41
-0,71875 -35,7067 37 -0,35938 -19,7672 42
-0,625 -32,0054 38 -0,3125 -17,354 43
-0,5625 -29,3578 39 -0,28125 -15,7086 43
-0,5 -26,5651 40 -0,25 -14,0362 44
-0,4375 -23,6294 41 -0,21875 -12,3391 44
-0,375 -20,556 42 -0,1875 -10,6197 45
-0,3125 -17,354 43 -0,15625 -8,88066 45
-0,25 -14,0362 44 -0,125 -7,12502 46
-0,1875 -10,6197 45 -0,09375 -5,35583 47
-0,125 -7,12502 46 -0,0625 -3,57633 48
-0,09375 -5,35583 47 -0,04688 -2,68378 48
-0,0625 -3,57633 48 -0,03125 -1,78991 49
-0,03125 -1,78991 49 -0,01563 -0,89517 49
0 0 50 0 0 50
Таблица 13 может быть получена с использованием процесса получения режима получения, но с изменением следующих аспектов:
• при выработке справочной таблицы используются режимы 35-50 ввода.
• режимы 35-50 соответствуют углам, чей противоположный край которых является верхней границей текущего блока. После субдискретизации цветности соответствующее значение тангенса уменьшается вдвое (вместо удвоения в таблице 7), так как противоположный край уменьшается вдвое в формате субдискретизации цветности 4:2:2.
В одном примере режим 36 также может быть отображен с режимом 42 с учетом следующей таблицы отображения, как представлено в таблице 2.
режим выходное значение
35 -29
36 -26
37 -23
38 -20
39 -18
40 -16
41 -14
42 -12
43 -10
44 -8
45 -6
46 -4
47 -3
48 -2
49 -1
50 0
С точки зрения режима 36 противоположный край соответствующего угла параллелен горизонтальному направлению, и соседний край соответствующего угла параллелен вертикальному направлению. Из-за субдискретизации цветности горизонтальное направление уменьшается наполовину, то есть противоположный край соответствующего угла уменьшается наполовину. Это эквивалентно уменьшению его выходного значения наполовину, что означает, что его выходное значение теперь равно -26/2 = -13. Так как -13 имеет два эквивалентных ближайших выходных значения -12 и -14, его можно отобразить либо в режим 41, либо в режим 42.
По этой же причине режимы 39, 41, 43, 47, 49 могут быть отображены в режимы 43 или 44, 44 или 45, 45 или 46, 48 или 49, 49 или 50, соответственно. В таблице 14 обобщено представлены возможные режимы отображения и способы их получения.
Таблица 14. Альтернативная таблица отображения из внутрикадровых режимов (режим X) без субдискретизации цветности в режимы (режим Y) с форматом субдискретизации цветности 4:2:2, при этом режим ввода находится в диапазоне от 35 до 50
Режим Х выходное значение выходное значение/2 ближайшее
выходное значение
отображенный
режим Y
35 -29 -14,5 -14 41
36 -26 -13 -14, -12 41, 42
37 -23 -11,5 -12 42
38 -20 -10 -10 43
39 -18 -9 -10, -8 43, 44
40 -16 -8 -8 44
41 -14 -7 -8, -6 44, 45
42 -12 -6 -6 45
43 -10 -5 -6, -4 45, 46
44 -8 -4 -4 46
45 -6 -3 -3 47
46 -4 -2 -2 48
47 -3 -1,5 -2, -1 48, 49
48 -2 -1 -1 49
49 -1 -0,5 -1, 0 49, 50
50 0 0 0 50
В одном варианте осуществления настоящего изобретения предлагается отображать режимы 51-66 в следующие режимы, как представлено в таблице 15.
Таблица 15. Таблица отображения внутрикадровых режимов (режим X) без субдискретизации цветности в режимы (режим Y) с форматом субдискретизации цветности 4:2:2, при этом режим ввода находится в диапазоне от 51 до 66
режим X 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
режим Y 51 51 52 52 53 54 55 55 56 56 57 57 58 59 59 60
В одном варианте осуществления настоящего изобретения следующая таблица 16 используется для того, чтобы показать то, как получаются отображаемые режимы.
Таблица 16. Получение режима для форматов субдискретизации цветности 4:2:2 с использованием таблицы отображения с режимами ввода без субдискретизации цветности
без субдискретизации с субдискретизацией
Tangent
(output(x)./32)
угол° режимы без субдискрети-зации 0,5*tangent
(output(x)./32)
угол режимы с ближайшим углом
0 0 50 0 0 50
0,03125 1,789911 51 0,015625 0,895174 51
0,0625 3,576334 52 0,03125 1,789911 51
0,09375 5,355825 53 0,046875 2,683775 52
0,125 7,125016 54 0,0625 3,576334 52
0,1875 10,61966 55 0,09375 5,355825 53
0,25 14,03624 56 0,125 7,125016 54
0,3125 17,35402 57 0,15625 8,880659 55
0,375 20,55605 58 0,1875 10,61966 55
0,4375 23,62938 59 0,21875 12,33909 56
0,5 26,56505 60 0,25 14,03624 56
0,5625 29,35775 61 0,28125 15,70864 57
0,625 32,00538 62 0,3125 17,35402 57
0,71875 35,70669 63 0,359375 19,76717 58
0,8125 39,09386 64 0,40625 22,10945 59
0,90625 42,18444 65 0,453125 24,37647 59
1 45 66 0,5 26,56505 60
Аналогично таблице 13, таблица 16 может быть получена с использованием процесса получения режима получения, но с изменением следующих аспектов:
• при выработке справочной таблицы используются режимы 50-66 ввода.
• Режимы 51-66 соответствуют углам, чей противоположный край является верхней границей текущего блока. После субдискретизации цветности соответствующее значение тангенса уменьшается вдвое (вместо удвоения в таблице 7), так как противоположный край уменьшается вдвое в формате субдискретизации цветности 4:2:2.
Как и в таблице 14, некоторые режимы в режимах 51-66 могут иметь альтернативные отображенные режимы, как представлено в таблице 17.
Таблица 17. Альтернативная таблица отображения из внутрикадровых режимов (режим X) без субдискретизации цветности в режимы (режим Y) с форматом субдискретизации цветности 4:2:2, при этом режим ввода находится в диапазоне от 50 до 66.
Режим Х выходное значение выходное значение/2 ближайшее
выходное значение
отображенный
режим Y
50 0 0 0 50
51 1 0,5 0, 1 50, 51
52 2 1 1 51
53 3 1,5 1, 2 51, 52
54 4 2 2 52
55 6 3 3 53
56 8 4 4 54
57 10 5 4, 6 54, 55
58 12 6 6 55
59 14 7 6, 8 55, 56
60 16 8 8 56
61 18 9 8, 10 56, 57
62 20 10 10 57
63 23 11,5 12 58
64 26 13 12, 14 58, 59
65 29 14,5 14 59
66 32 16 16 60
В приведенных выше вариантах осуществления многие варианты осуществления показаны как режимы отображения для режима субдискретизации цветности 4:2:2, то есть субдискретизации наполовину от компонента цветности в горизонтальном направлении. Следует отметить, что аналогичный подход может быть предложен для формата субдискретизации цветности, где компоненты цветности субдискретизируются по вертикали.
В некоторых примерах нет необходимости выполнять отображение режима внутрикадрового предсказания для формата субдискретизации цветности, где не будет изменяться аспект блока. Например, при формате субдискретизации цветности 4:2:0, так как компоненты цветности субдискретизируются как по горизонтали, так и по вертикали, аспект блока не изменится, поэтому нет необходимости выполнять отображение режимов.
В некоторых примерах вышеупомянутые варианты осуществления могут объединяться то тех пор, пока один режим X ввода имеет один режим Y вывода. Например, следующая таблица 18 представляет собой одну из комбинаций предложенных вариантов осуществления.
Таблица 18. Пример комбинации предлагаемых вариантов осуществления
режим X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
режим Y 0 1 61 62 63 64 65 66 2 3 5 6 8 10 12 13 14 16
режим X 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
режим Y 18 20 22 23 24 26 28 30 31 33 34 35 36 37 38 39 40 41
режим X 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
режим Y 41 42 43 43 44 44 45 45 46 47 48 48 49 49 50 51 51 52
режим X 54 55 56 57 58 59 60 61 62 63 64 65 66
режим Y 52 53 54 55 55 56 56 57 57 58 59 59 60
В некоторых примерах одна или любая комбинация режимов, раскрытых в вышеупомянутых вариантах осуществления (например, таблицы 2-18), могут быть объединены, чтобы представлять собой отношение отображения режимов.
Пример 1. Способ кодирования, реализуемый устройством декодирования, содержащий:
получение битового потока видео;
декодирование битового потока видео для получения начального значения режима внутрикадрового предсказания для компонента цветности текущего блока кодирования;
определение того, равно или нет отношение между шириной компонента яркости текущего блока кодирования и шириной компонента цветности текущего блока кодирования пороговому значению (или определение того, равно или нет отношение между высотой компонента яркости текущего блока кодирования и высотой компонента цветности текущего блока кодирования пороговому значению);
получение отображенного значения режима внутрикадрового предсказания для компонента цветности текущего блока кодирования в соответствии с заданным отношением отображения и начальным значением режима внутрикадрового предсказания, когда определено, что отношение равно пороговому значению;
получение значения выборки предсказания для компонента цветности текущего блока кодирования согласно отображенному значению режима внутрикадрового предсказания.
Пример 2. Способ по примеру 1, в котором порог равен 2 или 0,5.
Пример 3. Способ по примеру 1 или 2, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 0 1 2 3 4 5 6 7
режим Y 0 1 60 61 62 63 64 65
или
режим X 0 1 2 3 4 5 6 7
режим Y 0 1 61 62 63 64 65 66
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 4. Способ согласно любому из примеров 1-3, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 8 9 10 11 12 13 14 15 16 17 18
режим Y 2 3 5 6 8 10 12 13 14 16 18
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 5. Способ согласно любому из примеров 1-4, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 19 20 21 22 23 24 25 26 27 28
режим Y 20 22 23 24 26 28 30 31 33 34
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 6. Способ согласно любому из примеров 1-5, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 29 30 31 32 33 34
режим Y 35 36 37 38 39 40
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 7. Способ согласно любому из примеров 1-6, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
режим Y 41 41 42 43 43 44 44 45 45 46 47 48 48 49 49 50
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 8. Способ согласно любому из примеров 1-6, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 35 36 37
режим Y 41 41 42
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 9. Способ согласно любому из примеров 1-6, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 35 36 37
режим Y 41 42 42
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 10. Способ согласно любому из примеров 1-6, 8 и 9, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 38 39 40
режим Y 43 43 44
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 11. Способ согласно любому из примеров 1-6, 8 и 9, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 38 39 40
режим Y 43 44 44
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 12. Способ согласно любому из примеров 1-6 и 8-11, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 41 42
режим Y 44 45
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 13. Способ согласно любому из примеров 1-6 и 8-11, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 41 42
режим Y 45 45
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 14. Способ согласно любому из примеров 1-6 и 8-13, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 43 44 45
режим Y 45 46 47
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 15. Способ согласно любому из примеров 1-6 и 8-13, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 43 44 45
режим Y 46 46 47
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 16. Способ согласно любому из примеров 1-6 и 8-15, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 46 47 48
режим Y 48 48 49
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 17. Способ согласно любому из примеров 1-6 и 8-15, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 46 47 48
режим Y 48 49 49
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 18. Способ согласно любому из примеров 1-6 и 8-17, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 49 50
режим Y 49 50
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 19. Способ согласно любому из примеров 1-6 и 8-17, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 49 50
режим Y 50 50
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 20. Способ согласно любому из примеров 1-19, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
режим Y 51 51 52 52 53 54 55 55 56 56 57 57 58 59 59 60
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 21. Способ согласно любому из примеров 1-19, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 51 52
режим Y 50 51
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 22. Способ согласно любому из примеров 1-19, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 51 52
режим Y 51 51
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 23. Способ согласно любому из примеров 1-19 и 21-22, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 53 54 55
режим Y 51 52 53
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 24. Способ согласно любому из примеров 1-19 и 21-22, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 53 54 55
режим Y 52 52 53
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 25. Способ согласно любому из примеров 1-19 и 21-24, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 56 57 58
режим Y 54 54 55
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 26. Способ согласно любому из примеров 1-19 и 21-24, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 56 57 58
режим Y 54 55 55
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 27. Способ согласно любому из примеров 1-19 и 21-26, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 59 60
режим Y 55 56
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 28. Способ согласно любому из примеров 1-19 и 21-26, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 59 60
режим Y 56 56
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 29. Способ согласно любому из примеров 1-19 и 21-28, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 61 62 63
режим Y 56 57 58
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 30. Способ согласно любому из примеров 1-19 и 21-28, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 61 62 63
режим Y 57 57 58
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 31. Способ согласно любому из примеров 1-19 и 21-30, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 64 65 66
режим Y 58 59 60
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 32. Способ согласно любому из примеров 1-19 и 21-30, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 64 65 66
режим Y 59 59 60
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 33. Способ кодирования, реализуемый устройством декодирования, содержащий:
получение битового потока видео;
декодирование битового потока видео для получения начального значения режима внутрикадрового предсказания для компонента цветности текущего блока кодирования;
декодирование битового потока видео для получения значения информации указания формата цветности для текущего блока кодирования;
получение отображенного значения режима внутрикадрового предсказания для компонента цветности текущего блока кодирования в соответствии с заданным отношением отображения и начальному значению режима внутрикадрового предсказания, когда значение информации указания формата цветности для текущего блока кодирования равно заданному значению;
получение значения выборки предсказания для компонента цветности текущего блока кодирования согласно отображенному значению режима внутрикадрового предсказания.
Пример 34. Способ согласно примеру 33, в котором заданное значение равно 2 или 1.
Пример 35. Способ согласно примеру 31 или 32, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 0 1 2 3 4 5 6 7
режим Y 0 1 60 61 62 63 64 65
или
режим X 0 1 2 3 4 5 6 7
режим Y 0 1 61 62 63 64 65 66
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 36. Способ согласно любому из примеров 33-35, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 8 9 10 11 12 13 14 15 16 17 18
режим Y 2 3 5 6 8 10 12 13 14 16 18
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 37. Способ согласно любому из примеров 33-36, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 19 20 21 22 23 24 25 26 27 28
режим Y 20 22 23 24 26 28 30 31 33 34
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 38. Способ согласно любому из примеров 33-37, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 29 30 31 32 33 34
режим Y 35 36 37 38 39 40
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 39. Способ согласно любому из примеров 33-38, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
режим Y 41 41 42 43 43 44 44 45 45 46 47 48 48 49 49 50
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 40. Способ согласно любому из примеров 33-38, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 35 36 37
режим Y 41 41 42
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 41. Способ согласно любому из примеров 33-38, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 35 36 37
режим Y 41 42 42
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 42. Способ согласно любому из примеров 33-38, 40 и 41, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 38 39 40
режим Y 43 43 44
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 43. Способ согласно любому из примеров 33-38, 40 и 41, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 38 39 40
режим Y 43 44 44
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 44. Способ согласно любому из примеров 33-38 и 40-43, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 41 42
режим Y 44 45
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 45. Способ согласно любому из примеров 33-38 и 40-43, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 41 42
режим Y 45 45
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 46. Способ согласно любому из примеров 33-38 и 40-45, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 43 44 45
режим Y 45 46 47
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 47. Способ согласно любому из примеров 33-38 и 40-45, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 43 44 45
режим Y 46 46 47
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 48. Способ согласно любому из примеров 33-38 и 40-47, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 46 47 48
режим Y 48 48 49
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 49. Способ согласно любому из примеров 33-38 и 40-47, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 46 47 48
режим Y 48 49 49
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 50. Способ согласно любому из примеров 33-38 и 40-49, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 49 50
режим Y 49 50
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 51. Способ согласно любому из примеров 33-38 и 40-49, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 49 50
режим Y 50 50
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 52. Способ согласно любому из примеров 33-51, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
режим Y 51 51 52 52 53 54 55 55 56 56 57 57 58 59 59 60
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 53. Способ согласно любому из примеров 33-51, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 51 52
режим Y 50 51
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 54. Способ согласно любому из примеров 33-51, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 51 52
режим Y 51 51
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 55. Способ согласно любому из примеров 33-51 и 53-54, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 53 54 55
режим Y 51 52 53
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 56. Способ согласно любому из примеров 33-51 и 53-54, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 53 54 55
режим Y 52 52 53
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 57. Способ согласно любому из примеров 33-51 и 53-56, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 56 57 58
режим Y 54 54 55
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 58. Способ согласно любому из примеров 33-51 и 53-56, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 56 57 58
режим Y 54 55 55
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 59. Способ согласно любому из примеров 33-51 и 53-58, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 59 60
режим Y 55 56
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 60. Способ согласно любому из примеров 33-51 и 53-58, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 59 60
режим Y 56 56
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 61. Способ согласно любому из примеров 33-51 и 53-60, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 61 62 63
режим Y 56 57 58
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 62. Способ согласно любому из примеров 33-51 и 53-60, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 61 62 63
режим Y 57 57 58
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 63. Способ согласно любому из примеров 33-51 и 53-62, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 64 65 66
режим Y 58 59 60
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 64. Способ согласно любому из примеров 33-51 и 53-62, в котором следующая таблица используется для демонстрации заданного отношения отображения,
режим X 64 65 66
режим Y 59 59 60
где режим X представляет начальное значение режима внутрикадрового предсказания, и режим Y представляет отображенное значение режима внутрикадрового предсказания.
Пример 65. Декодер (30), содержащий схему обработки для выполнения способа согласно любому из примеров 1-64.
Пример 66. Компьютерный программный продукт, содержащий программный код для выполнения способа согласно любому из примеров 1-64.
Пример 67. Декодер, содержащий:
один или более процессоров; и
невременный машиночитаемый носитель информации, связанный с процессорами и хранящий программы для исполнения процессорами, причем программы при их исполнении процессорами, конфигурирует декодер для выполнения способа согласно любому из примеров 1-64.
Ниже приводится пояснение приложений способа кодирования, а также способа декодирования, который показан в вышеупомянутых вариантах осуществления, и системы, использующей их.
На фиг. 11 показана блок-схема, показывающая систему 3100 доставки содержания для реализации услуги распространения содержания. Эта система 3100 доставки содержания включает в себя устройство 3102 захвата, терминальное устройство 3106 и дополнительно включает в себя дисплей 3126. Устройство 3102 захвата обменивается данными с терминальным устройством 3106 по линии 3104 связи. Линия связи может включать в себя канал 13 связи, описанный выше. Линия 3104 связи включает в себя, но без ограничения, WIFI, Ethernet, кабель, беспроводную связь (3G/4G/5G), USB, любую их комбинацию или т.п.
Устройство 3102 захвата генерирует данные и может кодировать данные способом кодирования, как показано в приведенных выше вариантах осуществления. В качестве альтернативы, устройство 3102 захвата может передавать данные на сервер потоковой передачи (не показан на фигурах), и сервер кодирует данные и передает закодированные данные в терминальное устройство 3106. Устройство 3102 захвата включает в себя, но без ограничения, камеру, смартфон или планшетный компьютер, компьютер или ноутбук, систему видеоконференцсвязи, PDA, устройство, установленное на транспортном средстве, любую их комбинацию или т.п. Например, устройство 3102 захвата может включать в себя устройство-источник 12, как описано выше. Когда данные включают в себя видео, видеокодер 20, включенный в устройство 3102 захвата, может фактически выполнять обработку кодирования видео. Когда данные включают в себя звук (то есть голос), аудиокодер, включенный в устройство 3102 захвата, может фактически выполнять обработку кодирования звука. Для некоторых практических сценариев устройство 3102 захвата распределяет закодированные видео- и аудиоданные, мультиплексируя их вместе. Для других практических сценариев, например, в системе видеоконференцсвязи, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. Устройство 3102 захвата распределяет по отдельности кодированные аудиоданные и кодированные видеоданные для терминального устройства 3106.
В системе 3100 доставки содержания терминальное устройство 310 принимает и воспроизводит закодированные данные. Терминальное устройство 3106 может быть устройством с возможностью приема и восстановления данных, таким как смартфон или планшет 3108, компьютер или ноутбук 3110, сетевой видеорегистратор (NVR)/цифровой видеомагнитофон (DVR) 3112, телевизор 3114, телеприставка (STB) 3116, система 3118 видеоконференцсвязи, система 3120 видеонаблюдения, персональный цифровой помощник (PDA) 3122, устройство 3124, установленное на транспортном средстве, любая их комбинация или т.п, которые способны декодировать вышеупомянутые кодированные данные. Например, терминальное устройство 3106 может включать в себя устройство-адресат 14, как описано выше. Когда кодированные данные включают в себя видео, видеодекодеру 30, включенному в терминальное устройство, отдается приоритет для выполнения декодирования видео. Когда кодированные данные включают в себя звук, аудиодекодер, включенный в терминальное устройство, получает приоритет для выполнения обработки декодирования звука.
Для терминального устройства с собственным дисплеем, например, смартфона или планшетного компьютера 3108, компьютера или ноутбука 3110, сетевого видеорегистратора (NVR)/цифрового видеомагнитофона (DVR) 3112, телевизора 3114, персонального цифрового помощника (PDA) 3122 или устройства 3124, установленного на транспортном средстве, терминальное устройство может передавать декодированные данные на свой дисплей. Для терминального устройства, не оборудованного дисплеем, например, STB 3116, системы 3118 видеоконференцсвязи или системы 3120 видеонаблюдения, в нем устанавливается контакт с внешним дисплеем 3126 для приема и отображения декодированных данных.
Когда каждое устройство в этой системе выполняет кодирование или декодирование, может использоваться устройство кодирования изображения или устройство декодирования изображения, как показано в вышеупомянутых вариантах осуществления.
На фиг. 12 показана схема, иллюстрирующая структуру примерного терминального устройства 3106. После того, как терминальное устройство 3106 примет поток из устройства 3102 захвата, блок 3202 обработки протокола анализирует протокол передачи потока. Протокол включает в себя, но без ограничения, протокол потоковой передачи в реальном времени (RTSP), протокол передачи гипертекста (HTTP), протокол потоковой передачи в реальном времени HTTP (HLS), MPEG-DASH, транспортный протокол в реальном времени (RTP), протокол обмена сообщениями в реальном времени (RTMP), любую их комбинацию или тому подобное.
После того, как блок 3202 обработки протокола обработает поток, генерируется потоковый файл. Файл выводится в блок 3204 демультиплексирования. Блок 3204 демультиплексирования может разделять мультиплексированные данные на кодированные аудиоданные и кодированные видеоданные. Как описано выше, для некоторых практических сценариев, например, в системе видеоконференцсвязи, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. В этой ситуации кодированные данные передаются в видеодекодер 3206 и аудиодекодер 3208 без использования блока 3204 демультиплексирования.
С использованием процесса демультиплексирования генерируются элементарный видеопоток (ES), аудио ES и при необходимости субтитры. Видеодекодер 3206, который включает в себя видеодекодер 30, как объяснено в вышеупомянутых вариантах осуществления, декодирует видео ES с помощью способа декодирования, как показано в вышеупомянутых вариантах осуществления, для генерирования видеокадра и подает эти данные в блок 3212 синхронизации. Аудиодекодер 3208 декодирует аудио ES для генерирования аудиокадра и подает эти данные в блок 3212 синхронизации. В качестве альтернативы видеокадр может храниться в буфере (не показан на фиг. 12) перед подачей его в блок 3212 синхронизации. Аналогичным образом, аудиокадр может храниться в буфере (не показан на фиг. 12) перед подачей его в блок 3212 синхронизации.
Блок 3212 синхронизации синхронизирует видеокадр и звуковой кадр и подает видео/аудио в блок 3214 отображения видео/аудио. Например, блок 3212 синхронизации синхронизирует представление информации видео и аудио. Информация может быть закодирована в синтаксисе с использованием меток времени, касающихся представления кодированных аудио- и визуальных данных, и меток времени, касающихся доставки непосредственно потока данных.
Если субтитры включены в поток, декодер 3210 субтитров декодирует субтитры и синхронизирует их с видеокадром и звуковым кадром и передает видео/аудио/субтитры в блок 3216 отображения видео/аудио/субтитров.
Настоящее изобретение не ограничивается вышеупомянутой системой, и либо устройство кодирования изображения, либо устройство декодирования изображения в вышеупомянутых вариантах осуществления могут быть включено в другую систему, например, в автомобильную систему.
Математические операторы
Математические операторы, используемые в настоящей заявке, аналогичны тем, которые используются в языке программирования C. Однако результаты операций целочисленного деления и арифметического сдвига определены более точно, и определены дополнительные операции, такие как возведение в степень и деление действительных чисел. Правила нумерации и подсчета, как правило, начинаются с 0, например, «первый» эквивалентен 0-му, «второй» эквивалентен 1-му и т.д.
Арифметические операторы
Следующие арифметические операторы определены следующим образом:
+ Сложение
Вычитание (как оператор с двумя аргументами) или отрицание (как унарный оператор префикса)
* Умножение, включая умножение матриц
xy Возведение в степень. Указывает x в степени y. В других контекстах такое обозначение используется для надстрочного индекса, не предназначенного для интерпретации возведения в степень.
/ Целочисленное деление с усечением результата до нуля. Например, 7/4 и -7/-4 усекаются до 1, и -7/4 и 7/-4 усекаются до -1.
÷ Используется для обозначения деления в математических уравнениях, где не предполагается усечение или округление.
Используется для обозначения деления в математических уравнениях, где не предполагается усечение или округление.
Суммирование f(i), где i принимает все целые значения от x до y включительно.
x % y Модуль. Остаток от деления x на y, определен только для целых чисел x и y при x >= 0 и y > 0.
Логические операторы
Следующие логические операторы определены следующим образом:
x && y Булевое логическое "И" для x и y
x | | y Булевое логическое "ИЛИ" x и y
! Булевое логическое "НЕ"
x ? y : z если x равен значению «ИСТИНА» (TRUE) или не равен 0, вычисляется значение y; в противном случае вычисляется значение z
Операторы отношения
Следующие операторы отношения определены следующим образом:
> Больше
>= Больше или равно
< Меньше
<= Меньше или равно
= = Равно
!= Не равно
Когда оператор отношения применяется к синтаксическому элементу или переменной, которой было присвоено значение «na» (не применимо), значение «na» обрабатывается как отдельное значение для синтаксического элемента или переменной. Значение «na» не считается равным любому другому значению.
Поразрядные операторы
Следующие поразрядные операторы определены следующим образом:
& - Поразрядное «И». При выполнении операций с целочисленными аргументами производится действие над представлением целочисленного значения с дополнением до двух. При выполнении операций с двоичным аргументом, который содержит меньше разрядов, чем другой аргумент, более короткий аргумент расширяется путем добавления более значимых разрядов, равных 0.
| - Поразрядное «ИЛИ». При выполнении операций с целочисленными аргументами производится действие над представлением с дополнением до двух целочисленного значения. При выполнении операций с двоичным аргументом, который содержит меньше разрядов, чем другой аргумент, более короткий аргумент расширяется путем добавления более значимых разрядов, равных 0.
^ - Поразрядное «ИСКЛЮЧАЮЩЕЕ ИЛИ». При выполнении операций с целочисленными аргументами производится действие над представлением с дополнением до двух целочисленного значения. При выполнении операций с двоичным аргументом, который содержит меньше разрядов, чем другой аргумент, более короткий аргумент расширяется путем добавления более значимых разрядов, равных 0.
x >> y - Арифметический сдвиг вправо целочисленного представления x с дополнением до двух на y двоичных цифр. Эта функция определена только для неотрицательных целых значений y. Разряды, сдвинутые в старшие значащие разряды (MSB) в результате сдвига вправо, имеют значение, равное MSB x до операции сдвига.
x << y - Арифметический сдвиг влево целочисленного представления x с дополнением до двух на y двоичных цифр. Эта функция определена только для неотрицательных целых значений y. Разряды, сдвинутые в младшие значащие разряды (LSB) в результате сдвига влево, имеют значение, равное 0.
Операторы присваивания
Приведенные ниже арифметические операторы определены следующим образом:
= - Оператор присваивания
+ + - Приращение, то есть x + + эквивалентно x = x + 1, при его использовании в индексе массива, оценивает значение переменной до операции приращения.
− − - Уменьшение, то есть x− - эквивалентно x = x – 1, при его использовании в индексе массива, оценивает значение переменной до операции уменьшения.
+= - Увеличение на указанную величину, то есть X + = 3 эквивалентно x = x + 3, и x + = (−3) эквивалентно x = x + (−3).
−= - Уменьшение на указанную величину, то есть X - = 3 эквивалентно x = x - 3, и x - = (−3) эквивалентно x = x - (−3).
Обозначение диапазона
Для указания диапазона значений используются следующие обозначения:
x = y…z - x принимает целые значения, начиная с y до z, включительно, где x, y и z являются целыми числами, и z больше y.
Математические функции
Приведенные ниже математические функции определены следующим образом:
Asin(x) тригонометрическая обратная функция синуса, которая производит действие над аргументом x, который находится в диапазоне от -1,0 до 1,0 включительно, с выходным значением в диапазоне - от π ÷ 2 до π ÷ 2 включительно в радианах.
Atan(x) the тригонометрическая функция арктангенса, которая производит действие над аргументом x при выходном значении в диапазоне от - π ÷ 2 до π ÷ 2 включительно в радианах.
Ceil(x) наименьшее целое число, большее или равное х.
Clip1Y(x) = Clip3(0, (1 << BitDepthY) − 1, x)
Clip1C(x) = Clip3(0, (1 << BitDepthC) − 1, x)
Cos(x) тригонометрическая косинусная функция, работающая с аргументом x в радианах.
Floor(x)наибольшее целое число, меньшее или равное x.
Ln(x) - натуральный логарифм x (логарифм по основанию e, где e - постоянная основания натурального логарифма 2,718 281 828 ...).
Log2(x) - логарифм по основанию 2 числа x.
Log10(x) десятичный логарифм x.
Round(x) = Sign(x) * Floor(Abs(x) + 0.5)
Sin(x) - тригонометрическая функция синуса, работающая с аргументом x в радианах
Sqrt(x) =
Swap(x, y) = (y, x)
Tan(x) - тригонометрическая тангенциальная функция, которая производит действие над аргументом x в радианах.
Порядок приоритета операций
Когда порядок приоритета в выражении явно не указан с помощью круглых скобок, применяются следующие правила:
- Операции с более высоким приоритетом оцениваются перед любой операцией с более низким приоритетом.
- Операции с одинаковым приоритетом оцениваются последовательно слева направо.
В таблице ниже указан приоритет операций от наивысшего к низшему; более высокая позиция в таблице указывает на более высокий приоритет.
Для тех операторов, которые также используются в языке программирования C, порядок приоритета, используемый в данном описании, является таким, который используется в языке программирования C.
Таблица. Приоритет операций от самого высокого (вверху таблицы) до самого низкого (внизу таблицы)
операции (с операндами x, y и z)
«x++», «x− −»
«!x», «−x» (как унарный префиксный оператор)
xy
«x * y», «x / y», «x ÷ y», ««, «x % y»
«x + y», «x − y» (как оператор с двумя аргументами), «»
«x << y», «x >> y»
«x < y», «x <= y», «x > y», «x >= y»
«x = = y», «x != y»
«x & y»
«x | y»
«x && y»
«x | | y»
«x ? y : z»
«x…y»
«x = y», «x += y», «x −= y»
Текстовое описание логических операций
В тексте представлено изложение логических операций, которые могут быть описаны математически в следующей форме:
if(условие 0)
утверждение 0
else if(условие 1)
утверждение 1
...
else /* информативное замечание по оставшемуся условию */
утверждение n
можно описать следующим образом:
... следующим образом / ... применяется следующее:
– If условие 0, утверждение 0
– В противном случае, if условие 1, утверждение 1
– ...
– В противном случае (информативное замечание по оставшемуся условию), утверждение n
Каждое «If ... В противном случае, if ... В противном случае, ...» утверждение в тексте вводится с»... следующим образом» or «... применяется следующее» сразу за которым следует «If ... «. Последнее условие «If ... В противном случае, if ... В противном случае, ...» всегда «В противном случае, ...». С чередованием «If ... В противном случае, if ... В противном случае, ...» утверждения могут быть идентифицированы путем отображения «... следующим образом « or «... применяется следующее» с окончанием «В противном случае, ...».
В тексте утверждение логических операций, как было бы математически описано в следующей виде:
if(условие 0a && условие 0b)
утверждение 0
else if(условие 1a | | условие 1b)
утверждение 1
...
else
утверждение n
можно описать следующим образом:
... следующим образом / ... применяется следующее:
– Если все следующие условия верны, утверждение 0:
– условие 0a
– условие 0b
– В противном случае, если выполняется одно или несколько из следующих условий, утверждение 1:
– условие 1a
– условие 1b
– ...
– В противном случае, утверждение n
В тексте утверждение логических операций, как было бы математически описано в следующей форме:
if (условие 0)
утверждение 0
if (условие 1)
утверждение 1
можно описать следующим образом:
Когда условие 0, утверждение 0
Когда условие 1, утверждение 1.
Хотя варианты осуществления настоящего изобретения были в основном описаны на основе кодирования видео, следует отметить, что варианты осуществления системы 10 кодирования, кодера 20 и декодера 30 (и, соответственно, системы 10) и другие варианты осуществления, описанные в данном документе, также могут быть выполнены с возможностью обработки или кодирования неподвижного изображения, то есть обработки или кодирования отдельного изображения независимо от любого предшествующего или последовательного изображения, как при кодировании видео. В общем, блоки 244 (кодер) и 344 (декодер) межкадрового предсказания могут быть недоступны только в случае, если кодирование обработки изображения ограничено одним изображением 17. Все другие функциональные возможности (которые упоминаются также как инструментальные средства или технологии) видеокодера 20 и видеодекодера 30 могут в равной степени использоваться для обработки неподвижных изображений, например, вычисления остатка 204/304, преобразования 206, квантования 208, обратного квантования 210/310, (обратного) преобразования 212/312, разделения 262/362, внутрикадрового предсказания 254/354, и/или контурной фильтрации 220, 320, энтропийного кодирования 270 и энтропийного декодирования 304.
Варианты осуществления, например, кодера 20 и декодера 30, и функции, описанные в данном документе, например, со ссылкой на кодер 20 и декодер 30, могут быть реализованы в аппаратных средствах, программном обеспечении, программно-аппаратных средствах или любой их комбинации. В случае реализации в программном обеспечении, функции могут храниться на машиночитаемом носителе информации или передаваться через среду связи в виде одной или более инструкций или кода и исполняться аппаратным процессором. Машиночитаемые носители информации могут включать в себя машиночитаемый носитель информации, который соответствует материальному носителю информации, например, носителю информации, или носителю связи, в том числе любой носитель информации, который облегчает передачу компьютерной программы из одного места в другое, например, в соответствии с протоколом связи. Таким образом, машиночитаемые носители информации, как правило, могут соответствовать (1) материальным машиночитаемым носителям информации, которые являются невременными, или (2) среде передачи данных, такой как сигнал или несущая волна. Носители информации могут быть любыми доступными носителями информации, к которым может обращаться один или несколько компьютеров или один или более процессоров для извлечения инструкций, кода и/или структур данных для реализации технологий, описанных в настоящем раскрытии. Компьютерный программный продукт может включать в себя машиночитаемый носитель информации.
В качестве примера, но не ограничения, такие машиночитаемые носители информации могут содержать RAM, ROM, EEPROM, CD-ROM или другой накопитель на оптических дисках, накопитель на магнитных дисках или другие магнитные запоминающие устройства, флэш-память, или любой другой носитель информации, который может быть использован для хранения желаемого программного кода в виде инструкций или структур данных, и к которым может обращаться компьютер. Кроме того, любое соединение называется соответствующим образом машиночитаемым носителем информации. Например, если инструкции передаются из веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, витой пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасная, радио- и микроволновая, то коаксиальный кабель, волоконно-оптический кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасные, радио- и микроволновые, включены в определение носителя информации. Однако следует понимать, что машиночитаемые носители информации и носители для хранения данных не включают в себя соединения, несущие волны, сигналы или другие временные носители, и вместо этого направлены на невременные, материальные носители информации. Используемые в данном документе термины «магнитный диск» и «оптический диск» включает в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), гибкий магнитный диск и Blu-ray диск, где магнитные диски, как правило, воспроизводят данные магнитным способом, тогда как оптические диски воспроизводят данные оптическим способом с помощью лазеров, Комбинации вышеупомянутых носителей информации также должны быть включены в объем охраны машиночитаемых носителей информации.
Команды могут исполняться одним или несколькими процессорами, такими как один или более процессоров цифровых сигналов (DSP), микропроцессоры общего назначения, специализированные интегральные схемы (ASIC), программируемые пользователем вентильные матрицы (FPGA) или другие эквивалентные интегрированные или дискретные логические схемы. Соответственно, используемый в данном документе термин «процессор» может относиться к любой из вышеупомянутой структуры или любой другой структуре, подходящей для реализации описанных в данном документе технологий. Кроме того, в некоторых аспектах описанные в данном документе функциональные возможности могут быть предоставлены в рамках специализированных аппаратных и/или программных модулей, выполненных с возможностью кодирования и декодирования или включенных в объединенный кодек. Кроме того, технологии могут быть также полностью реализованы в одной или более схемах или логических элементах.
Технологии настоящего раскрытия могут быть реализованы в большом количестве устройств или устройств, включая беспроводной телефон, интегральную схему (IC) или набор IC (например, набор микросхем). В настоящем раскрытии описаны различные компоненты, модули или блоки для того, чтобы подчеркнуть функциональные аспекты устройств, выполненных с возможностью выполнения раскрытых технологий, но необязательно требующих реализации с помощью различных аппаратных блоков. Скорее, как описано выше, различные блоки могут быть объединены в аппаратный блок кодека или предоставлены набором взаимодействующих аппаратных блоков, включая один или более процессоров, как описано выше, в сочетании с подходящим программным обеспечением и/или программно-аппаратными средствами.

Claims (30)

1. Способ декодирования, реализуемый устройством декодирования, содержащий этапы, на которых:
получают битовый поток видео;
декодируют битовый поток видео для получения значения информации указания формата цветности для текущего блока кодирования;
получают начальное значение режима внутрикадрового предсказания для компонента цветности текущего блока кодирования;
получают отображенное значение режима внутрикадрового предсказания для компонента цветности текущего блока кодирования в соответствии с заданным отношением отображения и начальным значением режима внутрикадрового предсказания, когда значение информации указания формата цветности для текущего блока кодирования равно заданному значению, причем заданное значение равно 2, при этом то, что заданное значение равно 2 означает, что форматом цветности является 4:2:2;
получают значение выборки предсказания для компонента цветности текущего блока кодирования согласно отображенному значению режима внутрикадрового предсказания;
причем для демонстрации заданного отношения отображения используется следующая таблица,
режим X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 режим Y 0 1 61 62 63 64 65 66 2 3 5 6 8 10 12 13 14 16 режим X 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 режим Y 18 20 22 23 24 26 28 30 31 33 34 35 36 37 38 39 40 41 режим X 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 режим Y 41 42 43 43 44 44 45 45 46 47 48 48 49 49 50 51 51 52 режим X 54 55 56 57 58 59 60 61 62 63 64 65 66 режим Y 52 53 54 55 55 56 56 57 57 58 59 59 60
где режим X представляет начальное значение режима внутрикадрового предсказания, а режим Y представляет отображенное значение режима внутрикадрового предсказания;
при этом 0 представляет планарный режим, 1 представляет DC режим, а 2-66 представляют угловой режим, причем каждое значение из 2-66 соответствует заданному направлению предсказания.
2. Способ по п. 1, в котором начальное значение режима внутрикадрового предсказания для компонента цветности текущего блока кодирования получают на основе режима внутрикадрового предсказания для компонента яркости текущего блока кодирования.
3. Декодер (30), содержащий схему обработки, выполненную с возможностью осуществления способа по п. 1 или 2.
4. Способ кодирования, реализуемый кодирующим устройством, содержащий этапы, на которых:
получают начальное значение режима внутрикадрового предсказания для компонента цветности текущего блока кодирования;
получают отображенное значение режима внутрикадрового предсказания для компонента цветности текущего блока кодирования в соответствии с заданным отношением отображения и начальным значением режима внутрикадрового предсказания, когда значение информации указания формата цветности для текущего блока кодирования равно заданному значению, причем заданное значение равно 2, при этом то, что заданное значение равно 2 означает, что форматом цветности является 4:2:2;
кодируют текущий блок кодирования в соответствии с отображенным значением режима внутрикадрового предсказания;
причем для демонстрации заданного отношения отображения используется следующая таблица,
режим X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 режим Y 0 1 61 62 63 64 65 66 2 3 5 6 8 10 12 13 14 16 режим X 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 режим Y 18 20 22 23 24 26 28 30 31 33 34 35 36 37 38 39 40 41 режим X 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 режим Y 41 42 43 43 44 44 45 45 46 47 48 48 49 49 50 51 51 52 режим X 54 55 56 57 58 59 60 61 62 63 64 65 66 режим Y 52 53 54 55 55 56 56 57 57 58 59 59 60
где режим X представляет начальное значение режима внутрикадрового предсказания, а режим Y представляет отображенное значение режима внутрикадрового предсказания;
при этом 0 представляет планарный режим, 1 представляет DC режим, а 2-66 представляют угловой режим, причем каждое значение из 2-66 соответствует заданному направлению предсказания.
5. Способ по п. 4, дополнительно содержащий этап, на котором:
кодируют значение информации указания формата цветности для текущего блока кодирования в битовый поток, причем значение информации указания формата цветности представляет собой отношение между шириной компонента яркости текущего блока кодирования и шириной компонента цветности текущего блока кодирования.
6. Декодер, содержащий:
один или более процессоров; и
энергонезависимый машиночитаемый носитель информации, соединенный с процессором и хранящий программу для исполнения процессорами, вызывающую, при исполнении процессорами, осуществление, декодером, способа по п. 1 или 2.
7. Кодер, содержащий:
один или более процессоров; и
энергонезависимый машиночитаемый носитель информации, соединенный с процессором и хранящий программу для исполнения процессорами, вызывающую, при исполнении процессорами, осуществление, кодером, способа по п. 4 или 5.
8. Машиночитаемый носитель информации, хранящий компьютерные инструкции, вызывающие, при исполнении декодером, выполнение декодирования битового потока способом по п. 1 или 2.
9. Машиночитаемый носитель информации, хранящий компьютерные инструкции, вызывающие, при исполнении кодером, выполнение кодирования битового потока способом по п. 4 или 5.
RU2022105233A 2019-08-01 2020-07-20 Кодер, декодер и соответствующие способы получения внутрикадрового режима цветности RU2817389C2 (ru)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EPPCT/EP2019/070804 2019-08-01

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2024109783A Division RU2024109783A (ru) 2019-08-01 2020-07-20 Кодер, декодер и соответствующие способы получения внутрикадрового режима цветности

Publications (2)

Publication Number Publication Date
RU2022105233A RU2022105233A (ru) 2023-09-01
RU2817389C2 true RU2817389C2 (ru) 2024-04-15

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140198855A1 (en) * 2013-01-14 2014-07-17 Qualcomm Incorporated Square block prediction
RU2601445C2 (ru) * 2011-11-04 2016-11-10 Инфобридж Пте. Лтд. Устройство декодирования видеоданных
US9560359B2 (en) * 2012-01-04 2017-01-31 Mediatek Singapore Pte. Ltd Method and apparatus of luma-based chroma intra prediction
US20180241995A1 (en) * 2015-08-27 2018-08-23 Lg Electronics Inc. Method and device for chroma sample intra prediction in video coding system
US20180332283A1 (en) * 2017-05-09 2018-11-15 Futurewei Technologies, Inc. Coding Chroma Samples In Video Compression
US20190045184A1 (en) * 2016-02-18 2019-02-07 Media Tek Singapore Pte. Ltd. Method and apparatus of advanced intra prediction for chroma components in video coding

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2601445C2 (ru) * 2011-11-04 2016-11-10 Инфобридж Пте. Лтд. Устройство декодирования видеоданных
US9560359B2 (en) * 2012-01-04 2017-01-31 Mediatek Singapore Pte. Ltd Method and apparatus of luma-based chroma intra prediction
US20140198855A1 (en) * 2013-01-14 2014-07-17 Qualcomm Incorporated Square block prediction
US20180241995A1 (en) * 2015-08-27 2018-08-23 Lg Electronics Inc. Method and device for chroma sample intra prediction in video coding system
US20190045184A1 (en) * 2016-02-18 2019-02-07 Media Tek Singapore Pte. Ltd. Method and apparatus of advanced intra prediction for chroma components in video coding
US20180332283A1 (en) * 2017-05-09 2018-11-15 Futurewei Technologies, Inc. Coding Chroma Samples In Video Compression

Similar Documents

Publication Publication Date Title
US11070799B2 (en) Encoder, decoder and corresponding methods for intra prediction
US11388422B2 (en) Encoder, a decoder and corresponding methods related to intra prediction mode
JP7436646B2 (ja) ピクチャヘッダのシグナリングを簡略化するためのエンコーダ、デコーダ及び対応する方法
US11876997B2 (en) Encoder, decoder and corresponding methods of most probable mode list construction for blocks with multi-hypothesis prediction
JP7391991B2 (ja) イントラ平滑化のための方法および装置
JP7372465B2 (ja) シーケンスパラメータセット内でのサブピクチャのシグナリングのためのエンコーダ、デコーダ、および対応する方法
JP2024012544A (ja) クロマイントラモード導出のエンコーダ、デコーダ、および対応する方法
CA3127182A1 (en) The method and apparatus for intra sub-partitions coding mode
JP2024150526A (ja) イントラ予測のためのイントラモードコーディングを使用するエンコーダ、デコーダ、および対応する方法
WO2021025597A1 (en) Method and apparatus of sample adaptive offset in-loop filter with application region size constraint
RU2817389C2 (ru) Кодер, декодер и соответствующие способы получения внутрикадрового режима цветности
RU2803063C2 (ru) Кодер, декодер и соответствующие способы, которые используются для процесса преобразования
RU2828202C1 (ru) Кодер, декодер и соответствующие способы для сигнализации субизображений в наборе параметров последовательности
RU2823042C1 (ru) Кодер, декодер и соответствующие способы для упрощения сигнализации заголовка картинки
US20240373025A1 (en) Encoder, a decoder and corresponding methods of chroma intra mode derivation
RU2811983C2 (ru) Кодер, декодер и соответствующие способы для режима субблочного разделения
RU2809841C2 (ru) Способ и устройство для внутрикадрового предсказания с использованием линейной модели
US20220321888A1 (en) Method and apparatus of position dependent prediction combination for oblique directional intra prediction
JP2022531544A (ja) 平面モードのためのイントラ予測における複雑さ減少のエンコーダ、デコーダ、および対応する方法