СПОСОБ КОДИРОВАНИЯ ИЗОБРАЖЕНИЙ, СПОСОБ ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ, УСТРОЙСТВО КОДИРОВАНИЯ ИЗОБРАЖЕНИЙ И УСТРОЙСТВО ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ
IMAGE ENCODING METHOD, IMAGE DECODING METHOD, IMAGE ENCODING DEVICE AND IMAGE DECODING DEVICE

Область техники
[0001] Варианты осуществления изобретения относятся к способу кодирования изображений, способу декодирования изображений, устройству кодирования изображений и устройству декодирования изображений.
Уровень техники
[0002] В методе кодирования и декодирования видео в основном исполняется интерполяция с компенсацией движения для каждого блока. Сигнал изображения, на который следует ссылаться, хранится во внешней памяти; вследствие этого, когда кодирование и декодирование видео реализовано аппаратно, могут быть ограничения на объем считываемых данных. Соответственно, когда «количество» доступа к памяти увеличивается, так называемая полоса частот обращения к памяти, которое является узким местом при операциях кодирования и декодирования, становится проблемой.
[0003] При интерполяции с компенсацией движения для каждого блока исполняется процесс интерполяционной фильтрации с использованием FIR-фильтра (с конечной импульсной характеристикой) в горизонтальном направлении и в вертикальном направлении. В процессе интерполяционной фильтрации должен быть осуществлен доступ к пикселю за пределами блока. Когда число пикселей за пределами блока увеличивается, полоса частот обращения к памяти для каждого пикселя также увеличивается.
[0004] Обычно полоса частот обращения к памяти для каждого пикселя сокращается посредством применения интерполяционного фильтра с отводами короткой длины к блоку с небольшим размером, посредством чего соотношение пикселей за пределами блока, к которым осуществляется доступ, относительно увеличивается.
Список ссылочных материалов
Патентная литература
[0005] Патентная литература 1: Заявка на патент Японии № 4120301
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Техническая проблема
[0006] Однако в традиционной области техники полоса частот обращения к памяти не может быть сокращена соответствующим образом. Например, в случае формата цветности, такого как 4:2:0 или 4:2:2, в котором число выборок пикселя для цветовой разности (цветоразностной составляющей) является меньшим, чем число выборок пикселя для яркости (составляющей яркости), и разрешение является низким, интерполяция должна быть исполнена таким образом, чтобы цветовая разность увеличилась больше с яркостью, задаваемой в качестве опоры. Вследствие этого, когда фильтр с отводами длиннее, чем два отвода, используется для интерполяции для цветовой разности, процесс для цветоразностного сигнала не может быть ограничен, даже если процесс изменяется для каждого блока яркости.
Решение проблемы
[0007] Способ кодирования изображений по варианту осуществления включает в себя этап получения и этап генерирования. Этап получения включает в себя получение опорного изображения. Этап генерирования включает в себя генерирование предсказанного изображения, имеющего разрешение большее, чем разрешение опорного изображения, посредством выполнения для каждой из составляющей яркости и цветоразностной составляющей интерполяции в отношении полученного опорного изображения согласно вектору движения. К тому же этап генерирования включает в себя генерирование предсказанного изображения для цветоразностной составляющей без выполнения специфичной интерполяции, которая означает интерполяцию, при которой число пикселей, к которым должен быть осуществлен доступ в опорном изображении, является большим, когда размер блока, который обозначен как единица интерполяции, меньше, чем предварительно определенное пороговое значение.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0008] Фиг. 1 является блок-схемой, иллюстрирующей устройство кодирования изображений согласно варианту осуществления изобретения.
Фиг. 2 является видом, иллюстрирующим один пример информации формата цветности.
Фиг. 3 является видом вектора движения с цветоразностным сигналом в формате 4:2:0.
Фиг. 4 является видом вектора движения с сигналом яркости в формате 4:2:0.
Фиг. 5 является видом вектора движения с цветоразностным сигналом в формате 4:2:2.
Фиг. 6 является видом вектора движения с сигналом яркости в формате 4:2:2.
Фиг. 7 является видом, иллюстрирующим пример пикселей, к которым осуществляется доступ, в формате 4:2:0.
Фиг. 8 является видом, иллюстрирующим пример пикселей, к которым осуществляется доступ, в формате 4:2:0.
Фиг. 9 является видом, иллюстрирующим пример пикселей, к которым осуществляется доступ, в формате 4:2:2.
Фиг. 10 является блок-схемой, иллюстрирующей устройство декодирования изображений, соответствующее устройству кодирования изображений.
Фиг. 11 является блок-схемой, иллюстрирующей блок генерирования предсказанного изображения.
Фиг. 12 является схемой последовательности операций управления согласно варианту осуществления.
Фиг. 13 является схемой последовательности операций процесса сокращения полосы частот обращения к памяти.
Фиг. 14 является схемой последовательности операций процесса полосы частот обращения сокращения полосы частот обращения к памяти.
Фиг. 15 является схемой последовательности операций процесса сокращения полосы частот обращения к памяти.
Фиг. 16 является схемой, иллюстрирующей аппаратную конфигурацию устройства согласно варианту осуществления.
Описание вариантов осуществления
[0009] Предпочтительные варианты осуществления способа кодирования изображений, способа декодирования изображений, устройства кодирования изображений и устройства декодирования изображений согласно изобретению будут описаны ниже более подробно со ссылкой на приложенные чертежи.
[0010] Устройство кодирования изображений и устройство декодирования изображений согласно настоящему варианту осуществления осуществляют управление посредством ссылки на информацию формата цветности, так что положение пикселя, указанное вектором движения, в блоке, имеющем размер меньший, чем предварительно определенный размер, не подвергается интерполяции для цветовой разности, тем самым сокращая полосу частот обращения к памяти.
[0011] Фиг. 1 является блок-схемой, иллюстрирующей один пример конфигурации устройства 100 кодирования изображений согласно настоящему варианту осуществления. Как проиллюстрировано на фиг. 1, устройство 100 кодирования изображений включает в себя блок 102 вычитания, блок 103 преобразования/квантования, блок 104 обратного квантования/обратного преобразования, блок 105 энтропийного кодирования, блок 106 сложения, память 108 кадров, блок 110 генерирования предсказанного изображения, блок 112 управления предсказанием, блок 113 управления кодированием и блок 116 поиска вектора движения.
[0012] Устройство 100 кодирования изображений генерирует кодированные данные 120 из входного видеосигнала 101. Например, входной видеосигнал 101 вводится в устройство 100 кодирования изображений в единицах кадров. Входной видеосигнал 101 делится на блок, который является макроблоком.
[0013] Блок 102 вычитания выводит сигнал ошибки предсказания, который является разностью между сигналом 111 предсказанного изображения, сгенерированным блоком 110 генерирования предсказанного изображения, и входным видеосигналом 101.
[0014] Блок 103 квантования/преобразования исполняет квантование после исполнения ортогонального преобразования в отношении сигнала ошибки предсказания с помощью дискретного косинусного преобразования (DCT), тем самым генерируя информацию квантованных коэффициентов преобразования. Информация квантованных коэффициентов преобразования делится на две части. Одна часть разделенной информации вводится в блок 105 энтропийного кодирования. Другая часть вводится в блок 104 обратного квантования/обратного преобразования.
[0015] Блок 104 обратного квантования/обратного преобразования исполняет обратное квантование и обратное преобразование в отношении информации квантованных коэффициентов преобразования как процесс, обратный обработке, исполняемой блоком 103 преобразования/квантования, тем самым воспроизводя сигнал ошибки предсказания.
[0016] Блок 106 сложения складывает сигнал ошибки предсказания и сигнал предсказанного изображения. Согласно этому процессу генерируется сигнал 107 декодированного изображения. Сигнал 107 декодированного изображения вводится в память 108 кадров.
[0017] Память кадров 108 является блоком памяти, который хранит в себе сигнал опорного изображения. Память 108 кадров исполняет процесс фильтрации или другой процесс в отношении сигнала 107 декодированного изображения и затем определяет, хранится ли сигнал 107 декодированного изображения или нет для обеспечения сигналу 107 декодированного изображения возможности стать сигналом 109 опорного изображения, вводимым в блок 110 генерирования предсказанного изображения. Сигнал 109 опорного изображения вводится в блок 110 генерирования предсказанного изображения и блок 116 поиска вектора движения.
[0018] Блок 116 поиска вектора движения генерирует информацию 117 вектора движения из входного видеосигнала 101 и сигнала 109 опорного изображения. Информация 117 вектора движения вводится в блок 110 генерирования предсказанного изображения и также передается в блок 105 энтропийного кодирования.
[0019] Блок 110 генерирования предсказанного изображения генерирует сигнал 111 предсказанного изображения из сигнала 109 опорного изображения, информации 118 управления предсказанием и информации 117 вектора движения.
[0020] Блок 113 управления кодированием вводит информацию 115 ограничения размера блока в блок 112 управления предсказанием и передает информацию 119 профиля/уровня блоку 105 энтропийного кодирования.
[0021] Информация 119 профиля/уровня включает в себя информацию профиля, указывающую комбинацию групп инструментов кодирования, и информацию уровня, которая является информацией ограничения устройства кодирования изображений согласно вычислительной мощности устройства декодирования изображений. Информация уровня указывает комбинацию ограничения из максимального числа макроблоков в час, максимального числа макроблоков на кадр, максимального диапазона поиска вектора и числа векторов на два последовательных макроблока.
[0022] Например, H.264 точно определяет информацию профиля, такого как базовый профиль, основной профиль и высокий профиль. H.264 также точно определяет информацию 16 уровней.
[0023] В настоящем варианте осуществления параметры точно определяются с использованием информации профиля/уровня. Параметры включают в себя параметр, точно определяющий, применяется ли способ сокращения полосы частот обращения к памяти или нет, значение ограничения размера блока (информацию 115 ограничения размера блока) и способ ограничения. Эти параметры могут быть точно определены посредством использования информации, отличной от информации профиля/уровня.
[0024] Информация 115 ограничения размера блока является информацией, точно определяющей пороговое значение (значение ограничения размера блока), используемое для определения размера блока. Например, блок 113 управления кодированием точно определяет разную информацию 115 ограничения размера блока согласно информации профиля/уровня. Информация 115 ограничения размера блока может быть включена в информацию профиля/уровня.
[0025] Блок 112 управления предсказанием управляет генерированием предсказанного изображения, исполняемым блоком 110 генерирования предсказанного изображения, согласно информации 115 ограничения размера блока, введенной из блока 113 управления кодированием, информации 114 формата цветности входного видеосигнала 101 и информации 117 вектора движения, введенной из блока 116 поиска вектора движения (подробности будут описаны позднее). Блок 112 управления предсказанием генерирует информацию 118 управления предсказанием, используемую для управления генерированием предсказанного изображения. Информация 118 управления предсказанием вводится в блок 110 генерирования предсказанного изображения и также передается в блок 105 энтропийного кодирования.
[0026] Блок 105 энтропийного кодирования выполняет энтропийное кодирование в отношении информации кодирования, чтобы сгенерировать кодированные данные 120 согласно предварительно описанному синтаксису. Информация кодирования включает в себя, например, информацию квантованных коэффициентов преобразования, введенную из блока 103 преобразования/квантования, информацию 114 формата цветности входного видеосигнала, информацию 117 вектора движения, введенную из блока 116 поиска вектора движения, информацию 118 управления предсказанием, введенную из блока 112 управления предсказанием, и информацию 119 профиля/уровня, введенную из блока 113 управления кодированием.
[0027] Здесь будет описана информация 114 формата цветности. Информация 114 формата цветности является информацией, указывающей формат цветности входного видеосигнала 101. Фиг. 2 является видом, иллюстрирующим один пример информации 114 формата цветности. Фиг. 2 иллюстрирует пример, в котором chroma_format_idc, используемый в H.264, используется в качестве информации 114 формата цветности.
[0028] chroma_format_idc = 0 указывает монохромный формат только с яркостью. chroma_format_idc = 1 указывает формат 4:2:0, в котором выборка цветовой разности осуществляется на половину горизонтально и вертикально по отношению к яркости. chroma_format_idc = 2 указывает формат 4:2:2, в котором выборка цветовой разности осуществляется на половину только горизонтально по отношению к яркости. chroma_format_idc = 3 указывает формат 4:4:4, в котором яркость и цветовая разница имеют одинаковое число пикселей.
[0029] Горизонтальный размер блока предсказания сигнала яркости задан как nPSW, и вертикальный размер задан как nPSH. В формате 4:2:0, горизонтальный размер блоков цветоразностных сигналов Cb и Cr составляет nPSW/2, тогда как вертикальный размер составляет nPSH/2. В формате 4:2:2, горизонтальный размер блоков цветоразностных сигналов Cb и Cr составляет nPSW/2, тогда как вертикальный размер составляет nPSH. В формате 4:4:4, горизонтальный размер блоков цветоразностных сигналов Cb и Cr составляет nPSW, тогда как вертикальный размер составляет nPSH.
[0030] Далее будет описана взаимосвязь между форматом цветности и интерполяцией.
[0031] Фиг. 3 является видом, иллюстрирующим положение вектора движения на интерполяционном изображении с точностью в 1/8 элемента изображения цветоразностного сигнала в формате 4:2:0. "B" является положением целого пикселя цветоразностного сигнала, которое является положением вектора движения, которому не нужна интерполяция, белые участки указывают положение вектора движения, которому нужна одномерная интерполяция для цветоразностного сигнала только горизонтально или только вертикально. Светлые затененные участки указывают положение вектора движения, которому нужна двухмерная интерполяция для выполнения интерполяции в отношении цветоразностного сигнала как горизонтально, так и вертикально.
[0032] Фиг. 4 является видом, иллюстрирующим положение вектора движения на интерполяционном изображении с точностью в 1/4 элемента изображения сигнала яркости в формате 4:2:0. "A" является положением целого пикселя сигнала яркости, которое является положением вектора движения, которому не нужна интерполяция. Белые участки с "A" указывают положение вектора движения, которому интерполяция не нужна как для сигнала яркости, так и для цветоразностного сигнала. Светлые затененные участки с "A" указывают положение вектора движения, которому не нужна интерполяция для сигнала яркости, но нужна интерполяция для цветоразностного сигнала.
[0033] Белые участки без "A" указывают положение вектора движения, которому нужна одномерная интерполяция для сигнала яркости и цветоразностного сигнала только горизонтально или только вертикально. Светлые затененные участки без "A" указывают положение вектора движения, которому нужна двухмерная интерполяция, при которой интерполяционная обработка выполняется горизонтально и вертикально, для сигнала яркости и цветоразностного сигнала. Темные затененные участки указывают положение вектора движения, которому нужна одномерная интерполяция только горизонтально или только вертикально для сигнала яркости и нужна двухмерная интерполяция, при которой интерполяция исполняется горизонтально и вертикально, для цветоразностного сигнала.
[0034] Фиг. 5 является видом, иллюстрирующим положение вектора движения на интерполяционном изображении с точностью в 1/4 элемента изображения цветоразностного сигнала в горизонтальном направлении и с точностью в 1/8 элемента изображения цветоразностного сигнала в вертикальном направлении в формате 4:2:2. "B" является положением целого пикселя цветоразностного сигнала, которое является положением вектора движения, которому не нужна интерполяция. Белые участки указывают положение вектора движения, которому нужна одномерная интерполяция для цветоразностного сигнала только горизонтально или только вертикально. Светлые затененные участки указывают положение вектора движения, которому нужна двухмерная интерполяция для выполнения интерполяции в отношении цветоразностного сигнала горизонтально и вертикально.
[0035] Фиг. 6 является видом, иллюстрирующим положение вектора движения на интерполяционном изображении с точностью в 1/4 элемента изображения сигнала яркости в формате 4:2:2. "A" является положением целого пикселя сигнала яркости, которое является положением вектора движения, которому не нужна интерполяция для сигнала яркости. Белые участки с "A" указывают положение вектора движения, которому не нужна интерполяция и для сигнала яркости, и для цветоразностного сигнала. Светлые затененные участки с "A" указывают положение вектора движения, которому не нужна интерполяция для сигнала яркости, но нужна интерполяция для цветоразностного сигнала.
[0036] Белые участки без "A" указывают положение вектора движения, которому нужна одномерная интерполяция для сигнала яркости и цветоразностного сигнала только горизонтально или только вертикально. Светлые затененные участки без "A" указывают положение вектора движения, которому нужна двухмерная интерполяция, при которой интерполяция выполняется горизонтально и вертикально, для сигнала яркости и цветоразностного сигнала. Темные затененные участки указывают положение вектора движения, которому нужна одномерная интерполяция только горизонтально для сигнала яркости, и нужна двухмерная интерполяция, при которой интерполяция исполняется горизонтально и вертикально, для цветоразностного сигнала.
[0037] Далее будет описана взаимосвязь между форматом цветности и пикселем, к которому должен быть осуществлен доступ при интерполяции.
[0038] Фиг. 7 и 8 являются видами, иллюстрирующими один пример пикселя, к которому осуществляется доступ, после генерирования интерполяционного изображения на основании блока в формате 4:2:0.
[0039] Фиг. 7 иллюстрирует максимальное число пикселей, к которым должен быть осуществлен доступ, после генерирования интерполяционного изображения блока пикселей 4×4 для сигнала яркости с помощью 8-отводного интерполяционного фильтра. При двумерной интерполяции для генерирования интерполяционного изображения с блоком пикселей 4×4 должен быть осуществлен доступ к трем наружным пикселям слева и выше блока пикселей, также как и к четырем наружным пикселям справа и ниже блока пикселей. Конкретно, в целом должен быть осуществлен доступ к пикселям 11×11. Число наружных пикселей, к которым должен быть осуществлен доступ, зависит от длины отводов. Вследствие этого, когда используется интерполяционный фильтр с таким же отводом, число попыток осуществления доступа для каждого пикселя увеличивается больше для меньшего блока.
[0040] Фиг. 8 иллюстрирует максимальное число пикселей, к которым должен быть осуществлен доступ, после генерирования интерполяционного изображения блока пикселей 2×2, соответствующего блоку пикселей 4×4 для сигнала яркости, для цветоразностного сигнала с помощью 4-отводного интерполяционного фильтра. При двумерной интерполяции для генерирования интерполяционного изображения с блоком пикселей 2×2 должен быть осуществлен доступ к одному наружному пикселю слева и выше блока пикселей, также как и к двум наружным пикселям справа и ниже блока пикселей. Конкретно, в целом должен быть осуществлен доступ к пикселям 5×5.
[0041] Фиг. 9 является видом, иллюстрирующим один пример пикселя, к которому осуществляется доступ, после генерирования интерполяционного изображения на основании блока в формате 4:2:2. Максимальное число пикселей, к которым должен быть осуществлен доступ, после генерирования интерполяционного изображения блока пикселей 4×4 для сигнала яркости с помощью 4-отводного интерполяционного фильтра является таким же как в случае на фиг. 7, так что лишнее описание не будет приводиться.
[0042] Фиг. 9 иллюстрирует максимальное число пикселей, к которым должен быть осуществлен доступ, после генерирования интерполяционного изображения блока пикселей 4×2, соответствующего блоку пикселей 4×4 для сигнала яркости, для цветоразностного сигнала с помощью 4-отводного интерполяционного фильтра. При двумерной интерполяции для генерирования интерполяционного изображения с блоком пикселей 2×2 должен быть осуществлен доступ к одному наружному пикселю слева и выше блока пикселей, также как и к двум наружным пикселям справа и ниже блока пикселей. Конкретно, в целом должен быть осуществлен доступ к пикселям 5×7.
[0043] Как проиллюстрировано на фиг. 3-6, необходимость интерполяции различается в зависимости от формата цветности и вектора движения. То, что нужно от одномерной интерполяции и двумерной интерполяции, различается в зависимости от формата цветности и вектора движения. Как проиллюстрировано на фиг. 7-9, число пикселей, к которым должен быть осуществлен доступ, различается в зависимости от формата цветности.
[0044] В настоящем варианте осуществления, посредством ссылки на формат цветности и вектор движения, генерированием предсказанного изображения управляют так, чтобы не исполнялась специфичная интерполяция, в которой число пикселей, к которым должен быть осуществлен доступ, в опорном изображении (сигнале 109 опорного изображения) является большим. Специфичная интерполяция является интерполяцией с использованием двунаправленного предсказания и двумерной интерполяцией. Интерполяция в двунаправленном предсказании может быть задана как специфичная интерполяция. Конкретный способ для управления генерированием предсказанного изображения для того, чтобы не исполнять конкретную интерполяцию, будет описан ниже по тексту.
[0045] Фиг. 10 является блок-схемой, иллюстрирующей пример конфигурации устройства 300 декодирования изображений, соответствующего устройству 100 кодирования изображений. Устройство 300 декодирования изображений включает в себя блок 302 энтропийного декодирования, блок 303 обратного квантования/обратного преобразования, блок 304 сложения, память 306 кадров и блок 110 генерирования предсказанного изображения.
[0046] Устройство 300 декодирования изображений генерирует воспроизведенный видеосигнал 307 из кодированных данных 301.
[0047] Блок 302 энтропийного декодирования выполняет энтропийное декодирование в отношении кодированных данных 301 в соответствии с предварительно описанным синтаксисом. Блок 302 энтропийного декодирования декодирует кодированные данные 301, чтобы получить информацию квантованных коэффициентов преобразования, информацию 311 управления предсказанием, информацию 312 вектора движения и информацию 313 профиля/уровня. Декодированная информация квантованных коэффициентов преобразования вводится в блок 303 обратного квантования/обратного преобразования. Декодированная информация 311 управления предсказанием, информация 312 вектора движения и информация 313 профиля/уровня вводится в блок 110 генерирования предсказанного изображения.
[0048] Информация квантованных коэффициентов преобразования, информация 311 управления предсказанием, информация 312 вектора движения и информация 313 профиля/уровня соответствует соответственно информации квантованных коэффициентов преобразования, информации 118 управления предсказанием, информации 117 вектора движения и информация 119 профиля/уровня, которая кодируется устройством 100 кодирования изображений на фиг. 1.
[0049] Блок 303 обратного квантования/обратного преобразования исполняет обратное квантование и обратное ортогональное преобразование в отношении информации квантованных коэффициентов преобразования, тем самым воспроизводя сигнал ошибки предсказания.
[0050] Блок 304 сложения складывает сигнал ошибки предсказания и сигнал 310 предсказанного изображения, чтобы сгенерировать сигнал 305 декодированного изображения. Сигнал 305 декодированного изображения вводится в память 306 кадров.
[0051] Память 306 кадров исполняет процесс фильтрации в отношении сигнала 305 декодированного изображения и выводит результат как воспроизведенный видеосигнал 307. Память 306 кадров определяет, хранится ли сигнал 305 декодированного изображения, который был подвержен процессу фильтрации, или нет, на основании 311 информации управления предсказанием. Хранящийся сигнал 305 декодированного изображения вводится в блок 110 генерирования предсказанного изображения в качестве сигнала 308 опорного изображения.
[0052] Блок 110 генерирования предсказанного изображения генерирует сигнал 310 предсказанного изображения посредством использования сигнала 308 опорного изображения, информации 311 управления предсказанием и информации 312 вектора движения.
[0053] Фиг. 11 является блок-схемой, иллюстрирующей пример конфигурации блока 110 генерирования предсказанного изображения, смонтированного на устройстве 100 кодирования изображений и устройстве 300 декодирования изображений. Блок 110 генерирования предсказанного изображения включает в себя переключатель 201, блок 202 двунаправленного предсказания, блок 203 однонаправленного предсказания и блок 204 внутреннего предсказания (внутрикадрового предсказания). Блок 110 генерирования предсказанного изображения генерирует сигнал 111 предсказанного изображения из сигнала 109 опорного изображения, информации 118 управления предсказанием и информации 117 вектора движения.
[0054] Информация 118 управления предсказанием включает в себя информацию (режим предсказания), например, для обозначения, какой из блока 202 двунаправленного предсказания, блока 203 однонаправленного предсказания и блока 204 внутреннего предсказания используется. Переключатель 201 выполняет переключение для осуществления выбора любого из блока 202 двунаправленного предсказания, блока 203 однонаправленного предсказания и блока 204 внутреннего предсказания, ссылаясь на эту информацию.
[0055] Сигнал 109 опорного изображения вводится в любой из блока 202 двунаправленного предсказания, блока 203 однонаправленного предсказания и блока 204 внутреннего предсказания, который выбран посредством переключателя 201.
[0056] Когда выбран блок 202 двунаправленного предсказания, блок 202 двунаправленного предсказания генерирует сигнал изображения с компенсацией движения посредством использования сигнала 109 опорного изображения и информации 117 вектора движения из множественных опорных кадров и генерирует сигнал 111 предсказанного изображения на основе двунаправленного предсказания. Блок 202 двунаправленного предсказания выбирается не только в случае, когда режим предсказания явным образом обозначен как двунаправленное предсказание в качестве кодированных данных, но также в случае, когда двунаправленное предсказание не обозначено явным образом посредством кодированных данных, таких как режим пропуска, прямой режим и режим слияния, но работа двунаправленного предсказания неявно обозначена посредством семантики.
[0057] Когда выбран блок 203 однонаправленного предсказания, блок 203 однонаправленного предсказания генерирует сигнал изображения с компенсацией движения посредством использования сигнала 109 опорного изображения и информации 117 вектора движения из одного опорного кадра и генерирует сигнал 111 предсказанного изображения. Блок 203 однонаправленного предсказания выбирается не только в случае, когда режим предсказания явным образом обозначен как однонаправленное предсказание в качестве кодированных данных, но также в случае, когда однонаправленное предсказание не обозначено явным образом посредством кодированных данных, такой как режим пропуска, прямой режим и режим слияния, но работа однонаправленного предсказания неявно обозначена посредством семантики.
[0058] Когда выбран блок 204 внутреннего предсказания, блок 204 внутреннего предсказания генерирует сигнал 111 предсказанного изображения посредством использования сигнала 109 опорного изображения на экране.
[0059] Далее со ссылкой на фиг. 12 будет описано управление для сокращения полосы частот обращения к памяти посредством устройства 100 кодирования изображений, сконфигурированного таким образом, согласно настоящему варианту осуществления. Фиг. 12 является схемой последовательности операций, иллюстрирующей общий процесс управления в настоящем варианте осуществления.
[0060] Блок 113 управления кодированием задает значение ограничения (nLPSW, nLPSH) размера блока согласно информации 119 профиля/уровня (этап S101). nLPSW является значением ограничения размера предсказанного блока яркости в горизонтальном направлении. nLPSH является значением ограничения размера предсказанного блока яркости в вертикальном направлении.
[0061] Когда информация профиля указывает специфичный профиль (например, высокий профиль H.264), или когда информация уровня указывает специфичный уровень (например, некоторый уровень или более высокий уровень), например, блок 113 управления кодированием задает предварительно определенное значение (nLPSW, nLPSH) ограничения размера блока. Блок 113 управления кодированием может быть выполнен с возможностью пошагового задания значения ограничения размера блока согласно информации профиля и информации уровня.
[0062] Ниже предполагается, что переменная RW является точностью вектора движения в горизонтальном направлении, выраженной посредством точности в 1/RW элемента изображения. Также предполагается, что переменная RH является точностью вектора движения в вертикальном направлении, выраженной посредством точности в 1/RH элемента изображения. Первоначальные значения переменной RW и переменной RH заданы как точность вектора движения яркости. Для RW и RH обычно используется значение степени два.
[0063] Блок 112 управления предсказанием определяет, является информация 114 формата цветности (chroma_format_idc) равной 1 или нет (этап S102). В случае chroma_format_idc = 1 (этап S102: Да), блок 112 управления предсказанием удваивает значения RW и RH (этап S103). Это потому, что chroma_format_idc = 1 означает формат 4:2:0, в котором выборка цветовой разности осуществляется на половину горизонтально и вертикально по отношению к яркости.
[0064] В случае, когда chroma_format_idc = 1 не установлен (этап S102: Нет), блок 112 управления предсказанием определяет, является информация 114 формата цветности (chroma_format_idc) равной 2 или нет (этап S104). В случае chroma_format_idc = 2 (этап S104: Да), блок 112 управления предсказанием удваивает значение RW (этап S105). Это потому, что chroma_format_idc = 2 означает формат 4:2:2, в котором выборка цветовой разности осуществляется на половину только горизонтально по отношению к яркости.
[0065] Когда chroma_format_idc предполагает другие значения (этап S104: Нет), значения RW и RH не изменяются.
[0066] Далее блок 112 управления предсказанием вычисляет переменную L, указывающую, ограничена ли полоса частот обращения к памяти или нет (этап S106). Переменная L, предполагающая "истину", означает, что применяется способ сокращения полосы частот обращения к памяти, и переменная L, предполагающая "ложь", означает, что способ не применяется.
[0067] Когда предсказание является двунаправленным предсказанием, блок предсказания является небольшим, и два вектора движения представляют собой дробную точность в цветовой разности, как описано для примера выше, причем полоса частот обращения к памяти, к которой должен быть осуществлен доступ, на каждый пиксель увеличивается. Вследствие этого, блок 112 управления предсказанием вычисляет переменную L согласно следующему уравнению (1).
L = (PredMode == PredBi) &&
(nPSW ≤ nLPSW) && (nPSH ≤ nLPSH) &&
(mvL0[0] & (RW-1)) &&
(mvL0[1] & (RH-1)) &&
(mvL1[0] & (RW-1)) &&
(mvL1[1] & (RH-1)); (1)
[0068] Значение вектора движения в горизонтальном направлении в списке 0 блока, который должен быть обработан, задано как mvL0[0], и значение в вертикальном направлении задано как mvL0[1]. Значение вектора движения в горизонтальном направлении в списке 1 задано как mvL1[0], и значение в вертикальном направлении задано как mvL1[1]. PredMode указывает режим предсказания. PredBi указывает двунаправленное предсказание. В описании ниже режимы предсказания однонаправленного предсказания с использованием векторов движения в списке 0 и в списке 1 представлены как PredL0 и PredL1 соответственно.
[0069] Пример уравнения (1) означает случай, в котором режимом предсказания PredMode является PredBi, т.е. выбран блок 202 двунаправленного предсказания. (nPSW ≤ nLPSW) && (nPSH ≤ nLPSH) && означает условие, при котором размер блока предсказания равен информации ограничения размера блока или меньше, чем она. В (mvL0[0] & (RW-1)) &&, (mvL0[1] & (RH-1)) &&, (mvL1[0] & (RW-1)) && и (mvL1[1] & (RH-1)) проверяется, не подвержены ли два вектора движения L0 и L1 двумерной интерполяции для цветовой разности, т.е. выражает ли младший бит вектора движения точность после десятичной запятой. "&" означает побитовый оператор согласно системе обозначений в языке C, и выражает побитовое ИЛИ.
[0070] Условное уравнение для вычисления переменной L не ограничено уравнением (1). Например, может быть независимо определено, даже для режимов предсказания (PredL0, PredL1), отличных от PredBi, как в уравнении (2).
L = (nPSW ≤ nLPSW) && (nPSH ≤ nLPSH) &&
((PredMode == PredBi) &&
(mvL0[0] & (RW-1)) &&
(mvL0[1] & (RH-1)) &&
(mvL1[0] & (RW-1)) &&
(mvL1[1] & (RH-1)) ||
((PredMode == PredL0) &&
(mvL0[0] & (RW-1)) &&
(mvL0 [1] & (RH-1)) ||
((PredMode - PredL1) &&
(mvL1[0] & (RW-1)) &&
(mvL1 [1] & (RH-1))))); (2)
[0071] Как в уравнении (3), значение ограничения (nLPSW1, nLPSH1) размера блока для однонаправленного предсказания (PredL0 or PredL1) может быть задано по-отдельности. Конкретно, размер блока, ограниченный при однонаправленном предсказании, и размер блока, ограниченный при двунаправленном предсказании, могут отличаться друг от друга.
L = ((PredMode == PredBi) &&
(nPSW ≤ nLPSW) && (nPSH ≤ nLPSH) &&
(mvL0 [0] & (RW-1)) &&
(mvL0[1] & (RH-1)) &&
(mvL1[0] & (RW-1)) &&
(mvL1[1] & (RH-1)) ||
(((nPSW ≤ nLPSW1) &&
(nPSH ≤ nLPSH1)) ||
((PredMode == PredL0) &&
(mvL0[0] & (RW-1)) &&
(mvL0[1] & (RH-1)) &&
((PredMode == PredL1) &&
(mvL1[0] & (RW-1)) &&
(mvL1[1] & (RH-1))); (3)
[0072] Когда размер блока предсказания равен значению ограничения (nLPSW, nLPSH) размера блока или меньше его, как в уравнении (4), два вектора движения могут быть ограничены осуществлением доступа только к целому пикселю в цветовой разности во время двунаправленного предсказания.
L = ((PredMode == PredBi) &&
(nPSW ≤ nLPSW) && (nPSH ≤ nLPSH) &&
!((mvL0[0] & (RW-1) == 0) &&
(mvL0 [1] & (RH-1) == 0) &&
(mvL1[0] & (RW-1) == 0) &&
(mvL1[1] & (RH-l) == 0))); (4)
[0073] Ограничено ли значение вектора движения, или при каком условии значение вектора движения ограничено, различают посредством информации 119 профиля/уровня.
[0074] Далее будет описан конкретный способ сокращения полосы частот обращения к памяти. Фиг. 13 является схемой последовательности операций, иллюстрирующей один пример процесса сокращения полосы частот обращения к памяти. Фиг. 13 иллюстрирует один пример способа ограничения значения вектора движения, как способа сокращения полосы частот обращения к памяти.
[0075] Блок 112 управления предсказанием определяет, имеет ли переменная L значение "истина" или нет (этап S201). Если переменная L имеет значение "истина" (этап S201: Да), блок 112 управления предсказанием преобразует значения L0 и L1 двух векторов движения как в уравнении (5) (этап S202).
[0076] mvL0[0] = ((mvL0[0] + (RW >> 1))/RW)×RW;
mvL0[1] = ((mvL0[1] + (RH >> 1))/RH)×RH;
mvL1[0] = ((mvL1[0] + (RW >> 1))/RW)×RW;
mvL1[1] = ((mvL1[1] + (RH >> l))/RH)×RH; (5)
[0077] ">>" указывает арифметический правый сдвиг согласно системе обозначений в языке C. "/" указывает деление в целочисленной арифметике, "×" указывает умножение в целочисленной арифметике. Биты, соответствующие точности интерполяции цветоразностного сигнала двух векторов движения L0 и L1, округляются посредством уравнения (5), чтобы стать 0. При этом в процессе двухмерная интерполяция не исполняется, в силу чего может быть достигнуто сокращение полосы частот обращения к памяти.
[0078] Здесь описан основной способ округления. Однако может быть использован другой способ. Например, может быть использован способ округления в меньшую сторону, способ округления в большую сторону и способ округления до ближайшего четного числа.
[0079] Информация 117 вектора движения, чье значение изменено, кодируется в блоке 105 энтропийного кодирования и выводится как кодированные данные. Способ на фиг. 13 служит для управления информацией 117 вектора движения посредством ограничения значения вектора движения, так чтобы не генерировать кодированные данные, за счет чего полоса частот обращения к памяти увеличивается.
[0080] В качестве альтернативы вместо кодирования информации 117 вектора движения, чье значение изменено в блоке 105 энтропийного кодирования, информация 117 вектора движения до изменения может быть кодирована блоком энтропийного кодирования. В этом случае блок 110 генерирования предсказанного изображения в устройстве 300 декодирования изображений определяет, применяется ли способ сокращения полосы частот обращения к памяти или нет в процессе, таком же как процесс на фиг. 12. Когда он применяется, блок 110 генерирования предсказанного изображения в устройстве 300 декодирования изображений ограничивает вектор движения тем же образом как на фиг. 13.
[0081] Способ преобразования значения вектора движения не ограничен способом округления значения, соответствующего точности интерполяции цветовой разности, как в уравнении (4). Значение может быть округлено отдельно для яркости и цветовой разности. Конкретно, во время интерполяции для яркости может быть округлено значение, соответствующее точности интерполяции яркости, тогда как значение, соответствующее точности интерполяции цветовой разности, может быть округлено во время интерполяционной обработки для цветовой разности. Этот способ служит не для генерирования предсказанного изображения, которое увеличивает полосу частот обращения к памяти, когда устройство 100 кодирования изображений и устройство 300 декодирования изображений сконфигурированы заранее таким образом, чтобы исполнять ту же операцию.
[0082] Фиг. 14 является схемой последовательности операций, иллюстрирующей другой пример процесса сокращения полосы частот обращения к памяти. Фиг. 14 иллюстрирует другой пример способа ограничения значения вектора движения.
[0083] В этом примере блок 112 управления предсказанием и блок 110 генерирования предсказанного изображения вычисляют стоимость для осуществления выбора режима предсказания, размера предсказанного блока и вектора движения. Они предпочтительно выбирают режим предсказания, размер предсказанного блока и вектор движения, которые являются небольшими по стоимости, в силу чего может быть выбрана оптимальная комбинация.
[0084] Переменная MV_Cost, указывающая стоимость для вектора движения, вычисляется посредством использования суммы абсолютных расстояний (SAD) предсказанных остаточных ошибок, объема кода информации вектора движения (MV_Code), и множителя Лагранжа (λ), вычисленного исходя из квантованной информации, как в уравнении (6).
MV_Cost = SAD + λ × MV_Code (6)
[0085] Если переменная L имеет значение "истина" (этап S301: Да), блок 112 управления предсказанием подставляет предварительно определенное максимальное значение MaxValue в переменную MV_Cost, указывающую стоимость для вектора движения (этап S302). При этом процессе блок 112 управления предсказанием управляет, чтобы не выбирать вектор движения, имеющий большую пропускную способность памяти (этап S301).
[0086] В способе на фиг. 14 значение вектора движения ограничивается для управления информацией 117 вектора движения, так чтобы не генерировать кодированные данные, за счет чего полоса частот обращения к памяти увеличивается, как на фиг. 13.
[0087] Фиг. 15 является схемой последовательности операций, иллюстрирующей другой пример способа сокращения полосы частот обращения к памяти. Фиг. 15 иллюстрирует способ управления режимом предсказания цветовой разности в качестве другого способа сокращения полосы частот обращения к памяти.
[0088] Если переменная L имеет значение "истина" (этап S401), только режим предсказания PredMode цвета принудительно перезаписывается в однонаправленное предсказание PredL0 (этап S402). При этом процессе случай двунаправленного предсказания с цветоразностным сигналом с использованием большой полосы частот обращения к памяти может быть ограничен.
[0089] Режим предсказания, в котором режим предсказания принудительно перезаписывается, может быть однонаправленным предсказанием PredL1. То, какой режим предсказания ограничен, определяется согласно информации 119 профиля/уровня.
[0090] Как описано выше, согласно настоящему варианту осуществления полоса частот обращения к памяти после генерирования интерполяционного изображения с компенсацией движения во время кодирования изображения и декодирования изображения может быть сокращено.
[0091] Далее со ссылкой на фиг. 16 будет описана аппаратная конфигурация устройства (устройства кодирования изображений и устройства декодирования изображений) согласно настоящему варианту осуществления. Фиг. 16 является примерным видом, иллюстрирующим аппаратную конфигурацию устройства согласно настоящему варианту осуществления.
[0092] Устройство согласно настоящему варианту осуществления включает в себя устройство управления, такое как CPU (центральный блок обработки) 51, устройство памяти, такое как ROM (постоянная память) 52 или RAM (оперативная память) 53, I/F 54 связи, который присоединен к сети для обеспечения возможности взаимной связи, и шину 61, которая взаимно соединяет каждый блок.
[0093] Программа, исполняемая устройством согласно настоящему варианту осуществления, предоставляется как заранее встроенная в ROM 52.
[0094] Программа может быть выполнена с возможностью предоставления в качестве компьютерного продукта, в качестве записанной в виде файла в разрешенном к установке формате или в исполнительном формате на считываемый компьютером носитель записи, такой как CD (компакт-диск)-ROM, гибкий диск (FD), CD-R, DVD (универсальный цифровой диск) и подобные.
[0095] К тому же, программа может быть предоставлена таким образом, что программа хранится на компьютере, присоединенном к сети, такой как Интернет, для обеспечения возможности осуществления загрузки через сеть. Программа может быть выполнена с возможностью предоставления или распространения через сеть, такую как Интернет.
[0096] Программа, исполняемая устройством согласно настоящему варианту осуществления, может обеспечить компьютеру возможность функционировать, как каждый блок (блок генерирования предсказанного изображения и подобные), описанный выше. CPU 51 в компьютере может считать программу со считываемого компьютером запоминающего носителя в устройство основной памяти и исполнить эту же программу.
[0097] Тогда как некоторые варианты осуществления были описаны, эти варианты осуществления были представлены только в качестве примера и не предназначены для ограничения объема данных изобретений. На самом деле новые варианты осуществления, описанные в настоящем документе, могут быть осуществлены в многообразии других форм; к тому же, различные упущения, замены и изменения в виде вариантов осуществления, описанных в настоящем документе, могут быть сделаны без отступления от сущности данных изобретений. Сопутствующие пункты формулы изобретения и их эквиваленты предназначены охватывать такие формы или модификации, которые могли бы попадать в пределы объема и сущности данных изобретений.
Список ссылочных обозначений
[0098] 100 Устройство кодирования изображений
101 входной видеосигнал
102 блок вычитания
103 блок преобразования/квантования
104 блок обратного квантования/обратного преобразования
105 блок энтропийного кодирования
106 блок сложения
107 сигнал декодированного изображения
108 память кадров
109 сигнал опорного изображения
110 блок генерирования предсказанного изображения
111 сигнал предсказанного изображения
112 блок управления предсказанием
113 блок управления кодированием
114 информация формата цветности
115 информация ограничения размера блока
116 блок поиска вектора движения
117 информация вектора движения
118 блок управления предсказанием
119 информация профиля/уровня
120 кодированные данные
300 устройство декодирования изображений
301 кодированные данные
302 блок энтропийного декодирования
303 блок обратного квантования/обратного преобразования
304 блок сложения
305 сигнал декодированного изображения
306 память кадров
307 воспроизведенный видеосигнал
308 сигнал опорного изображения
310 сигнал предсказанного изображения
311 блок управления предсказанием
312 информация вектора
313 информация профиля/уровня