КОДЕР, ДЕКОДЕР, СПОСОБ КОДИРОВАНИЯ, СПОСОБ ДЕКОДИРОВАНИЯ И ПРОГРАММА СЖАТИЯ КАДРОВ
ENCODER, DECODER, ENCODING METHOD, DECODING METHOD AND FRAME COMPRESSION PROGRAM

Область техники, к которой относится изобретение
[0001] Настоящее раскрытие относится к способам и оборудованию для кодирования и декодирования видео и изображений с использованием сегментации на блоки.
Уровень техники
[0002] В традиционных способах кодирования изображений и видео, изображение типично сегментируется на блоки, и процессы кодирования и декодирования выполняются на уровне блока. В ходе последней разработки видеостандартов, процессы кодирования и декодирования могут выполняться при различных размерах блоков, отличных от типичных размеров 16×16 или 8×8. В изображении, диапазон размеров от 4×4 до 256×256 может использоваться для процессов кодирования и декодирования изображения.
Список библиографических ссылок
Непатентные документы
[0003] NPL 1. H.265 (ISO/IEC 23008-2 HEVC (High Efficiency Video Coding))
Сущность изобретения
Техническая задача
[0004] Чтобы представлять диапазон размеров от 4×4 до 256×256, информация сегментации на блоки, такая как режимы сегментации на блоки (например, дерево квадрантов, двоичное дерево и троичное дерево) и флаги сегментации (например, флаг разбиения), определяется и передается в служебных сигналах для блока. Объем передаваемой служебной информации увеличивается, когда глубина сегментации увеличивается. В таком случае, увеличенный объем служебной информации уменьшает эффективность сжатия видео.
[0005] С учетом этого, кодер согласно аспекту настоящего раскрытия предоставляет кодер и т.п., допускающий повышение эффективности сжатия при кодировании информации сегментации на блоки.
Решение задачи
[0006] Кодер согласно аспекту настоящего раскрытия представляет собой кодер, который кодирует кадр (картинку), и включает в себя: процессор; и запоминающее устройство, при этом процессор включает в себя: модуль определения сегментации на блоки, который сегментирует кадр на множество блоков, с использованием набора режимов сегментации на блоки, полученных посредством объединения одного или более режимов сегментации на блоки, каждый из которых задает тип сегментации, причем кадр считывается из запоминающего устройства; и модуль кодирования, который кодирует множество блоков, набор режимов сегментации на блоки включает в себя первый режим сегментации, который задает направление сегментации и общее количество сегментов для сегментации первого блока, и второй режим сегментации на блоки, который задает направление сегментации и общее количество сегментов для сегментации второго блока, который представляет собой один из блоков, полученных после того, как первый блок сегментирован, и когда общее количество сегментов первого режима сегментации на блоки равно трем, второй блок представляет собой центральный блок из числа блоков, полученных после того, как первый блок сегментирован, и направление сегментации для второго режима сегментации на блоки является идентичным направлению сегментации для первого режима сегментации на блоки, второй режим сегментации на блоки включает в себя только режим сегментации на блоки, указывающий то, что общее количество сегментов равно трем.
[0007] Декодер согласно аспекту настоящего раскрытия представляет собой декодер, который декодирует кодированный сигнал, и включает в себя: процессор; и запоминающее устройство, при этом процессор включает в себя: модуль определения сегментации на блоки, который сегментирует кодированный сигнал на множество блоков, с использованием набора режимов сегментации на блоки, полученных посредством объединения одного или более режимов сегментации на блоки, каждый из которых задает тип сегментации, причем кодированный сигнал считывается из запоминающего устройства; и модуль декодирования, который декодирует множество блоков, набор режимов сегментации на блоки включает в себя первый режим сегментации, который задает направление сегментации и общее количество сегментов для сегментации первого блока, и второй режим сегментации на блоки, который задает направление сегментации и общее количество сегментов для сегментации второго блока, который представляет собой один из блоков, полученных после того, как первый блок сегментирован, и когда общее количество сегментов первого режима сегментации на блоки равно трем, второй блок представляет собой центральный блок из числа блоков, полученных после того, как первый блок сегментирован, и направление сегментации для второго режима сегментации на блоки является идентичным направлению сегментации для первого режима сегментации на блоки, второй режим сегментации на блоки включает в себя только режим сегментации на блоки, указывающий то, что общее количество сегментов равно трем.
[0008] Следует отметить, что общие и конкретные аспекты, описанные выше, могут реализовываться с использованием системы, способа, интегральной схемы, компьютерной программы или машиночитаемого носителя записи, такого как CD-ROM, либо любого произвольного сочетания систем, способов, интегральных схем, компьютерных программ или машиночитаемых носителей записи.
Преимущества изобретения
[0009] Настоящее раскрытие обеспечивает повышение эффективности сжатия при кодировании информации сегментации на блоки.
Краткое описание чертежей
[0010] Фиг. 1 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера согласно варианту 1 осуществления.
Фиг. 2 иллюстрирует один пример разбиения на блоки согласно варианту 1 осуществления.
Фиг. 3 является диаграммой, указывающей базисные функции преобразования для каждого типа преобразования.
Фиг. 4A иллюстрирует один пример формы фильтра, используемой в ALF.
Фиг. 4B иллюстрирует другой пример формы фильтра, используемой в ALF.
Фиг. 4C иллюстрирует другой пример формы фильтра, используемой в ALF.
Фиг. 5A иллюстрирует 67 режимов внутреннего прогнозирования, используемых при внутреннем прогнозировании.
Фиг. 5B является блок-схемой последовательности операций способа для иллюстрации краткого представления процесса коррекции прогнозных изображений, выполняемого через OBMC-обработку.
Фиг. 5C является концептуальной схемой для иллюстрации краткого представления процесса коррекции прогнозных изображений, выполняемого через OBMC-обработку.
Фиг. 5D иллюстрирует один пример FRUC.
Фиг. 6 служит для иллюстрации сопоставления с шаблоном (билатерального сопоставления) между двумя блоками вдоль траектории движения.
Фиг. 7 служит для иллюстрации сопоставления с шаблоном (сопоставления с эталоном) между эталоном в текущем кадре и блоком в опорном кадре.
Фиг. 8 служит для иллюстрации модели при условии равномерного прямолинейного движения.
Фиг. 9A служит для иллюстрации извлечения вектора движения каждого субблока на основе векторов движения соседних блоков.
Фиг. 9B служит для иллюстрации краткого представления процесса для извлечения вектора движения через режим объединения.
Фиг. 9C является концептуальной схемой для иллюстрации краткого представления DMVR-обработки.
Фиг. 9D служит для иллюстрации краткого представления способа формирования прогнозных изображений с использованием процесса коррекции яркости, выполняемого через LIC-обработку.
Фиг. 10 является блок-схемой, иллюстрирующей функциональную конфигурацию устройства декодирования согласно варианту 1 осуществления.
Фиг. 11 является блок-схемой последовательности операций способа для процесса кодирования видео согласно варианту 2 осуществления.
Фиг. 12 является блок-схемой последовательности операций способа для процесса декодирования видео согласно варианту 2 осуществления.
Фиг. 13 является блок-схемой последовательности операций способа для процесса кодирования видео согласно варианту 3 осуществления.
Фиг. 14 является блок-схемой последовательности операций способа для процесса декодирования видео согласно варианту 3 осуществления.
Фиг. 15 является блок-схемой, иллюстрирующей структуру кодера видео/изображений согласно варианту 2 или 3 осуществления.
Фиг. 16 является блок-схемой, иллюстрирующей структуру декодера видео/изображений согласно варианту 2 или 3 осуществления.
Фиг. 17 иллюстрирует примеры возможных местоположений первого параметра в сжатом потоке видеобитов согласно варианту 2 или 3 осуществления.
Фиг. 18 иллюстрирует примеры возможных местоположений второго параметра в сжатом потоке видеобитов согласно варианту 2 или 3 осуществления.
Фиг. 19 иллюстрирует пример второго параметра, идущего после первого параметра согласно варианту 2 или 3 осуществления.
Фиг. 20 иллюстрирует пример, в котором второй режим сегментации не выбирается для сегментации блока 2N пикселов на N пикселов, как проиллюстрировано на этапе (2c), в варианте 2 осуществления.
Фиг. 21 иллюстрирует пример, в котором второй режим сегментации не выбирается для сегментации блока N пикселов на 2N пикселов, как проиллюстрировано на этапе (2c), в варианте 2 осуществления.
Фиг. 22 иллюстрирует пример, в котором второй режим сегментации не выбирается для сегментации блока N пикселов на N пикселов, как проиллюстрировано на этапе (2c), в варианте 2 осуществления.
Фиг. 23 иллюстрирует пример, в котором второй режим сегментации не выбирается для сегментации блока N пикселов на N пикселов, как проиллюстрировано на этапе (2c), в варианте 2 осуществления.
Фиг. 24 иллюстрирует пример сегментации блока 2N пикселов на N пикселов с использованием режима сегментации, выбранного, когда второй режим сегментации не должен выбираться, как проиллюстрировано на этапе (3), в варианте 2 осуществления.
Фиг. 25 иллюстрирует пример сегментации блока N пикселов на 2N пикселов с использованием режима сегментации, выбранного, когда второй режим сегментации не должен выбираться, как проиллюстрировано на этапе (3), в варианте 2 осуществления.
Фиг. 26 иллюстрирует пример сегментации блока N пикселов на N пикселов с использованием режима сегментации, выбранного, когда второй режим сегментации не должен выбираться, как проиллюстрировано на этапе (3), в варианте 2 осуществления.
Фиг. 27 иллюстрирует пример сегментации блока N пикселов на N пикселов с использованием режима сегментации, выбранного, когда второй режим сегментации не должен выбираться, как проиллюстрировано на этапе (3), в варианте 2 осуществления.
Фиг. 28 иллюстрирует примеры режимов сегментации для сегментации блока N пикселов на N пикселов в варианте 2 осуществления; (a)-(h) показывают различные режимы сегментации.
Фиг. 29 иллюстрирует примеры типов сегментации и направлений сегментации для сегментации блока N пикселов на N пикселов в варианте 3 осуществления; (1), (2), (3) и (4) представляют собой различные типы сегментации, (1a), (2a), (3a) и (4a) представляют собой различные режимы сегментации из связанных типов сегментации в вертикальном направлении сегментации, и (1b), (2b), (3b) и (4b) представляют собой различные режимы сегментации из связанных типов сегментации в горизонтальном направлении сегментации.
Фиг. 30 иллюстрирует преимущество кодирования типа сегментации до направления сегментации по сравнению с кодированием направления сегментации до типа сегментации, согласно варианту 3 осуществления.
Фиг. 31A иллюстрирует пример разбиения блока на субблоки с использованием набора режимов сегментации с меньшим количеством элементов разрешения при кодировании режимов сегментации.
Фиг. 31B иллюстрирует пример разбиения блока на субблоки с использованием набора режимов сегментации с меньшим количеством элементов разрешения при кодировании режимов сегментации.
Фиг. 32A иллюстрирует пример разбиения блока на субблоки с использованием набора режимов сегментации, который появляется первым в предварительно определенном порядке множества наборов режимов сегментации.
Фиг. 32B иллюстрирует пример разбиения блока на субблоки с использованием набора режимов сегментации, который появляется первым в предварительно определенном порядке множества наборов режимов сегментации.
Фиг. 32C иллюстрирует пример разбиения блока на субблоки с использованием набора режимов сегментации, который появляется первым в предварительно определенном порядке множества наборов режимов сегментации.
Фиг. 33 иллюстрирует общую конфигурацию системы предоставления контента для реализации услуги распространения контента.
Фиг. 34 иллюстрирует один пример структуры кодирования при масштабируемом кодировании.
Фиг. 35 иллюстрирует один пример структуры кодирования при масштабируемом кодировании.
Фиг. 36 иллюстрирует пример экрана отображения веб-страницы.
Фиг. 37 иллюстрирует пример экрана отображения веб-страницы.
Фиг. 38 иллюстрирует один пример смартфона.
Фиг. 39 является блок-схемой, иллюстрирующей пример конфигурации смартфона.
Фиг. 40 является схемой, иллюстрирующей пример ограничения на режим сегментации для разбиения прямоугольного блока на три субблока.
Фиг. 41 является схемой, иллюстрирующей пример ограничения на режим сегментации для разбиения блока на два субблока.
Фиг. 42 является схемой, иллюстрирующей пример ограничения на режим сегментации для разбиения квадратного блока на три субблока.
Фиг. 43 является схемой, иллюстрирующей пример ограничения на режим сегментации для разбиения прямоугольного блока на два субблока.
Фиг. 44 является схемой, иллюстрирующей пример ограничения на основе направления сегментации режима сегментации для разбиения непрямоугольного блока на два субблока.
Фиг. 45 является схемой, иллюстрирующей пример допустимого направления сегментации режима сегментации для разбиения непрямоугольного блока на два субблока.
Подробное описание вариантов осуществления
[0011] В дальнейшем в этом документе подробно описываются варианты осуществления со ссылкой на чертежи.
[0012] Следует отметить, что каждый из вариантов осуществления, описанных ниже, показывает общий или конкретный пример. Числовые значения, формы, материалы, компоненты, компоновка и соединение компонентов, этапов, порядок этапов и т.д., указываемых в нижеприведенных вариантах осуществления, представляют собой просто примеры и в силу этого не имеют намерение ограничивать объем формулы изобретения. Кроме того, из числа компонентов в нижеприведенных вариантах осуществления, компоненты, не изложенные ни в одном из независимых пунктов формулы изобретения, задающих самые широкие идеи изобретения, описываются как необязательные компоненты.
Вариант 1 осуществления
[0013]
Во-первых, краткое представление варианта 1 осуществления представляется в качестве одного примера кодера и декодера, к которым являются применимыми процессы и/или конфигурации, представленные в последующем описании аспектов настоящего раскрытия. Следует отметить, что вариант 1 осуществления представляет собой просто один пример кодера и декодера, к которым являются применимыми процессы и/или конфигурации, представленные в описании аспектов настоящего раскрытия. Процессы и/или конфигурации, представленные в описании аспектов настоящего раскрытия, также могут реализовываться в кодере и декодере, отличающихся от кодера и декодера согласно варианту 1 осуществления.
[0014] Когда процессы и/или конфигурации, представленные в описании аспектов настоящего раскрытия, применяются к варианту 1 осуществления, например, может выполняться любое из следующего:
[0015] (1) относительно кодера или декодера согласно варианту 1 осуществления, из числа компонентов, включенных в кодер или декодер согласно варианту 1 осуществления, замена компонента, соответствующего компоненту, представленному в описании аспектов настоящего раскрытия, на компонент, представленный в описании аспектов настоящего раскрытия;
(2) относительно кодера или декодера согласно варианту 1 осуществления, реализация дискреционных изменений функций или реализованных процессов, выполняемых посредством одного или более компонентов, включенных в кодер или декодер согласно варианту 1 осуществления, таких как добавление, замена или удаление и т.д. таких функций или реализованных процессов, затем замена компонента, соответствующего компоненту, представленному в описании аспектов настоящего раскрытия, на компонент, представленный в описании аспектов настоящего раскрытия;
(3) относительно способа, реализованного посредством кодера или декодера согласно варианту 1 осуществления, реализация дискреционных изменений, таких как добавление процессов и/или замена, удаление одного или более процессов, включенных в способ, и затем замена процессов, соответствующих процессу, представленному в описании аспектов настоящего раскрытия, на процесс, представленный в описании аспектов настоящего раскрытия;
(4) объединение одного или более компонентов, включенных в кодер или декодер согласно варианту 1 осуществления, с компонентом, представленным в описании аспектов настоящего раскрытия, компонентом, включающим в себя одну или более функций, включенных в компонент, представленный в описании аспектов настоящего раскрытия, или компонентом, который реализует один или более процессов, реализованных посредством компонента, представленного в описании аспектов настоящего раскрытия;
(5) объединение компонента, включающего в себя одну или более функций, включенных в один или более компонентов, включенных в кодер или декодер согласно варианту 1 осуществления, или компонента, который реализует один или более процессов, реализованных посредством одного или более компонентов, включенных в кодер или декодер согласно варианту 1 осуществления, с компонентом, представленным в описании аспектов настоящего раскрытия, компонентом, включающим в себя одну или более функций, включенных в компонент, представленный в описании аспектов настоящего раскрытия, или компонентом, который реализует один или более процессов, реализованных посредством компонента, представленного в описании аспектов настоящего раскрытия;
(6) относительно способа, реализованного посредством кодера или декодера согласно варианту 1 осуществления, из числа процессов, включенных в способ, замена процесса, соответствующего процессу, представленному в описании аспектов настоящего раскрытия, на процесс, представленный в описании аспектов настоящего раскрытия; и
(7) объединение одного или более процессов, включенных в способ, реализованный посредством кодера или декодера согласно варианту 1 осуществления, с процессом, представленным в описании аспектов настоящего раскрытия.
[0016] Следует отметить, что реализация процессов и/или конфигураций, представленных в описании аспектов настоящего раскрытия, не ограничена вышеприведенными примерами. Например, процессы и/или конфигурации, представленные в описании аспектов настоящего раскрытия, могут реализовываться в устройстве, используемом для цели, отличающейся от кодера движущихся кадров/кадров или декодера движущихся кадров/кадров, раскрытого в варианте 1 осуществления. Кроме того, процессы и/или конфигурации, представленные в описании аспектов настоящего раскрытия, могут независимо реализовываться. Кроме того, процессы и/или конфигурации, описанные в различных аспектах, могут объединяться.
Краткое представление кодера
[0017]
Во-первых, кратко представляется кодер согласно варианту 1 осуществления. Фиг. 1 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера 100 согласно варианту 1 осуществления. Кодер 100 представляет собой кодер движущихся кадров/кадров, который кодирует движущийся кадр/кадр поблочно.
[0018] Как проиллюстрировано на фиг. 1, кодер 100 представляет собой устройство, которое кодирует кадр поблочно, и включает в себя модуль 102 разбиения, вычитатель 104, преобразователь 106, квантователь 108, энтропийный кодер 110, обратный квантователь 112, обратный преобразователь 114, сумматор 116, запоминающее устройство 118 блоков, контурный фильтр 120, запоминающее устройство 122 кадров, модуль 124 внутреннего прогнозирования, модуль 126 взаимного прогнозирования и контроллер 128 прогнозирования.
[0019] Кодер 100 реализуется, например, в качестве общего процессора и запоминающего устройства. В этом случае, когда программно-реализованная программа, сохраненная в запоминающем устройстве, выполняется посредством процессора, процессор функционирует в качестве модуля 102 разбиения, вычитателя 104, преобразователя 106, квантователя 108, энтропийного кодера 110, обратного квантователя 112, обратного преобразователя 114, сумматора 116, контурного фильтра 120, модуля 124 внутреннего прогнозирования, модуля 126 взаимного прогнозирования и контроллера 128 прогнозирования. Альтернативно, кодер 100 может быть реализован в качестве одной или более выделенных электронных схем, соответствующих модулю 102 разбиения, вычитателю 104, преобразователю 106, квантователю 108, энтропийному кодеру 110, обратному квантователю 112, обратному преобразователю 114, сумматору 116, контурному фильтру 120, модулю 124 внутреннего прогнозирования, модулю 126 взаимного прогнозирования и контроллеру 128 прогнозирования.
[0020] В дальнейшем в этом документе описывается каждый компонент, включенный в кодер 100.
Модуль разбиения
[0021]
Модуль 102 разбиения разбивает каждый кадр, включенный во входной движущийся кадр, на блоки и выводит каждый блок в вычитатель 104. Например, модуль 102 разбиения сначала разбивает кадр на блоки фиксированного размера (например, 128*128). Блок фиксированного размера также называется "единицей дерева кодирования (CTU)". Модуль 102 разбиения затем разбивает каждый блок фиксированного размера на блоки переменных размеров (например, 64*64 или меньше), на основе рекурсивного разбиения на блоки дерева квадрантов и/или двоичного дерева. Блок переменного размера также называется "единицей кодирования (CU)", "единицей прогнозирования (PU)" или "единицей преобразования (TU)". Следует отметить, что в этом варианте осуществления, нет необходимости различать между CU, PU и TU; все или некоторые блоки в кадре могут обрабатываться в расчете на CU, PU или TU.
[0022] Фиг. 2 иллюстрирует один пример разбиения на блоки согласно варианту 1 осуществления. На фиг. 2, сплошные линии представляют границы блоков для блоков, разбитых посредством разбиения на блоки дерева квадрантов, и пунктирные линии представляют границы блоков для блоков, разбитых посредством разбиения на блоки двоичного дерева.
[0023] Здесь, блок 10 представляет собой квадратный пиксельный блок 128*128 (блок 128*128). Этот блок 10 128*128 сначала разбивается на четыре квадратных блока 64*64 (разбиение на блоки дерева квадрантов).
[0024] Левый верхний блок 64*64 дополнительно вертикально разбивается на два прямоугольных блока 32*64, и левый блок 32*64 дополнительно вертикально разбивается на два прямоугольных блока 16*64 (разбиение на блоки двоичного дерева). Как результат, левый верхний блок 64*64 разбивается на два блока 11 и 12 16*64 и один блок 13 32*64.
[0025] Правый верхний блок 64*64 горизонтально разбивается на два прямоугольных блока 14 и 15 64*32 (разбиение на блоки двоичного дерева).
[0026] Левый нижний блок 64*64 сначала разбивается на четыре квадратных блока 32*32 (разбиение на блоки дерева квадрантов). Верхний левый блок и нижний правый блок из четырех блоков 32*32 дополнительно разбиваются. Левый верхний блок 32*32 вертикально разбивается на два прямоугольных блока 16*32, и правый блок 16*32 дополнительно горизонтально разбивается на два блока 16*16 (разбиение на блоки двоичного дерева). Правый нижний блок 32*32 горизонтально разбивается на два блока 32*16 (разбиение на блоки двоичного дерева). Как результат, левый нижний блок 64*64 разбивается на блок 16 16*32, два блока 17 и 18 16*16, два блока 19 и 20 32*32 и два блока 21 и 22 32*16.
[0027] Правый нижний блок 23 64*64 не разбивается.
[0028] Как описано выше, на фиг. 2, блок 10 разбивается на 13 блоков 11-23 переменного размера на основе рекурсивного разбиения на блоки дерева квадрантов и двоичного дерева. Этот тип разбиения также называется "разбиением дерева квадрантов плюс двоичного дерева (QTBT)".
[0029] Следует отметить, что на фиг. 2, один блок разбивается на четыре или два блока (разбиение на блоки дерева квадрантов или двоичного дерева), но разбиение не ограничено этим примером. Например, один блок может разбиваться на три блока (разбиение на троичные блоки). Разбиение, включающее в себя такое разбиение на троичные блоки, также называется "разбиением многотипного дерева (MBT)".
Вычитатель
[0030]
Вычитатель 104 вычитает прогнозный сигнал (прогнозную выборку) из исходного сигнала (исходной выборки) в расчете на блок, разбитый посредством модуля 102 разбиения. Другими словами, вычитатель 104 вычисляет ошибки прогнозирования (также называются "остатками) блока, который должен кодироваться (в дальнейшем называется "текущим блоком"). Вычитатель 104 затем выводит вычисленные ошибки прогнозирования в преобразователь 106.
[0031] Исходный сигнал представляет собой сигнал, вводимый в кодер 100, и представляет собой сигнал, представляющий изображение для каждого кадра, включенного в движущийся кадр (например, сигнал яркости и два сигнала цветности). В дальнейшем в этом документе, сигнал, представляющий изображение, также называется "выборкой".
Преобразователь
[0032]
Преобразователь 106 преобразует ошибки прогнозирования в пространственной области в коэффициенты преобразования в частотной области и выводит коэффициенты преобразования в квантователь 108. Более конкретно, преобразователь 106 применяет, например, предварительно заданное дискретное косинусное преобразование (DCT) или дискретное синусное преобразование (DST) к ошибкам прогнозирования в пространственной области.
[0033] Следует отметить, что преобразователь 106 может адаптивно выбирать тип преобразования из множества типов преобразования и преобразовывать ошибки прогнозирования в коэффициенты преобразования посредством использования базисной функции преобразования, соответствующей типу выбранного преобразования. Этот вид преобразования также называется "явным множественным базовым преобразованием (EMT)" или "адаптивным множественным преобразованием (AMT)".
[0034] Типы преобразования включают в себя, например, DCT-II, DCT-V, DCT-VIII, DST-I и DST-VII. Фиг. 3 является диаграммой, указывающей базисные функции преобразования для каждого типа преобразования. На фиг. 3, N указывает количество входных пикселов. Например, выбор типа преобразования из множества типов преобразования может зависеть от типа прогнозирования (внутреннее прогнозирование и взаимное прогнозирование) и может зависеть от режима внутреннего прогнозирования.
[0035] Информация, указывающая то, следует ли применять такое EMT или AMT (называется, например, "AMT-флагом"), и информация, указывающая тип выбранного преобразования, передается в служебных сигналах на уровне CU. Следует отметить, что передача в служебных сигналах этой информации не должна обязательно выполняться на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне кадра, уровне серии последовательных макроблоков, уровне мозаичного фрагмента или уровне CTU).
[0036] Кроме того, преобразователь 106 может применять вторичное преобразование к коэффициентам преобразования (к результату преобразования). Такое вторичное преобразование также называется "адаптивным вторичным преобразованием (AST)" или "неразделимым вторичным преобразованием (NSST)". Например, преобразователь 106 применяет вторичное преобразование к каждому субблоку (например, каждому субблоку 4*4), включенному в блок коэффициентов преобразования, соответствующих ошибкам внутреннего прогнозирования. Информация, указывающая то, следует ли применять NSST, и информация, связанная с матрицей преобразования, используемой в NSST, передается в служебных сигналах на уровне CU. Следует отметить, что передача в служебных сигналах этой информации не должна обязательно выполняться на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне кадра, уровне серии последовательных макроблоков, уровне мозаичного фрагмента или уровне CTU).
[0037] Здесь, разделимое преобразование представляет собой способ, в котором преобразование выполняется многократно посредством отдельного выполнения преобразования для каждого направления согласно введенному количеству размерностей. Неразделимое преобразование представляет собой способ выполнения коллективного преобразования, в котором две или более размерностей в многомерном вводе совместно рассматриваются в качестве одной размерности.
[0038] В одном примере неразделимого преобразования, когда ввод представляет собой блок 4*4, блок 4*4 считается простым массивом, включающим в себя 16 компонентов, и преобразование применяет матрицу преобразования 16*16 к массиву.
[0039] Кроме того, аналогично вышеуказанному, после того, как входной блок 4*4 рассматривается в качестве простого массива, включающего в себя 16 компонентов, преобразование, которое выполняет множество вращений Гивенса для массива (т.е. гиперкубическое преобразование Гивенса), также представляет собой один пример неразделимого преобразования.
Квантователь
[0040]
Квантователь 108 квантует коэффициенты преобразования, выводимые из преобразователя 106. Более конкретно, квантователь 108 сканирует, в предварительно определенном порядке сканирования, коэффициенты преобразования текущего блока и квантует сканированные коэффициенты преобразования на основе параметров квантования (QP), соответствующих коэффициентам преобразования. Квантователь 108 затем выводит квантованные коэффициенты преобразования (в дальнейшем называются "квантованными коэффициентами") текущего блока в энтропийный кодер 110 и обратный квантователь 112.
[0041] Предварительно определенный порядок представляет собой порядок для квантования/обратного квантования коэффициентов преобразования. Например, предварительно определенный порядок сканирования задается как порядок по возрастанию частоты (от низкой к высокой частоте) или порядок по убыванию частоты (от высокой к низкой частоте).
[0042] Параметр квантования представляет собой параметр, задающий размер шага квантования (ширину квантования). Например, если значение параметра квантования увеличивается, размер шага квантования также увеличивается. Другими словами, если значение параметра квантования увеличивается, ошибка квантования увеличивается.
Энтропийный кодер
[0043]
Энтропийный кодер 110 формирует кодированный сигнал (кодированный поток битов) посредством кодирования переменной длины квантованных коэффициентов, которые представляют собой вводы из квантователя 108. Более конкретно, энтропийный кодер 110, например, преобразует в двоичную форму квантованные коэффициенты и арифметически кодирует двоичный сигнал.
Обратный квантователь
[0044]
Обратный квантователь 112 обратно квантует квантованные коэффициенты, которые представляют собой вводы из квантователя 108. Более конкретно, обратный квантователь 112 обратно квантует, в предварительно определенном порядке сканирования, квантованные коэффициенты текущего блока. Обратный квантователь 112 затем выводит обратно квантованные коэффициенты преобразования текущего блока в обратный преобразователь 114.
Обратный преобразователь
[0045]
Обратный преобразователь 114 восстанавливает ошибки прогнозирования посредством обратного преобразования коэффициентов преобразования, которые представляют собой вводы из обратного квантователя 112. Более конкретно, обратный преобразователь 114 восстанавливает ошибки прогнозирования текущего блока посредством применения обратного преобразования, соответствующего преобразованию, применяемому посредством преобразователя 106, к коэффициентам преобразования. Обратный преобразователь 114 затем выводит восстановленные ошибки прогнозирования в сумматор 116.
[0046] Следует отметить, что поскольку информация потеряна в квантовании, восстановленные ошибки прогнозирования не совпадают с ошибками прогнозирования, вычисленными посредством вычитателя 104. Другими словами, восстановленные ошибки прогнозирования включают в себя ошибки квантования.
Сумматор
[0047]
Сумматор 116 восстанавливает текущий блок посредством суммирования ошибок прогнозирования, которые представляют собой вводы из обратного преобразователя 114, и прогнозных выборок, которые представляют собой вводы из контроллера 128 прогнозирования. Сумматор 116 затем выводит восстановленный блок в запоминающее устройство 118 блоков и контурный фильтр 120. Восстановленный блок также называется "локальным декодированным блоком".
Запоминающее устройство блоков
[0048]
Запоминающее устройство 118 блоков представляет собой устройство хранения данных для сохранения блоков в кадре, который должен кодироваться (в дальнейшем называется "текущим кадром") для ссылки при внутреннем прогнозировании. Более конкретно, запоминающее устройство 118 блоков сохраняет восстановленные блоки, выводимые из сумматора 116.
Контурный фильтр
[0049]
Контурный фильтр 120 применяет контурный фильтр к блокам, восстановленным посредством сумматора 116, и выводит фильтрованные восстановленные блоки в запоминающее устройство 122 кадров. Контурный фильтр представляет собой фильтр, используемый в контуре кодирования (внутриконтурный фильтр), и включает в себя, например, фильтр удаления блочности (DF), дискретизированное адаптивное смещение (SAO) и адаптивный контурный фильтр (ALF).
[0050] В ALF, применяется фильтр ошибки по методу наименьших квадратов для удаления артефактов сжатия. Например, один фильтр из множества фильтров выбирается для каждого субблока 2*2 в текущем блоке на основе направления и активности локальных градиентов и применяется.
[0051] Более конкретно, сначала каждый субблок (например, каждый субблок 2*2) классифицируются на один из множества классов (например, 15 или 25 классов). Классификация субблока основана на направленности и активности градиентов. Например, классификационный индекс C извлекается на основе направленности D градиентов (например, 0-2 или 0-4) и активности A градиентов (например, 0-4) (например, C=5D+A). Затем на основе классификационного индекса C каждый субблок классифицируется на один из множества классов (например, 15 или 25 классов).
[0052] Например, направленность D градиентов вычисляется посредством сравнения градиентов множества направлений (например, горизонтального, вертикального и двух диагональных направлений). Кроме того, например, активность A градиентов вычисляется посредством суммирования градиентов множества направлений и квантования суммы.
[0053] Фильтр, который должен использоваться для каждого субблока, определяется из множества фильтров на основе результата такой классификации.
[0054] Форма фильтра, которая должна использоваться в ALF, например, представляет собой круглую симметричную форму фильтра. Фиг. 4A-4C иллюстрируют примеры форм фильтра, используемых в ALF. Фиг. 4A иллюстрирует фильтр ромбовидной формы 5*5, фиг. 4B иллюстрирует фильтр ромбовидной формы 7*7, и фиг. 4C иллюстрирует фильтр ромбовидной формы 9*9. Информация, указывающая форму фильтра, передается в служебных сигналах на уровне кадра. Следует отметить, что передача в служебных сигналах информации, указывающей форму фильтра, не должна обязательно выполняться на уровне кадра и может выполняться на другом уровне (например, на уровне последовательности, уровне серии последовательных макроблоков, уровне мозаичного фрагмента, уровне CTU или уровне CU).
[0055] Активация или деактивация ALF определяется на уровне кадра или уровне CU. Например, для сигнала яркости, решение в отношении того, применять ALF или нет, принимается на уровне CU, и для сигнала цветности, решение в отношении того, применять ALF или нет, принимается на уровне кадра. Информация, указывающая то, ALF активируется или деактивируется, передается в служебных сигналах на уровне кадра или уровне CU. Следует отметить, что передача в служебных сигналах информации, указывающей то, ALF активируется или деактивируется, не должна обязательно выполняться на уровне кадра или уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне серии последовательных макроблоков, уровне мозаичного фрагмента или уровне CTU).
[0056] Набор коэффициентов для множества выбираемых фильтров (например, 15 или 25 фильтров) передается в служебных сигналах на уровне кадра. Следует отметить, что передача в служебных сигналах набора коэффициентов не должна обязательно выполняться на уровне кадра и может выполняться на другом уровне (например, на уровне последовательности, уровне серии последовательных макроблоков, уровне мозаичного фрагмента, уровне CTU, уровне CU или уровне субблока).
Запоминающее устройство кадров
[0057]
Запоминающее устройство 122 кадров представляет собой устройство хранения данных для сохранения опорных кадров, используемых при взаимном прогнозировании, и также называется "буфером кадров". Более конкретно, запоминающее устройство 122 кадров сохраняет восстановленные блоки, фильтрованные посредством контурного фильтра 120.
Модуль внутреннего прогнозирования
[0058]
Модуль 124 внутреннего прогнозирования формирует прогнозный сигнал (внутренний прогнозный сигнал) посредством внутреннего прогнозирования текущего блока со ссылкой на блок или блоки в текущем кадре и сохраняет в запоминающем устройстве 118 блоков (также называется "внутрикадровым прогнозированием"). Более конкретно, модуль 124 внутреннего прогнозирования формирует внутренний прогнозный сигнал посредством внутреннего прогнозирования со ссылкой на выборки (например, значения сигнала яркости и/или сигнала цветности) блока или блоков, соседних с текущим блоком, и затем выводит внутренний прогнозный сигнал в контроллер 128 прогнозирования.
[0059] Например, модуль 124 внутреннего прогнозирования выполняет внутреннее прогнозирование посредством использования одного режима из множества предварительно заданных режимов внутреннего прогнозирования. Режимы внутреннего прогнозирования включают в себя один или более режимов ненаправленного прогнозирования и множество режимов направленного прогнозирования.
[0060] Один или более режимов ненаправленного прогнозирования включают в себя, например, режим планарного прогнозирования и режим DC-прогнозирования, заданные в стандарте H.265/высокоэффективного кодирования видео (HEVC) (см. NPL 1).
[0061] Множество режимов направленного прогнозирования включают в себя, например, 33 режима направленного прогнозирования, заданные в H.265/HEVC-стандарте. Следует отметить, что множество режимов направленного прогнозирования дополнительно могут включать в себя 32 режима направленного прогнозирования в дополнение к 33 режимам направленного прогнозирования (в сумме 65 режимов направленного прогнозирования). Фиг. 5A иллюстрирует 67 режимов внутреннего прогнозирования, используемых при внутреннем прогнозировании (два режима ненаправленного прогнозирования и 65 режимов направленного прогнозирования). Сплошные стрелки представляют 33 направления, заданные в H.265/HEVC-стандарте, и пунктирные стрелки представляют дополнительные 32 направления.
[0062] Следует отметить, что на блок сигналов яркости можно ссылаться при блочном внутреннем прогнозировании сигналов цветности. Другими словами, компонент сигнала цветности текущего блока может прогнозироваться на основе компонента сигнала яркости текущего блока. Такое внутреннее прогнозирование также называется "прогнозированием на основе кросскомпонентной линейной модели (CCLM)". Такой режим блочного внутреннего прогнозирования сигналов цветности, который ссылается на блок сигналов яркости (называется, например, "CCLM-режимом"), может добавляться в качестве одного из режимов блочного внутреннего прогнозирования сигналов цветности.
[0063] Модуль 124 внутреннего прогнозирования может корректировать пиксельные значения после внутреннего прогнозирования на основе горизонтальных/вертикальных опорных пиксельных градиентов. Внутреннее прогнозирование, сопровождаемое посредством этого вида коррекции, также называется "позиционно-зависимой комбинацией с внутренним прогнозированием (PDPC)". Информация, указывающая то, следует ли или нет применять PDPC (называется, например, "PDPC-флагом"), например, передается в служебных сигналах на уровне CU. Следует отметить, что передача в служебных сигналах этой информации не должна обязательно выполняться на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне кадра, уровне серии последовательных макроблоков, уровне мозаичного фрагмента или уровне CTU).
Модуль взаимного прогнозирования
[0064]
Модуль 126 взаимного прогнозирования формирует прогнозный сигнал (взаимный прогнозный сигнал) посредством взаимного прогнозирования текущего блока со ссылкой на блок или блоки в опорном кадре, которое отличается от текущего кадра, и сохраняет в запоминающем устройстве 122 кадров (также называется "межкадровым прогнозированием"). Взаимное прогнозирование выполняется в расчете на текущий блок или в расчете на субблок (например, в расчете на блок 4*4) в текущем блоке. Например, модуль 126 взаимного прогнозирования выполняет оценку движения в опорном кадре для текущего блока или субблока. Модуль 126 взаимного прогнозирования затем формирует взаимный прогнозный сигнал текущего блока или субблока посредством компенсации движения посредством использования информации движения (например, вектора движения), полученной из оценки движения. Модуль 126 взаимного прогнозирования затем выводит сформированный взаимный прогнозный сигнал в контроллер 128 прогнозирования.
[0065] Информация движения, используемая в компенсации движения, передается в служебных сигналах. Предиктор вектора движения может использоваться для передачи в служебных сигналах вектора движения. Другими словами, разность между вектором движения и предиктором вектора движения может передаваться в служебных сигналах.
[0066] Следует отметить, что взаимный прогнозный сигнал может формироваться с использованием информации движения для соседнего блока в дополнение к информации движения для текущего блока, полученной из оценки движения. Более конкретно, взаимный прогнозный сигнал может формироваться в расчете на субблок в текущем блоке посредством вычисления взвешенной суммы прогнозного сигнала на основе информации движения, полученной из оценки движения, и прогнозного сигнала на основе информации движения для соседнего блока. Такое взаимное прогнозирование (компенсация движения) также называется "перекрывающейся блочной компенсацией движения (OBMC)".
[0067] В таком OBMC-режиме, информация, указывающая размер субблока для OBMC (называется, например, "размером OBMC-блока") передается в служебных сигналах на уровне последовательности. Кроме того, информация, указывающая то, следует ли или нет применять OBMC-режим (называется, например, "OBMC-флагом"), передается в служебных сигналах на уровне CU. Следует отметить, что передача в служебных сигналах этой информации не должна обязательно выполняться на уровне последовательности и уровне CU и может выполняться на другом уровне (например, на уровне кадра, уровне серии последовательных макроблоков, уровне мозаичного фрагмента, уровне CTU или уровне субблока).
[0068] В дальнейшем в этом документе подробнее описывается OBMC-режим. Фиг. 5B является блок-схемой последовательности операций способа, и фиг. 5C является концептуальной схемой для иллюстрации краткого представления процесса коррекции прогнозных изображений, выполняемого через OBMC-обработку.
[0069] Во-первых, прогнозное изображение (Pred) получается через типичную компенсацию движения с использованием вектора движения (MV), назначенного текущему блоку.
[0070] Затем, прогнозное изображение (Pred_L) получается посредством применения вектора движения (MV_L) кодированного соседнего левого блока к текущему блоку, и первый проход коррекции прогнозного изображения осуществляется посредством наложения прогнозного изображения и Pred_L.
[0071] Аналогично, прогнозное изображение (Pred_U) получается посредством применения вектора движения (MV_U) кодированного соседнего верхнего блока к текущему блоку, и второй проход коррекции прогнозного изображения осуществляется посредством наложения прогнозного изображения, получающегося в результате первого прохода, и Pred_U. Результат второго прохода представляет собой конечное прогнозное изображение.
[0072] Следует отметить, что вышеприведенный пример предназначен для двухпроходного способа коррекции с использованием соседних левых и верхних блоков, но способ может представлять собой трехпроходный или выше способ коррекции, который также использует соседний правый и/или нижний блок.
[0073] Следует отметить, что область, подвергающаяся наложению, может представлять собой всю пиксельную область блока и, альтернативно, может представлять собой частичную блочную граничную область.
[0074] Следует отметить, что здесь процесс коррекции прогнозных изображений описывается как основанный на одном опорном кадре, но то же применимо, когда прогнозное изображение корректируется на основе множества опорных кадров. В таком случае, после того, как скорректированные прогнозные изображения, получающиеся в результате выполнения коррекции на основе каждого из опорных кадров, получаются, полученные скорректированные прогнозные изображения дополнительно накладываются, чтобы получать конечное прогнозное изображение.
[0075] Следует отметить, что единица текущего блока может представлять собой прогнозный блок и, альтернативно, может представлять собой субблок, полученный посредством дополнительного разделения прогнозного блока.
[0076] Один пример способа для определения того, следует ли реализовывать OBMC-обработку, заключается в использовании obmc_flag, который представляет собой сигнал, который указывает то, следует ли реализовывать OBMC-обработку. В качестве одного конкретного примера, кодер определяет то, принадлежит ли текущий блок области, включающей в себя усложненное движение. Кодер задает obmc_flag равным значению "1", когда блок принадлежит области, включающей в себя усложненное движение, и реализует OBMC-обработку при кодировании, и задает obmc_flag равным значению "0", когда блок не принадлежит области, включающей в себя усложненное движение, и кодирует без реализации OBMC-обработки. Декодер переключается между реализацией OBMC-обработки или нереализацией посредством декодирования obmc_flag, записанного в поток, и выполнения декодирования в соответствии со значением флага.
[0077] Следует отметить, что информация движения может извлекаться на стороне декодера без передачи в служебных сигналах. Например, может использоваться режим объединения, заданный в H.265/HEVC-стандарте. Кроме того, например, информация движения может извлекаться посредством выполнения оценки движения на стороне декодера. В этом случае, оценка движения выполняется без использования пиксельных значений текущего блока.
[0078] Здесь, в дальнейшем описывается режим для выполнения оценки движения на стороне декодера. Режим для выполнения оценки движения на стороне декодера также называется "режимом извлечения векторов движения на основе сопоставления с шаблоном (PMMVD)" или "режимом преобразования с повышением частоты кадров (FRUC)".
[0079] Один пример FRUC-обработки проиллюстрирован на фиг. 5D. Во-первых, список возможных вариантов (список возможных вариантов может представлять собой список объединения) для возможных вариантов, включающих в себя предиктор вектора движения, формируется со ссылкой на векторы движения кодированных блоков, которые являются пространственно или временно соседними с текущим блоком. Затем, наилучший возможный вариант MV выбирается из множества возможных вариантов MV, зарегистрированных в списке возможных вариантов. Например, значения оценки для возможных вариантов, включенных в список возможных вариантов, вычисляются, и один возможный вариант выбирается на основе вычисленных значений оценки.
[0080] Затем, вектор движения для текущего блока извлекается из вектора движения выбранного возможного варианта. Более конкретно, например, вектор движения для текущего блока вычисляется как вектор движения выбранного возможного варианта (наилучшего возможного варианта MV), как есть. Альтернативно, вектор движения для текущего блока может извлекаться посредством сопоставления с шаблоном, выполняемого около позиции в опорном кадре, соответствующем вектору движения выбранного возможного варианта. Другими словами, когда в окрестности наилучшего возможного варианта MV выполняется поиск через идентичный способ, и MV, имеющий лучшее значение оценки, находится, наилучший возможный вариант MV может обновляться на MV, имеющий лучшее значение оценки, и MV, имеющий лучшее значение оценки, может использоваться в качестве конечного MV для текущего блока. Следует отметить, что также является приемлемой конфигурация, в которой не реализуется эта обработка.
[0081] Идентичные процессы могут выполняться в случаях, в которых обработка выполняется в единицах субблоков.
[0082] Следует отметить, что значение оценки вычисляется посредством вычисления разности в восстановленном изображении посредством сопоставления с шаблоном, выполняемого между областью в опорном кадре, соответствующей вектору движения, и предварительно определенной областью. Следует отметить, что значение оценки может вычисляться посредством использования некоторой другой информации в дополнение к разности.
[0083] Используемое сопоставление с шаблоном представляет собой либо первое сопоставление с шаблоном, либо второе сопоставление с шаблоном. Первое сопоставление с шаблоном и второе сопоставление с шаблоном также называются "билатеральным сопоставлением" и "сопоставлением с эталоном", соответственно.
[0084] При первом сопоставлении с шаблоном, сопоставление с шаблоном выполняется между двумя блоками вдоль траектории движения текущего блока в двух различных опорных кадрах. Следовательно, при первом сопоставлении с шаблоном, область в другом опорном кадре, соответствующем траектории движения текущего блока, используется в качестве предварительно определенной области для вышеописанного вычисления значения оценки возможного варианта.
[0085] Фиг. 6 служит для иллюстрации одного примера сопоставления с шаблоном (билатерального сопоставления) между двумя блоками вдоль траектории движения. Как проиллюстрировано на фиг. 6, при первом сопоставлении с шаблоном, два вектора движения (MV0, MV1) извлекаются посредством нахождения наилучшего совпадения между двумя блоками вдоль траектории движения текущего блока (Cur block) в двух различных опорных кадрах (Ref0, Ref1). Более конкретно, разность между (i) восстановленным изображением в указанной позиции в первом кодированном опорном кадре (Ref0), указываемом посредством возможного варианта MV, и (ii) восстановленным кадром в указанной позиции во втором кодированном опорном кадре (Ref1), указываемом посредством симметричного MV, масштабируемого с временным интервалом отображения возможного варианта MV, может извлекаться, и значение оценки для текущего блока может вычисляться посредством использования извлеченной разности. Возможный вариант MV, имеющий наилучшее значение оценки из множества возможных вариантов MV, может выбираться в качестве конечного MV.
[0086] Согласно допущению относительно траектории непрерывного движения, векторы движения (MV0, MV1), указывающие на два опорных блока, должны быть пропорциональными временным расстояниям (TD0, TD1) между текущим кадром (Cur Pic) и двумя опорными кадрами (Ref0, Ref1). Например, когда текущий кадр находится во времени между двумя опорными кадрами, и временное расстояние от текущего кадра до двух опорных кадров является идентичным, первое сопоставление с шаблоном извлекает двунаправленный вектор движения на основе зеркалирования.
[0087] При втором сопоставлении с шаблоном, сопоставление с шаблоном выполняется между эталоном в текущем кадре (блоками, соседними с текущим блоком в текущем кадре (например, верхним и/или левым соседними блоками)) и блоком в опорном кадре. Следовательно, при втором сопоставлении с шаблоном, блок, соседний с текущим блоком в текущем кадре, используется в качестве предварительно определенной области для вышеописанного вычисления значения оценки возможного варианта.
[0088] Фиг. 7 служит для иллюстрации одного примера сопоставления с шаблоном (сопоставления с эталоном) между эталоном в текущем кадре и блоком в опорном кадре. Как проиллюстрировано на фиг. 7, при втором сопоставлении с шаблоном, вектор движения текущего блока извлекается посредством выполнения поиска в опорном кадре (Ref0), чтобы находить блок, который имеет наилучшее совпадение с соседними блоками относительно текущего блока (Cur block) в текущем кадре (Cur Pic). Более конкретно, разность между (i) восстановленным изображением кодированной области, которая представляет собой обе или одну из соседней левой и соседней верхней области, и (ii) восстановленным кадром в идентичной позиции в кодированном опорном кадре (Ref0), указываемом посредством возможного варианта MV, может извлекаться, и значение оценки для текущего блока может вычисляться посредством использования извлеченной разности. Возможный вариант MV, имеющий наилучшее значение оценки из множества возможных вариантов MV, может выбираться в качестве наилучшего возможного варианта MV.
[0089] Информация, указывающая то, следует ли или нет применять FRUC-режим (называется, "например, FRUC-флагом"), передается в служебных сигналах на уровне CU. Кроме того, когда FRUC-режим применяется (например, когда FRUC-флаг задается как истинный), информация, указывающая способ сопоставления с шаблоном (первое сопоставление с шаблоном или второе сопоставление с шаблоном), передается в служебных сигналах на уровне CU. Следует отметить, что передача в служебных сигналах этой информации не должна обязательно выполняться на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне кадра, уровне серии последовательных макроблоков, уровне мозаичного фрагмента, уровне CTU или уровне субблока).
[0090] Здесь, в дальнейшем описывается режим для извлечения вектора движения на основе модели при условии равномерного прямолинейного движения. Этот режим также называется "режимом двунаправленного оптического потока (BIO)".
x
y
0
1
0
0
0
1
1
1
[0091] Фиг. 8 служит для иллюстрации модели при условии равномерного прямолинейного движения. На фиг. 8, (v, v) обозначает вектор скорости, и τ и τ обозначают временные расстояния между текущим кадром (Cur Pic) и двумя опорными кадрами (Ref0, Ref1). (MVx, MVy) обозначает вектор движения, соответствующий опорному кадру Ref, и (MVx, MVy) обозначает вектор движения, соответствующий опорному кадру Ref.
x
y
0
0
1
1
x
0
y
0
x
1
y
1
[0092] Здесь, согласно допущению относительно равномерного прямолинейного движения, демонстрируемого посредством вектора скорости (v, v), (MVx, MVy) и (MVx, MVy), представляются как (vτ, vτ) и (-vτ,- vτ), соответственно, и задается следующее уравнение оптического потока:
[0093] Математическое выражение 1
(k)
[0094] Здесь, I обозначает значение сигнала яркости из опорного кадра k (k=0, 1) после компенсации движения. Это уравнение оптического потока показывает то, что сумма (i) производной по времени значения сигнала яркости, (ii) произведения горизонтальной скорости и горизонтального компонента пространственного градиента опорного кадра и (iii) произведения вертикальной скорости и вертикального компонента пространственного градиента опорного кадра равна нулю. Вектор движения каждого блока, полученный, например, из списка объединения, корректируется попиксельно на основе объединения уравнения оптического потока и эрмитовой интерполяции.
[0095] Следует отметить, что вектор движения может извлекаться на стороне декодера с использованием способа, отличного от извлечения вектора движения, на основе модели при условии равномерного прямолинейного движения. Например, вектор движения может извлекаться для каждого субблока на основе векторов движения соседних блоков.
[0096] Здесь, в дальнейшем описывается режим, в котором вектор движения извлекается для каждого субблока на основе векторов движения соседних блоков. Этот режим также называется "аффинным режимом прогнозирования с компенсацией движения".
0
1
0
1
[0097] Фиг. 9A служит для иллюстрации извлечения вектора движения каждого субблока на основе векторов движения соседних блоков. На фиг. 9A, текущий блок включает в себя 16 субблоков 4*4. Здесь, вектор v движения левой верхней угловой управляющей точки в текущем блоке извлекается на основе векторов движения соседних субблоков, и вектор v движения правой верхней угловой управляющей точки в текущем блоке извлекается на основе векторов движения соседних блоков. После этого, с использованием двух векторов v и v движения вектор (vx, vy) движения каждого субблока в текущем блоке извлекается с использованием нижеприведенного уравнения 2:
[0098] Математическое выражение 2
[0099] Здесь, x и y являются горизонтальными и вертикальными позициями субблока, соответственно, и w является предварительно определенным весовым коэффициентом.
[0100] Такой аффинный режим прогнозирования с компенсацией движения может включать в себя некоторое количество режимов различных способов извлечения векторов движения левых верхних и правых верхних угловых управляющих точек. Информация, указывающая такой аффинный режим прогнозирования с компенсацией движения (называется, например, "аффинным флагом"), передается в служебных сигналах на уровне CU. Следует отметить, что передача в служебных сигналах информации, указывающей аффинный режим прогнозирования с компенсацией движения, не должна обязательно выполняться на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне кадра, уровне серии последовательных макроблоков, уровне мозаичного фрагмента, уровне CTU или уровне субблока).
Контроллер прогнозирования
[0101]
Контроллер 128 прогнозирования выбирает либо внутренний прогнозный сигнал, либо взаимный прогнозный сигнал и выводит выбранный прогнозный сигнал в вычитатель 104 и сумматор 116.
[0102] Здесь, в дальнейшем приводится пример извлечения вектора движения через режим объединения в текущем кадре. Фиг. 9B служит для иллюстрации краткого представления процесса для извлечения вектора движения через режим объединения.
[0103] Во-первых, список MV-предикторов, в котором регистрируются возможные варианты MV-предикторов, формируется. Примеры возможных вариантов MV-предикторов включают в себя: пространственно соседние MV-предикторы, которые представляют собой MV кодированных блоков, позиционированных в пространственной окрестности текущего блока; временно соседний MV-предиктор, который представляет собой MV блока в кодированном опорном кадре, который является соседним с блоком в местоположении, идентичном местоположению текущего блока; объединенный MV-предиктор, который представляет собой MV, сформированный посредством объединения MV-значений пространственно соседнего MV-предиктора и временно соседнего MV-предиктора; и нулевой MV-предиктор, который представляет собой MV, значение которого равно нулю.
[0104] Затем, MV текущего блока определяется посредством выбора одного MV-предиктора из множества MV-предикторов, зарегистрированных в списке MV-предикторов.
[0105] Кроме того, в кодере переменной длины, merge_idx, который представляет собой сигнал, указывающий то, какой MV-предиктор выбирается, записывается и кодируется в поток.
[0106] Следует отметить, что MV-предикторы, зарегистрированные в списке MV-предикторов, проиллюстрированном на фиг. 9B, составляют один пример. Количество MV-предикторов, зарегистрированных в списке MV-предикторов, может отличаться от количества, проиллюстрированного на фиг. 9B, MV-предикторы, зарегистрированные в списке MV-предикторов, могут опускать один или более типов MV-предикторов, приведенных в примере на фиг. 9B, и MV-предикторы, зарегистрированные в списке MV-предикторов, могут включать в себя один или более типов MV-предикторов, дополнительных и отличающихся от типов, приведенных в примере на фиг. 9B.
[0107] Следует отметить, что конечный MV может определяться посредством выполнения DMVR-обработки (описывается ниже) посредством использования MV текущего блока, извлекаемого через режим объединения.
[0108] Здесь, в дальнейшем приводится пример определения MV посредством использования DMVR-обработки.
[0109] Фиг. 9C является концептуальной схемой для иллюстрации краткого представления DMVR-обработки.
[0110] Во-первых, наиболее подходящий MVP-набор для текущего блока считается возможным вариантом MV, опорные пикселы получаются из первого опорного кадра, который представляет собой кадр, обработанный в направлении L0 в соответствии с возможным вариантом MV, и второго опорного кадра, который представляет собой кадр, обработанный в направлении L1 в соответствии с возможным вариантом MV, и эталон формируется посредством вычисления среднего опорных пикселов.
[0111] Далее, с использованием эталона, выполняется поиск в окружающих областях возможных вариантов MV первого и второго опорных кадров, и MV с наименьшим затратами определяется как конечный MV. Следует отметить, что значение затрат вычисляется с использованием, например, разности между каждым пиксельным значением в эталоне и каждым пиксельным значением в областях, в которых выполняется поиск, а также MV-значением.
[0112] Следует отметить, что краткие представления процессов, описанных здесь, являются фундаментально идентичными в кодере и в декодере.
[0113] Следует отметить, что может использоваться обработка, отличная от обработки точно так, как описано выше, до тех пор, пока обработка допускает извлечение конечного MV посредством выполнения поиска в окрестности возможного варианта MV.
[0114] Здесь, в дальнейшем приводится пример режима, который формирует прогнозное изображение посредством использования LIC-обработки.
[0115] Фиг. 9D служит для иллюстрации краткого представления способа формирования прогнозных изображений с использованием процесса коррекции яркости, выполняемого через LIC-обработку.
[0116] Во-первых, MV извлекается для получения, из кодированного опорного кадра, опорного изображения, соответствующего текущему блоку.
[0117] Затем, информация, указывающая то, как значение яркости изменено между опорным кадром и текущим кадром, извлекается, и параметр коррекции яркости вычисляется посредством использования пиксельных значений яркости для кодированной левой соседней опорной области и кодированной верхней соседней опорной области и пиксельного значения яркости в идентичном местоположении в опорном кадре, указываемом посредством MV.
[0118] Прогнозное изображение для текущего блока формируется посредством выполнения процесса коррекции яркости посредством использования параметра коррекции яркости для опорного изображения в опорном кадре, указываемом посредством MV.
[0119] Следует отметить, что форма окружающей опорной области, проиллюстрированной на фиг. 9D, представляет собой всего один пример; окружающая опорная область может иметь другую форму.
[0120] Кроме того, хотя прогнозное изображение формируется из одного опорного кадра в этом примере, в случаях, в которых прогнозное изображение также формируется из множества опорных кадров, прогнозное изображение формируется после выполнения процесса коррекции яркости, через идентичный способ, для опорных изображений, полученных из опорных кадров.
[0121] Один пример способа для определения того, следует ли реализовывать LIC-обработку, заключается в использовании lic_flag, который представляет собой сигнал, который указывает то, следует ли реализовывать LIC-обработку. В качестве одного конкретного примера, кодер определяет то, принадлежит ли текущий блок области изменения яркости. Кодер задает lic_flag равным значению "1", когда блок принадлежит области изменения яркости, и реализует LIC-обработку при кодировании, и задает lic_flag равным значению "0", когда блок не принадлежит области изменения яркости, и кодирует без реализации LIC-обработки. Декодер переключается между реализацией LIC-обработки или нереализацией посредством декодирования lic_flag, записанного в поток, и выполнения декодирования в соответствии со значением флага.
[0122] Один пример другого способа определения того, следует ли реализовывать LIC-обработку, заключается в определении означенного в соответствии с тем, определена ли необходимость реализации LIC-обработки для окружающего блока. В одном конкретном примере, когда режим объединения используется для текущего блока, может определяться то, применена ли LIC-обработка при кодировании окружающего кодированного блока, выбранного после извлечения MV при обработке в режиме объединения, и то, следует ли или нет реализовывать LIC-обработку, может переключаться на основе результата определения. Следует отметить, что в этом примере, это применимо и к обработке, выполняемой на стороне декодера.
Краткое представление декодера
[0123]
Далее описывается декодер, допускающий декодирование кодированного сигнала (кодированного потока битов), выводимого из кодера 100. Фиг. 10 является блок-схемой, иллюстрирующей функциональную конфигурацию декодера 200 согласно варианту 1 осуществления. Декодер 200 представляет собой декодер движущихся кадров/кадров, который декодирует движущийся кадр/кадр поблочно.
[0124] Как проиллюстрировано на фиг. 10, декодер 200 включает в себя энтропийный декодер 202, обратный квантователь 204, обратный преобразователь 206, сумматор 208, запоминающее устройство 210 блоков, контурный фильтр 212, запоминающее устройство 214 кадров, модуль 216 внутреннего прогнозирования, модуль 218 взаимного прогнозирования и контроллер 220 прогнозирования.
[0125] Декодер 200 реализуется, например, в качестве общего процессора и запоминающего устройства. В этом случае, когда программно-реализованная программа, сохраненная в запоминающем устройстве, выполняется посредством процессора, процессор функционирует в качестве энтропийного декодера 202, обратного квантователя 204, обратного преобразователя 206, сумматора 208, контурного фильтра 212, модуля 216 внутреннего прогнозирования, модуля 218 взаимного прогнозирования и контроллера 220 прогнозирования. Альтернативно, декодер 200 может быть реализован в качестве одной или более выделенных электронных схем, соответствующих энтропийному декодеру 202, обратному квантователю 204, обратному преобразователю 206, сумматору 208, контурному фильтру 212, модулю 216 внутреннего прогнозирования, модулю 218 взаимного прогнозирования и контроллеру 220 прогнозирования.
[0126] В дальнейшем в этом документе описывается каждый компонент, включенный в декодер 200.
Энтропийный декодер
[0127]
Энтропийный декодер 202 энтропийно декодирует кодированный поток битов. Более конкретно, например, энтропийный декодер 202 арифметически декодирует кодированный поток битов в двоичный сигнал. Энтропийный декодер 202 затем отменяет преобразование в двоичную форму двоичного сигнала. Вследствие этого, энтропийный декодер 202 выводит квантованные коэффициенты каждого блока в обратный квантователь 204.
Обратный квантователь
[0128]
Обратный квантователь 204 обратно квантует квантованные коэффициенты блока, который должен декодироваться (в дальнейшем называется "текущим блоком"), которые представляют собой вводы из энтропийного декодера 202. Более конкретно, обратный квантователь 204 обратно квантует квантованные коэффициенты текущего блока на основе параметров квантования, соответствующих квантованным коэффициентам. Обратный квантователь 204 затем выводит обратно квантованные коэффициенты (т.е. коэффициенты преобразования) текущего блока в обратный преобразователь 206.
Обратный преобразователь
[0129]
Обратный преобразователь 206 восстанавливает ошибки прогнозирования посредством обратного преобразования коэффициентов преобразования, которые представляют собой вводы из обратного квантователя 204.
[0130] Например, когда информация, полученная посредством синтаксического анализа (парсинга) из кодированного потока битов, указывает применение EMT или AMT (например, когда AMT-флаг задается как истинный), обратный преобразователь 206 обратно преобразует коэффициенты преобразования текущего блока на основе информации, указывающей выявленный посредством синтаксического анализа тип преобразования.
[0131] Кроме того, например, когда информация, полученная посредством синтаксического анализа из кодированного потока битов, указывает применение NSST, обратный преобразователь 206 применяет вторичное обратное преобразование к коэффициентам преобразования.
Сумматор
[0132]
Сумматор 208 восстанавливает текущий блок посредством суммирования ошибок прогнозирования, которые представляют собой вводы из обратного преобразователя 206, и прогнозных выборок, которые представляют собой вводы из контроллера 220 прогнозирования. Сумматор 208 затем выводит восстановленный блок в запоминающее устройство 210 блоков и контурный фильтр 212.
Запоминающее устройство блоков
[0133]
Запоминающее устройство 210 блоков представляет собой устройство хранения данных для сохранения блоков в кадре, который должен декодироваться (в дальнейшем называется "текущим кадром") для ссылки при внутреннем прогнозировании. Более конкретно, запоминающее устройство 210 блоков сохраняет восстановленные блоки, выводимые из сумматора 208.
Контурный фильтр
[0134]
Контурный фильтр 212 применяет контурный фильтр к блокам, восстановленным посредством сумматора 208, и выводит фильтрованные восстановленные блоки в запоминающее устройство 214 кадров и, например, устройство отображения.
[0135] Когда информация, указывающая активацию или деактивацию ALF, полученного посредством синтаксического анализа из кодированного потока битов, указывает "активирован", один фильтр из множества фильтров выбирается на основе направления и активности локальных градиентов, и выбранный фильтр применяется к восстановленному блоку.
Запоминающее устройство кадров
[0136]
Запоминающее устройство 214 кадров представляет собой устройство хранения данных для сохранения опорных кадров, используемых при взаимном прогнозировании, и также называется "буфером кадров". Более конкретно, запоминающее устройство 214 кадров сохраняет восстановленные блоки, фильтрованные посредством контурного фильтра 212.
Модуль внутреннего прогнозирования
[0137]
Модуль 216 внутреннего прогнозирования формирует прогнозный сигнал (внутренний прогнозный сигнал) посредством внутреннего прогнозирования со ссылкой на блок или блоки в текущем кадре и сохраняет в запоминающем устройстве 210 блоков. Более конкретно, модуль 216 внутреннего прогнозирования формирует внутренний прогнозный сигнал посредством внутреннего прогнозирования со ссылкой на выборки (например, значения сигнала яркости и/или сигнала цветности) блока или блоков, соседних с текущим блоком, и затем выводит внутренний прогнозный сигнал в контроллер 220 прогнозирования.
[0138] Следует отметить, что, когда режим внутреннего прогнозирования, в котором блок сигналов цветности внутренне прогнозируется из блока сигналов яркости, выбирается, модуль 216 внутреннего прогнозирования может прогнозировать компонент сигнала цветности текущего блока на основе компонента сигнала яркости текущего блока.
[0139] Кроме того, когда информация, указывающая применение PDPC, получается посредством синтаксического анализа из кодированного потока битов, модуль 216 внутреннего прогнозирования корректирует пиксельные значения после внутреннего прогнозирования на основе горизонтальных/вертикальных опорных пиксельных градиентов.
Модуль взаимного прогнозирования
[0140]
Модуль 218 взаимного прогнозирования прогнозирует текущий блок со ссылкой на опорный кадр, сохраненный в запоминающем устройстве 214 кадров. Взаимное прогнозирование выполняется в расчете на текущий блок или в расчете на субблок (например, в расчете на блок 4*4) в текущем блоке. Например, модуль 218 взаимного прогнозирования формирует взаимный прогнозный сигнал текущего блока или субблока посредством компенсации движения посредством использования информации движения (например, вектора движения), полученной посредством синтаксического анализа из кодированного потока битов, и выводит взаимный прогнозный сигнал в контроллер 220 прогнозирования.
[0141] Следует отметить, что, когда информация, полученная посредством синтаксического анализа из кодированного потока битов, указывает применение OBMC-режима, модуль 218 взаимного прогнозирования формирует взаимный прогнозный сигнал с использованием информации движения для соседнего блока в дополнение к информации движения для текущего блока, полученной из оценки движения.
[0142] Кроме того, когда информация, полученная посредством синтаксического анализа из кодированного потока битов, указывает применение FRUC-режима, модуль 218 взаимного прогнозирования извлекает информацию движения посредством выполнения оценки движения в соответствии со способом сопоставления с шаблоном (билатеральное сопоставление или сопоставление с эталоном), полученным посредством синтаксического анализа из кодированного потока битов. Модуль 218 взаимного прогнозирования затем выполняет компенсацию движения с использованием извлеченной информации движения.
[0143] Кроме того, когда BIO-режим должен применяться, модуль 218 взаимного прогнозирования извлекает вектор движения на основе модели при условии равномерного прямолинейного движения. Кроме того, когда информация, полученная посредством синтаксического анализа из кодированного потока битов, указывает то, что аффинный режим прогнозирования с компенсацией движения должен применяться, модуль 218 взаимного прогнозирования извлекает вектор движения каждого субблока на основе векторов движения соседних блоков.
Контроллер прогнозирования
[0144]
Контроллер 220 прогнозирования выбирает либо внутренний прогнозный сигнал, либо взаимный прогнозный сигнал и выводит выбранный прогнозный сигнал в сумматор 208.
Вариант 2 осуществления
[0145]
В дальнейшем подробно описываются процесс кодирования и процесс декодирования согласно варианту 2 осуществления со ссылкой на фиг. 11 и фиг. 12, и в дальнейшем подробно описываются кодер и декодер согласно варианту 2 осуществления со ссылкой на фиг. 15 и фиг. 16.
Процесс кодирования
[0146]
Фиг. 11 иллюстрирует процесс кодирования видео согласно варианту 2 осуществления.
[0147] Во-первых, на этапе S1001, первый параметр для идентификации, из множества режимов сегментации, режима сегментации для сегментации первого блока на субблоки записывается в поток битов. Использование режима сегментации должно приводить к сегментации блока на субблоки. Использование различных режимов сегментации может приводить к сегментации блока на субблоки с различными формами либо с различными высотами или различными ширинами.
[0148] Фиг. 28 иллюстрирует примеры режимов сегментации для сегментации блока N пикселов на N пикселов в варианте 2 осуществления. На фиг. 28, (a)-(h) показывают различные режимы сегментации. Как проиллюстрировано на фиг. 28, использование режима (a) сегментации сегментирует блок N пикселов на N пикселов (значение N может составлять любое значение в диапазоне от 8 до 128, которые являются целыми кратными 4, например, блок 16 пикселов на 16 пикселов) на два субблока N/2 пикселов на N пикселов (например, на субблоки 8 пикселов на 16 пикселов). Использование режима (b) сегментации сегментирует блок N пикселов на N пикселов на субблок N/4 пикселов на N пикселов и субблок 3N/4 пикселов на N пикселов (например, на субблок 4 пиксела на 16 пикселов и субблок 12 пикселов на 16 пикселов). Использование режима (c) сегментации сегментирует блок N пикселов на N пикселов на субблок 3N/4 пикселов на N пикселов и субблок N/4 пикселов на N пикселов (например, на субблок 12 пикселов на 16 пикселов и субблок 4 пиксела на 16 пикселов). Использование режима (d) сегментации сегментирует блок N пикселов на N пикселов на субблок N/4 пикселов на N пикселов, субблок N/2 пикселов на N пикселов и субблок N/4 пикселов на N пикселов (например, на субблок 4 пиксела на 16 пикселов, субблок 8 пикселов на 16 пикселов и субблок 4 пиксела на 16 пикселов). Использование режима (e) сегментации сегментирует блок N пикселов на N пикселов на два субблока N пикселов на N/2 пикселов (например, на субблоки 16 пикселов на 8 пикселов). Использование режима (f) сегментации сегментирует блок N пикселов на N пикселов на субблок N пикселов на N/4 пикселов и субблок N пикселов на 3N/4 пикселов (например, на субблок 16 пикселов на 4 пиксела и субблок 16 пикселов на 12 пикселов). Использование режима (g) сегментации сегментирует блок N пикселов на N пикселов на субблок N пикселов на 3N/4 пикселов и субблок N пикселов на N/4 пикселов (например, на субблок 16 пикселов на 12 пикселов и субблок 16 пикселов на 4 пиксела). Использование режима (h) сегментации сегментирует блок N пикселов на N пикселов на субблок N пикселов на N/4 пикселов, субблок N пикселов на N/2 пикселов и субблок N пикселов на N/4 пикселов (например, на субблок 16 пикселов на 4 пиксела, субблок 16 пикселов на 8 пикселов и субблок 16 пикселов на 4 пиксела).
[0149] Затем, на этапе S1002, определяется то, идентифицирует или нет первый параметр первый режим сегментации.
[0150] Затем, на этапе S1003, на основе, по меньшей мере, определения того, идентифицирует ли первый параметр первый режим сегментации, определяется то, не должен либо должен второй режим сегментации выбираться в качестве возможного варианта для сегментации второго блока.
[0151] Два различных набора режимов сегментации могут разбивать блок на субблоки идентичных форм и размеров. Например, как проиллюстрировано на фиг. 31A, субблоки из (1b) и (2c) имеют идентичные формы и размеры. Набор режимов сегментации может включать в себя, по меньшей мере, два режима сегментации. Например, набор режимов сегментации может включать в себя вертикальное разбиение троичного дерева с последующим вертикальным разбиением двоичного дерева для центрального субблока и отсутствие разбиения для других субблоков, как проиллюстрировано в (1a) и (1b) на фиг. 31A. Другой набор режимов сегментации, например, может включать в себя вертикальное разбиение двоичного дерева с последующим вертикальным разбиением двоичного дерева для обоих из субблоков, как проиллюстрировано в (2a), (2b) и (2c) на фиг. 31A. Оба набора режимов сегментации должны приводить к субблокам идентичных форм и размеров.
[0152] При выборе из двух наборов режимов сегментации, которые приводят к разбиению блока на субблоки идентичных форм и размеров, и причем каждый из наборов режимов сегментации при кодировании в потоке битов имеет различное количество элементов разрешения (бинов) или различное количество битов, набор режимов сегментации, который имеет меньшее количество элементов разрешения или меньшее количество битов, выбирается из двух наборов. Следует отметить, что количество элементов разрешения и количество битов являются эквивалентными объему кода.
[0153] При выборе из двух наборов режимов сегментации, которые приводят к разбиению блока на субблоки идентичных форм и размеров, и причем каждый из наборов режимов сегментации при кодировании в потоке битов имеет идентичное количество элементов разрешения или идентичное количество битов, набор режимов сегментации, который появляется первым в предварительно определенном порядке множества наборов режимов сегментации, выбирается из двух наборов. Пример предварительно определенного порядка может представлять собой порядок на основе количества режимов сегментации в каждом наборе режимов сегментации.
[0154] Фиг. 31A и фиг. 31B иллюстрируют пример разбиения блока на субблоки с использованием набора режимов сегментации с меньшим количеством элементов разрешения при кодировании режимов сегментации. В этом примере, когда левый блок N пикселов на N пикселов вертикально разбивается на два субблока, второй режим сегментации на этапе (2c) для правого блока N пикселов на N пикселов не выбирается. Это обусловлено тем, что в способе кодирования на основе режима сегментации на фиг. 31B, второй набор режимов сегментации (2a, 2b, 2c) должен требовать большего количества элементов разрешения для кодирования режима сегментации по сравнению с первым набором режимов сегментации (1a, 1b).
[0155] Фиг. 32A-32C иллюстрируют пример разбиения блока на субблоки с использованием набора режимов сегментации, который появляется первым в предварительно определенном порядке множества наборов режимов сегментации. В этом примере, когда верхний блок 2N пикселов на N/2 пикселов вертикально разбивается на три субблока, второй режим сегментации на этапе (2c) для нижнего блока 2N пикселов на N/2 пикселов не выбирается. Это обусловлено тем, что в способе кодирования на основе режима сегментации на фиг. 32B, второй набор режимов сегментации (2a, 2b, 2c) имеет количество элементов разрешения, идентичное количеству элементов разрешения первого набора режимов сегментации (1a, 1b, 1c, 1d), и появляется после первого набора режимов сегментации (1a, 1b, 1c, 1d) в предварительно определенном порядке наборов режимов сегментации на фиг. 32C. Предварительно определенный порядок наборов режимов сегментации множества может быть фиксированным или может передаваться в служебных сигналах в потоке битов.
[0156] Фиг. 20 иллюстрирует пример, в котором второй режим сегментации не выбирается для сегментации блока 2N пикселов на N пикселов, как проиллюстрировано на этапе (2c), в варианте 2 осуществления. Как проиллюстрировано на фиг. 20, блок 2N пикселов на 2N пикселов (например, блок 16 пикселов на 16 пикселов) может разбиваться на четыре равных субблока размера N пикселов на N пикселов (например, 8 пикселов на 8 пикселов) с использованием первого способа разбиения (i), аналогично этапу (1a). Кроме того, блок 2N пикселов на 2N пикселов также может разбиваться на два равных субблока размера 2N пикселов на N пикселов (например, 16 пикселов на 8 пикселов) с использованием второго способа разбиения (2a), аналогично этапу (2a). Во время второго способа разбиения (ii), когда первый режим сегментации разбивает верхний блок 2N пикселов на N пикселов (первый блок) вертикально на два субблока N пикселов на N пикселов, аналогично этапу (2b), второй режим сегментации, который вертикально разбивает нижний блок 2N пикселов на N пикселов (второй блок) на два субблока N пикселов на N пикселов на этапе (2c), не выбирается в качестве возможного варианта для возможного режима сегментации. Это обусловлено тем, что второй режим сегментации должен формировать размеры субблоков, идентичные размерам субблоков при квадратическом разбиении из первого способа разбиения (i).
[0157] Таким образом, на фиг 20, когда первый блок вертикально разбивается на два равных субблока, если первый режим сегментации используется, и второй блок, вертикально соседний с первым блоком, вертикально разбивается на два равных субблока, если второй режим сегментации используется, второй режим сегментации не выбирается в качестве возможного варианта.
[0158] Фиг. 21 иллюстрирует пример, в котором второй режим сегментации не выбирается для сегментации блока N пикселов на 2N пикселов, как проиллюстрировано на этапе (2c), в варианте 2 осуществления. Как проиллюстрировано на фиг. 21, блок 2N пикселов на 2N пикселов может разбиваться на четыре равных субблока N пикселов на N пикселов с использованием первого способа разбиения (i). Кроме того, аналогично этапу (2a), блок 2N пикселов на 2N пикселов также может вертикально разбиваться на два равных субблока N пикселов на 2N пикселов (например, 8 пикселов на 16 пикселов) с использованием второго способа разбиения (ii). Во время второго способа разбиения (ii), когда первый режим сегментации разбивает левый блок N пикселов на 2N пикселов (первый блок) горизонтально на два субблока N пикселов на N пикселов, аналогично этапу (2b), второй режим сегментации, который горизонтально разбивает правый блок N пикселов на 2N пикселов (второй блок) на два субблока N пикселов на N пикселов на этапе (2c), не выбирается в качестве возможного варианта для возможного режима сегментации. Это обусловлено тем, что второй режим сегментации должен формировать размеры субблоков, идентичные размерам субблоков при квадратическом разбиении из первого способа разбиения (i).
[0159] Таким образом, на фиг 21, когда первый блок горизонтально разбивается на два равных субблока, если первый режим сегментации используется, и второй блок, горизонтально соседний с первым блоком, горизонтально разбивается на два равных субблока, если второй режим сегментации используется, второй режим сегментации не выбирается в качестве возможного варианта.
[0160] Фиг. 40 иллюстрирует пример, в котором сегмент 4Nx2N на фиг. 20 разбивается на три при соотношении 1:2:1, к примеру, Nx2N, 2Nx2N и Nx2N. Здесь, когда верхний блок должен разбиваться на три, режим сегментации для разбиения нижнего блока на три при соотношении 1:2:1 не выбирается в качестве возможного варианта для возможного режима сегментации. Разбиение на три может выполняться при соотношении, отличающемся от 1:2:1. Помимо этого, может выполняться разбиение более чем на 3, и даже при разбиении на два, соотношение может отличаться от 1:1, к примеру, 1:2 или 1:3. Хотя фиг. 40 иллюстрирует пример разбиения горизонтально сначала, идентичное ограничение также может применяться при разбиении вертикально сначала.
[0161] Фиг. 41 и фиг. 42 иллюстрируют пример, в котором идентичное ограничение применяется в случае, если первый блок представляет собой прямоугольник.
[0162] Фиг. 43 иллюстрирует пример второго ограничения, когда квадрат горизонтально разбивается на три и дополнительно горизонтально разбивается на две равных части. При применении ограничения на фиг. 43, на фиг. 40, можно выбирать режим сегментации для разбиения нижнего блока 4Nx2N на три при соотношении 1:2:3. Информация, указывающая то, какое из ограничения на фиг. 40 и ограничения на фиг. 43 должно применяться, может отдельно кодироваться в информации заголовка. Альтернативно, может применяться ограничение, имеющее меньший объем кода информации, указывающей сегмент. Например, при условии, что объем кодов информации, указывающей сегмент в случае 1 и случай 2, является таким, как показано ниже, разбиение случая 1 активируется, и разбиение случая 2 деактивируется. Другими словами, ограничение на фиг. 43 применяется.
(Случай 1) (1) После того, как квадрат горизонтально разбивается на два, (2) каждый из двух прямоугольных блоков вверху и внизу вертикально разбивается на три: (1) информация направления: 1 бит, информация количества сегментов: 1 бит, (2) (информация направления: 1 бит, информация количества сегментов: 1 бит) x 2 в сумме для 6 битов.
(Случай 2) (1) После того, как квадрат вертикально разбивается, (2) каждый из левого, центрального и правого прямоугольных блоков горизонтально разбивается на два: (1) информация направления: 1 бит, информация количества сегментов: 1 бит, (2) (информация направления: 1 бит, информация количества сегментов: 1 бит) x 3 в сумме для 8 битов.
[0163] Альтернативно, во время кодирования, предусмотрены случаи, когда соответствующий сегмент определяется при выборе режима сегментации в предварительно определенном порядке. Например, можно пробовать разбиение на два, затем пробовать разбиение на три или разбиение на четыре (2 равных части горизонтально и вертикально) и т.д. В это время, перед попыткой разбиения на три так, как показано на фиг. 43, попытка, которая начинается с разбиения на два, аналогично в примерам на фиг. 40, уже выполнена. Следовательно, при попытке, которая начинается с разбиения на два, ограничение на фиг. 43 применяется, поскольку сегменты, получающиеся в результате равного разбиения блока горизонтально и дополнительного вертикального разбиения двух блоков вверху и внизу на три, уже получаются. Таким образом, способ ограничения, который должен выбираться, может определяться на основе предварительно определенной схемы кодирования.
[0164] Фиг. 44 иллюстрирует пример, в котором во втором режиме сегментации, выбираемые режимы сегментации для сегментации второго блока в направлении, идентичном направлению первого режима сегментации, ограничены. Здесь, первый режим сегментации вертикально разбивается на три, и в силу этого, в это время, разбивание на два не может выбираться в качестве второго режима сегментации. С другой стороны, разбиение на два может выбираться для вертикального направления, которое представляет собой другое направление относительно первого режима сегментации (фиг. 45).
[0165] Фиг. 22 иллюстрирует пример, в котором второй режим сегментации не выбирается для сегментации блока N пикселов на N пикселов, как проиллюстрировано на этапе (2c), в варианте 2 осуществления. Как проиллюстрировано на фиг. 22, блок 2N пикселов на N пикселов (значение N может составлять любое значение в диапазоне от 8 до 128, которые являются целыми кратными 4, например, 16 пикселов на 8 пикселов) может разбиваться вертикально на субблок N/2 пикселов на N пикселов, субблок N пикселов на N пикселов и субблок N/2 пикселов на N пикселов (например, на субблок 4 пиксела на 8 пикселов, субблок 8 пикселов на 8 пикселов, субблок 4 пиксела на 8 пикселов), с использованием первого способа разбиения (i), аналогично этапу (1a). Кроме того, блок 2N пикселов на N пикселов также может разбиваться на два субблока N пикселов на N пикселов с использованием второго способа разбиения (ii), аналогично этапу (2a). Во время первого способа разбиения (i), центральный блок N пикселов на N пикселов может вертикально разбиваться на два субблока N/2 пикселов на N пикселов (например, 4 пиксела на 8 пикселов) на этапе (1b). Во время второго способа разбиения (ii), когда левый блок N пикселов на N пикселов (первый блок) вертикально разбивается на два субблока N/2 пикселов на N пикселов, аналогично этапу (2b), режим сегментации, который вертикально разбивает правый блок N пикселов на N пикселов (второй блок) на два субблока N/2 пикселов на N пикселов на этапе (2c), не выбирается в качестве возможного варианта для возможного режима сегментации. Это обусловлено тем, что режим сегментации должен формировать размеры субблоков, которые являются идентичными размерам субблоков, полученным из первого способа разбиения (i), или четыре субблока N/2 пикселов на N пикселов.
[0166] Таким образом, на фиг 22, когда первый блок вертикально разбивается на два равных субблока, если первый режим сегментации используется, и второй блок, горизонтально соседний с первым блоком, вертикально разбивается на два равных субблока, если второй режим сегментации используется, второй режим сегментации не выбирается в качестве возможного варианта.
[0167] Фиг. 23 иллюстрирует пример, в котором второй режим сегментации не выбирается для сегментации блока N пикселов на N пикселов, как проиллюстрировано на этапе (2c), в варианте 2 осуществления. Как проиллюстрировано на фиг. 23, блок N пикселов на 2N пикселов (значение N может составлять любое значение в диапазоне от 8 до 128, которые являются целыми кратными 4, например, 8 пикселов на 16 пикселов) может разбиваться на субблок N пикселов на N/2 пикселов, субблок N пикселов на N пикселов и субблок N пикселов на N/2 пикселов (например, на субблок 8 пикселов на 4 пиксела, субблок 8 пикселов на 8 пикселов, субблок 8 пикселов на 4 пиксела) с использованием первого способа разбиения (i), аналогично этапу (1a). Кроме того, блок N пикселов на 2N пикселов также может разбиваться на два субблока N пикселов на N пикселов с использованием второго способа разбиения, аналогично этапу (2a). Во время первого способа разбиения (i), центральный блок N пикселов на N пикселов может горизонтально разбиваться на два субблока N пикселов на N/2 пикселов, аналогично этапу (1b). Во время второго способа разбиения (ii), когда верхний N пикселов на N пикселов (первый блок) горизонтально разбивается на два субблока N пикселов на N/2 пикселов на этапе (2b), режим сегментации, который горизонтально разбивает нижний N пикселов на N пикселов (второй блок) на два субблока N пикселов на N/2 пикселов на этапе (2c), не выбирается в качестве возможного варианта для возможного режима сегментации. Это обусловлено тем, что режим сегментации должен формировать размеры субблоков, которые являются идентичными размерам субблоков, полученным из первого способа разбиения (i), или четыре субблока N пикселов на N/2 пикселов.
[0168] Таким образом, на фиг 23, когда первый блок горизонтально разбивается на два равных субблока, если первый режим сегментации используется, и второй блок, вертикально соседний с первым блоком, горизонтально разбивается на два равных субблока, если второй режим сегментации используется, второй режим сегментации не выбирается в качестве возможного варианта.
[0169] Если определяется то, что второй режим сегментации должен выбираться в качестве возможного варианта для сегментации второго блока (N на S1003), режим сегментации выбирается из множества режимов сегментации, которые включают в себя второй режим сегментации в качестве возможного варианта, на этапе S1004. На этапе S1005, второй параметр, указывающий результат выбора, записывается в поток битов.
[0170] Если определяется то, что второй режим сегментации не должен выбираться в качестве возможного варианта для сегментации второго блока (Y на S1003), режим сегментации, отличающийся от второго режима сегментации, выбирается для сегментации второго блока на этапе S1006. Здесь, выбранный режим сегментации сегментирует блок на субблоки с различными формами либо с различными размерами по сравнению с субблоками, которые должны формироваться посредством второго режима сегментации.
[0171] Фиг. 24 иллюстрирует пример сегментации блока 2N пикселов на N пикселов с использованием режима сегментации, выбранного, когда второй режим сегментации не должен выбираться, как проиллюстрировано на этапе (3), в варианте 2 осуществления. Как проиллюстрировано на фиг. 24, выбранный режим сегментации может разбивать текущий блок 2N пикселов на N пикселов (нижний блок в этом примере) на три субблока, как проиллюстрировано в (c) и (f) на фиг. 24. Размеры трех субблоков могут отличаться. Например, из трех субблоков, большой субблок может иметь ширину/высоту, в два раза превышающую ширину/высоту небольшого субблока. Кроме того, например, выбранный режим сегментации может разбивать текущий блок на два субблока с различными размерами (асимметричное двоичное дерево), как проиллюстрировано в (a), (b), (d) и (e) на фиг. 24. Например, когда асимметричное двоичное дерево используется, большой субблок может иметь ширину/высоту, в три раза превышающую ширину/высоту небольшого субблока.
[0172] Фиг. 25 иллюстрирует пример сегментации блока N пикселов на 2N пикселов с использованием режима сегментации, выбранного, когда второй режим сегментации не должен выбираться, как проиллюстрировано на этапе (3), в варианте 2 осуществления. Как проиллюстрировано на фиг. 25, выбранный режим сегментации может разбивать текущий блок N пикселов на 2N пикселов (правый блок в этом примере) на три субблока, как проиллюстрировано в (c) и (f) на фиг. 25. Размеры трех субблоков могут отличаться. Например, из трех субблоков, большой субблок может иметь ширину/высоту, в два раза превышающую ширину/высоту небольшого субблока. Кроме того, например, выбранный режим сегментации может разбивать текущий блок на два субблока с различными размерами (асимметричное двоичное дерево), как проиллюстрировано в (a), (b), (d) и (e) на фиг. 25. Например, когда асимметричное двоичное дерево используется, большой субблок может иметь ширину/высоту, в три раза превышающую ширину/высоту небольшого субблока.
[0173] Фиг. 26 иллюстрирует пример сегментации блока N пикселов на N пикселов с использованием режима сегментации, выбранного, когда второй режим сегментации не должен выбираться, как проиллюстрировано на этапе (3), в варианте 2 осуществления. Как проиллюстрировано на фиг. 26, блок 2N пикселов на N пикселов вертикально разбивается на два субблока N пикселов на N пикселов на этапе (1), и левый блок N пикселов на N пикселов вертикально разбивается на два субблока N/2 пикселов на N пикселов на этапе (2). На этапе (3), текущий блок может сегментироваться на три субблока с использованием режима сегментации, выбранного для текущего блока N пикселов на N пикселов (левого блока в этом примере), как проиллюстрировано в (c) и (f) на фиг. 26. Размеры трех субблоков могут отличаться. Например, из трех субблоков, большой субблок может иметь ширину/высоту, в два раза превышающую ширину/высоту небольшого субблока. Кроме того, например, выбранный режим сегментации может разбивать текущий блок на два субблока с различными размерами (асимметричное двоичное дерево), как проиллюстрировано в (a), (b), (d) и (e) на фиг. 26. Например, когда асимметричное двоичное дерево используется, большой субблок может иметь ширину/высоту, в три раза превышающую ширину/высоту небольшого субблока.
[0174] Фиг. 27 иллюстрирует пример сегментации блока N пикселов на N пикселов с использованием режима сегментации, выбранного, когда второй режим сегментации не должен выбираться, как проиллюстрировано на этапе (3), в варианте 2 осуществления. Как проиллюстрировано на фиг. 27, блок N пикселов на 2N пикселов горизонтально разбивается на два субблока N пикселов на N пикселов на этапе (1), и верхний блок N пикселов на N пикселов горизонтально разбивается на два субблока N пикселов на N/2 пикселов на этапе (2). На этапе (3), текущий блок может сегментироваться на три субблока с использованием режима сегментации, выбранного для текущего блока N пикселов на N пикселов (нижнего блока в этом примере), как проиллюстрировано в (c) и (f) на фиг. 27. Размеры трех субблоков могут отличаться. Например, из трех субблоков, большой субблок может иметь ширину/высоту, в два раза превышающую ширину/высоту небольшого субблока. Кроме того, например, выбранный режим сегментации может разбивать текущий блок на два субблока с различными размерами (асимметричное двоичное дерево), как проиллюстрировано в (a), (b), (d) и (e) на фиг. 27. Например, когда асимметричное двоичное дерево используется, большой субблок может иметь ширину/высоту, в три раза превышающую ширину/высоту небольшого субблока.
[0175] Фиг. 17 иллюстрирует возможные местоположения первого параметра в сжатом потоке видеобитов. Как проиллюстрировано на фиг. 17, первый параметр может находиться в наборе параметров видео, наборе параметров последовательности, наборе параметров кадра, заголовке серии последовательных макроблоков или единице дерева кодирования. Первый параметр может указывать способ для сегментации блока на множество субблоков. Например, первый параметр может включать в себя флаг, чтобы указывать то, должен ли блок сегментироваться в горизонтальном или вертикальном направлении. Первый параметр также может включать в себя параметр для того, чтобы указывать то, должен ли блок сегментироваться на два или более субблоков.
[0176] Фиг. 18 иллюстрирует возможные местоположения второго параметра в сжатом потоке видеобитов. Как проиллюстрировано на фиг. 18, второй параметр может находиться в наборе параметров видео, наборе параметров последовательности, наборе параметров кадра, заголовке серии последовательных макроблоков или единице дерева кодирования. Второй параметр может указывать способ для сегментации блока на множество субблоков. Например, второй параметр может включать в себя флаг, чтобы указывать то, должен ли блок сегментироваться в горизонтальном или вертикальном направлении. Второй параметр также может включать в себя параметр для того, чтобы указывать то, должен ли блок сегментироваться на два или более субблоков. Второй параметр идет после первого параметра в потоке битов, как проиллюстрировано на фиг. 19.
[0177] Первый блок и второй блок представляют собой различные блоки. Первый блок и второй блок могут быть включены в идентичный кадр. Например, первый блок может представлять собой верхний соседний блок относительно второго блока. Кроме того, например, первый блок может представлять собой левый соседний блок относительно второго блока.
[0178] На этапе S1007, второй блок сегментируется на субблоки с использованием выбранного режима сегментации. На этапе S1008, сегментированные блоки кодируются.
Кодер
[0179]
Фиг. 15 является блок-схемой, иллюстрирующей структуру кодера видео/изображений согласно варианту 2 или 3 осуществления.
[0180] Видеокодер 5000 представляет собой оборудование для кодирования входного видео/изображения на поблочной основе таким образом, чтобы формировать кодированный выходной поток битов. Как проиллюстрировано на фиг. 15, видеокодер 5000 включает в себя преобразователь 5001, квантователь 5002, обратный квантователь 5003, обратный преобразователь 5004, запоминающее устройство 5005 блоков, запоминающее устройство 5006 кадров, модуль 5007 внутреннего прогнозирования, модуль 5008 взаимного прогнозирования, энтропийный кодер 5009 и модуль 5010 определения сегментации на блоки.
[0181] Входное видео вводится в сумматор, и суммированное значение выводится в преобразователь 5001. Преобразователь 5001 преобразует суммированные значения в частотные коэффициенты на основе режима сегментации на блоки, извлекаемого из модуля 5010 определения сегментации на блоки, и выводит частотные коэффициенты в квантователь 5002. Режим сегментации на блоки может быть связан с режимом сегментации на блоки, типом сегментации на блоки или направлением сегментации на блоки. Квантователь 5002 квантует введенные квантованные коэффициенты и выводит квантованные значения в обратный квантователь 5003 и энтропийный кодер 5009.
[0182] Обратный квантователь 5003 обратно квантует квантованные значения, выведенные из квантователя 5002, и выводит частотные коэффициенты в обратный преобразователь 5004. Обратный преобразователь 5004 выполняет обратное преобразование частоты для частотных коэффициентов на основе режима сегментации на блоки, извлекаемого из модуля 5010 определения сегментации на блоки, с тем чтобы преобразовывать частотные коэффициенты в выборочные значения потока битов, и выводит выборочные значения в сумматор.
[0183] Сумматор суммирует выборочные значения потока битов, выведенные из обратного преобразователя 5004, с прогнозированными значениями видео/изображений, выведенными из модуля 5007, 5008 взаимного/внутреннего прогнозирования, и выводит суммированные значения в запоминающее устройство 5005 блоков или запоминающее устройство 5006 кадров для дополнительного прогнозирования. Модуль 5010 определения сегментации на блоки собирает информацию блоков из запоминающего устройства 5005 блоков или запоминающего устройства 5006 кадров, чтобы извлекать режим сегментации на блоки и параметры, связанные с режимом сегментации на блоки. Использование извлеченного режима сегментации на блоки должно приводить к сегментации блока на множество субблоков. Модуль 5007, 5008 взаимного/внутреннего прогнозирования выполняет поиск в видео/изображениях, сохраненных в запоминающем устройстве 5005 блоков, либо из видео/изображений в запоминающем устройстве 5006 кадров, восстановленных с использованием режима сегментации на блоки, извлекаемого из модуля 5010 определения сегментации на блоки, и оценивает зону видео/изображений, которая, например, является наиболее аналогичной входным видео/изображениям для прогнозирования.
[0184] Энтропийный кодер 5009 кодирует квантованные значения, выведенные из квантователя 5002, кодирует параметры из модуля 5010 определения сегментации на блоки и выводит поток битов.
Процесс декодирования
[0185]
Фиг. 12 иллюстрирует процесс декодирования видео согласно варианту 2 осуществления.
[0186] Во-первых, на этапе S2001, первый параметр для идентификации, из множества режимов сегментации, режима сегментации для сегментации первого блока на субблоки получается посредством синтаксического анализа из потока битов. Использование режима сегментации должно приводить к сегментации блока на субблоки, и использование различных режимов сегментации может приводить к сегментации блока на субблоки с различными формами либо с различными высотами или различными ширинами.
[0187] Фиг. 28 иллюстрирует примеры режимов сегментации для сегментации блока N пикселов на N пикселов в варианте 2 осуществления. На фиг. 28, (a)-(h) показывают различные режимы сегментации. Как проиллюстрировано на фиг. 28, использование режима (a) сегментации сегментирует блок N пикселов на N пикселов (значение N может составлять любое значение в диапазоне от 8 до 128, которые являются целыми кратными 4, например, блок 16 пикселов на 16 пикселов) на два субблока N/2 пикселов на N пикселов (например, на субблоки 8 пикселов на 16 пикселов). Использование режима (b) сегментации сегментирует блок N пикселов на N пикселов на субблок N/4 пикселов на N пикселов и субблок 3N/4 пикселов на N пикселов (например, на субблок 4 пиксела на 16 пикселов и субблок 12 пикселов на 16 пикселов). Использование режима (c) сегментации сегментирует блок N пикселов на N пикселов на субблок 3N/4 пикселов на N пикселов и субблок N/4 пикселов на N пикселов (например, на субблок 12 пикселов на 16 пикселов и субблок 4 пиксела на 16 пикселов). Использование режима (d) сегментации сегментирует блок N пикселов на N пикселов на субблок N/4 пикселов на N пикселов, субблок N/2 пикселов на N пикселов и субблок N/4 пикселов на N пикселов (например, на субблок 4 пиксела на 16 пикселов, субблок 8 пикселов на 16 пикселов и субблок 4 пиксела на 16 пикселов). Использование режима (e) сегментации сегментирует блок N пикселов на N пикселов на два субблока N пикселов на N/2 пикселов (например, на субблоки 16 пикселов на 8 пикселов). Использование режима (f) сегментации сегментирует блок N пикселов на N пикселов на субблок N пикселов на N/4 пикселов и субблок N пикселов на 3N/4 пикселов (например, на субблок 16 пикселов на 4 пиксела и субблок 16 пикселов на 12 пикселов). Использование режима (g) сегментации сегментирует блок N пикселов на N пикселов на субблок N пикселов на 3N/4 пикселов и субблок N пикселов на N/4 пикселов (например, на субблок 16 пикселов на 12 пикселов и субблок 16 пикселов на 4 пиксела). Использование режима (h) сегментации сегментирует блок N пикселов на N пикселов на субблок N пикселов на N/4 пикселов, субблок N пикселов на N/2 пикселов и субблок N пикселов на N/4 пикселов (например, на субблок 16 пикселов на 4 пиксела, субблок 16 пикселов на 8 пикселов и субблок 16 пикселов на 4 пиксела).
[0188] Затем, на этапе S2002, определяется то, идентифицирует ли первый параметр первый режим сегментации.
[0189] Затем, на этапе S2003, на основе, по меньшей мере, определения в отношении того, идентифицирует ли первый параметр первый режим сегментации, определяется то, не должен либо должен второй режим сегментации выбираться в качестве возможного варианта для сегментации второго блока.
[0190] Два различных набора режимов сегментации могут сегментировать блок на субблоки идентичных форм и размеров. Например, как проиллюстрировано на фиг. 31A, субблоки из (1b) и (2c) имеют идентичные формы и размеры. Набор режимов сегментации может включать в себя, по меньшей мере, два режима сегментации. Например, набор режимов сегментации может включать в себя вертикальное разбиение троичного дерева с последующим вертикальным разбиением двоичного дерева для центрального субблока и отсутствие разбиения для других субблоков, как проиллюстрировано в (1a) и (1b) на фиг. 31A. Кроме того, например, другой набор режимов сегментации может включать в себя вертикальное разбиение двоичного дерева с последующим вертикальным разбиением двоичного дерева для обоих из субблоков, как проиллюстрировано в (2a), (2b) и (2c) на фиг. 31A. Оба набора режимов сегментации должны приводить к субблокам идентичных форм и размеров.
[0191] При выборе из двух наборов режимов сегментации, которые приводят к разбиению блока на субблоки идентичных форм и размеров, и причем каждый из наборов режимов сегментации при кодировании в потоке битов имеет различное количество элементов разрешения или различное количество битов, набор режимов сегментации, который имеет меньшее количество элементов разрешения или меньшее количество битов, выбирается из двух наборов.
[0192] При выборе из двух наборов режимов сегментации, которые приводят к разбиению блока на субблоки идентичных форм и размеров, и причем каждый из наборов режимов сегментации при кодировании в потоке битов имеет идентичное количество элементов разрешения или идентичное количество битов, набор режимов сегментации, который появляется первым в предварительно определенном порядке множества наборов режимов сегментации, выбирается из двух наборов. Пример предварительно определенного порядка может представлять собой порядок на основе количества режимов сегментации в каждом наборе режимов сегментации.
[0193] Фиг. 31A и фиг. 31B иллюстрируют пример разбиения блока на субблоки с использованием набора режимов сегментации с меньшим количеством элементов разрешения при кодировании режимов сегментации. В этом примере, когда левый блок N пикселов на N пикселов вертикально разбивается на два субблока, второй режим сегментации на этапе (2c) для правого блока N пикселов на N пикселов не выбирается. Это обусловлено тем, что в способе кодирования на основе режима сегментации на фиг. 31B, второй набор режимов сегментации (2a, 2b, 2c) должен требовать большего количества элементов разрешения из кодирования режимов сегментации по сравнению с первым набором режимов сегментации (1a, 1b).
[0194] Фиг. 32A иллюстрирует пример разбиения блока на субблоки с использованием набора режимов сегментации, который появляется первым в предварительно определенном порядке множества наборов режимов сегментации. В этом примере, когда верхний блок 2N пикселов на N/2 пикселов вертикально разбивается на три субблока, второй режим сегментации на этапе (2c) для нижнего блока 2N пикселов на N/2 пикселов не выбирается. Это обусловлено тем, что в способе кодирования на основе режима сегментации на фиг. 32B, второй набор режимов сегментации (2a, 2b, 2c) имеет количество элементов разрешения, идентичное количеству элементов разрешения первого набора режимов сегментации (1a, 1b, 1c, 1d), и появляется после первого набора режимов сегментации (1a, 1b, 1c, 1d) в предварительно определенном порядке наборов режимов сегментации на фиг. 32C. Предварительно определенный порядок наборов режимов сегментации множества может быть фиксированным или может передаваться в служебных сигналах в потоке битов.
[0195] Фиг. 20 иллюстрирует пример, в котором второй режим сегментации не выбирается для сегментации блока 2N пикселов на N пикселов, как проиллюстрировано на этапе (2c), в варианте 1 осуществления. Как проиллюстрировано на фиг. 20, блок 2N пикселов на 2N пикселов (например, блок 16 пикселов на 16 пикселов) может разбиваться на четыре равных субблока размера N пикселов на N пикселов (например, 8 пикселов на 8 пикселов) с использованием первого способа разбиения (i), аналогично этапу (1a). Кроме того, блок 2N пикселов на 2N пикселов также может разбиваться на два равных субблока размера 2N пикселов на N пикселов (например, 16 пикселов на 8 пикселов) с использованием второго способа разбиения (2a), аналогично этапу (2a). Во время второго способа разбиения (ii), когда первый режим сегментации разбивает верхний блок 2N пикселов на N пикселов (первый блок) вертикально на два субблока N пикселов на N пикселов, аналогично этапу (2b), второй режим сегментации, который вертикально разбивает нижний блок 2N пикселов на N пикселов (второй блок) на два субблока N пикселов на N пикселов на этапе (2c), не выбирается в качестве возможного варианта для возможного режима сегментации. Это обусловлено тем, что второй режим сегментации должен формировать размеры субблоков, идентичные размерам субблоков при квадратическом разбиении из первого способа разбиения (i).
[0196] Таким образом, на фиг 20, когда первый блок вертикально разбивается на два равных субблока, если первый режим сегментации используется, и второй блок, вертикально соседний с первым блоком, вертикально разбивается на два равных субблока, если второй режим сегментации используется, второй режим сегментации не выбирается в качестве возможного варианта.
[0197] Фиг. 21 иллюстрирует пример, в котором второй режим сегментации не выбирается для сегментации блока N пикселов на 2N пикселов, как проиллюстрировано на этапе (2c), в варианте 2 осуществления. Как проиллюстрировано на фиг. 21, блок 2N пикселов на 2N пикселов может разбиваться на четыре равных субблока N пикселов на N пикселов с использованием первого способа разбиения (i). Кроме того, аналогично этапу (2a), блок 2N пикселов на 2N пикселов также может вертикально разбиваться на два равных субблока N пикселов на 2N пикселов (например, 8 пикселов на 16 пикселов) с использованием второго способа разбиения (ii). Во время второго способа разбиения (ii), когда первый режим сегментации разбивает левый блок N пикселов на 2N пикселов (первый блок) горизонтально на два субблока N пикселов на N пикселов, аналогично этапу (2b), второй режим сегментации, который горизонтально разбивает правый блок N пикселов на 2N пикселов (второй блок) на два субблока N пикселов на N пикселов на этапе (2c), не выбирается в качестве возможного варианта для возможного режима сегментации. Это обусловлено тем, что второй режим сегментации должен формировать размеры субблоков, идентичные размерам субблоков при квадратическом разбиении из первого способа разбиения (i).
[0198] Таким образом, на фиг 21, когда первый блок горизонтально разбивается на два равных субблока, если первый режим сегментации используется, и второй блок, горизонтально соседний с первым блоком, горизонтально разбивается на два равных субблока, если второй режим сегментации используется, второй режим сегментации не выбирается в качестве возможного варианта.
[0199] Фиг. 22 иллюстрирует пример, в котором второй режим сегментации не выбирается для сегментации блока N пикселов на N пикселов, как проиллюстрировано на этапе (2c), в варианте 2 осуществления. Как проиллюстрировано на фиг. 22, блок 2N пикселов на N пикселов (значение N может составлять любое значение в диапазоне от 8 до 128, которые являются целыми кратными 4, например, 16 пикселов на 8 пикселов) может разбиваться вертикально на субблок N/2 пикселов на N пикселов, субблок N пикселов на N пикселов и субблок N/2 пикселов на N пикселов (например, на субблок 4 пиксела на 8 пикселов, субблок 8 пикселов на 8 пикселов, субблок 4 пиксела на 8 пикселов), с использованием первого способа разбиения (i), аналогично этапу (1a). Кроме того, блок 2N пикселов на N пикселов также может разбиваться на два субблока N пикселов на N пикселов с использованием второго способа разбиения (ii), аналогично этапу (2a). Во время первого способа разбиения (i), центральный блок N пикселов на N пикселов может вертикально разбиваться на два субблока N/2 пикселов на N пикселов (например, 4 пиксела на 8 пикселов) на этапе (1b). Во время второго способа разбиения (ii), когда левый блок N пикселов на N пикселов (первый блок) вертикально разбивается на два субблока N/2 пикселов на N пикселов, аналогично этапу (2b), режим сегментации, который вертикально разбивает правый блок N пикселов на N пикселов (второй блок) на два субблока N/2 пикселов на N пикселов на этапе (2c), не выбирается в качестве возможного варианта для возможного режима сегментации. Это обусловлено тем, что режим сегментации должен формировать размеры субблоков, которые являются идентичными размерам субблоков, полученным из первого способа разбиения (i), или четыре субблока N/2 пикселов на N пикселов.
[0200] Таким образом, на фиг 22, когда первый блок вертикально разбивается на два равных субблока, если первый режим сегментации используется, и второй блок, горизонтально соседний с первым блоком, вертикально разбивается на два равных субблока, если второй режим сегментации используется, второй режим сегментации не выбирается в качестве возможного варианта.
[0201] Фиг. 23 иллюстрирует пример, в котором второй режим сегментации не выбирается для сегментации блока N пикселов на N пикселов, как проиллюстрировано на этапе (2c), в варианте 2 осуществления. Как проиллюстрировано на фиг. 23, блок N пикселов на 2N пикселов (значение N может составлять любое значение в диапазоне от 8 до 128, которые являются целыми кратными 4, например, 8 пикселов на 16 пикселов) может разбиваться на субблок N пикселов на N/2 пикселов, субблок N пикселов на N пикселов и субблок N пикселов на N/2 пикселов (например, на субблок 8 пикселов на 4 пиксела, субблок 8 пикселов на 8 пикселов, субблок 8 пикселов на 4 пиксела) с использованием первого способа разбиения (i), аналогично этапу (1a). Кроме того, блок N пикселов на 2N пикселов также может разбиваться на два субблока N пикселов на N пикселов с использованием второго способа разбиения, аналогично этапу (2a). Во время первого способа разбиения (i), центральный блок N пикселов на N пикселов может горизонтально разбиваться на два субблока N пикселов на N/2 пикселов, аналогично этапу (1b). Во время второго способа разбиения (ii), когда верхний N пикселов на N пикселов (первый блок) горизонтально разбивается на два субблока N пикселов на N/2 пикселов на этапе (2b), режим сегментации, который горизонтально разбивает нижний N пикселов на N пикселов (второй блок) на два субблока N пикселов на N/2 пикселов на этапе (2c), не выбирается в качестве возможного варианта для возможного режима сегментации. Это обусловлено тем, что режим сегментации должен формировать размеры субблоков, которые являются идентичными размерам субблоков, полученным из первого способа разбиения (i), или четыре субблока N пикселов на N/2 пикселов.
[0202] Таким образом, на фиг 23, когда первый блок горизонтально разбивается на два равных субблока, если первый режим сегментации используется, и второй блок, вертикально соседний с первым блоком, горизонтально разбивается на два равных субблока, если второй режим сегментации используется, второй режим сегментации не выбирается в качестве возможного варианта.
[0203] Если определяется то, что второй режим сегментации должен выбираться в качестве возможного варианта для сегментации второго блока (N на S2003), второй параметр получается посредством синтаксического анализа из потока битов, и режим сегментации выбирается из множества режимов сегментации, которые включают в себя второй режим сегментации в качестве возможного варианта, на этапе S2004.
[0204] Если определяется то, что второй режим сегментации не должен выбираться в качестве возможного варианта для сегментации второго блока (Y на S2003), режим сегментации, отличающийся от второго режима сегментации, выбирается для сегментации второго блока на этапе S2005. Здесь, выбранный режим сегментации сегментирует блок на субблоки с различными формами либо с различными размерами по сравнению с субблоками, которые должны формироваться посредством второго режима сегментации.
[0205] Фиг. 24 иллюстрирует пример сегментации блока 2N пикселов на N пикселов с использованием режима сегментации, выбранного, когда второй режим сегментации не должен выбираться, как проиллюстрировано на этапе (3), в варианте 2 осуществления. Как проиллюстрировано на фиг. 24, выбранный режим сегментации может разбивать текущий блок 2N пикселов на N пикселов (нижний блок в этом примере) на три субблока, как проиллюстрировано в (c) и (f) на фиг. 24. Размеры трех субблоков могут отличаться. Например, из трех субблоков, большой субблок может иметь ширину/высоту, в два раза превышающую ширину/высоту небольшого субблока. Кроме того, например, выбранный режим сегментации может разбивать текущий блок на два субблока с различными размерами (асимметричное двоичное дерево), как проиллюстрировано в (a), (b), (d) и (e) на фиг. 24. Например, когда асимметричное двоичное дерево используется, большой субблок может иметь ширину/высоту, в три раза превышающую ширину/высоту небольшого субблока.
[0206] Фиг. 25 иллюстрирует пример сегментации блока N пикселов на 2N пикселов с использованием режима сегментации, выбранного, когда второй режим сегментации не должен выбираться, как проиллюстрировано на этапе (3), в варианте 2 осуществления. Как проиллюстрировано на фиг. 25, выбранный режим сегментации может разбивать текущий блок N пикселов на 2N пикселов (правый блок в этом примере) на три субблока, как проиллюстрировано в (c) и (f) на фиг. 25. Размеры трех субблоков могут отличаться. Например, из трех субблоков, большой субблок может иметь ширину/высоту, в два раза превышающую ширину/высоту небольшого субблока. Кроме того, например, выбранный режим сегментации может разбивать текущий блок на два субблока с различными размерами (асимметричное двоичное дерево), как проиллюстрировано в (a), (b), (d) и (e) на фиг. 25. Например, когда асимметричное двоичное дерево используется, большой субблок может иметь ширину/высоту, в три раза превышающую ширину/высоту небольшого субблока.
[0207] Фиг. 26 иллюстрирует пример сегментации блока N пикселов на N пикселов с использованием режима сегментации, выбранного, когда второй режим сегментации не должен выбираться, как проиллюстрировано на этапе (3), в варианте 2 осуществления. Как проиллюстрировано на фиг. 26, блок 2N пикселов на N пикселов вертикально разбивается на два субблока N пикселов на N пикселов на этапе (1), и левый блок N пикселов на N пикселов вертикально разбивается на два субблока N/2 пикселов на N пикселов на этапе (2). На этапе (3), текущий блок может сегментироваться на три субблока с использованием режима сегментации, выбранного для текущего блока N пикселов на N пикселов (левого блока в этом примере), как проиллюстрировано в (c) и (f) на фиг. 26. Размеры трех субблоков могут отличаться. Например, из трех субблоков, большой субблок может иметь ширину/высоту, в два раза превышающую ширину/высоту небольшого субблока. Кроме того, например, выбранный режим сегментации может разбивать текущий блок на два субблока с различными размерами (асимметричное двоичное дерево), как проиллюстрировано в (a), (b), (d) и (e) на фиг. 26. Например, когда асимметричное двоичное дерево используется, большой субблок может иметь ширину/высоту, в три раза превышающую ширину/высоту небольшого субблока.
[0208] Фиг. 27 иллюстрирует пример сегментации блока N пикселов на N пикселов с использованием режима сегментации, выбранного, когда второй режим сегментации не должен выбираться, как проиллюстрировано на этапе (3), в варианте 2 осуществления. Как проиллюстрировано на фиг. 27, блок N пикселов на 2N пикселов горизонтально разбивается на два субблока N пикселов на N пикселов на этапе (1), и верхний блок N пикселов на N пикселов горизонтально разбивается на два субблока N пикселов на N/2 пикселов на этапе (2). На этапе (3), текущий блок может сегментироваться на три субблока с использованием режима сегментации, выбранного для текущего блока N пикселов на N пикселов (нижнего блока в этом примере), как проиллюстрировано в (c) и (f) на фиг. 27. Размеры трех субблоков могут отличаться. Например, из трех субблоков, большой субблок может иметь ширину/высоту, в два раза превышающую ширину/высоту небольшого субблока. Кроме того, например, выбранный режим сегментации может разбивать текущий блок на два субблока с различными размерами (асимметричное двоичное дерево), как проиллюстрировано в (a), (b), (d) и (e) на фиг. 27. Например, когда асимметричное двоичное дерево используется, большой субблок может иметь ширину/высоту, в три раза превышающую ширину/высоту небольшого субблока.
[0209] Фиг. 17 иллюстрирует возможные местоположения первого параметра в сжатом потоке видеобитов. Как проиллюстрировано на фиг. 17, первый параметр может находиться в наборе параметров видео, наборе параметров последовательности, наборе параметров кадра, заголовке серии последовательных макроблоков или единице дерева кодирования. Первый параметр может указывать способ для сегментации блока на множество субблоков. Например, первый параметр может включать в себя флаг, чтобы указывать то, должен ли блок сегментироваться в горизонтальном или вертикальном направлении. Первый параметр также может включать в себя параметр для того, чтобы указывать то, должен ли блок сегментироваться на два или более субблоков.
[0210] Фиг. 18 иллюстрирует возможные местоположения второго параметра в сжатом потоке видеобитов. Как проиллюстрировано на фиг. 18, второй параметр может находиться в наборе параметров видео, наборе параметров последовательности, наборе параметров кадра, заголовке серии последовательных макроблоков или единице дерева кодирования. Второй параметр может указывать способ для сегментации блока на множество субблоков. Например, второй параметр может включать в себя флаг, чтобы указывать то, должен ли блок сегментироваться в горизонтальном или вертикальном направлении. Второй параметр также может включать в себя параметр для того, чтобы указывать то, должен ли блок сегментироваться на два или более субблоков. Второй параметр идет после первого параметра в потоке битов, как проиллюстрировано на фиг. 19.
[0211] Первый блок и второй блок представляют собой различные блоки. Первый блок и второй блок могут быть включены в идентичный кадр. Например, первый блок может представлять собой верхний соседний блок относительно второго блока. Кроме того, например, первый блок может представлять собой левый соседний блок относительно второго блока.
[0212] На этапе S2006, второй блок сегментируется на субблоки с использованием выбранного режима сегментации. На этапе S2007, сегментированные блоки декодируются.
Декодер
[0213]
Фиг. 16 является блок-схемой, иллюстрирующей структуру декодера видео/изображений согласно варианту 2 или 3 осуществления.
[0214] Видеодекодер 6000 представляет собой оборудование для декодирования входного кодированного потока битов на поблочной основе и вывода видео/изображений. Как проиллюстрировано на фиг. 16, видеодекодер 6000 включает в себя энтропийный декодер 6001, обратный квантователь 6002, обратный преобразователь 6003, запоминающее устройство 6004 блоков, запоминающее устройство 6005 кадров, модуль 6006 внутреннего прогнозирования, модуль 6007 взаимного прогнозирования и модуль 6008 определения сегментации на блоки.
[0215] Входной кодированный поток битов вводится в энтропийный декодер 6001. После того, как входной кодированный поток битов вводится в энтропийный декодер 6001, энтропийный декодер 6001 декодирует входной кодированный поток битов, выводит параметры для модуля 6008 определения сегментации на блоки и выводит декодированные значения в обратный квантователь 6002.
[0216] Обратный квантователь 6002 обратно квантует декодированные значения и выводит частотные коэффициенты в обратный преобразователь 6003. Обратный преобразователь 6003 выполняет обратное преобразование частоты для частотных коэффициентов на основе режима сегментации на блоки, извлекаемого из модуля 6008 определения сегментации на блоки, чтобы преобразовывать частотные коэффициенты в выборочные значения, и выводит выборочные значения в сумматор. Режим сегментации на блоки может быть связан с режимом сегментации на блоки, типом сегментации на блоки или направлением сегментации на блоки. Сумматор суммирует выборочные значения с прогнозированными значениями видео/изображений, выведенными из модулей 6006, 6007 внутреннего/взаимного прогнозирования, и выводит суммированные значения на дисплей и выводит суммированные значения в запоминающее устройство 6004 блоков или запоминающее устройство 6005 кадров для дополнительного прогнозирования. Модуль 6008 определения сегментации на блоки собирает информацию блоков из запоминающего устройства 6004 блоков или запоминающего устройства 6005 кадров, чтобы извлекать режим сегментации на блоки с использованием параметров, декодированных посредством энтропийного декодера 6001. Использование извлеченного режима сегментации на блоки должно приводить к сегментации блока на множество субблоков. Помимо этого, модуль 6006, 6007 внутреннего/взаимного прогнозирования оценивает зону видео/изображений блока, который должен декодироваться, из видео/изображений, сохраненных в запоминающем устройстве 6004 блоков, либо из видео/изображений в запоминающем устройстве 6005 кадров, восстановленных с использованием режима сегментации на блоки, извлекаемого из модуля 6008 определения сегментации на блоки.
Вариант 3 осуществления
[0217]
В дальнейшем подробно описываются процесс кодирования и процесс декодирования согласно варианту 3 осуществления со ссылкой на фиг. 13 и фиг. 14. В дальнейшем подробно описываются кодер и декодер согласно варианту 3 осуществления со ссылкой на фиг. 15 и фиг. 16.
Процесс кодирования
[0218]
Фиг. 13 иллюстрирует процесс кодирования видео согласно варианту 3 осуществления.
[0219] Во-первых, на этапе S3001, первый параметр для идентификации, из множества типов сегментации, типа сегментации для сегментации первого блока на субблоки записывается в поток битов.
[0220] Затем, на этапе S3002, второй параметр, указывающий направление сегментации, записывается в поток битов. Второй параметр идет после первого параметра в потоке битов. Тип сегментации вместе с направлением сегментации может формировать режим сегментации. Тип сегментации указывает количество субблоков и соотношение сегментов для сегментации блока.
[0221] Фиг. 29 иллюстрирует примеры типов сегментации и направлений сегментации для сегментации блока N пикселов на N пикселов в варианте 3 осуществления. На фиг. 29, (1), (2), (3) и (4) представляют собой различные типы сегментации, (1a), (2a), (3a) и (4a) представляют собой различные режимы сегментации из связанных типов сегментации в вертикальном направлении сегментации, и (1b), (2b), (3b) и (4b) представляют собой различные режимы сегментации из связанных типов сегментации в горизонтальном направлении сегментации. Как проиллюстрировано на фиг. 29, блок N пикселов на N пикселов сегментируется с использованием режима сегментации (1a), когда он сегментируется с симметричным двоичным деревом (т.е. на два субблока) в вертикальном направлении сегментации с соотношением 1:1 сегментов. Блок N пикселов на N пикселов сегментируется с использованием режима сегментации (1b), когда он сегментируется с симметричным двоичным деревом (т.е. на два субблока) в горизонтальном направлении сегментации с соотношением 1:1 сегментов. Блок N пикселов на N пикселов сегментируется с использованием режима сегментации (2a), когда он сегментируется с асимметричным двоичным деревом (т.е. на два субблока) в вертикальном направлении сегментации при соотношении 1:3 сегментов. Блок N пикселов на N пикселов сегментируется с использованием режима сегментации (2b), когда он сегментируется с асимметричным двоичным деревом (т.е. на два субблока) в горизонтальном направлении сегментации при соотношении 1:3 сегментов. Блок N пикселов на N пикселов сегментируется с использованием режима сегментации (3a), когда он сегментируется с асимметричным двоичным деревом (т.е. на два субблока) в вертикальном направлении сегментации при соотношении 3:1 сегментов. Блок N пикселов на N пикселов сегментируется с использованием режима сегментации (3b), когда он сегментируется с асимметричным двоичным деревом (т.е. на два субблока) в горизонтальном направлении сегментации при соотношении 3:1 сегментов. Блок N пикселов на N пикселов сегментируется с использованием режима сегментации (4a), когда он сегментируется с троичным деревом (т.е. на три субблока) в вертикальном направлении сегментации при соотношении 1:2:1 сегментов. Блок N пикселов на N пикселов сегментируется с использованием режима сегментации (4b), когда он сегментируется с троичным деревом (или на три субблока) в горизонтальном направлении сегментации при соотношении 1:2:1 сегментов.
[0222] Фиг. 17 иллюстрирует возможные местоположения первого параметра в сжатом потоке видеобитов. Как проиллюстрировано на фиг. 17, первый параметр может находиться в наборе параметров видео, наборе параметров последовательности, наборе параметров кадра, заголовке серии последовательных макроблоков или единице дерева кодирования. Первый параметр может указывать способ для сегментации блока на множество субблоков. Например, первый параметр может включать в себя флаг, чтобы указывать то, должен ли блок сегментироваться в горизонтальном или вертикальном направлении. Первый параметр также может включать в себя параметр для того, чтобы указывать то, должен ли блок сегментироваться на два или более субблоков.
[0223] Фиг. 18 иллюстрирует возможные местоположения второго параметра в сжатом потоке видеобитов. Как проиллюстрировано на фиг. 18, второй параметр может находиться в наборе параметров видео, наборе параметров последовательности, наборе параметров кадра, заголовке серии последовательных макроблоков или единице дерева кодирования. Второй параметр может указывать способ для сегментации блока на множество субблоков. Например, второй параметр может включать в себя флаг, чтобы указывать то, должен ли блок сегментироваться в горизонтальном или вертикальном направлении. Второй параметр также может включать в себя параметр для того, чтобы указывать то, должен ли блок сегментироваться на два или более субблоков. Второй параметр идет после первого параметра в потоке битов, как проиллюстрировано на фиг. 19.
[0224] Фиг. 30 иллюстрирует преимущество кодирования типа сегментации до направления сегментации по сравнению с кодированием направления сегментации до типа сегментации. В этом примере, когда горизонтальное направление сегментации деактивируется вследствие неподдерживаемого размера (16 пикселов на 2 пиксела), нет необходимости кодировать направление сегментации. Направление сегментации определяется в качестве вертикального направления сегментации, поскольку горизонтальное направление сегментации деактивируется в этом примере. Кодирование типа сегментации до направления сегментации сокращает количество битов кодирования из кодирования направления сегментации по сравнению с кодированием направления сегментации до типа сегментации.
[0225] Таким образом, можно определять то, может ли блок сегментироваться в каждом из горизонтального направления и вертикального направления, на основе предварительно определенного условия для разрешенной или неразрешенной сегментации на блоки. После этого, когда определяется то, что сегментация является возможной в только одном из горизонтального направления и вертикального направления, запись направления сегментации в поток битов может пропускаться. Помимо этого, когда определяется то, что эта сегментация является невозможной как в горизонтальном направлении, так и в вертикальном направлении, в дополнение к направлению сегментации, запись типа сегментации в поток битов также может пропускаться.
[0226] Предварительно определенное условие для разрешенной или неразрешенной сегментации на блоки задается, например, посредством размера (количества пикселов) либо количества раз, когда выполняется сегментация. Условие для разрешенной или неразрешенной сегментации на блоки может быть предварительно задано в стандартных технических требованиях. Кроме того, условие для разрешенной или неразрешенной сегментации на блоки может быть включено в набор параметров видео, набор параметров последовательности, набор параметров кадра, заголовок серии последовательных макроблоков или единицу дерева кодирования. Условие для разрешенной или неразрешенной сегментации на блоки может быть фиксированным для всех блоков и может динамически переключаться согласно свойству блока (например, блок сигналов яркости и сигналов цветности) или свойству кадра (например, I-, P- и B-кадр).
[0227] На этапе S3003, блок сегментируется на субблоки с использованием идентифицированного типа сегментации и указываемого направления сегментации. На этапе S3004, сегментированные блоки кодируются.
Кодер
[0228]
Фиг. 15 является блок-схемой, иллюстрирующей структуру кодера видео/изображений согласно варианту 2 или 3 осуществления.
[0229] Видеокодер 5000 представляет собой оборудование для кодирования входного видео/изображения на поблочной основе таким образом, чтобы формировать кодированный выходной поток битов. Как проиллюстрировано на фиг. 15, видеокодер 5000 включает в себя преобразователь 5001, квантователь 5002, обратный квантователь 5003, обратный преобразователь 5004, запоминающее устройство 5005 блоков, запоминающее устройство 5006 кадров, модуль 5007 внутреннего прогнозирования, модуль 5008 взаимного прогнозирования, энтропийный кодер 5009 и модуль 5010 определения сегментации на блоки.
[0230] Входное видео вводится в сумматор, и суммированное значение выводится в преобразователь 5001. Преобразователь 5001 преобразует суммированные значения в частотные коэффициенты на основе типа и направления сегментации на блоки, извлекаемого из модуля 5010 определения сегментации на блоки, и выводит частотные коэффициенты в квантователь 5002. Тип и направление сегментации на блоки могут быть связаны с режимом сегментации на блоки, типом сегментации на блоки или направлением сегментации на блоки. Квантователь 5002 квантует введенные квантованные коэффициенты и выводит квантованные значения в обратный квантователь 5003 и энтропийный кодер 5009.
[0231] Обратный квантователь 5003 обратно квантует квантованные значения, выведенные из квантователя 5002, и выводит частотные коэффициенты в обратный преобразователь 5004. Обратный преобразователь 5004 выполняет обратное преобразование частоты для частотных коэффициентов на основе типа и направления сегментации на блоки, извлекаемого из модуля 5010 определения сегментации на блоки, с тем чтобы преобразовывать частотные коэффициенты в выборочные значения потока битов, и выводит выборочные значения в сумматор.
[0232] Сумматор суммирует выборочные значения потока битов, выведенные из обратного преобразователя 5004, с прогнозированными значениями видео/изображений, выведенными из модуля 5007, 5008 взаимного/внутреннего прогнозирования, и выводит суммированные значения в запоминающее устройство 5005 блоков или запоминающее устройство 5006 кадров для дополнительного прогнозирования. Модуль 5010 определения сегментации на блоки собирает информацию блоков из запоминающего устройства 5005 блоков или запоминающего устройства 5006 кадров, чтобы извлекать тип и направление сегментации на блоки и параметры, связанные с типом и направлением сегментации на блоки. Использование извлеченного типа и направления сегментации на блоки должно приводить к сегментации блока на множество субблоков. Модуль 5007, 5008 взаимного/внутреннего прогнозирования выполняет поиск в видео/изображениях, сохраненных в запоминающем устройстве 5005 блоков, либо из видео/изображений в запоминающем устройстве 5006 кадров, восстановленных с использованием типа и направления сегментации на блоки, извлекаемого из модуля 5010 определения сегментации на блоки, и оценивает зону видео/изображений, которая, например, является наиболее аналогичной входным видео/изображениям для прогнозирования.
[0233] Энтропийный кодер 5009 кодирует квантованные значения, выведенные из квантователя 5002, кодирует параметры из модуля 5010 определения сегментации на блоки и выводит поток битов.
Процесс декодирования
[0234]
Фиг. 14 иллюстрирует процесс декодирования видео согласно варианту 3 осуществления.
[0235] Во-первых, на этапе S4001, первый параметр для идентификации, из множества типов сегментации, типа сегментации для сегментации первого блока на субблоки получается посредством синтаксического анализа из потока битов.
[0236] Затем, на этапе S4002, второй параметр, указывающий направление сегментации получается посредством синтаксического анализа из потока битов. Второй параметр идет после первого параметра в потоке битов. Тип сегментации вместе с направлением сегментации может формировать режим сегментации. Тип сегментации указывает количество субблоков и соотношение сегментов для сегментации блока.
[0237] Фиг. 29 иллюстрирует примеры типов сегментации и направлений сегментации для сегментации блока N пикселов на N пикселов в варианте 3 осуществления. На фиг. 29, (1), (2), (3) и (4) представляют собой различные типы сегментации, (1a), (2a), (3a) и (4a) представляют собой различные режимы сегментации из связанных типов сегментации в вертикальном направлении сегментации, и (1b), (2b), (3b) и (4b) представляют собой различные режимы сегментации из связанных типов сегментации в горизонтальном направлении сегментации. Как проиллюстрировано на фиг. 29, блок N пикселов на N пикселов сегментируется с использованием режима сегментации (1a), когда он сегментируется с симметричным двоичным деревом (т.е. на два субблока) в вертикальном направлении сегментации с соотношением 1:1 сегментов. Блок N пикселов на N пикселов сегментируется с использованием режима сегментации (1b), когда он сегментируется с симметричным двоичным деревом (т.е. на два субблока) в горизонтальном направлении сегментации с соотношением 1:1 сегментов. Блок N пикселов на N пикселов сегментируется с использованием режима сегментации (2a), когда он сегментируется с асимметричным двоичным деревом (т.е. на два субблока) в вертикальном направлении сегментации при соотношении 1:3 сегментов. Блок N пикселов на N пикселов сегментируется с использованием режима сегментации (2b), когда он сегментируется с асимметричным двоичным деревом (т.е. на два субблока) в горизонтальном направлении сегментации при соотношении 1:3 сегментов. Блок N пикселов на N пикселов сегментируется с использованием режима сегментации (3a), когда он сегментируется с асимметричным двоичным деревом (т.е. на два субблока) в вертикальном направлении сегментации при соотношении 3:1 сегментов. Блок N пикселов на N пикселов сегментируется с использованием режима сегментации (3b), когда он сегментируется с асимметричным двоичным деревом (т.е. на два субблока) в горизонтальном направлении сегментации при соотношении 3:1 сегментов. Блок N пикселов на N пикселов сегментируется с использованием режима сегментации (4a), когда он сегментируется с троичным деревом (т.е. на три субблока) в вертикальном направлении сегментации при соотношении 1:2:1 сегментов. Блок N пикселов на N пикселов сегментируется с использованием режима сегментации (4b), когда он сегментируется с троичным деревом (или на три субблока) в горизонтальном направлении сегментации при соотношении 1:2:1 сегментов.
[0238] Фиг. 17 иллюстрирует возможные местоположения первого параметра в сжатом потоке видеобитов. Как проиллюстрировано на фиг. 17, первый параметр может находиться в наборе параметров видео, наборе параметров последовательности, наборе параметров кадра, заголовке серии последовательных макроблоков или единице дерева кодирования. Первый параметр может указывать способ для сегментации блока на множество субблоков. Например, первый параметр может включать в себя идентификатор вышеуказанного типа сегментации. Например, первый параметр может включать в себя флаг, чтобы указывать то, должен ли блок сегментироваться в горизонтальном или вертикальном направлении. Первый параметр также может включать в себя параметр для того, чтобы указывать то, должен ли блок сегментироваться на два или более субблоков.
[0239] Фиг. 18 иллюстрирует возможные местоположения второго параметра в сжатом потоке видеобитов. Как проиллюстрировано на фиг. 18, второй параметр может находиться в наборе параметров видео, наборе параметров последовательности, наборе параметров кадра, заголовке серии последовательных макроблоков или единице дерева кодирования. Второй параметр может указывать способ для сегментации блока на множество субблоков. Например, второй параметр может включать в себя флаг, чтобы указывать то, должен ли блок сегментироваться в горизонтальном или вертикальном направлении. В частности, второй параметр может включать в себя параметр для того, чтобы указывать направление сегментации. Второй параметр также может включать в себя параметр для того, чтобы указывать то, должен ли блок сегментироваться на два или более субблоков. Второй параметр идет после первого параметра в потоке битов, как проиллюстрировано на фиг. 19.
[0240] Фиг. 30 иллюстрирует преимущество кодирования типа сегментации до направления сегментации по сравнению с кодированием направления сегментации до типа сегментации. В этом примере, когда горизонтальное направление сегментации деактивируется вследствие неподдерживаемого размера (16 пикселов на 2 пиксела), нет необходимости кодировать направление сегментации. Направление сегментации определяется в качестве вертикального направления сегментации, поскольку горизонтальное направление сегментации деактивируется в этом примере. Кодирование типа сегментации до направления сегментации сокращает количество битов кодирования из кодирования направления сегментации по сравнению с кодированием направления сегментации до типа сегментации.
[0241] Таким образом, можно определять то, может ли блок сегментироваться в каждом из горизонтального направления и вертикального направления, на основе предварительно определенного условия для разрешенной или неразрешенной сегментации на блоки. После этого, когда определяется то, что сегментация является возможной в только одном из горизонтального направления и вертикального направления, синтаксический анализ направления сегментации из потока битов может пропускаться. Помимо этого, когда определяется то, что эта сегментация является невозможной как в горизонтальном направлении, так и в вертикальном направлении, в дополнение к направлению сегментации, синтаксический анализ типа сегментации из потока битов также может пропускаться.
[0242] Предварительно определенное условие для разрешенной или неразрешенной сегментации на блоки задается, например, посредством размера (количества пикселов) либо количества раз, когда выполняется сегментация. Это условие для разрешенной или неразрешенной сегментации на блоки может быть предварительно задано в стандартных технических требованиях. Кроме того, условие для разрешенной или неразрешенной сегментации на блоки может быть включено в набор параметров видео, набор параметров последовательности, набор параметров кадра, заголовок серии последовательных макроблоков или единицу дерева кодирования. Условие для разрешенной или неразрешенной сегментации на блоки может быть фиксированным для всех блоков и может динамически переключаться согласно свойству блока (например, блок сигналов яркости и сигналов цветности) или свойству кадра (например, I-, P- и B- кадр)
[0243] На этапе S4003, блок сегментируется на субблоки с использованием идентифицированного типа сегментации и указываемого направления сегментации. На этапе S4004, сегментированные блоки декодируются.
Декодер
[0244]
Фиг. 16 является блок-схемой, иллюстрирующей структуру декодера видео/изображений согласно варианту 2 или 3 осуществления.
[0245] Видеодекодер 6000 представляет собой оборудование для декодирования входного кодированного потока битов на поблочной основе и вывода видео/изображений. Как проиллюстрировано на фиг. 16, видеодекодер 6000 включает в себя энтропийный декодер 6001, обратный квантователь 6002, обратный преобразователь 6003, запоминающее устройство 6004 блоков, запоминающее устройство 6005 кадров, модуль 6006 внутреннего прогнозирования, модуль 6007 взаимного прогнозирования и модуль 6008 определения сегментации на блоки.
[0246] Входной кодированный поток битов вводится в энтропийный декодер 6001. После того, как входной кодированный поток битов вводится в энтропийный декодер 6001, энтропийный декодер 6001 декодирует входной кодированный поток битов, выводит параметры для модуля 6008 определения сегментации на блоки и выводит декодированные значения в обратный квантователь 6002.
[0247] Обратный квантователь 6002 обратно квантует декодированные значения и выводит частотные коэффициенты в обратный преобразователь 6003. Обратный преобразователь 6003 выполняет обратное преобразование частоты для частотных коэффициентов на основе типа и направления сегментации на блоки, извлекаемого из модуля 6008 определения сегментации на блоки, чтобы преобразовывать частотные коэффициенты в выборочные значения, и выводит выборочные значения в сумматор. Тип и направление сегментации на блоки могут быть связаны с режимом сегментации на блоки, типом сегментации на блоки или направлением сегментации на блоки. Сумматор суммирует выборочные значения с прогнозированными значениями видео/изображений, выведенными из модулей 6006, 6007 внутреннего/взаимного прогнозирования, и выводит суммированные значения на дисплей и выводит суммированные значения в запоминающее устройство 6004 блоков или запоминающее устройство 6005 кадров для дополнительного прогнозирования. Модуль 6008 определения сегментации на блоки собирает информацию блоков из запоминающего устройства 6004 блоков или запоминающего устройства 6005 кадров, чтобы извлекать тип и направление сегментации на блоки с использованием параметров, декодированных посредством энтропийного декодера 6001. Использование извлеченного типа и направления сегментации на блоки должно приводить к сегментации блока на множество субблоков. Помимо этого, модуль 6006, 6007 внутреннего/взаимного прогнозирования оценивает зону видео/изображений блока, который должен декодироваться, из видео/изображений, сохраненных в запоминающем устройстве 6004 блоков, либо из видео/изображений в запоминающем устройстве 6005 кадров, восстановленных с использованием типа и направления сегментации на блоки, извлекаемого из модуля 6008 определения сегментации на блоки.
Вариант 4 осуществления
[0248]
Как описано в каждом из вышеописанных вариантов осуществления, каждый функциональный блок типично может реализовываться, например, в качестве MPU и запоминающего устройства. Кроме того, процессы, выполняемые посредством каждого из функциональных блоков, типично реализуются посредством модуля выполнения программ, такого как процессор, считывающий и выполняющий программное обеспечение (программу), записанное на носителе записи, таком как ROM. Программное обеспечение может распространяться, например, через загрузку и может записываться на носителе записи, таком как полупроводниковое запоминающее устройство, и распространяться. Следует отметить, что каждый функциональный блок, конечно, также быть может реализован в качестве аппаратных средств (специализированной схемы).
[0249] Кроме того, обработка, описанная в каждом из вариантов осуществления, может быть реализована через интегрированную обработку с использованием одного оборудования (систему) и, альтернативно, может быть реализована через децентрализованную обработку с использованием множества элементов оборудования. Кроме того, процессор, который выполняет вышеописанную программу, может представлять собой один процессор или множество процессоров. Другими словами может выполняться, интегрированная обработка, и, альтернативно, может выполняться децентрализованная обработка.
[0250] Варианты осуществления настоящего раскрытия не ограничены вышеуказанными примерными вариантами осуществления; различные модификации могут вноситься в примерные варианты осуществления, результаты которых также включаются в пределы объема вариантов осуществления настоящего раскрытия.
[0251] Далее описываются примеры вариантов применения способа кодирования движущихся кадров (способа кодирования изображений) и способа декодирования движущихся кадров (способа декодирования изображений), описанных в каждом из вышеуказанных вариантов осуществления, и системы, которая их использует. Система характеризуется как включающая в себя кодер изображений, который использует способ кодирования изображений, декодер изображений, который использует способ декодирования изображений, и кодер/декодер изображений, который включает в себя как кодер изображений, так и декодер изображений. Другие конфигурации, включенные в систему, могут модифицироваться для каждого отдельного случая.
Примеры использования
[0252]
Фиг. 33 иллюстрирует общую конфигурацию системы ex100 предоставления контента для реализации услуги распространения контента. Зона, в которой предоставляется услуга связи, разделяется на соты требуемых размеров, и базовые станции ex106, ex107, ex108, ex109 и ex110, которые представляют собой стационарные беспроводные станции, расположены в соответствующих сотах.
[0253] В системе ex100 предоставления контента, устройства, включающие в себя компьютер ex111, игровое устройство ex112, камеру ex113, бытовой прибор ex114 и смартфон ex115, соединяются с Интернетом ex101 через поставщика ex102 Интернет-услуг или сеть ex104 связи и базовые станции ex106-ex110. Система ex100 предоставления контента может объединять и соединять любое объединение вышеуказанных элементов. Устройства могут прямо или косвенно соединяться между собой через телефонную сеть или связь ближнего радиуса действия, а не через базовые станции ex106-ex110, которые представляют собой стационарные беспроводные станции. Кроме того, потоковый сервер ex103 соединяется с устройствами, включающими в себя компьютер ex111, игровое устройство ex112, камеру ex113, бытовой прибор ex114 и смартфон ex115, например, через Интернет ex101. Потоковый сервер ex103 также соединяется, например, с терминалом в публичной точке доступа в самолете ex117 через спутник ex116.
[0254] Следует отметить, что вместо базовых станций ex106-ex110, могут использоваться точки беспроводного доступа или публичные точки доступа. Потоковый сервер ex103 может соединяться с сетью ex104 связи непосредственно, а не через Интернет ex101 или поставщика ex102 Интернет-услуг, и может соединяться с самолетом ex117 непосредственно, а не через спутник ex116.
[0255] Камера ex113 представляет собой устройство, допускающее захват неподвижных изображений и видео, к примеру, цифровую камеру. Смартфон ex115 представляет собой смартфон, сотовый телефон или телефон по стандарту системы персональных мобильных телефонов (PHS), который может работать согласно стандартам системы мобильной связи для типичных 2G-, 3G-, 3,9G- и 4G-систем, а также 5G-системы следующего поколения.
[0256] Бытовой прибор ex118, например, представляет собой холодильник или устройство, включенное в домашнюю систему совместной выработки тепла и электроэнергии на топливных элементах.
[0257] В системе ex100 предоставления контента, терминал, включающий в себя функцию захвата изображений и/или видео, допускает, например, потоковую передачу вживую посредством соединения с потоковым сервером ex103, например, через базовую станцию ex106. При потоковой передаче вживую, терминал (например, компьютер ex111, игровое устройство ex112, камера ex113, бытовой прибор ex114, смартфон ex115 или самолет ex117) выполняет обработку кодирования, описанную в вышеописанных вариантах осуществления, для контента неподвижных изображений или видеоконтента, захваченного пользователем через терминал, мультиплексирует видеоданные, полученные через кодирование, и аудиоданные, полученные посредством кодирования аудио, соответствующего видео, и передает полученные данные на потоковый сервер ex103. Другими словами, терминал функционирует в качестве кодера изображений согласно одному аспекту настоящего раскрытия.
[0258] Потоковый сервер ex103 передает в потоковом режиме передаваемые данные контента в клиенты, которые запрашивают поток. Примеры клиента включают в себя компьютер ex111, игровое устройство ex112, камеру ex113, бытовой прибор ex114, смартфон ex115 и терминалы в самолете ex117, которые допускают декодирование вышеописанных кодированных данных. Устройства, которые принимают передаваемые в потоковом режиме данные, декодируют и воспроизводят принимаемые данные. Другими словами, устройства функционируют в качестве декодера изображений согласно одному аспекту настоящего раскрытия.
Децентрализованная обработка
[0259]
Потоковый сервер ex103 может быть реализован в качестве множества серверов или компьютеров, между которыми разделяются такие задачи, как обработка, запись и потоковая передача данных. Например, потоковый сервер ex103 может быть реализован в качестве сети доставки контента (CDN), которая передает в потоковом режиме контент через сеть, соединяющую несколько краевых серверов, расположенных по всему миру. В CDN, краевой сервер физически около клиента динамически назначается клиенту. Контент кэшируется и передается в потоковом режиме на краевой сервер, чтобы уменьшать время загрузки. В случае, например, определенной ошибки или изменения подключения, например, вследствие пика в трафике, можно передавать в потоковом режиме данные стабильно на высоких скоростях, поскольку можно избегать затрагиваемых частей сети, например, посредством разделения обработки между множеством краевых серверов или переключения нагрузок потоковой передачи на другой краевой сервер и продолжения потоковой передачи.
[0260] Децентрализация не ограничена просто разделением обработки для потоковой передачи; кодирование захваченных данных может разделяться между и выполняться посредством терминалов, на серверной стороне либо обоими способами. В одном примере, при типичном кодировании, обработка выполняется в двух контурах. Первый контур служит для обнаружения того, насколько усложненным является изображение, на покадровой или посценовой основе либо для обнаружения нагрузки при кодировании. Второй контур служит для обработки, которая поддерживает качество изображений и повышает эффективность кодирования. Например, можно снижать нагрузку по обработке терминалов и повышать качество и эффективность кодирования контента за счет инструктирования терминалам выполнять первый контур кодирования и инструктирования серверной стороне, которая принимает контент, выполнять второй контур кодирования. В таком случае, при приеме запроса на декодирование, кодированные данные, получающиеся в результате первого контура, выполняемого посредством одного терминала, могут приниматься и воспроизводиться на другом терминале приблизительно в реальном времени. Это позволяет реализовывать плавную потоковую передачу в режиме реального времени.
[0261] В другом примере, камера ex113 и т.п. извлекает количество признаков из изображения, сжимает данные, связанные с количеством признаков, в качестве метаданных, и передает сжатые метаданные на сервер. Например, сервер определяет значимость объекта на основе количества признаков и изменяет точность квантования, соответственно, чтобы выполнять сжатие, подходящее для смыслового значения изображения. Данные количества признаков являются особенно эффективными при повышении точности и эффективности прогнозирования векторов движения во время второго прохода сжатия, выполняемого посредством сервера. Кроме того, кодирование, которое имеет относительно низкую нагрузку по обработке, такое как кодирование переменной длины (VLC), может обрабатываться посредством терминала, и кодирование, которое имеет относительно высокую нагрузку по обработке, такое как контекстно-адаптивное двоичное арифметическое кодирование (CABAC), может обрабатываться посредством сервера.
[0262] В еще одном другом примере, возникают случаи, в которых множество видео приблизительно идентичной сцены захватываются посредством множества терминалов, например, на стадионе, в торговом центре или на фабрике. В таком случае, например, кодирование может быть децентрализовано посредством разделения задач обработки между множеством терминалов, которые захватывают видео, и, при необходимости, другими терминалам, которые не захватывают видео, и сервером в расчете на единицу. Единицы, например, могут представлять собой группы кадров (GOP), кадры или мозаичные фрагменты, получающиеся в результате разделения кадра. Это позволяет уменьшать время загрузки и достигать потоковой передачи, которая находится ближе к реальному времени.
[0263] Кроме того, поскольку видео имеют приблизительно идентичную сцену, управление и/или инструктирование может выполняться посредством сервера таким образом, что на видео, захваченные посредством терминалов, можно перекрестно ссылаться. Кроме того, сервер может принимать кодированные данные из терминалов, изменять опорную взаимосвязь между элементами данных либо корректировать или заменять непосредственно кадры и затем выполнять кодирование. Это позволяет формировать поток с увеличенным качеством и эффективностью для отдельных элементов данных.
[0264] Кроме того, сервер может передавать в потоковом режиме видеоданные после выполнения транскодирования, чтобы преобразовывать формат кодирования видеоданных. Например, сервер может преобразовывать формат кодирования из MPEG в VP и может преобразовывать H.264 в H.265.
[0265] Таким образом, кодирование может выполняться посредством терминала или одного или более серверов. Соответственно, хотя устройство, которое выполняет кодирование, называется "сервером" или "терминалом" в нижеприведенном описании, некоторые или все процессы, выполняемые посредством сервера, могут выполняться посредством терминала, и аналогично некоторые или все процессы, выполняемые посредством терминала, могут выполняться посредством сервера. Это также применяется к процессам декодирования.
Трехмерный многоракурсный режим
[0266]
В последние годы, возрастает использование изображений или видео, объединенных из изображений или видео различных сцен, параллельно захваченных, либо идентичной сцены, захваченной из различных углов посредством множества терминалов, таких как камера ex113 и/или смартфон ex115. Видео, захваченное посредством терминалов, объединяется, например, на основе отдельно полученной относительной позиционной взаимосвязи между терминалами или областями в видео, имеющими совпадающие характерные точки.
[0267] В дополнение к кодированию двумерных движущихся кадров, сервер может кодировать неподвижное изображение на основе анализа сцен движущегося кадра автоматически либо в момент времени, указываемый пользователем, и передавать кодированное неподвижное изображение в приемный терминал. Кроме того, когда сервер может получать относительную позиционную взаимосвязь между терминалами захвата видео, в дополнение к двумерным движущимся кадрам, сервер может формировать трехмерную геометрию сцены на основе видео идентичной сцены, захваченной из различных углов. Следует отметить, что сервер может отдельно кодировать трехмерные данные, сформированные, например, из облака точек, и может, на основе результата распознавания или отслеживания человека или объекта с использованием трехмерных данных, выбирать или восстанавливать и формировать видео, которые должно передаваться в приемный терминал, из видео, захваченных посредством множества терминалов.
[0268] Это обеспечивает возможность пользователю пользоваться сценой посредством свободного выбора видео, соответствующих терминалам захвата видео, и обеспечивает возможность пользователю пользоваться контентом, полученным посредством извлечения, из трехмерных данных, восстановленных из множества изображений или видео, видео из выбранной точки обзора. Кроме того, аналогично видео, звук может записываться из относительно различных углов, и сервер может мультиплексировать, с видео, аудио из конкретного угла или пространства в соответствии с видео и передавать результат.
[0269] В последние годы, также становится популярным контент, который представляет собой составной объект из реального мира и виртуального мира, к примеру, контент в стиле виртуальной реальности (VR) и дополненной реальности (AR). В случае VR-изображений, сервер может создавать изображения из точек обзора левого и правого глаза и выполнять кодирование, которое допускает ссылку между двумя изображениями точек обзора, такое как многовидовое кодирование (MVC), и альтернативно, может кодировать изображения в качестве отдельных потоков без ссылки. Когда изображения декодируются в качестве отдельных потоков, потоки могут синхронизироваться при воспроизведении таким образом, чтобы воссоздавать виртуальное трехмерное пространство в соответствии с точкой обзора пользователя.
[0270] В случае AR-изображений, сервер накладывает информацию виртуальных объектов, существующую в виртуальном пространстве, на информацию камеры, представляющую пространство реального мира, на основе трехмерной позиции или перемещения с точки зрения пользователя. Декодер может получать или сохранять информацию виртуальных объектов и трехмерные данные, формировать двумерные изображения на основе перемещения с точки зрения пользователя и затем формировать наложенные данные посредством прозрачного соединения изображений. Альтернативно, декодер может передавать, на сервер, движение с точки зрения пользователя в дополнение к запросу информации виртуальных объектов, и сервер может формировать наложенные данные на основе трехмерных данных, сохраненных на сервере в соответствии с принимаемым движением, и кодировать и передавать в потоковом режиме сформированные наложенные данные в декодер. Следует отметить, что наложенные данные включают в себя, в дополнение к RGB-значениям, значение α, указывающее прозрачность, и сервер задает значение α для секций, отличных от объекта, сформированного из трехмерных данных, например, равным 0, и может выполнять кодирование в то время, когда эти секции являются прозрачными. Альтернативно, сервер может задавать фон как предварительно определенное RGB-значение, такое как цветовая рирпроекция, и формировать данные, в которых зоны, отличные от объекта, задаются в качестве фона.
[0271] Декодирование аналогично передаваемых в потоковом режиме данных может выполняться посредством клиента (т.е. терминалов), на серверной стороне либо разделяться между ними. В одном примере, один терминал может передавать запрос на прием на сервер, запрошенный контент может приниматься и декодироваться посредством другого терминала, и декодированный сигнал может передаваться в устройство, имеющее дисплей. Можно воспроизводить данные с высоким качеством изображений посредством децентрализации обработки и надлежащего выбора контента независимо от характеристик обработки непосредственно терминала связи. В еще одном другом примере, в то время как телевизор, например, принимает данные изображений, которые имеют большой размер, область кадра, такая как мозаичный фрагмент, полученный посредством разделения кадра, может декодироваться и отображаться на персональном терминале или терминалах зрителя или зрителей телевизора. Это позволяет зрителям совместно использовать вид с большими кадрами, а также каждому зрителю проверять свою назначенную зону или обследовать область более подробно крупным планом.
[0272] В будущем, как в помещениях, так и вне помещений, в ситуациях, в которых возможно множество беспроводных соединений на небольшие, средние и большие расстояния, предположительно должна быть возможность прозрачно принимать контент даже при переключении на данные, подходящие для текущего соединения, с использованием стандарта системы потоковой передачи, такого как MPEG DASH. Вследствие этого, пользователь может переключаться между данными в реальном времени при свободном выборе декодера или оборудования отображения, включающего в себя не только собственный терминал, но также и, например, дисплеи, расположенные в помещениях или вне помещений. Кроме того, например, на основе информация относительно позиции пользователя, декодирование может выполняться при переключении того, какой терминал обрабатывает декодирование, а какой терминал обрабатывает отображение контента. Это позволяет, при нахождении на маршруте в пункт назначения, отображать, на стене близлежащего здания, в которое встраивается устройство, допускающее отображение контента, или на части земли, картографическую информацию в движении. Кроме того, также можно переключать скорость передачи битов принимаемых данных на основе достижимости для кодированных данных по сети, к примеру, когда кодированные данные кэшируются на сервере, быстро доступном из приемного терминала, либо когда кодированные данные копируются на краевой сервер в службе доставки контента.
Масштабируемое кодирование
[0273]
В дальнейшем описывается переключение контента со ссылкой на масштабируемый поток, проиллюстрированный на фиг. 34, который кодируется со сжатием через реализацию способа кодирования движущихся кадров, описанного в вышеописанных вариантах осуществления. Сервер может иметь конфигурацию, в которой контент переключается при использовании временной и/или пространственной масштабируемости потока, которая достигается посредством разделения на и кодирования слоев, как проиллюстрировано на фиг. 34. Следует отметить, что может быть предусмотрено множество отдельных потоков, которые имеют идентичный контент, но различное качество. Другими словами, посредством определения того, вплоть до какого слоя следует декодировать, на основе внутренних факторов, таких как характеристики обработки на стороне декодера, и внешних факторов, таких как полоса пропускания линий связи, сторона декодера может свободно переключаться между контентом низкого разрешения и контентом высокого разрешения при декодировании. Например, в случае, в котором пользователь хочет продолжать просмотр дома на устройстве, таком как телевизор, соединенный с Интернетом, видео, которое он ранее смотрел на смартфоне ex115 в движении, устройство может просто декодировать идентичный поток вплоть до другого слоя, что уменьшает нагрузку на серверной стороне.
[0274] Кроме того, в дополнение к конфигурации, описанной выше, в которой масштабируемость достигается как результат кодирования кадров в расчете на слой, и улучшающий слой находится выше базового слоя, улучшающий слой может включать в себя метаданные, например, на основе статистической информации относительно изображения, и сторона декодера может формировать контент с высоким качеством изображений посредством выполнения формирования изображений со сверхразрешением для кадра в базовом слое на основе метаданных. Формирование изображений со сверхразрешением может представлять собой улучшение SN-отношения при поддержании разрешения и/или увеличении разрешения. Метаданные включают в себя информацию для идентификации коэффициента линейной или нелинейной фильтрации, используемого при обработке на основе сверхразрешения, либо информацию, идентифицирующую значение параметра при обработке с помощью фильтра, машинном обучении или методе наименьших квадратов, используемом при обработке на основе сверхразрешения.
[0275] Альтернативно, также является приемлемой конфигурация, в которой кадр, например, разделяется на мозаичные фрагменты в соответствии со смысловым значением, например, объекта в изображении, и на стороне декодера, только частичная область декодируется посредством выбора мозаичного фрагмента, который следует декодировать. Кроме того, посредством сохранения атрибута относительно объекта (человека, автомобиля, мяча и т.д.) и позиции объекта в видео (координат в идентичных изображениях) в качестве метаданных, сторона декодера может идентифицировать позицию требуемого объекта на основе метаданных и определять то, какой мозаичный фрагмент или мозаичные фрагменты включают в себя этот объект. Например, как проиллюстрировано на фиг. 35, метаданные сохраняются с использованием структуры хранения данных, отличающейся от пиксельных данных, такой как SEI-сообщение в HEVC. Эти метаданные указывают, например, позицию, размер или цвет основного объекта.
[0276] Кроме того, метаданные могут сохраняться в единицах множества кадров, таких как поток, последовательность или единицы произвольного доступа. Вследствие этого, сторона декодера может получать, например, время, в которое конкретный человек появляется в видео, и посредством его подгонки к информации единицы кадров, может идентифицировать кадр, в котором присутствует объект, и позицию объекта в кадре.
Оптимизация веб-страниц
[0277]
Фиг. 36 иллюстрирует пример экрана отображения веб-страницы, например, на компьютере ex111. Фиг. 37 иллюстрирует пример экрана отображения веб-страницы, например, на смартфоне ex115. Как проиллюстрировано на фиг. 36 и фиг. 37, веб-страница может включать в себя множество ссылок на изображения, которые представляют собой ссылки на контент изображений, и внешний вид веб-страницы отличается в зависимости от устройства, используемого для того, чтобы просматривать веб-страницу. Когда множество ссылок на изображения являются просматриваемыми на экране, до тех пор, пока пользователь явно не выбирает ссылку на изображение, либо до тех пор, пока ссылка на изображение не находится в аппроксимированном центре экрана или полная ссылка на изображение не вписывается в экран, оборудование отображения (декодер) отображает, в качестве ссылок на изображения, неподвижные изображения, включенные в контент, или I-кадры, отображает видео, такое как анимированный GIF-файл с использованием множества неподвижных изображений или I-кадров, например, или принимает только базовый слой и декодирует и отображает видео.
[0278] Когда ссылка на изображение выбирается пользователем, оборудование отображения декодирует предоставление наивысшего приоритета для базового слоя. Следует отметить, что если имеется информация в HTML-коде веб-страницы, указывающая то, что контент является масштабируемым, оборудование отображения может декодировать вплоть до улучшающего слоя. Кроме того, чтобы гарантировать воспроизведение в реальном времени, до того, как осуществляется выбор, либо когда полоса пропускания сильно ограничивается, оборудование отображения может уменьшать задержку между моментом времени, в который начальный кадр декодируется, и моментом времени, в который декодированный кадр отображается (т.е. задержку от начала декодирования контента до отображения контента) посредством декодирования и отображения только прямых опорных кадров (I-кадра, P-кадра, прямого опорного B-кадра). Кроме того, оборудование отображения может намеренно игнорировать опорную взаимосвязь между кадрами и приблизительно декодировать все B- и P-кадры в качестве прямых опорных кадров и затем выполнять нормальное декодирование по мере того, как количество кадров, принимаемых во времени, увеличивается.
Автономное вождение
[0279]
При передаче и приеме, в данных неподвижных изображений или видеоданных, такой двух- или трехмерной картографической информации для автономного вождения или вождения с использованием помощи автомобиля, приемный терминал может принимать, в дополнение к данным изображений, принадлежащим одному или более слоев, информацию, например, относительно погоды или дорожных работ в качестве метаданных, и ассоциировать метаданные с данными изображений при декодировании. Следует отметить, что метаданные могут назначаться в расчете на слой и, альтернативно, могут просто мультиплексироваться с данными изображений.
[0280] В таком случае, поскольку автомобиль, беспилотный аппарат, самолет и т.д., включающий в себя приемный терминал, являются мобильными, приемный терминал может прозрачно принимать и декодировать при переключении между базовыми станциями из числа базовых станций ex106-ex110 посредством передачи информации, указывающей позицию приемного терминала, при запросе на прием. Кроме того, в соответствии с выбором, осуществленным пользователем, ситуацией пользователя или полосой пропускания соединения, приемный терминал может динамически выбирать то, до какой степени принимаются метаданные, либо то, до какой степени, например, обновляется картографическая информация.
[0281] Вследствие этого, в системе ex100 предоставления контента, клиент может принимать, декодировать и воспроизводить, в реальном времени, кодированную информацию, передаваемую пользователем.
Потоковая передача контента от людей
[0282]
В системе ex100 предоставления контента, в дополнение к длительному контенту с высоким качеством изображений, распространяемому посредством объекта распространения видео, одноадресная или многоадресная потоковая передача короткого контента с низким качеством изображений от человека также является возможной. Кроме того, популярность такого контента от людей с большой вероятностью должна еще более возрастать. Сервер может сначала выполнять обработку редактирования для контента перед обработкой кодирования, чтобы уточнять контент от людей. Это может достигаться, например, с помощью следующей конфигурации.
[0283] В реальном времени, при захвате видеоконтента или контента изображений либо после того, как контент захвачен и накоплен, сервер выполняет обработку распознавания на основе необработанных или кодированных данных, такую как обработка ошибок при захвате, обработка поиска сцен, анализ смысловых значений и/или обработка обнаружения объектов. После этого, на основе результата обработки распознавания сервер (при указании или автоматически) редактирует контент, примеры чего включают в себя: коррекцию, такую как коррекция фокуса и/или размытости при движении; удаление сцен с низким приоритетом, таких как сцены, которые имеют низкую яркость по сравнению с другими кадрами или находятся не в фокусе; регулирование краев объектов; и регулирование цветовых тонов. Сервер кодирует отредактированные данные на основе результата редактирования. Известно, что чрезмерно длительные видео имеют тенденцию принимать меньшее количество видов. Соответственно, чтобы поддерживать контент в пределах конкретной продолжительности, которая масштабируется с продолжительностью исходного видео, сервер может, в дополнение к сценам с низким приоритетом, описанным выше, автоматически вырезать сцены с незначительным перемещением на основе результата обработки изображений. Альтернативно, сервер может формировать и кодировать видеодайджест на основе результата анализа смыслового значения сцены.
[0284] Следует отметить, что возникают случаи, в которых контент от людей может включать в себя контент, который нарушает авторское право, моральное право, книжные права и т.д. Такой случай может приводить к нежелательной ситуации для создателя, к примеру, когда контент совместно используется за пределами объема, намеченного создателем. Соответственно, перед кодированием, сервер, например, может редактировать изображения таким образом, чтобы, например, размывать лица людей на периферии экрана или размывать внутреннюю часть дома. Кроме того, сервер может быть выполнен с возможностью распознавать лица людей, отличных от зарегистрированного человека, в изображениях, которые должны кодироваться, и когда такие лица появляются в изображении, например, применять мозаичный фильтр к лицу человека. Альтернативно, в качестве предварительной обработки или постобработки для кодирования, пользователь может указывать, по причинам авторского права, область изображения, включающую в себя человека, или область фона, которая должна обрабатываться, и сервер может обрабатывать указанную область, например, посредством замены области на другое изображение или размытия области. Если область включает в себя человека, человек может отслеживаться в движущемся кадре, область головы может заменяться другим изображением по мере того, как человек перемещается.
[0285] Кроме того, поскольку имеется спрос на просмотр в реальном времени контента, сформированного людьми, который зачастую имеет небольшой размер данных, декодер сначала принимает базовый слой в качестве наивысшего приоритета и выполняет декодирование и воспроизведение, хотя это может отличаться в зависимости от полосы пропускания. Когда контент воспроизводится два или более раз, к примеру, когда декодер принимает улучшающий слой во время декодирования и воспроизведения базового слоя и циклично выполняет воспроизведение, декодер может воспроизводить видео с высоким качеством изображений, включающее в себя улучшающий слой. Если поток кодируется с использованием такого масштабируемого кодирования, видео может быть низкокачественным в невыбранном состоянии или в начале видео, но оно может предлагать восприятие, в котором качество изображений потока постепенно увеличивается интеллектуальным способом. Это не ограничено просто масштабируемым кодированием; идентичное восприятие может предлагаться посредством конфигурирования одного потока из низкокачественного потока, воспроизведенного в первый раз, и второго потока, кодированного с использованием первого потока в качестве опорного.
Другие примеры использования
[0286]
Кодирование и декодирование может выполняться посредством LSI ex500, которая типично включается в каждый терминал. LSI ex500 может быть сконфигурирована из одной микросхемы или множества микросхем. Программное обеспечение для кодирования и декодирования движущихся кадров может интегрироваться в некоторый тип носителя записи (такой как CD-ROM, гибкий диск или жесткий диск), который является считываемым, например, посредством компьютера ex111, и кодирование и декодирование могут выполняться с использованием программного обеспечения. Кроме того, когда смартфон ex114 оснащен камерой, могут передаваться видеоданные, полученные посредством камеры. В этом случае, видеоданные кодируются посредством LSI ex500, включенной в смартфон ex115.
[0287] Следует отметить, что LSI ex500 может быть выполнена с возможностью загружать и активировать приложение. В таком случае, терминал сначала определяет то, является он ли совместимым со схемой, используемой для того, чтобы кодировать контент, либо то, допускает он ли выполнение конкретной услуги. Когда терминал не является совместимым со схемой кодирования контента, либо когда терминал не допускает выполнение конкретной услуги, терминал сначала загружает кодек или прикладное программное обеспечение, а затем получает и воспроизводит контент.
[0288] Помимо примера системы ex100 предоставления контента, которая использует Интернет ex101, по меньшей мере, кодер движущихся кадров (кодер изображений) или декодер движущихся кадров (декодер изображений), описанные в вышеописанных вариантах осуществления, могут реализовываться в цифровой широковещательной системе. Идентичная обработка кодирования и обработка декодирования могут применяться для того, чтобы передавать и принимать широковещательные радиоволны, накладываемые с мультиплексированными аудио- и видеоданными с использованием, например, спутника, даже если она приспосабливается к многоадресной передаче, тогда как одноадресная передача является проще с системой ex100 предоставления контента.
Аппаратная конфигурация
[0289]
Фиг. 38 иллюстрирует смартфон ex115. Фиг. 39 иллюстрирует пример конфигурации смартфона ex115. Смартфон ex115 включает в себя антенну ex450 для передачи и приема радиоволн в/из базовой станции ex110, камеру ex465, допускающую захват видео и неподвижных изображений, и дисплей ex458, который отображает декодированные данные, такие как видео, захваченное посредством камеры ex465, и видео, принимаемое посредством антенны ex450. Смартфон ex115 дополнительно включает в себя пользовательский интерфейс ex466, такой как сенсорная панель, модуль ex457 аудиовывода, такой как динамик для вывода речи или другого аудио, модуль ex456 аудиоввода, такой как микрофон для аудиоввода, запоминающее устройство ex467, допускающее сохранение декодированных данных, таких как захваченные видео или неподвижные изображения, записанное аудио, принимаемые видео или неподвижные изображения и почтовые сообщения, а также декодированные данные, и гнездо ex464, которое представляет собой интерфейс для SIM-карты ex468 для авторизации доступа к сети и различным данным. Следует отметить, что внешнее запоминающее устройство может использоваться вместо запоминающего устройства ex467.
[0290] Кроме того, главный контроллер ex460, который всесторонне управляет дисплеем ex458 и пользовательским интерфейсом ex466, схема ex461 подачи мощности, контроллер ex462 ввода из пользовательского интерфейса, процессор ex455 видеосигналов, интерфейс ex463 камеры, контроллер ex459 отображения, модулятор/демодулятор ex452, мультиплексор/демультиплексор ex453, процессор ex454 аудиосигналов, гнездо ex464 и запоминающее устройство ex467, соединяются через шину ex470.
[0291] Когда пользователь включает кнопку питания схемы ex461 подачи мощности, смартфон ex115 включается в работоспособное состояние посредством подачи мощности в каждый компонент из аккумуляторного блока.
[0292] Смартфон ex115 выполняет обработку, например, для вызовов и передачи данных, на основе управления, выполняемого посредством главного контроллера ex460, который включает в себя CPU, ROM и RAM. При выполнении вызовов, аудиосигнал, записанный посредством модуля ex456 аудиоввода, преобразуется в цифровой аудиосигнал посредством процессора ex454 аудиосигналов, и к нему применяются обработка с расширенным спектром посредством модулятора/демодулятора ex452 и обработка цифро-аналогового преобразования и преобразования частоты посредством приемо-передающего устройства ex451, и затем он передается через антенну ex450. Принимаемые данные усиливаются, преобразуются по частоте и подвергаются аналого-цифровому преобразованию, подвергаются обратной обработке с расширенным спектром посредством модулятора/демодулятора ex452, преобразуются в аналоговый аудиосигнал посредством процессора ex454 аудиосигналов и затем выводятся из модуля ex457 аудиовывода. В режиме передачи данных, текстовые данные, данные неподвижных изображений или видеоданные передаются посредством главного контроллера ex460 через контроллер ex462 ввода из пользовательского интерфейса как результат операции, например, пользовательского интерфейса ex466 основного корпуса, и аналогичная обработка передачи и приема выполняется. В режиме передачи данных, при отправке видео, неподвижного изображения или видео и аудио, процессор ex455 видеосигналов кодирует со сжатием, через способ кодирования движущихся кадров, описанный в вышеописанных вариантах осуществления, видеосигнал, сохраненный в запоминающем устройстве ex467, или видеосигнал, вводимый из камеры ex465, и передает кодированные видеоданные в мультиплексор/демультиплексор ex453. Кроме того, процессор ex454 аудиосигналов кодирует аудиосигнал, записанный посредством модуля ex456 аудиоввода, в то время как камера ex465 захватывает, например, видео или неподвижное изображение, и передает кодированные аудиоданные в мультиплексор/демультиплексор ex453. Мультиплексор/демультиплексор ex453 мультиплексирует кодированные видеоданные и кодированные аудиоданные с использованием предварительно определенной схемы, модулирует и преобразует данные с использованием модулятора/демодулятора ex452 (схемы модулятора/демодулятора) и приемо-передающего устройства ex451 и передает результат через антенну ex450.
[0293] Когда видео, вложенное в почтовом сообщении или в чате, или видео, содержащее ссылку из веб-страницы, например, принимается, чтобы декодировать мультиплексированные данные, принимаемые через антенну ex450, мультиплексор/демультиплексор ex453 демультиплексирует мультиплексированные данные, чтобы разделять мультиплексированные данные на поток битов видеоданных и поток битов аудиоданных, предоставляет кодированные видеоданные в процессор ex455 видеосигналов через синхронную шину ex470 и предоставляет кодированные аудиоданные в процессор ex454 аудиосигналов через синхронную шину ex470. Процессор ex455 видеосигналов декодирует видеосигнал с использованием способа декодирования движущихся кадров, соответствующего способу кодирования движущихся кадров, описанному в вышеописанных вариантах осуществления, и видео или неподвижное изображение, включенное в связанный файл движущихся кадров, отображается на дисплее ex458 через контроллер ex459 отображения. Кроме того, процессор ex454 аудиосигналов декодирует аудиосигнал и выводит аудио из модуля ex457 аудиовывода. Следует отметить, что поскольку потоковая передача в режиме реального времени становится все более и более популярной, возникают случаи, в которых воспроизведение аудио может быть социально нецелесообразным в зависимости от окружения пользователя. Соответственно, в качестве начального значения, предпочтительной является конфигурация, в которой воспроизводятся только видеоданные, т.е. аудиосигнал не воспроизводится. Аудио может синхронизироваться и воспроизводиться только тогда, когда принимается ввод, к примеру, когда пользователь щелкает видеоданные.
[0294] Хотя смартфон ex115 использован в вышеприведенном примере, три реализации возможны: приемо-передающий терминал, включающий в себя как кодер, так и декодер; передающий терминал, включающий в себя только кодер; и приемный терминал, включающий в себя в себя только декодер. Дополнительно, в описании цифровой широковещательной системы, приводится пример, в котором принимаются или передаются мультиплексированные данные, полученные в качестве результата мультиплексирования видеоданных, например, с аудиоданными, но мультиплексированные данные могут представлять собой видеоданные, мультиплексированные с данными, отличными от аудиоданных, такими как текстовые данные, связанные с видео. Кроме того, могут приниматься или передаваться непосредственно видеоданные, а не мультиплексированные данные.
[0295] Хотя главный контроллер ex460, включающий в себя CPU, описывается как управляющий процессами кодирования или декодирования, терминалы зачастую включают в себя GPU. Соответственно, является приемлемой конфигурация, в которой большая зона обрабатывается сразу посредством использования характеристик с точки зрения производительности GPU через запоминающее устройство, совместно используемое посредством CPU и GPU, либо через запоминающее устройство, включающее в себя адрес, которое управляется таким образом, чтобы обеспечивать возможность широкого использования посредством CPU и GPU. Это позволяет сокращать время кодирования, поддерживать характер реального времени потока и уменьшать задержку. В частности, обработка, связанная с оценкой движения, фильтрацией для удаления блочности, дискретизированным адаптивным смещением (SAO) и преобразованием/квантованием, может эффективно выполняться посредством GPU вместо CPU, например, в единицах кадров, одновременно.
[0296] Кодер согласно варианту осуществления настоящего раскрытия может представлять собой кодер, который кодирует кадр, и включает в себя процессор и запоминающее устройство. Процессор может включать в себя: модуль определения сегментации на блоки, который сегментирует кадр на множество блоков, с использованием набора режимов сегментации на блоки, полученных посредством объединения одного или более режимов сегментации на блоки, каждый из которых задает тип сегментации, причем кадр считывается из запоминающего устройства; и модуль кодирования, который кодирует множество блоков. Набор режимов сегментации на блоки может включать в себя первый режим сегментации, который задает направление сегментации и общее количество сегментов для сегментации первого блока, и второй режим сегментации на блоки, который задает направление сегментации и общее количество сегментов для сегментации второго блока, который представляет собой один из блоков, полученных после того, как первый блок сегментирован. Когда общее количество сегментов первого режима сегментации на блоки равно трем, второй блок представляет собой центральный блок из числа блоков, полученных после того, как первый блок сегментирован, и направление сегментации для второго режима сегментации на блоки является идентичным направлению сегментации для первого режима сегментации на блоки, второй режим сегментации на блоки может включать в себя только режим сегментации на блоки, указывающий то, что общее количество сегментов равно трем.
[0297] Параметр для идентификации второго режима сегментации на блоки в кодере согласно варианту осуществления настоящего раскрытия может включать в себя первый флаг, который указывает то, должен ли блок сегментироваться горизонтально или вертикально, и не должен обязательно включать в себя второй флаг, указывающий общее количество сегментов, на которое блок должен быть сегментирован.
[0298] Кодер согласно варианту осуществления настоящего раскрытия может представлять собой кодер, который кодирует кадр, и включает в себя процессор и запоминающее устройство. Процессор может включать в себя: модуль определения сегментации на блоки, который сегментирует кадр на множество блоков, с использованием набора режимов сегментации на блоки, полученных посредством объединения одного или более режимов сегментации на блоки, каждый из которых задает тип сегментации, причем кадр считывается из запоминающего устройства; и модуль кодирования, который кодирует множество блоков. Набор режимов сегментации на блоки может включать в себя первый режим сегментации, который задает направление сегментации и общее количество сегментов для сегментации первого блока, и второй режим сегментации на блоки, который задает направление сегментации и общее количество сегментов для сегментации второго блока, который представляет собой один из блоков, полученных после того, как первый блок сегментирован. Когда общее количество сегментов первого режима сегментации на блоки равно трем, второй блок представляет собой центральный блок из числа блоков, полученных после того, как первый блок сегментирован, и направление сегментации для второго режима сегментации на блоки является идентичным направлению сегментации для первого режима сегментации на блоки, второй режим сегментации на блоки, указывающий то, что общее количество сегментов равно двум, не должен обязательно использоваться.
[0299] Кодер согласно варианту осуществления настоящего раскрытия может представлять собой кодер, который кодирует кадр, и включает в себя: процессор и запоминающее устройство. Процессор может включать в себя: модуль определения сегментации на блоки, который сегментирует кадр на множество блоков, с использованием набора режимов сегментации на блоки, полученных посредством объединения одного или более режимов сегментации на блоки, каждый из которых задает тип сегментации, причем кадр считывается из запоминающего устройства; и модуль кодирования, который кодирует множество блоков. Набор режимов сегментации на блоки может включать в себя первый режим сегментации и второй режим сегментации на блоки, каждый из которых задает направление сегментации и общее количество сегментов. Модуль определения сегментации на блоки может ограничивать использование второго режима сегментации на блоки, который указывает то, что количество сегментов равно двум.
[0300] Параметр для идентификации второго режима сегментации на блоки в кодере согласно варианту осуществления настоящего раскрытия может включать в себя первый флаг, который указывает то, должен ли блок сегментироваться горизонтально или вертикально, и второй флаг, указывающий то, должен ли блок сегментироваться на два или более.
[0301] Параметр в кодере согласно варианту осуществления настоящего раскрытия может предоставляться в данных серии последовательных макроблоков.
[0302] Кодер согласно варианту осуществления настоящего раскрытия может представлять собой кодер, который кодирует кадр, и включает в себя: процессор; и запоминающее устройство. Процессор может включать в себя: модуль определения сегментации на блоки, который сегментирует кадр на набор блоков, включающий в себя множество блоков, с использованием набора режимов сегментации на блоки, полученных посредством объединения одного или более режимов сегментации на блоки, каждый из которых задает тип сегментации, причем кадр считывается из запоминающего устройства; и модуль кодирования, который кодирует множество блоков. Когда первый набор блоков, полученных посредством использования первого набора режимов сегментации на блоки, и второй набор блоков, полученных посредством использования второго набора режимов сегментации на блоки, являются идентичными, модуль определения сегментации на блоки может выполнять сегментацию с использованием только одного из первого режима сегментации на блоки или второго режима сегментации на блоки.
[0303] Модуль определения сегментации на блоки в кодере согласно варианту осуществления настоящего раскрытия может, на основе первого объема кода первого набора режимов сегментации на блоки и второго объема кодов второго набора режимов сегментации на блоки, выполнять сегментацию с использованием набора режимов сегментации на блоки меньшего из первого объема кодов и второго объема кодов.
[0304] Модуль определения сегментации на блоки в кодере согласно варианту осуществления настоящего раскрытия может, на основе первого объема кода первого набора режимов сегментации на блоки и второго объема кодов второго набора режимов сегментации на блоки, выполнять сегментацию с использованием набора режимов сегментации на блоки, который появляется первым в предварительно определенном порядке из первого набора режимов сегментации на блоки и второго набора режимов сегментации на блоки, когда первый объем кода и второй объем кода равны.
[0305] Декодер согласно варианту осуществления настоящего раскрытия может представлять собой декодер, который декодирует кодированный сигнал, и включает в себя процессор и запоминающее устройство. Процессор может включать в себя модуль определения сегментации на блоки, который сегментирует кодированный сигнал на множество блоков, с использованием набора режимов сегментации на блоки, полученных посредством объединения одного или более режимов сегментации на блоки, каждый из которых задает тип сегментации, причем кодированный сигнал считывается из запоминающего устройства; и модуль декодирования, который декодирует множество блоков. Набор режимов сегментации на блоки может включать в себя первый режим сегментации, который задает направление сегментации и общее количество сегментов для сегментации первого блока, и второй режим сегментации на блоки, который задает направление сегментации и общее количество сегментов для сегментации второго блока, который представляет собой один из блоков, полученных после того, как первый блок сегментирован. Когда общее количество сегментов первого режима сегментации на блоки равно трем, второй блок представляет собой центральный блок из числа блоков, полученных после того, как первый блок сегментирован, и направление сегментации для второго режима сегментации на блоки является идентичным направлению сегментации для первого режима сегментации на блоки, второй режим сегментации на блоки может включать в себя только режим сегментации на блоки, указывающий то, что общее количество сегментов равно трем.
[0306] Параметр для идентификации второго режима сегментации на блоки в декодере согласно варианту осуществления настоящего раскрытия может включать в себя первый флаг, который указывает то, должен ли блок сегментироваться горизонтально или вертикально, и не должен обязательно включать в себя второй флаг, указывающий общее количество сегментов, на которое блок должен быть сегментирован.
[0307] Декодер согласно варианту осуществления настоящего раскрытия может представлять собой декодер, который декодирует кодированный сигнал, и включает в себя процессор и запоминающее устройство. Процессор может включать в себя модуль определения сегментации на блоки, который сегментирует кодированный сигнал на множество блоков, с использованием набора режимов сегментации на блоки, полученных посредством объединения одного или более режимов сегментации на блоки, каждый из которых задает тип сегментации, причем кодированный сигнал считывается из запоминающего устройства; и модуль декодирования, который декодирует множество блоков. Набор режимов сегментации на блоки может включать в себя первый режим сегментации, который задает направление сегментации и общее количество сегментов для сегментации первого блока, и второй режим сегментации на блоки, который задает направление сегментации и общее количество сегментов для сегментации второго блока, который представляет собой один из блоков, полученных после того, как первый блок сегментирован. Когда общее количество сегментов первого режима сегментации на блоки равно трем, второй блок представляет собой центральный блок из числа блоков, полученных после того, как первый блок сегментирован, и направление сегментации для второго режима сегментации на блоки является идентичным направлению сегментации для первого режима сегментации на блоки, второй режим сегментации на блоки, указывающий то, что общее количество сегментов равно двум, не должен обязательно использоваться.
[0308] Декодер согласно варианту осуществления настоящего раскрытия может представлять собой декодер, который декодирует кодированный сигнал, и включает в себя процессор и запоминающее устройство. Процессор может включать в себя: модуль определения сегментации на блоки, который сегментирует кодированный сигнал на множество блоков, с использованием набора режимов сегментации на блоки, полученных посредством объединения одного или более режимов сегментации на блоки, каждый из которых задает тип сегментации, причем кодированный сигнал считывается из запоминающего устройства; и модуль декодирования, который декодирует множество блоков. Набор режимов сегментации на блоки может включать в себя первый режим сегментации на блоки и второй режим сегментации на блоки, каждый из которых задает направление сегментации и количество сегментов. Модуль определения сегментации на блоки может ограничивать использование второго режима сегментации на блоки, который указывает то, что количество сегментов равно двум.
[0309] Параметр для идентификации второго режима сегментации на блоки в декодере согласно варианту осуществления настоящего раскрытия может включать в себя первый флаг, который указывает то, должен ли блок сегментироваться горизонтально или вертикально, и второй флаг, указывающий то, должен ли блок сегментироваться на два или более.
[0310] Параметр в декодере согласно варианту осуществления настоящего раскрытия может предоставляться в данных серии последовательных макроблоков.
[0311] Декодер согласно варианту осуществления настоящего раскрытия может представлять собой декодер, который декодирует кодированный сигнал, и включает в себя: процессор; и запоминающее устройство. Процессор может включать в себя: модуль определения сегментации на блоки, который сегментирует кодированный сигнал на набор блоков, включающий в себя множество блоков, с использованием набора режимов сегментации на блоки, полученных посредством объединения одного или более режимов сегментации на блоки, каждый из которых задает тип сегментации, причем кодированный сигнал считывается из запоминающего устройства; и модуль декодирования, который декодирует множество блоков. Когда первый набор блоков, полученных посредством использования первого набора режимов сегментации на блоки, и второй набор блоков, полученных посредством использования второго набора режимов сегментации на блоки, являются идентичными, модуль определения сегментации на блоки может выполнять сегментацию с использованием только одного из первого режима сегментации на блоки или второго режима сегментации на блоки.
[0312] Модуль определения сегментации на блоки в декодере согласно варианту осуществления настоящего раскрытия может, на основе первого объема кода первого набора режимов сегментации на блоки и второго объема кодов второго набора режимов сегментации на блоки, выполнять сегментацию с использованием набора режимов сегментации на блоки меньшего из первого объема кодов и второго объема кодов.
[0313] Модуль определения сегментации на блоки в декодере согласно варианту осуществления настоящего раскрытия может, на основе первого объема кода первого набора режимов сегментации на блоки и второго объема кодов второго набора режимов сегментации на блоки, выполнять сегментацию с использованием набора режимов сегментации на блоки, который появляется первым в предварительно определенном порядке из первого набора режимов сегментации на блоки и второго набора режимов сегментации на блоки, когда первый объем кода и второй объем кода равны.
[0314] Способ кодирования согласно варианту осуществления настоящего раскрытия может включать в себя: сегментацию кадра на множество блоков, с использованием набора режимов сегментации на блоки, полученных посредством объединения одного или более режимов сегментации на блоки, каждый из которых задает тип сегментации, причем кадр считывается из запоминающего устройства; и кодирование множества блоков. Набор режимов сегментации на блоки может включать в себя первый режим сегментации, который задает направление сегментации и общее количество сегментов для сегментации первого блока, и второй режим сегментации на блоки, который задает направление сегментации и общее количество сегментов для сегментации второго блока, который представляет собой один из блоков, полученных после того, как первый блок сегментирован. При сегментации, когда общее количество сегментов первого режима сегментации на блоки равно трем, второй блок представляет собой центральный блок из числа блоков, полученных после того, как первый блок сегментирован, и направление сегментации для второго режима сегментации на блоки является идентичным направлению сегментации для первого режима сегментации на блоки, второй режим сегментации на блоки может включать в себя только режим сегментации на блоки, указывающий то, что общее количество сегментов равно трем.
[0315] Параметр для идентификации второго режима сегментации на блоки в способе кодирования согласно варианту осуществления настоящего раскрытия может включать в себя первый флаг, который указывает то, должен ли блок сегментироваться горизонтально или вертикально, и не должен обязательно включать в себя второй флаг, указывающий общее количество сегментов, на которое блок должен быть сегментирован.
[0316] Способ кодирования согласно варианту осуществления настоящего раскрытия может включать в себя: сегментацию кадра на множество блоков, с использованием набора режимов сегментации на блоки, полученных посредством объединения одного или более режимов сегментации на блоки, каждый из которых задает тип сегментации, причем кадр считывается из запоминающего устройства; и кодирование множества блоков. Набор режимов сегментации на блоки может включать в себя первый режим сегментации, который задает направление сегментации и общее количество сегментов для сегментации первого блока, и второй режим сегментации на блоки, который задает направление сегментации и общее количество сегментов для сегментации второго блока, который представляет собой один из блоков, полученных после того, как первый блок сегментирован. При сегментации, когда общее количество сегментов первого режима сегментации на блоки равно трем, второй блок представляет собой центральный блок из числа блоков, полученных после того, как первый блок сегментирован, и направление сегментации для второго режима сегментации на блоки является идентичным направлению сегментации для первого режима сегментации на блоки, второй режим сегментации на блоки, указывающий то, что общее количество сегментов равно двум, не должен обязательно использоваться.
[0317] Способ кодирования согласно варианту осуществления настоящего раскрытия может включать в себя: сегментацию кадра на множество блоков, с использованием набора режимов сегментации на блоки, полученных посредством объединения одного или более режимов сегментации на блоки, каждый из которых задает тип сегментации, причем кадр считывается из запоминающего устройства; и кодирование множества блоков. Набор режимов сегментации на блоки может включать в себя первый режим сегментации на блоки и второй режим сегментации на блоки, каждый из которых задает направление сегментации и количество сегментов. При сегментации, использование второго режима сегментации на блоки, который указывает то, что количество сегментов равно двум, может ограничиваться.
[0318] Параметр для идентификации второго режима сегментации на блоки в способе кодирования согласно варианту осуществления настоящего раскрытия может включать в себя первый флаг, который указывает то, должен ли блок сегментироваться горизонтально или вертикально, и второй флаг, указывающий то, должен ли блок сегментироваться на два или более.
[0319] Параметр в способе кодирования согласно варианту осуществления настоящего раскрытия может предоставляться в данных серии последовательных макроблоков.
[0320] Способ кодирования согласно варианту осуществления настоящего раскрытия может включать в себя: сегментацию кадра на набор блоков, включающий в себя множество блоков, с использованием набора режимов сегментации на блоки, полученных посредством объединения одного или более режимов сегментации на блоки, каждый из которых задает тип сегментации, причем кадр считывается из запоминающего устройства; и кодирование множества блоков. При сегментации, когда первый набор блоков, полученных посредством использования первого набора режимов сегментации на блоки, и второй набор блоков, полученных посредством использования второго набора режимов сегментации на блоки, являются идентичными, сегментация может выполняться с использованием только одного из первого режима сегментации на блоки или второго режима сегментации на блоки.
[0321] Сегментация в способе кодирования согласно варианту осуществления настоящего раскрытия может, на основе первого объема кода первого набора режимов сегментации на блоки и второго объема кодов второго набора режимов сегментации на блоки, выполняться с использованием набора режимов сегментации на блоки меньшего из первого объема кодов и второго объема кодов.
[0322] Сегментация в способе кодирования согласно варианту осуществления настоящего раскрытия может, на основе первого объема кода первого набора режимов сегментации на блоки и второго объема кодов второго набора режимов сегментации на блоки, выполняться с использованием набора режимов сегментации на блоки, который появляется первым в предварительно определенном порядке из первого набора режимов сегментации на блоки и второго набора режимов сегментации на блоки, когда первый объем кода и второй объем кода равны.
[0323] Способ декодирования согласно варианту осуществления настоящего раскрытия может включать в себя: сегментацию кодированного сигнала на множество блоков, с использованием набора режимов сегментации на блоки, полученных посредством объединения одного или более режимов сегментации на блоки, каждый из которых задает тип сегментации, причем кодированный сигнал считывается из запоминающего устройства; и декодирование множества блоков. Набор режимов сегментации на блоки может включать в себя первый режим сегментации, который задает направление сегментации и общее количество сегментов для сегментации первого блока, и второй режим сегментации на блоки, который задает направление сегментации и общее количество сегментов для сегментации второго блока, который представляет собой один из блоков, полученных после того, как первый блок сегментирован. При сегментации, когда общее количество сегментов первого режима сегментации на блоки равно трем, второй блок представляет собой центральный блок из числа блоков, полученных после того, как первый блок сегментирован, и направление сегментации для второго режима сегментации на блоки является идентичным направлению сегментации для первого режима сегментации на блоки, второй режим сегментации на блоки может включать в себя только режим сегментации на блоки, указывающий то, что общее количество сегментов равно трем.
[0324] Параметр для идентификации второго режима сегментации на блоки в способе декодирования согласно варианту осуществления настоящего раскрытия может включать в себя первый флаг, который указывает то, должен ли блок сегментироваться горизонтально или вертикально, и второй флаг, указывающий то, должен ли блок сегментироваться на два или более.
[0325] Способ декодирования согласно варианту осуществления настоящего раскрытия может включать в себя: сегментацию кодированного сигнала на множество блоков, с использованием набора режимов сегментации на блоки, полученных посредством объединения одного или более режимов сегментации на блоки, каждый из которых задает тип сегментации, причем кодированный сигнал считывается из запоминающего устройства; и декодирование множества блоков. Набор режимов сегментации на блоки может включать в себя первый режим сегментации, который задает направление сегментации и общее количество сегментов для сегментации первого блока, и второй режим сегментации на блоки, который задает направление сегментации и общее количество сегментов для сегментации второго блока, который представляет собой один из блоков, полученных после того, как первый блок сегментирован. При сегментации, когда общее количество сегментов первого режима сегментации на блоки равно трем, второй блок представляет собой центральный блок из числа блоков, полученных после того, как первый блок сегментирован, и направление сегментации для второго режима сегментации на блоки является идентичным направлению сегментации для первого режима сегментации на блоки, второй режим сегментации на блоки, указывающий то, что общее количество сегментов равно двум, не должен обязательно использоваться.
[0326] Способ декодирования согласно варианту осуществления настоящего раскрытия может включать в себя: сегментацию кодированного сигнала на множество блоков, с использованием набора режимов сегментации на блоки, полученных посредством объединения одного или более режимов сегментации на блоки, каждый из которых задает тип сегментации, причем кодированный сигнал считывается из запоминающего устройства; и декодирование множества блоков. Набор режимов сегментации на блоки может включать в себя первый режим сегментации на блоки и второй режим сегментации на блоки, каждый из которых задает направление сегментации и количество сегментов. При сегментации, использование второго режима сегментации на блоки, который указывает то, что количество сегментов равно двум, может ограничиваться.
[0327] Способ декодирования согласно варианту осуществления настоящего раскрытия может включать в себя: сегментацию кодированного сигнала на набор блоков, включающий в себя множество блоков, с использованием набора режимов сегментации на блоки, полученных посредством объединения одного или более режимов сегментации на блоки, каждый из которых задает тип сегментации, причем кодированный сигнал считывается из запоминающего устройства; и декодирование множества блоков. При сегментации, когда первый набор блоков, полученных посредством использования первого набора режимов сегментации на блоки, и второй набор блоков, полученных посредством использования второго набора режимов сегментации на блоки, являются идентичными, сегментация может выполняться с использованием только одного из первого режима сегментации на блоки или второго режима сегментации на блоки.
[0328] Программа сжатия кадров согласно варианту осуществления настоящего раскрытия может включать в себя: сегментацию кадра на множество блоков, с использованием набора режимов сегментации на блоки, полученных посредством объединения одного или более режимов сегментации на блоки, каждый из которых задает тип сегментации, причем кадр считывается из запоминающего устройства; и декодирование множества блоков. Набор режимов сегментации на блоки может включать в себя первый режим сегментации, который задает направление сегментации и общее количество сегментов для сегментации первого блока, и второй режим сегментации на блоки, который задает направление сегментации и общее количество сегментов для сегментации второго блока, который представляет собой один из блоков, полученных после того, как первый блок сегментирован. При сегментации, когда общее количество сегментов первого режима сегментации на блоки равно трем, второй блок представляет собой центральный блок из числа блоков, полученных после того, как первый блок сегментирован, и направление сегментации для второго режима сегментации на блоки является идентичным направлению сегментации для первого режима сегментации на блоки, второй режим сегментации на блоки может включать в себя только режим сегментации на блоки, указывающий то, что общее количество сегментов равно трем.
[0329] Программа сжатия кадров согласно варианту осуществления настоящего раскрытия может включать в себя: сегментацию кадра на множество блоков, с использованием набора режимов сегментации на блоки, полученных посредством объединения одного или более режимов сегментации на блоки, каждый из которых задает тип сегментации, причем кадр считывается из запоминающего устройства; и декодирование множества блоков. Набор режимов сегментации на блоки может включать в себя первый режим сегментации, который задает направление сегментации и общее количество сегментов для сегментации первого блока, и второй режим сегментации на блоки, который задает направление сегментации и общее количество сегментов для сегментации второго блока, который представляет собой один из блоков, полученных после того, как первый блок сегментирован. При сегментации, когда общее количество сегментов первого режима сегментации на блоки равно трем, второй блок представляет собой центральный блок из числа блоков, полученных после того, как первый блок сегментирован, и направление сегментации для второго режима сегментации на блоки является идентичным направлению сегментации для первого режима сегментации на блоки, второй режим сегментации на блоки, указывающий то, что общее количество сегментов равно двум, не должен обязательно использоваться.
[0330] Программа сжатия кадров согласно варианту осуществления настоящего раскрытия может включать в себя: сегментацию кадра на множество блоков, с использованием набора режимов сегментации на блоки, полученных посредством объединения одного или более режимов сегментации на блоки, каждый из которых задает тип сегментации, причем кадр считывается из запоминающего устройства; и кодирование множества блоков. Набор режимов сегментации на блоки может включать в себя первый режим сегментации на блоки и второй режим сегментации на блоки, каждый из которых задает направление сегментации и количество сегментов. При сегментации, использование второго режима сегментации на блоки, который указывает то, что количество сегментов равно двум, может ограничиваться.
[0331] Программа сжатия кадров согласно варианту осуществления настоящего раскрытия может включать в себя: сегментацию кадра на набор блоков, включающий в себя множество блоков, с использованием набора режимов сегментации на блоки, полученных посредством объединения одного или более режимов сегментации на блоки, каждый из которых задает тип сегментации, причем кадр считывается из запоминающего устройства; и кодирование множества блоков. При сегментации, когда первый набор блоков, полученных посредством использования первого набора режимов сегментации на блоки, и второй набор блоков, полученных посредством использования второго набора режимов сегментации на блоки, являются идентичными, сегментация может выполняться с использованием только одного из первого режима сегментации на блоки или второго режима сегментации на блоки.
Промышленная применимость
[0332] Настоящее раскрытие может использоваться в мультимедийном кодировании/декодировании и, в частности, в кодере/декодере изображений и видео, который использует блочное кодирование/декодирование.
Ссылки с номерами на чертежах
[0333] 100 - кодер
102 - модуль разбиения
104 - вычитатель
106, 5001 - преобразователь
108, 5002 - квантователь
110, 5009 - энтропийный кодер
112, 5003, 6002 - обратный квантователь
114, 5004, 6003 - обратный преобразователь
116 - сумматор
118, 5005, 6004 - запоминающее устройство блоков
120 - контурный фильтр
122, 5006, 6005 - запоминающее устройство кадров
124, 5007, 6006 - модуль внутреннего прогнозирования
126, 5008, 6007 - модуль взаимного прогнозирования
128 - контроллер прогнозирования
200 - декодер
202, 6001 - энтропийный декодер
204 - обратный квантователь
206 - обратный преобразователь
208 - сумматор
210 - запоминающее устройство блоков
212 - контурный фильтр
214 - запоминающее устройство кадров
216 - модуль внутреннего прогнозирования
218 - модуль взаимного прогнозирования
220 - контроллер прогнозирования
5000 - видеокодер
5010, 6008 - модуль определения сегментации на блоки
6000 – видеодекодер.