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

Область техники, к которой относится изобретение
Настоящее изобретение относится к технологии декодирования изображения.
Уровень техники
Существуют технологии декодирования изображения, такие как HEVC (H.265). В HEVC режим слияния используется в качестве режима предсказания.
Патентная литература 1: JP10-276439
Раскрытие сущности изобретения
В HEVC в качестве режимов межкадрового предсказания доступны режим слияния и режим разности векторов движения. Мы поняли, что существует возможность дополнительного повышения эффективности кодирования, корректируя вектор движения в режиме слияния.
Настоящее изобретение решает упомянутую выше проблему и задача его состоит в том, чтобы обеспечить новейший режим межкадрового предсказания, предлагающий более высокую эффективность посредством коррекции вектора движения в режиме слияния.
Устройство декодирования изображения, соответствующее варианту осуществления настоящего изобретения, содержит: блок формирования возможных режимов слияния, который формирует список возможных режимов слияния, содержащий в качестве возможного режима слияния информацию о движении на множестве блоков изображения, граничащих с блоком изображения, подвергаемым предсказанию; блок выбора возможного режима слияния, который выбирает в качестве выбранного возможного режима слияния возможный режим слияния из списка возможных режимов слияния; блок декодирования битового потока, который декодирует битовый поток, чтобы получить разность векторов движения; и блок коррекции возможного режима слияния, который получает скорректированный возможный режим слияния, суммируя разность векторов движения с вектором движения выбранного возможного режима слияния для первого предсказания без масштабирования и вычитая разность векторов движения из вектора движения выбранного возможного режима слияния для второго предсказания без масштабирования.
Дополнительные сочетания вышеупомянутых составляющих элементов и реализации раскрытия в форме способов, устройств, систем, носителей записи и компьютерных программ могут также быть осуществлены на практике как дополнительные режимы настоящего изобретения.
В соответствии с настоящим изобретением, может быть обеспечен новейший режим межкадрового предсказания, который предлагает более высокую эффективность.
Краткое описание чертежей
Фиг. 1A - конфигурация устройства 100 кодирования изображения, соответствующего первому варианту осуществления, и фиг. 1B - конфигурация устройства 200 декодирования изображения, соответствующего первому варианту осуществления;
Фиг. 2 - пример, в котором входное изображение делится на блоки изображения, основываясь на размере блока изображения;
Фиг. 3 - конфигурация блока межкадрового предсказания устройства кодирования изображения, показанного на фиг. 1A;
Фиг. 4 - блок-схема последовательности выполнения операций в режиме слияния, соответствующая первому варианту осуществления;
Фиг. 5 - конфигурация блока формирования списка возможных режимов слияния устройства кодирования изображения, показанного на фиг. 1A;
Фиг. 6 – блоки изображения, граничащие с обрабатываемым блоком изображения;
Фиг. 7 - блоки изображения на декодированном изображении, расположенном в том же самом месте, что и обрабатываемый блок или вокруг обрабатываемого блока;
Фиг. 8 - часть синтаксиса блока изображения в режиме слияния, соответствующая варианту осуществления;
Фиг. 9 - синтаксис разности векторов движения, соответствующий первому варианту осуществления;
Фиг. 10 - синтаксис разности векторов движения, соответствующий случая первого варианта осуществления;
Фиг. 11 - часть синтаксиса блока изображения в режиме слияния, соответствующая другому случаю первого варианта осуществления;
Фиг. 12 - часть синтаксиса блока изображения в режиме слияния, соответствующая еще одному другому случаю первого варианта осуществления;
Фиг. 13 – блок-схема последовательности выполнения операций в режиме слияния в соответствии со вторым вариантом осуществления;
Фиг. 14 - часть синтаксиса блока изображения в режиме слияния, соответствующая второму варианту осуществления;
Фиг. 15 - синтаксис разности векторов движения, соответствующий второму варианту осуществления;
Фиг. 16 - преимущество модификации 8 первого варианта осуществления;
Фиг. 17 - преимущество, обеспечиваемое в случае, когда интервалы изображения в модификации 8, соответствующем первому варианту осуществления, не являются постоянными; и
Фиг. 18 – примерная конфигурация аппаратных средств устройства кодирования и декодирования, соответствующего первому варианту осуществления.
Осуществление изобретения
Первый вариант осуществления
Ниже представлено описание подробностей устройства кодирования изображения, способа кодирования изображения, программы кодирования изображения, устройства декодирования изображения, способа декодирования изображения и программы декодирования изображения, соответствующих первому варианту осуществления настоящего изобретения, со ссылкой на чертежи.
На фиг. 1A представлена конфигурация устройства 100 кодирования изображения, соответствующего первому варианту осуществления, а на фиг. 1B представлена конфигурация устройства 200 декодирования изображения, соответствующего первому варианту осуществления.
Устройство 100 кодирования изображения, соответствующее варианту осуществления, содержит блок 110 определения размера блока изображения, блок 120 предсказания, блок 130 преобразования, блок 140 формирования битового потока, блок 150 локального декодирования и кадровую память 160. Устройство 100 кодирования изображения принимает на входе входное изображение, выполняет внутрикадровое предсказание и межкадровое предсказание и выводит битовый поток. Здесь далее термины "изображение" и "картинка" используются как обозначающие одно и то же.
Устройство 200 декодирования изображения содержит блок 210 декодирования битового потока, блок 220 межкадрового предсказания, блок 230 обратного преобразования и кадровую память 240. Устройство 200 декодирования изображения принимает на входе битовый поток с выхода устройства 100 кодирования изображения, выполняет внутрикадровое предсказание и межкадровое предсказание и выводит декодированное изображение.
Устройство 100 кодирования изображения и устройство 200 декодирования изображения реализуются аппаратными средствами, такими как устройство обработки информации, снабженное центральным процессором (central processing unit, CPU), памятью и т.д.
Сначала будет приведено описание функции и порядка действия составляющих частей устройства 100 кодирования изображения. Предполагается, что внутрикадровое предсказание выполняется так, как определено в HEVC, и представленное ниже описание будет соответствовать межкадровому предсказанию.
Блок 110 определения размера блока изображения определяет размер блока изображения, подвергаемого межкадровому предсказанию, основываясь на входном изображении. Блок 110 определения размера блока изображения подает определенный размер блока изображения, положение блока изображения и входной пиксель (входное значение), соответствующие размеру блока изображения, на блок 120 межкадрового предсказания. Для определения размера блока изображения используется оптимизация искажения в зависимости от скорости передачи (rate distortion optimization, RDO), применяемая в ссылочном программном обеспечении HEVC и т. д.
Далее приводится описание размера блока изображения. На фиг. 2 показан пример, в котором частичная область изображения, подаваемого на вход устройства 100 кодирования изображения, делится на блоки изображения, основываясь на размере блока изображения, определяемом блоком 110 определения размера блока изображения. Доступны размеры блока изображения 4×4, 8×4, 4×8, 8×8, 16×8, 8×16, 32×32, …, 128×64, 64×128 и 128×128. Входное изображение делится, используя эти размеры блока изображения таким образом, чтобы блоки изображения не накладывались друг на друга.
Блок 120 межкадрового предсказания использует информацию, вводимую от блока 110 определения размера блока изображения, и опорное изображение, вводимое из кадровой памяти 160, чтобы определить параметр межкадрового предсказания, используемый при межкадровом предсказании. Блок 120 межкадрового предсказания выполняет межкадровое предсказание, основываясь на параметре межкадрового предсказания, чтобы получить значение предсказания. Блок 120 межкадрового предсказания подает размер блока изображения, положение блока изображения, входное значение, параметр межкадрового предсказания и значение предсказания на блок 130 преобразования. Для определения параметра предсказания используется оптимизация искажения в зависимости от скорости передачи (RDO), применяемая в ссылочном программном обеспечении HEVC и т. д. Подробности параметра межкадрового предсказания и порядка действия блока 120 межкадрового предсказания будут описаны позже.
Блок 130 преобразования вычисляет значение разности, полученное путем вычитания значения предсказания из входного значения, вычисляет ошибки предсказания, подвергая вычисленное значение разности ортогональному преобразованию, квантованию, и т.д. Блок 130 преобразования подает размер блока изображения, положение блока изображения, параметр межкадрового предсказания, данные ошибки предсказания на блок 140 формирования битового потока и на блок 150 локального декодирования.
Блок 140 формирования битового потока кодирует набор параметров последовательности (Sequence Parameter Set, SPS), набор параметров изображения (Picture Parameter Set, PPS) или другую информацию, по мере необходимости. Блок 140 формирования битового потока кодирует битовый поток, подаваемый от блока 130 преобразования для определения размера блока изображения, кодирует параметр межкадрового предсказания в битовом потоке, кодирует данные ошибки предсказания в битовом потоке и выводит битовый поток. Подробности кодирования параметра межкадрового предсказания будут описаны позже.
Блок 150 локального декодирования восстанавливает значение разности, подвергая данные ошибки предсказания обратному ортогональному преобразованию, обратному квантованию и т. д. Блок 150 локального декодирования суммирует значение разности и значение предсказания, чтобы сформировать декодированное изображение, и подает декодированное изображение и параметр межкадрового предсказания в кадровую память 160.
Кадровая память 160 хранит множество декодированных изображений и параметров межкадрового предсказания для множества изображений. Кадровая память 160 подает декодированные изображения и параметры межкадрового предсказания на блок 120 межкадрового предсказания.
Далее будет приведено описание функции и порядка действия составляющих частей устройства 200 декодирования изображения. Предполагается, что внутрикадровое предсказание выполняется в соответствии с HEVC и ниже будет приведено описание межкадрового предсказания.
Блок 210 декодирования битового потока по мере необходимости декодирует SPS, PPS или другую информацию из битового потока. Блок 210 декодирования битового потока декодирует из битового потока размер блока изображения, положение блока изображения, параметр межкадрового предсказания и данные ошибки предсказания. Блок 210 декодирования битового потока подает размер блока изображения, положение блока изображения, параметр межкадрового предсказания и данные ошибки предсказания на блок 220 межкадрового предсказания.
Блок 220 межкадрового предсказания использует информацию, полученную от блока 210 декодирования битового потока, и опорное изображение, полученное из кадровой памяти 240, и выполняет межкадровое предсказание, чтобы получить значение предсказания. Блок 220 межкадрового предсказания подает размер блока изображения, положение блока изображения, параметр межкадрового предсказания, данные ошибки предсказания и значение предсказания на блок 230 обратного преобразования.
Блок 230 обратного преобразования вычисляет значение разности, подвергая данные ошибки предсказания, полученные от блока 220 межкадрового предсказания 220, обратному ортогональному преобразованию, обратному квантованию и т.д. Блок 230 обратного преобразования суммирует значение разности и значение предсказания, чтобы сформировать декодированное изображение. Блок 230 обратного преобразования подает декодированное изображение и параметр межкадрового предсказания в кадровую память 240 и выводит декодированное изображение.
Кадровая память 240 хранит множество декодированных изображений и параметров межкадрового предсказания для множества изображений. Кадровая память 240 подает декодированные изображения и параметры межкадрового предсказания на блок 220 межкадрового предсказания.
Межкадровое предсказание, выполняемое блоком 120 межкадрового предсказания и блоком 220 межкадрового предсказания, является одинаковым. Декодированные изображения и параметры межкадрового предсказания, хранящиеся в кадровой памяти 160 и в кадровой памяти 240, также являются одинаковыми.
Далее будет приведено описание параметра межкадрового предсказания. Параметр межкадрового предсказания содержит флаг слияния, индекс слияния, флаг доступности для предсказания LX, вектор движения для предсказания LX, индекс опорного изображения для предсказания LX, флаг коррекции слияния и разность векторов движения для предсказания LX. LX равняется L0 или L1. Флаг слияния является флагом, указывающим, какой из режима слияния и режима разности векторов движения используется в качестве режима межкадрового предсказания. Когда флаг слияния равен 1, используется режим слияния. Когда флаг слияния равен 0, используется режим разности векторов движения. Индекс слияния является индексом, указывающим положение выбранного возможного режима слияния в списке возможных режимов слияния. Флаг доступности для предсказания LX является флагом, указывающим, доступно или недоступно предсказание LX. Когда доступны оба предсказания, L0 и L1, указывается двунаправленное предсказание. Когда доступно предсказание L0, а предсказание L1 недоступно, указывается предсказание L0. Когда доступно предсказание L1, а предсказание L0 недоступно, указывается предсказание L1. Флаг коррекции слияния является флагом, указывающим, корректировать ли информацию о движении для возможного режима слияния. Когда флаг коррекции слияния равен 1, возможный режим слияния корректируется. Когда флаг коррекции слияния равен 0, возможный режим слияния не корректируется. Следует заметить, что блок 140 формирования битового потока не кодирует флаг доступности для предсказания LX в битовом потоке. Дополнительно, блок 210 декодирования битового потока не декодирует флаг доступности для предсказания LX из битового потока. Индекс опорного изображения является индексом для идентификации декодированного изображения в кадровой памяти 160. Дополнительно, сочетание флага доступности для предсказания L0, флага доступности для предсказания L1, вектора движения для предсказания L0, вектора движения для предсказания L1, индекса опорного изображения для предсказания L0 и индекса опорного изображения для предсказания L1 будет определено как информация о движении.
Когда блок находится в режиме внутрикадрового кодирования или за пределами области изображения, то флаг доступности для предсказания L0 и флаг доступности для предсказания L1 вместе конфигурируются с возможностью указания как "недоступный".
Здесь далее тип изображения для изображения B, для которого доступны все такие предсказания, как однонаправленное предсказание L0, однонаправленное предсказание L1 и двунаправленное предсказание, описывается посредством примера. Однако, тип изображения может быть изображением P, для которого доступно только однонаправленное предсказание. Параметр межкадрового предсказания для изображения P охватывает только предсказание L0 и обрабатывается так, что предсказание L1 не доступно. Эффективность кодирования изображений B, в целом, повышается, когда опорное изображение для предсказания L0 является изображением в прошлом, относительным изображения, подвергаемого предсказанию, а опорное изображение для межкадрового предсказания L1 является изображением в будущем, относительным изображения, подвергаемого предсказанию. Причина в том, что интерполяционное предсказание повышает эффективность кодирования, когда опорное изображение для предсказания L0 и опорное изображение для предсказания L1 располагаются в противоположных направлениях, если смотреть со стороны изображения, подвергаемого предсказанию. Располагаются ли опорное изображение для предсказания L0 и опорное изображение для предсказания L1 в противоположных направлениях, если смотреть со стороны изображения, подвергаемого предсказанию, может быть определено, сравнивая подсчеты порядка изображения (Picture Order Count, POC) опорных изображений. В последующем описании предполагается, что опорное изображение для предсказания L0 и опорное изображение для предсказания L1 временно располагаются в противоположных направлениях, если смотреть со стороны изображения, подвергаемого предсказанию.
Далее будет представлено описание подробностей блока 120 межкадрового предсказания. Если не указано что-либо иное, конфигурация и порядок действия блока 120 межкадрового предсказания устройства кодирования изображения и блока устройства 220 межкадрового предсказания устройства 200 декодирования изображения являются одинаковыми.
На фиг. 3 представлена конфигурация блока 120 межкадрового предсказания. Блок 120 межкадрового предсказания содержит блок 121 определения режима слияния, блок 122 формирования списка возможных режимов слияния, блок 123 выбора возможного режима слияния, блок 124 определения коррекции возможного режима слияния, блок 125 коррекции возможного режима слияния, блок 126 выполнения режима разности векторов движения и блок 127 получения значения предсказания.
Блок 120 межкадрового предсказания переключает режим межкадрового предсказания для каждого блока изображения путем переключения между режимом слияния и режимом разности векторов движения. Режим разности векторов движения, выполняемый в блоке 126 выполнения режима разности векторов движения, как предполагается, должен выполняться в соответствии с HEVC и ниже будет приведено, главным образом, описание режима слияния.
Блок 121 определения режима слияния определяет для каждого блока изображения, используется ли режим слияния в качестве режима межкадрового предсказания. Когда флаг слияния равен 1, используется режим слияния. Когда флаг слияния равен 0, используется режим разности векторов движения.
Для определения, установлен ли в блоке 120 межкадрового предсказания флаг слияния равным 1, используется оптимизация искажения в зависимости от скорости передачи (rate distortion optimization, RDO), применяемая в ссылочном программном обеспечении HEVC, и т. д. Блок 220 межкадрового предсказания получает флаг слияния, декодированный блоком 210 декодирования битового потока, из битового потока, основываясь на синтаксисе. Подробности синтаксиса будет описаны позже.
Когда флаг слияния равен 0, блок 126 выполнения режима разности векторов движения выполняет режим разности векторов движения и параметр межкадрового предсказания в режиме разности векторов движения подается на блок 127 получения значения предсказания.
Когда флаг слияния равен 1, режим слияния выполняется в блоке 122 формирования списка возможных режимов слияния, в блоке 123 выбора возможного режима слияния, в блоке 124 определения коррекции возможного режима слияния и в блоке 125 коррекции возможного режима слияния. Параметр межкадрового предсказания в режиме слияния подается на блок 127 получения значения предсказания.
Ниже будет подробно описан процесс, выполняемый, когда флаг слияния равен 1.
На фиг. 4 представлена блок-схема последовательности выполнения операций в режиме слияния. Режим слияния ниже будет описан подробно со ссылкой на фиг. 3 и 4.
Сначала блок 122 формирования списка возможных режимов слияния формирует список возможных режимов слияния, исходя из информации о движении на блоке изображения, граничащем с обрабатываемым блоком изображения, и информации о движении на блоке изображения в декодированном изображении (S100). Блок 122 формирования списка возможных режимов слияния подает список возможных режимов слияния, сформированный таким образом, на блок 123 выбора возможного режима слияния. Здесь далее обрабатываемый блок изображения и блок изображения, подвергаемый предсказанию, используются как означающие одно и то же.
Далее будет приведено описание формирования списка возможных режимов слияния. На фиг. 5 показана конфигурация блока 122 формирования списка возможных режимов слияния. Блок 122 формирования списка возможных режимов слияния содержит блок 201 формирования возможного режима пространственного слияния, блок 202 формирования временного возможного режима слияния и блок 203 дополнения возможного режима слияния.
На фиг. 6 показаны блоки изображения, граничащие с обрабатываемым блоком изображения. Блок A, блок B, блок C, блок D, блок E, блок F и блок G определяются как блоки, граничащие с обрабатываемым блоком изображения. Однако, вариант осуществления не создает ограничений, пока используется множество блоков изображения, граничащих с обрабатываемым блоком изображения.
На фиг. 7 показаны блоки изображения на декодированном изображении, расположенном в том же самом положении, что и обрабатываемый блок, или вокруг обрабатываемого блока. Блок CO1 изображения, блок CO2 изображения и блок CO3 изображения определяются как блоки, расположенные в том же самом положении, что и обрабатываемый блок, или вокруг обрабатываемого блока. Однако, вариант осуществления не создает ограничений, пока на декодированном изображении, расположенном в том же самом положении, что и обрабатываемый блок, или вокруг обрабатываемого блока используется множество блоков изображения. Здесь далее блоки CO1 изображения, CO2 изображения и CO3 изображения будут упоминаться как расположенные рядом блоки изображения и декодированное изображение, содержащее расположенные рядом блоки изображения, будет упоминаться как расположенное рядом изображение.
Ниже подробно будет описано формирование списка возможных режимов слияния со ссылкой на фиг. 5, 6 и 7.
Сначала блок 201 формирования возможного режима пространственного слияния последовательно проверяет блок A изображения, блок B изображения, блок C изображения, блок D изображения, блок E изображения, блок F изображения и блок G изображения. Когда один или оба из флага доступности для предсказания L0 и флага доступности для предсказания L1 указывают "доступно", информация о движении в блоке изображения последовательно добавляется к списку возможных режимов слияния. Возможный режим слияния, сформированный блоком 201 формирования возможных режимов пространственного слияния, будет упоминаться как возможный режим пространственного слияния.
Блок 202 формирования временного возможного режима слияния затем последовательно проверяет блок CO01 изображения, блок CO2 изображения и блок CO3 изображения. Блок 202 формирования временного возможного режима слияния подвергает информацию о движении для первого блока изображения, для которого один или оба флага, флаг доступности для предсказания L0 и флаг доступности для предсказания L1, указывают "доступно", такому процессу, как масштабирование, и последовательно добавляет блок изображения к списку возможных режимов слияния. Возможный режим слияния, сформированный блоком 202 формирования временного возможного режима слияния, будет упоминаться как временный возможный режим слияния.
Далее будет приведено описание масштабирования временного возможного режима слияния. Масштабирование временного возможного режима слияния является таким, как определено HEVC. Вектор движения временного возможного режима слияния выводится посредством масштабирования вектора движения расположенного рядом блока изображения в соответствии с расстоянием между изображением, в котором располагается обрабатываемый блок изображения, и изображением, упоминаемым временным возможным режимом слияния, относительно расстояния между расположенным рядом изображением и опорным изображением, на которое ссылается расположенное рядом изображение.
Изображение, на которое ссылается временный возможный режим слияния, является опорным изображением, для которого индексы опорного изображения для предсказания L0 и предсказания L1 оба равны 0. Используется ли расположенный рядом блок изображения для предсказания L0 или расположенный рядом блок изображения для предсказания L1 как расположенный рядом блок, определяется, кодируя (декодируя) флаг получения соседнего расположения. Как описано выше, вектор движения для предсказания L0 или вектор движения для предсказания L1 расположенного рядом блока изображения масштабируется для предсказания L0 или предсказания L1, получая, таким образом, новый вектор движения для предсказания L0 или новый вектор движения для предсказания L1. Новый вектор движения для предсказания L0 или новый вектор движения для предсказания L1 определяется как вектор движения для временного возможного режима слияния.
Затем, когда обнаружено, что множество позиций одной и той же информации о движении включено в список возможных режимов слияния, одну позицию информации о движении разрешают оставить, а другие позиции информации о движении стирают.
Затем, когда обнаружено, что количество возможных режимов слияния, содержащихся в списке возможных режимов слияния, меньше максимального количества возможных режимов слияния, блок 203 дополнения возможных режимов слияния добавляет дополнительные возможные режимы слияния в список возможных режимов слияния, пока количество возможных режимов слияния, содержащихся в списке возможных режимов слияния, не достигнет максимального количества возможных режимов слияния, чтобы сделать количество возможных режимов слияния, содержащихся в списке возможных режимов слияния, равным максимальному количеству возможных режимов. Дополнительный возможный режим слияния является информацией о движении, в которой векторы движения для предсказания L0 и предсказания L1 оба равны (0,0) и индексы опорных изображений для предсказания L0 и предсказания L1 оба равны 0.
Максимальное количество возможных режимов слияния здесь предполагается равным 6, но оно может равняться 1 или больше.
Блок 123 выбора возможного режима слияния затем выбирает один возможный режим слияния из списка возможных режимов слияния (S101). Блок 123 выбора возможного режима слияния подает возможный режим слияния, выбранный таким образом, (называемый "выбранным возможным режимом слияния") и индекс слияния на блок 124 коррекции возможного режима слияния. Блок 123 выбора возможного режима слияния определяет выбранный возможный режим слияния как информацию о движении для обрабатываемого блока. Блок 120 межкадрового предсказания устройства 100 кодирования изображения использует оптимизацию искажения в зависимости от скорости передачи (RDO), применяемую в ссылочном программном обеспечении HEVC и т. д., чтобы выбрать один возможный режим слияния из числа возможных режимов слияния, содержащихся в списке возможных режимов слияния, и определить индекс слияния. Блок 220 межкадрового предсказания устройства 200 декодирования изображения получает индекс слияния, декодированный блоком 210 декодирования битового потока из битового потока, и выбирает один возможный режим слияния из числа возможных режимов слияния, содержащихся в списке возможных режимов слияния, основываясь на индексе слияния.
Блок 124 определения коррекции возможного режима слияния, затем проверяет, равна ли или больше заданной ширины ширина обрабатываемого блока изображения или равна ли или больше заданной высоты высота обрабатываемого блока изображения и доступны ли оба или по меньшей мере одно предсказание L0 или предсказание L1 выбранного возможного режима слияния (S102). Если не удовлетворяется условие, что ширина обрабатываемого блока изображения равна или больше заданной ширины, высота обрабатываемого блока изображения равна или больше заданной высоты, и оба или по меньшей мере одно предсказание L0 или предсказание L1 выбранного возможного режима слияния доступно (NO на этапе S102), выбранный возможный режим слияния не корректируется как движение обрабатываемого блока, и управление переходит к этапу S111. Список возможный режимов слияния будет содержать возможный режим слияния, в котором по меньшей мере одно предсказание L0 или предсказание L1 доступно без исключения. Поэтому очевидно, что доступны оба или по меньшей мере одно предсказание L0 или предсказание L1 для выбранного возможного режима слияния. Таким образом, этап определения "доступны ли оба или по меньшей мере одно предсказание L0 или предсказание L1 для выбранного возможного режима слияния" на этапе S102 может быть пропущен и этап S102 может проверить, равна ли или больше заданной ширины ширина обрабатываемого блока изображения и равна ли или больше заданной высоты высота обрабатываемого блока изображения.
Когда ширина обрабатываемого блока изображения равна или больше заданной ширины, высота обрабатываемого блока изображения равна или больше заданной высоты и оба или по меньшей мере одно предсказание L0 или предсказание L1 выбранного возможного режима слияния доступны (YES на этапе S102), блок 124 определения коррекции возможного режима слияния устанавливает флаг коррекции слияния (S103) и подает флаг коррекции слияния на блок 125 коррекции возможного режима слияния. Блок 120 межкадрового предсказания устройства 100 кодирования изображения устанавливает флаг коррекции слияния равным 1, когда ошибка предсказания, которая получается в результате того, что межкадровое предсказание выполняется, используя возможный режим слияния, равна или больше заданной ошибки предсказания. Когда ошибка межкадрового предсказания, полученная в результате того, что межкадровое предсказание выполняется, используя выбранный возможный режим слияния, не равна или больше заданной ошибки предсказания, блок 120 межкадрового предсказания устанавливает флаг коррекции слияния равным 0. Блок 220 межкадрового предсказания устройства 200 декодирования изображения получает флаг коррекции слияния, декодированный блоком 210 декодирования битового потока, из битового потока, основываясь на синтаксисе.
Блок 125 коррекции возможного режима слияния затем проверяет, равен ли 1 флаг коррекции слияния (S104). Когда флаг коррекции слияния не равен 1 (NO на этапе S104), управление переходит к этапу S111 без коррекции выбранного возможного режима слияния как информации о движении на обрабатываемом блоке изображения.
Когда флаг коррекции слияния равен 1 (YES на этапе S104), блок 125 коррекции возможного режима слияния проверяет, доступно ли предсказание L0 для выбранного возможного режима слияния (S105). Когда предсказание L0 выбранного возможного режима слияния недоступно (NO на этапе S105), управление переходит к этапу S108. Когда предсказание L0 выбранного возможного режима слияния доступно (YES на этапе S105), определяют разность векторов движения для предсказания L0 (S106). Как описано выше, информация для выбранного возможного режима слияния корректируется, когда флаг коррекции слияния равен 1. Информация о движении выбранного возможного режима слияния не корректируется, когда флаг коррекции слияния равен 0.
Блок 120 межкадрового предсказания устройства 100 кодирования изображения определяет разность векторов движения для предсказания L0 посредством поиска векторов движения. Здесь предполагается, что диапазон поиска векторов движения составляет ±16 как в горизонтальном направлении, так и в вертикальном направлении. Альтернативно, диапазон может быть целочисленным множителем 2, таким как 64. Блок 220 межкадрового предсказания устройства 200 декодирования изображения получает разность векторов движения для предсказания L0, декодированную блоком 210 декодирования битового потока 210, из битового потока, основываясь на синтаксисе.
Блок 125 коррекции возможного режима слияния затем вычисляет скорректированный вектор движения для предсказания L0 и определяет скорректированный вектор движения для предсказания L0 в качестве вектора движения для предсказания L0 информации о движении на обрабатываемом блоке (S107).
Далее будет приведено описание взаимосвязи между скорректированным вектором движения для предсказания L0 (mvL0), вектором движения для предсказания L0 выбранного возможного режима слияния (mmvL0) и разностью векторов движения для предсказания L1 (mvdL0). Скорректированный вектор движения для предсказания L0 (mvL0) получают сложением вектора движения для предсказания L0 выбранного возможного режима слияния (mmvL0) и разности векторов движения для предсказания L0 (mvdL0) и представляют нижеследующим выражением, в котором [0] обозначает горизонтальную составляющую вектора движения и [1] обозначает вертикальную составляющую вектора движения.
mvL0 [0] =mmvL0 [0] +mvdL0 [0]
mvL0 [1] =mmvL0 [1] +mvdL0 [1]
Затем, на этапе S108 проверяют, доступно ли предсказание L1 выбранного возможного режима слияния. Когда предсказание L1 выбранного возможного режима слияния недоступно (NO на этапе S108), управление переходит к этапу S111. Когда предсказание L1 выбранного возможного режима слияния доступно (YES на этапе S108), определяют разность векторов движения для предсказания L1 (S109).
Блок 120 межкадрового предсказания устройства 100 кодирования изображения определяет разность векторов движения для предсказания L1 посредством поиска векторов движения. Здесь предполагается, что диапазон поиска векторов движения составляет ±16 как в горизонтальном направлении, так и в вертикальном направлении. Альтернативно, диапазон может быть целочисленным множителем 2, таким как ±64. Блок 220 межкадрового предсказания устройство 200 декодирования изображения получает разность векторов движения для предсказания L1, декодированную блоком 210 декодирования битового потока, из битового потока, основываясь на синтаксисе.
Блок 125 коррекции возможного режима слияния затем вычисляет скорректированный вектор движения для предсказания L1 и определяет скорректированный вектор движения для предсказания L1 как вектор движения для предсказания L1 информации о движении на обрабатываемом блоке (S110).
Далее будет приведено описание взаимосвязи между скорректированным вектором движения для предсказания L1 (mvL1), вектором движения для предсказания L1 выбранного возможного режима слияния (mmvL1) и разностью векторов движения для предсказания L1 (mvdL0). Скорректированный вектор движения для предсказания L1 (mvL1) получают, суммируя вектор движения для предсказания L1 выбранного возможного режима слияния (mmvL1) и разность векторов движения для предсказания L1 (mvdL1), и представляют нижеследующим выражением, в котором [0] обозначает горизонтальную составляющую вектора движения, и [1] обозначает вертикальную составляющую вектора движения.
mvL1 [0] =mmvL1 [0] +mvdL1 [0]
mvL1 [1] =mmvL1 [1] +mvdL1 [1]
Блок 127 получения значения предсказания затем выполняет одно из следующего: предсказание L0, предсказание L1 или двунаправленное предсказание, основываясь на информации о движении на обрабатываемом блоке изображения, чтобы получить значение предсказания (S111). Как описано выше, информация о движении выбранного возможного режима слияния корректируется, когда флаг коррекции слияния равен 1. Информация о движении выбранного возможного режима слияния не корректируется, когда флаг коррекции слияния равен 0.
Ниже будет подробно описано кодирование параметра межкадрового предсказания. На фиг. 8 показана часть синтаксиса блока изображения в режиме слияния. В таблице 1 представлена взаимосвязь между параметром межкадрового предсказания и синтаксисом. cbWidth на фиг. 8 обозначает ширину обрабатываемого блока изображения и cbheight обозначает высоту обрабатываемого блока изображения. Заданная ширина и заданная высота определяются как равные 8. Устанавливая без коррекции возможного режима слияния в единицах малых блоков изображения заданную ширину и заданную высоту, объем обработки можно уменьшить. cu_skip_flag будет равен 1, когда блок изображения находится в режиме пропуска, и будет равен 0, когда блок не находится в режиме пропуска. Синтаксис режима пропуска является таким же, как синтаксис режима слияния. merge_idx является индексом слияния для выбора выбранного возможного режима слияния из списка возможных режимов слияния.
Кодируя (декодируя) merge_idx перед merge_mod_flag, чтобы фиксировать индекс слияния, и затем определяя кодирование (декодирование) merge_mod_flag, и совместно используя индекс слияния merge_idx с помощью режима слияния, эффективность кодирования повышается, в то время, как то же самое не дает возможности усложнения синтаксиса и увеличения контекста.
Элемент параметра межкадрового предсказания
Элемент синтаксиса
флаг слияния
merge_flag
индекс слияния
merge_idx
флаг коррекции слияния
merge_mod_flag
разность векторов движения для предсказания L0
mvd_coding (0)
разность векторов движения для предсказания L1
mvd_coding (1)
флаг доступности для предсказания L0
valid_l0
флаг доступности для предсказания L1
valid_l1
На фиг. 9 показан синтаксис разности векторов движения. mvd_coding (N) на фиг. 9 является таким же синтаксисом, что и синтаксис, используемый в режиме разности векторов движения, где N равно 0 или 1. N=0 указывает предсказание L0, и N=1 указывает предсказание L1.
Синтаксис разности векторов движения содержит: abs_mvd_greater0_flag[d], флаг, указывающий, больше ли 0 компонент разности векторов движения; abs_mvd_greater1_flag [d], флаг, указывающий, больше ли 1 компонент разности векторов движения; mvd_sign_flag [d] указывает знак (±) разности векторов движения; и abs_mvd_minus2 [d] указывает абсолютное значение вектора, полученное, вычитая 2 из компонента разности векторов движения, где d равно 0 или 1. d=0 указывает горизонтальную составляющую, и d=1 указывает вертикальную составляющую.
В HEVC режим слияния и режим разности векторов движения доступны в качестве режимов межкадрового предсказания. Режим слияния позволяет восстанавливать информацию о движении, используя один флаг слияния, и, таким образом, предлагает чрезвычайно высокую эффективность кодирования. Поскольку информация о движении в режиме слияния зависит от обрабатываемого блока изображения, то поэтому высокая эффективность межкадрового предсказания доступна только в ограниченных случаях и требовалось повышение эффективности использования.
С другой стороны, режим разности векторов движения требует отдельной подготовки синтаксиса для предсказания L0 и синтаксиса для предсказания L1. Режим разности векторов движения также требует типа предсказания (предсказание L0, предсказание L1 или двунаправленное предсказание) и флага предиктора вектора движения, разности векторов движения и индекса опорного изображения для предсказания L0 и предсказания L1, соответственно. Следовательно, режим разности векторов движения является режимом, который не предлагает лучшей эффективности кодирования, чем режим слияния, но предлагает стабильную и высокую эффективность предсказания для прерывистого движения, которое обладает невысокой корреляцией относительно движения пространственно соседнего блока изображения или временно соседнего блока изображения, которая не может быть получена в режиме слияния.
В соответствии с вариантом осуществления, эффективность кодирования может быть улучшена для такого режима разности векторов движения, а эффективность использования может быть улучшена из такого режима слияния, позволяя корректировать вектор движения в режиме слияния, в то же время поддерживая тип предсказания и индекс опорного изображения фиксированного режима слияния.
Кроме того, разность векторов движения ограничивается малой величиной и эффективность кодирования повышается при определении разности векторов движения, которая должна быть разностью относительно вектора движения выбранного возможного режима слияния.
Дополнительно, конфигурация синтаксиса разности векторов движения в режиме слияния, который должен быть таким же, как синтаксис разности векторов движения в режиме разности векторов движения, требует совсем малого изменения в конфигурации, даже если разность векторов движения вводится в режиме слияния.
Дополнительно, объем обработки, требующийся для коррекции вектора движения в режиме слияния, может быть сокращен, определяя заданную ширину и заданную высоту и пропуская процесс коррекции векторов движения в режиме слияния, пока не будет удовлетворено условие, что ширина блока предсказания равна или больше заданной ширины, высота блока предсказания равна или больше заданной высоты, и доступны оба или по меньшей мере одно предсказание L0 или предсказания L1 выбранного возможного режима слияния. Следует заметить, что нет никакой необходимости ограничивать коррекцию вектора движения согласно заданной ширине и заданной высоте, если нет необходимости сокращать объем обработки для коррекции вектора движения.
Далее будет приведено описание модификаций варианта осуществления. Если не указано иное, модификации могут объединяться друг с другом.
Модификация 1
В варианте осуществления разность векторов движения используется в качестве синтаксиса блока в режиме слияния. В данной модификации разность векторов движения определяется, чтобы кодироваться (декодироваться) как единичная разность векторов движения. Единичная разность векторов движения является вектором движения, который в результате получается как интервал изображения, являющийся минимальным интервалом. В HEVC и т. д. минимальный интервал изображения кодируется в битовом потоке.
Единичная разность векторов движения масштабируется в соответствии с интервалом между кодированным изображением и опорным изображением в режиме слияния и масштабированный вектор используется в качестве разности векторов движения. Обозначая подсчеты порядка изображения (Picture Order Count, POC) изображения, кодированного как POC (Cur), POC опорного изображения для предсказания L0 в режиме слияния как POC (L0), и POC опорного изображения для предсказания L1 в режиме слияния как POC (L1), вектор движения вычисляется нижеследующим образом, где umvdL0 обозначает разность векторов движения для предсказания L0 и umvdL1 обозначает разность векторов движения для предсказания L1.
mvL0 [0] =mmvL0 [0] +umvdL0 [0] * (POC (Cur) ‒POC (L0))
mvL0 [1] =mmvL0 [1] +umvdL0 [1] * (POC (Cur) ‒POC (L0))
mvL1 [0] =mmvL1 [0] +umvdL1 [0] * (POC (Cur) ‒POC (L1))
mvL1 [1] =mmvL1 [1] +umvdL1 [1] * (POC (Cur) ‒POC (L1))
В соответствии с этой модификацией, эффективность кодирования может быть повышена посредством сокращения объема кода для разности векторов движения, используя единичную разность векторов движения как разность векторов движения. Эффективность кодирования может быть, в частности, повышена в случае, когда разность векторов движения является большой и расстояние между изображением, подвергаемым предсказанию, и опорным изображением является большим. Эффективность предсказания и эффективность кодирования также могут быть улучшены в случае, когда интервал между обрабатываемым изображением и опорным изображением пропорционален к скорости движения объекта на экране.
В отличие от случая временного возможного режима слияния, эта модификация делает масштабирование, соответствующее расстоянию между изображениями, ненужным для получения вектора движения. Устройство декодирования требует только множителя для масштабирования, так что делитель не нужен, и масштаб схемы и объем обработки могут быть уменьшены.
Модификация 2
В варианте осуществления определено, что компонент разности векторов движения, равный 0, может быть кодирован (или декодирован). Например, определено, что может изменяться только предсказание L0. В данной модификации определено, что компонент разности векторов движения, равный 0, не может быть кодирован (или декодирован).
На фиг. 10 показан синтаксис разности векторов движения, соответствующий модификации 2. Синтаксис для разности векторов движения содержит: abs_mvd_greater1_flag [d], флаг, указывающий, является ли компонент разности векторов движения большим, чем 1; abs_mvd_greater2_flag [d], флаг, указывающий, является ли компонент разности векторов движения большим, чем 2; abs_mvd_minus3 [d] указывает абсолютное значение вектора, полученное, вычитая 3 из компонента разности векторов движения; и mvd_sign_flag [d] указывает знак (±) разности векторов движения.
Как описано выше, эффективность кодирования в случае компонента разности векторов движения, равного 1 или больше, может быть повышена посредством отсутствия кодирования (или декодирования) компонента разности векторов движения, равного 0.
Модификация 3
Компонент разности векторов движения определяется как целое число, соответствующее варианту осуществления, и должно быть целым числом, исключая 0, соответствующим модификации 2. В этой модификации компонент разности векторов движения, исключая знаки ±, ограничивается степенью 2.
abs_mvd_pow_plus1 [d] используется вместо синтаксиса abs_mvd_minus2 [d], соответствующего варианту осуществления. Разность mvd [d] векторов движения вычисляется из mvd_sign_flag [d] и abs_mvd_pow_plus1 [d] согласно нижеследующему выражению.
mvd [d] =mvd_sign_flag [d]*2^(abs_mvd_pow_plus1[d] +1)
Дополнительно, abs_mvd_pow_plus2[d] используется вместо синтаксиса abs_mvd_minus3[d], соответствующего модификации 2. Разность mvd[d] векторов движения вычисляется из mvd_sign_flag[d] и abs_mvd_pow_plus2[d] согласно нижеследующему выражению.
mvd [d] =mvd_sign_flag [d]*2^(abs_mvd_pow_plus2[d] +2)
Ограничивая компонент разности векторов движения степенью 2, эффективность предсказания в случае большого вектора движения может быть повышена, в то же время значительно уменьшая объем обработки в устройстве кодирования.
Модификация 4
В варианте осуществления mvd_coding(N) определяется как содержащий разность векторов движения. В данной модификации mvd_coding(N) определяется как содержащий отношение увеличения векторов движения.
Синтаксис mvd_coding(N), соответствующий данной модификации, не содержит abs_mvd_greater0_flag[d], abs_mvd_greater1_flag[d] или mvd_sign_flag[d], но выполняется с возможностью включения abs_mvr_plus2[d] и mvr_sign_flag[d] вместо них.
Скорректированный вектор (mvLN) движения для предсказания LN получают, умножая вектор движения выбранного возможного режима слияния на предсказание LN (mmvLN) и на отношение увеличения векторов движения (mvrLN) и вычисляют согласно нижеследующему выражению.
mvLN [d] =mmvLN [d] *mvrLN [d]
Ограничивая компонент разности векторов движения степенью 2, эффективность межкадрового предсказания в случае большого вектора движения может быть повышена, одновременно значительно снижая объем обработки в устройстве кодирования.
Следует заметить, что эта модификация не может объединяться со модификацией 1, модификацией 2, модификацией 3 или модификацией 6.
Модификация 5
Синтаксис, показанный на фиг. 8, соответствующий варианту осуществления, указывает, что merge_mod_flag содержится в случае, когда cu_skip_flag равен 1 (режим пропуска). Альтернативно, merge_mod_flag не может содержаться в случае режима пропуска.
Исключая merge_mod_flag в таком случае, эффективность кодирования в режиме пропуска может быть повышена, и определение в режиме пропуска упрощается.
Модификация 6
В варианте осуществления проверяется, доступно ли предсказание LN (N=0 или 1) выбранного возможного режима слияния, и разность векторов движения становится недоступной, если недоступно предсказание LN выбранного возможного режима слияния. Альтернативно, разность векторов движения может быть сделана доступной, независимо от того, доступно ли предсказание LN выбранного возможного режима слияния, не проверяя, доступно ли предсказание LN выбранного возможного режима слияния. В этом случае, вектор движения выбранного возможного режима слияния для предсказания LN будет равен (0,0) и индекс опорного изображения выбранного возможного режима слияния для предсказания LN будет равен 0 при условии, что предсказание LN выбранного возможного режима слияния является недоступным.
Таким образом, в соответствии с этой модификацией шанс использования двунаправленного предсказания увеличивается и эффективность кодирования повышается, делая разность векторов движения доступной, независимо от того, доступно ли предсказание LN выбранного возможного режима слияния для предсказания LN.
Модификация 7
В варианте осуществления доступность предсказания L0 и предсказания L1 выбранного возможного режима слияния определяется индивидуально, чтобы управлять тем, кодировать ли (декодировать) разность векторов движения. Альтернативно, разность векторов движения может быть кодирована (или декодирована), когда одновременно доступны предсказание L0 и предсказание L1 выбранного возможного режима слияния, и не кодирована (не декодирована), когда предсказание L0 или предсказание L1 выбранного возможного режима слияния недоступны. В таком случае этап S102 будет следующим.
Блок 124 определения коррекции возможного режима слияния проверяет, равна ли или больше заданной ширины ширина обрабатываемого блока изображения или равна ли или больше заданной высоты высота обрабатываемого блока изображения, и предсказание L0 и предсказание L1 выбранного возможного режима слияния оба являются доступными (S102).
Дополнительно, этап S105 и этап S108 в этой модификации являются ненужными.
На фиг. 11 показана часть синтаксиса блока изображения в режиме слияния, соответствующая модификации 7. Синтаксис, связанный с этапами S102, S105 и S108, отличается от синтаксиса варианта осуществления.
Как было описано, в соответствии с этой модификацией, эффективность предсказания значительно увеличивается посредством коррекции вектора движения выбранного возможного режима слияния для двунаправленного предсказания, которое часто используется, делая доступной разность векторов движения, когда предсказание L0 и предсказание L1 выбранного возможного режима слияния оба являются доступными.
Модификация 8
В варианте осуществления две разности векторов движения, содержащие разность векторов движения для предсказания L0 и разность векторов движения для предсказания L1, используются в синтаксисе блока изображения в режиме слияния. В данной модификации кодируется (или декодируется) только одна разность векторов движения и одна разность векторов движения совместно используется, чтобы вычислить, как указано ниже, вектор движения mvLN (N=0,1) откорректированного возможного режима слияния как разность векторов движения для предсказания L0 и как разность векторов движения для предсказания L1, из вектора движения mmvLN (N=0,1) выбранного возможного режима слияния и разности mvd векторов движения.
Когда предсказание L0 выбранного возможного режима слияния доступно, вектор движения для предсказания L0 вычисляется согласно нижеследующему выражению.
mvL0 [0] =mmvL0 [0] +mvd [0]
mvL0 [1] =mmvL0 [1] +mvd [1]
Когда предсказание L1 выбранного возможного режима слияния доступно, вектор движения для предсказания L1 вычисляется в соответствии с нижеследующим выражением. Добавляется разность векторов движения в направлении, противоположном направлению предсказания L0. Разность векторов движения может вычитаться из вектора движения выбранного возможного режима слияния для предсказания L1.
mvL1[0] =mmvL1[0] +mvd [0]* ‒1
mvL1[1] =mmvL1[1] +mvd [1]* ‒1
На фиг. 12 представлена часть синтаксиса блока изображения в режиме слияния, соответствующем модификации 8. Эта вариация отличается от варианта осуществления тем, что проверка в отношении доступности предсказания L0 и доступности предсказания L1 удаляется и mvd_coding (1) не содержится. mvd_coding(0) представляет одну разность векторов движения.
Как описано выше, эффективность кодирования может быть повышена, в то же время не допуская падения эффективности предсказания в соответствии с этой модификацией, определяя только одну разность векторов движения для предсказания L0 и L1, тем самым сокращая наполовину количество разностей векторов движения в случае двунаправленного предсказания и совместно используя одну разность векторов движения для предсказания L0 и предсказания L1.
Дополнительно, эффективность кодирования в присутствии движения в определенном направлении может быть повышена посредством добавления разности векторов движения в противоположном направлении, когда опорное изображение, упомянутое выбранным возможным режимом слияния для предсказания L0, и опорное изображение, упомянутое для предсказания L1, располагаются в противоположных направлениях (не в одном и том же направлении) относительно изображения, подвергаемого предсказанию.
Преимущество этой модификации будет описано подробно. На фиг. 16 представлена схема, объясняющая преимущество модификации 8. На фиг. 16 показано изображение сферы (области, заполненной штриховыми линиями), движущейся в горизонтальном направлении, в движущейся прямоугольной области (область, ограниченная пунктирной линией). В этом случае, движение сферы относительно экрана будет получено, суммируя движение прямоугольной области и движение сферы, движущейся в горизонтальном направление. Предполагается, что изображение B является изображением, подвергаемым предсказанию, изображение A является опорным изображением для предсказания L0 и изображение C является опорным изображением для предсказания L1. Изображение A и изображение B являются опорными изображениями, расположенными в противоположных направлениях относительно изображения, подвергаемого предсказанию.
В случае, когда сфера движется в постоянном направлении с постоянной скоростью, движение сферы может быть точно воспроизведено, суммируя величину движения сферы, которая не может быть получена от соседних блоков, с предсказанием L0, и вычитая эту величину из предсказания L1, при условии, что изображение A, изображение B и изображение C расположены с равными интервалами.
Когда сфера движется в постоянном направлении со скоростью, которая не постоянна, движение сферы может быть точно воспроизведено, суммируя величину движения сферы, которая не может быть получена от соседних блоков изображения, с предсказанием L0, и вычитая эту величину из предсказания L1, при условии, что изображение A, изображение B и изображение C располагаются с неравными интервалами, но величины движения сферы относительно прямоугольной области располагаются с равными интервалами.
Дополнительно, когда сфера движется в постоянном направлении с постоянной скоростью в течение определенного периода, изображение A, изображение B и изображение C, могут располагаться с неравными интервалами, но величины движения сферы относительно прямоугольной области могут располагаться с равными интервалами. Фиг. 17 показан для объяснения преимущества, достигаемого в случае, когда интервалы изображений в модификации 8 являются непостоянными. Подробное описание этого случая будет приведено со ссылкой на фиг. 17. Изображения F0, F1..., F8, показанные на фиг. 17, являются изображениями с фиксированными интервалами. Предполагается, что от изображения F0 к изображению F4 сфера остается неподвижной, а от изображения F5 движется вперед в постоянном направлении с постоянной скоростью. Учитывая, что изображение F0 и изображение F6 являются опорными изображениями и изображение F5 является изображением, подвергаемым предсказанию, изображение F0, изображение F5 и изображение F6 располагаются с неравными интервалами, но величины движения сферы относительно прямоугольной области располагаются с равными интервалами. Считая изображение F5 изображением, подвергаемым предсказанию, ближайшее изображение F4 обычно выбирается в качестве опорного изображения. Изображение F0 будет выбрано в качестве опорного изображения вместо изображения F4, если изображение F0 будет высококачественным изображением, менее искаженным, чем изображение F4. Опорное изображение в буфере опорных изображений обычно управляется по схеме "первым вошел – первым вышел" (First-In First-Out, FIFO). Долгосрочное опорное изображение доступно как схема, позволяющая высококачественному, менее искаженному изображению оставаться в буфере опорных изображений в течение длительного времени в качестве опорного изображения. Долговременное опорное изображением не управляется в схеме FIFO в буфере опорных изображений. Информация управления списком опорных изображений, кодированная в заголовке слайса, управляет тем, определяется ли изображение как долговременное опорное изображение. Таким образом, эффективность предсказания и эффективность кодирования могут быть повышены, применяя эту модификацию в случае, когда одно или оба предсказания L0 и L1 используют долговременное опорное изображение. Дополнительно, эффективность предсказания и эффективность кодирования могут быть повышены, применяя эту модификацию, когда внутрикадровое изображением встречается в одном или в обоих предсказаниях L0 и L1.
Дополнительно, объем схемы и потребляемая мощность могут быть уменьшены, не масштабируя разность векторов движения, основанную на расстоянии между изображениями, как в случае временного возможного режима слияния. Если временный возможный режим слияния выбирается в качестве выбранного возможного режима слияния, когда разность векторов движения масштабируется, например, требуются оба масштабирования, масштабирование временного возможного режима слияния и масштабирование векторов движения с масштабированием разности векторов движения. Масштабирование временного возможного режима слияния и масштабирование векторов движения различаются, основываясь на различных опорных векторах движения, и поэтому не могут выполняться одновременно и должны выполняться отдельно.
Дополнительно, когда временный возможный режим слияния содержится в списке возможных режимов слияния, как в случае варианта осуществления, временный возможный режим слияния масштабируется, и эффективность кодирования может быть повышена, не масштабируя разность векторов движения, при условии, что разность векторов движения меньше, чем вектор движения временного возможного режима слияния. Дополнительно, для эффективности кодирования не допускается отбрасывание посредством выбора режима разности векторов движения, когда разность векторов движения является большой.
Модификация 9
В варианте осуществления предполагается, что максимальное количество возможный режимов слияния остается неизменным, когда флаг коррекции слияния равен 0 и когда он равен 1. В данной модификации максимальное количество возможных режимов слияния, когда флаг коррекции слияния равен 1, конфигурируется так, чтобы быть меньше, чем максимальное количество возможных режимов слияния, когда флаг коррекции слияния равен 0. Например, максимальное количество возможных режимов слияния определяется равным 2, когда флаг коррекции слияния равен 1. Максимальное количество возможных режимов слияния, когда флаг коррекции слияния равен 1, будет упоминаться как максимальное количество скорректированных возможных режимов слияния. Когда индекс слияния меньше, чем максимальное количество скорректированных возможных режимов слияния, флаг коррекции слияния кодируется (декодируется). Когда индекс слияния равен или больше, чем максимальное количество скорректированных возможных режимов слияния, флаг коррекции слияния не кодируется (не декодируется). Максимальное количество возможных режимов слияния и максимальное число скорректированных возможных режимов слияния, когда флаг коррекции слияния равен 0, может быть определено заранее или кодировано в SPS или PPS в битовом потоке и получено из него.
Таким образом, эта модификация укорачивает процесс в устройстве кодирования и при этом не допускает падения эффективности кодирования, определяя, корректировать ли возможный режим слияния только в случае возможного режима слияния, который, весьма вероятно, должен быть выбран, конфигурируя максимальное количество возможных режимов слияния в случае флага коррекции слияния, равного 1, которое должно быть меньше, чем максимальное количество возможных режимов слияния в случае флага коррекции слияния, равного 0. Поскольку это делает ненужным кодирование (декодирование) флага коррекции слияния, когда индекс слияния равен или больше максимального количества скорректированных возможных режимов слияния, эффективность кодирования повышается.
Второй вариант осуществления
Конфигурация устройства 100 кодирования изображения и устройства 200 декодирования изображения, соответствующая второму варианту осуществления, является такой же, как конфигурация устройства 100 кодирования изображения и устройства 200 декодирования изображения, соответствующих первому варианту осуществления. Второй вариант осуществления отличается от первого варианта осуществления в отношении порядка действия и синтаксиса в режиме слияния. Далее будет приведено описание различия между вторым вариантом осуществления и первым вариантом осуществления.
На фиг. 13 представлена блок-схема последовательности выполнения операций порядка действия в режиме слияния в соответствии со вторым вариантом осуществления. На фиг. 14 показана часть синтаксиса блока изображения в режиме слияния в соответствии со вторым вариантом осуществления. На фиг. 15 показан синтаксис разности векторов движения в соответствии со вторым вариантом осуществления.
Далее здесь будет объяснено отличие от первого варианта осуществления со ссылкой на фиг. 13, 14 и 15. Фиг. 13 отличается от фиг. 4 в отношении этапов S205-S207 и этапов S109-S211.
Когда флаг коррекции слияния равен 1 (YES на этапе S104), проверяют, является ли недоступным предсказание L0 выбранного возможного режима слияния (S205). Когда предсказание L0 выбранного возможного режима слияния не является недоступным (NO на этапе S205), управление переходит к этапу S208. Когда предсказание L0 выбранного возможного режима слияния является недоступным (YES на этапе S205), определяется скорректированный вектор движения для предсказания L0 (S206).
Блок 120 межкадрового предсказания устройства 100 кодирования изображения определяет скорректированный вектор движения для предсказания L0 посредством поиска векторов движения. Здесь предполагается, что диапазон поиска векторов движения равен ±1, как в горизонтальном направлении, так и в вертикальном направлении. Блок 220 межкадрового предсказания устройства 200 декодирования изображения получает скорректированный вектор движения для предсказания L0 из битового потока.
Затем определяют индекс опорного изображения для предсказания L0 (S207). Здесь предполагают, что индекс опорного изображения для предсказания L0 равен 0.
Проверяют, является ли тип слайса типом B и является ли недоступным предсказание L1 выбранного возможного режима слияния (S208). Когда тип слайса не является типом B или предсказание L1 выбранного возможного режима слияния не является недоступным (NO на этапе S208), управление переходит к этапу S111. Когда тип слайса не является типом B и предсказание L1 выбранного возможного режима слияния является недоступным (YES на этапе S208), определяют скорректированный вектор движения для предсказания L1 (S209).
Блок 120 межкадрового предсказания устройства 100 кодирования изображения определяет скорректированный вектор движения для межкадрового предсказания L1 посредством поиска векторов движения. Здесь предполагают, что диапазон поиска вектора движения составляет ±1 как в горизонтальном направлении, так и в вертикальном направлении. Блок 220 межкадрового предсказания устройства 200 декодирования изображения получает скорректированный вектор движения для предсказания L1 из битового потока.
Затем определяют индекс опорного изображения для предсказания L1 (S110). Здесь предполагают, что индекс опорного изображения для предсказания L1 равен 0.
Как описано выше, возможный режим слияния для предсказания L0 или предсказания L1 преобразуется в этом варианте осуществления в возможный режим слияния двунаправленного предсказания, когда тип слайса является типом, который разрешает двунаправленное предсказание (то есть, слайсом типа B). Преобразование в возможный режим слияния двунаправленного предсказания дает возможность ожидать повышения эффективности предсказания, обеспечиваемого эффектом фильтрации. Кроме того, используя непосредственно соседствующее декодированное изображение в качестве опорного изображения, диапазон поиска вектора движения управляется таким образом, чтобы быть минимальным.
Модификация
В варианте осуществления индекс опорного изображения на этапе S207 и этапе 210 определяется как равный 0. В этой модификации индекс опорного изображения для предсказания L0 определяют так, чтобы он был индексом опорного изображения для предсказания L1, когда предсказание L0 выбранного возможного режима слияния недоступно. Индекс опорного изображения для предсказания L1 определяют таким образом, чтобы он был индексом опорного изображения для предсказания L0, когда предсказание L1 выбранного возможного режима слияния недоступно.
Таким образом, фильтруя значение предсказания из предсказания L0 или из предсказания L1, выбранного, обеспечивая малое смещение, малое движение может воспроизводиться и эффективность предсказания может быть повышена.
Битовый поток с выхода устройства кодирования изображения, соответствующего вариантам осуществления, описанным выше, имеет определенный формат данных, так чтобы битовый поток мог декодироваться в соответствии со способом кодирования, используемым в вариантах осуществления. Битовый поток может храниться на носителе записи, таком как HDD, SSD, флэш-память и оптический диск, которые могут считываться компьютером и т. д. и соответственно обеспечиваться. Альтернативно, битовый поток может обеспечиваться от сервера через проводную или беспроводную сеть. Соответственно, устройство декодирования изображения, совместимое с устройством кодирования изображения, может декодировать битовый поток указанного формата данных независимо от средства предоставления.
Когда для обмена битовым потоком между устройством кодирования изображения и устройством декодирования изображения используется проводная или беспроводная сеть, битовый поток может быть преобразован в формат данных, пригодный для режима передачи канала связи, и соответственно передаваться. В этом случае обеспечивают передающее устройство, которое преобразует битовый поток с выхода устройства кодирования изображения в кодированные данные формата данных, пригодного для режима передачи канала связи, и приемное устройство, которое принимает кодированные данные из сети, восстанавливает битовый поток и подает битовый поток на устройство декодирования изображения. Передающее устройство содержит память, которая буферирует битовый поток с выхода устройства кодирования изображения, пакетный процессор, который пакетирует битовый поток, и передающий блок, который передает пакетированные кодированные данные через сеть. Приемное устройство содержит приемный блок, который принимает пакетированные кодированные данные через сеть, память, которая буферирует принятые кодированные данные, и пакетный процессор, который подвергает кодированные данные процессу пакетирования, чтобы сформировать битовый поток, и подает битовый поток на устройство декодирования изображения.
Когда для обмена битовым потоком между устройством кодирования изображения и устройство декодирования изображения используется проводная или беспроводная сеть, в дополнение к передающему устройству и приемному устройству может обеспечиваться ретрансляционное устройство, которое принимает данные битового потока, передаваемые передающим устройством, и подает данные на приемное устройство. Ретрансляционное устройство содержит приемный блок, который принимает пакетированные кодированные данные, передаваемые передающим устройством, память, которая буферирует принятые кодированные данные, и передающий блок, который передает пакетированные кодированные данные в сеть. Ретрансляционное устройство может дополнительно содержать приемный пакетный процессор, который подвергает пакетированные кодированные данные процессу пакетирования, чтобы сформировать битовый поток, носитель записи, который хранит битовый поток, и передающий пакетный процессор, пакетирующий битовый поток.
Дополнительно может обеспечиваться устройство отображения, добавляя дисплей, который отображает на экране изображение, декодированное устройством декодирования изображения. Дополнительно может обеспечиваться устройство отображения, добавляя блок отображения и вводя полученное изображение на устройство кодирования изображения.
На фиг. 18 представлена примерная конфигурация аппаратных средств устройства кодирования и декодирования, соответствующего настоящей заявке. Устройство кодирования и декодирования содержит конфигурации устройства кодирования изображения и устройства декодирования изображения, соответствующие вариантам осуществления. Устройство 9000 кодирования и декодирования содержит центральный процессор CPU 9001, интегральную схему 9002 IC устройства кодирования и декодирования, интерфейс 9003 ввода-вывода, память 9004, оптический дисковод 9005, сетевой интерфейс 9006 и видеоинтерфейс 9009. Входящие устройства соединяются шиной 9010.
Блок 9007 кодирования изображения и блок 9008 декодирования изображения обычно реализуются в виде интегральной схемы IC 9002 устройства кодирования и декодирования. Процесс кодирования изображения устройства кодирования изображения, соответствующего вариантам осуществления, исполняется блоком 9007 кодирования изображения и процесс декодирования изображения устройства декодирования изображения, соответствующего вариантам осуществления, исполняется блоком 9007 кодирования изображения. Интерфейс 9003 ввода-вывода реализуется, например, USB-интерфейсом, и соединяется с внешней клавиатурой 9104, мышью 9105 и т. д. CPU 9001 управляет устройством 9000 кодирования и декодирования, чтобы выполнять процесс, требуемый пользователем, основываясь на порядке действий пользователя, вводимом через интерфейс 9003 ввода-вывода. Порядок действий пользователя, вводимый через клавиатуру 9104, мышь 9105 и т. д., содержит выбор процесса кодирования или декодирования, установку качества кодирования, ввод и вывод мест назначения битового потока, ввод и вывод мест назначения изображения и т. д.
Когда пользователь желает выполнять операцию воспроизведения изображения, записанного на дисковом носителе 9100 записи, оптический дисковод 9005 считывает битовый поток со вставленного дискового носителя 9100 записи и посылает битовый поток, считанный таким образом, на блок 9008 декодирования изображения интегральной схемы 9002 устройства кодирования и декодирования через шину 9010. Блок 9008 декодирования изображения подвергает входной битовый поток процессу декодирования изображения в устройстве декодирования изображения, соответствующем вариантам осуществления, и посылает декодированное изображение на внешний монитор 9103 через видеоинтерфейс 9009. Дополнительно, устройство 9000 кодирования и декодирования имеет сетевой интерфейс 9006 и может соединяться с внешним распределительным сервером 9106 или мобильным терминалом 9107 через сеть 9101. Когда пользователь желает воспроизводить изображение, записанное на распределительном сервере 9106 или на мобильном терминале 9107 вместо изображения, записанного на дисковом носителе 9100 записи, сетевой интерфейс 9006 получает битовый поток от сети 9101 вместо считывания битового потока с вводимого дискового носителя 9100 записи. Когда пользователь желает воспроизводить изображение, записанное в памяти 9004, битовый поток, записанный в памяти 9004, подвергается процессу декодирования изображения в устройстве декодирования изображения, соответствующем вариантам осуществления.
Когда пользователь желает выполнить операцию кодирования изображения, полученного внешней камерой 9102, и записать кодированное изображение в память 9004, видеоинтерфейс 9009 принимает изображение от камеры 9102 и посылает изображение на блок 9007 кодирования изображения IC устройства 9002 кодирования изображения через шину 9010. Блок 9007 кодирования изображения подвергает изображение, введенное через видеоинтерфейс 9009, процессу кодирования изображения в устройстве кодирования изображения, соответствующем вариантам осуществления, чтобы сформировать битовый поток. Блок 9007 кодирования изображения посылает битовый поток в память 9004 через шину 9010. Когда пользователь хочет записать битовый поток на дисковый носитель записи 9100 вместо памяти 9004, оптический дисковод 9005 записывает битовый поток на вставленный дисковый носитель 9100 записи.
Также возможно реализовать конфигурацию аппаратных средств, которая содержит устройство кодирования изображения, но не содержит устройство декодирования изображения, или конфигурацию аппаратных средств, которая содержит устройство декодирования изображения и не содержит устройство кодирования изображения. Такая конфигурация аппаратных средств реализуется, например, заменяя IC 9002 устройства кодирования изображения блоком 9007 кодирования изображения или блоком 9008 декодирования изображения, соответственно.
Описанные выше процессы, связанные с кодированием и декодированием, могут, конечно, быть реализованы как передающее устройство, запоминающее устройство, приемное устройство, в которых используются такие аппаратные средства, как ASIC, и которые могут также быть реализованы встроенным микропрограммным обеспечением, хранящимся в постоянном запоминающем устройстве (read-only memory, ROM), флэш-памяти и т. д., или программным обеспечением для CPU, компьютере с системой на кристалле (System On Chip, SOC) и т. д. Программа встроенного микропрограммного обеспечения или программа из программного обеспечения может быть записана на носителе записи, который может считываться, например, компьютером и обеспечиваться, соответственно. Альтернативно, программа может быть сделана доступной с сервера через проводную или беспроводную сеть. Также альтернативно, программа может быть сделана доступной в форме широковещательной передачи данных через наземные или спутниковые цифровые широковещательные системы.
Описанное выше является объяснением, основанным на примерном варианте осуществления. Вариант осуществления предназначен быть только иллюстративным и специалистам в данной области техники должно быть понятно, что возможны различные изменения в сочетаниях входящих элементов и процессов и что такие изменения также находятся в рамках объема защиты настоящего изобретения.
Промышленная применяемость
Настоящее изобретение может использоваться в технологии декодирования изображения.
Перечень ссылочных позиций
100 Устройство кодирования изображения
110 Блок определения размера блока изображения
120 Блок межкадрового предсказания
121 Блок определения режима слияния
122 Блок формирования списка возможных режимов слияния
123 Блок выбора возможного режима слияния
124 Блок определения коррекции возможного режима слияния
125 Блок коррекции возможного режима слияния
126 Блок выполнения режима разности векторов движения
127 Блок вычисления значения предсказания
130 Блок преобразования
140 Блок формирования битового потока
150 Блок локального декодирования
160 Кадровая память
200 Устройство декодирования изображения
201 Блок формирования возможного режима пространственного слияния
202 Блок формирования временного возможного режима слияния
203 Блок дополнения возможного режима слияния
210 Блок декодирования битового потока
220 Блок межкадрового предсказания
230 Блок обратного преобразования
240 Кадровая память