ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение относится к технологии кодирования и декодирования движущихся изображений, а более конкретно, относится к технологии кодирования и декодирования движущихся изображений, которая использует предсказание компенсации движения.
ИЗВЕСТНЫЙ УРОВЕНЬ ТЕХНИКИ
Типичным стандартом кодирования движущихся изображений со сжатием является стандарт MPEG-4 AVC/H.264. В стандарте MPEG-4 AVC/H.264 используется компенсация движения, когда каждый кадр изображения разделяется на несколько прямоугольных блоков, кадр, который был уже кодирован или декодирован, используется в качестве опорного кадра, и из этого опорного кадра предсказывается движение. Способ, который предсказывает компенсацию этого движения, именуется межкадровым предсказанием, или предсказанием компенсации движения. В соответствии с межкадровым предсказанием стандарта MPEG-4 AVC/H.264, в качестве опорных кадров могут использоваться несколько кадров, и из этих нескольких опорных кадров для каждого блока выбирается наиболее подходящий опорный кадр и проводится предсказание компенсации движения. При этом каждому опорному кадру присваивается ссылочный индекс, и этим ссылочным индексом специфицируется опорный кадр. Для В-кадра из уже декодированных опорных кадров может быть выбрано максимум до двух кадров, которые будут использоваться для межкадрового предсказания. Различаются два типа предсказания, которые соответственно базируются на этих двух опорных кадрах, одно из них LO-предсказание (предсказание по списку 0), которое используется, в основном, для предсказания предыдущего кадра, а другое L1-предсказание (предсказание по списку 0), которое соответственно используется, в основном, для предсказания последующего кадра.
Кроме того, определяется также би-предсказание, в котором используются оба типа межкадрового предсказания (то есть, L0-предсказание и L1-предсказание). В случае би-предсказания, проводится предсказание по обоим направлениям по времени, сигналы межкадрового предсказания, предсказанные в результате L0-предсказания и L1-предсказания, соответственно умножаются на коэффициент взвешивания, прибавляется величина смещения и проводится свертка сигналов для формирования полного сигнала межкадрового предсказания. Значение коэффициента взвешивания, используемого для взвешенного предсказания, и значение смещения задаются типичными значениями в единицах кадров для каждого опорного кадра каждого списка, и кодируется. Информация кодирования, относящаяся к межкадровому предсказанию, содержит: режим предсказания, который подразделяется на L0-предсказание, L1-предсказание и би-предсказание для каждого блока, ссылочный индекс, который специфицирует опорный кадр каждого опорного списка каждого блока, и вектор движения, который представляет направление движения и величину движения блока. Эта информация для кодирования кодируется и/или декодируется.
Далее, в соответствии с MPEG-4 AVC/H.264, определяется прямой режим, когда из информации межкадрового предсказания уже декодированного блока генерируется информация межкадрового предсказания блока, являющегося объектом кодирования или декодирования. Поскольку при прямом режиме кодирование информации межкадрового предсказания становится ненужным, то прямым режимом повышается эффективность кодирования.
Со ссылками на Фиг. 42 будет дано объяснение прямого по времени режима, в котором используется корреляция по времени информации межкадрового предсказания. В качестве базового кадра colPic используется кадр, ссылочный индекс которого в L1 регистрируется как 0. В качестве базового блока принимается блок, находящийся в положении, идентичном положению блока, являющегося объектом кодирования или декодирования, в базовом кадре colPic.
Если базовый блок кодируется с использованием L0-предсказания, то вектор движения базового блока в L0 принимается в качестве базового вектора движения mvCol. Если этот базовый блок не кодируется с использованием L0-предсказания, а кодируется с использованием L1-предсказания, то вектор движения в L1 этого базового блока принимается в качестве базового вектора движения mvCol. Кадр, к которому обращается базовый вектор движения mvCol, принимается в качестве опорного кадра в L0 при прямом по времени режиме, а базовый кадр colPic принимается в качестве опорного кадра в L1 при прямом по времени режиме.
Вектор движения mvL0 в L0 и вектор движения mvL1 в L1 в прямом по времени режиме выводятся из базового вектора движения mvCol операцией вычисления масштаба.
Операцией вычитания РОС опорного кадра в L0 в прямом по времени режиме из РОС базового кадра colPic выводится расстояние td между кадрами изображения. Здесь РОС определяется как переменная, которая связана с кадром, являющимся объектом кодирования, и задается величиной, которая возрастает в порядке появления кадров. Разность между РОС двух кадров показывает расстояние между кадрами вдоль оси времени. В прямом по времени режиме td = РОС базового кадра colPic - РОС опорного кадра в L0.
Вычитанием РОС опорного кадра в L0 в прямом по времени режиме из РОС кадра, являющегося объектом кодирования или декодирования, выводится расстояние tb между кадрами
tb = РОС кадра, являющегося объектом кодирования или декодирования, - РОС опорного кадра в L0 в прямом по времени режиме.
Вектор движения mvL0 в L0 в прямом по времени режиме выводится из базового вектора движения mvCol процессом вычисления масштаба.
mvL0=tb/td*mvCol
Вектор движения mvL1 в L1 выводится вычитанием базового вектора движения mvCo1 из вектора движения mvL0 в L0 в прямом по времени режиме.
mvL1=mvL0-mvCol
СПИСОК РОДСТВЕННОГО УРОВНЯ ТЕХНИКИ
Патентный документ
[Патентный документ 1] Заявка на патент Японии, опубликованная под №2004-129191
КРАТКОЕ ИЗЛОЖЕНИЕ ИЗОБРЕТЕНИЯ
Однако, в соответствии с традиционным способом, в некоторых случаях точность предсказания для блока, являющегося объектом кодирования, и для блока, являющегося объектом декодирования, уменьшается и эффективность кодирования с прямым по времени режимом не улучшается.
В такой ситуации настоящие изобретатели осознали необходимость дальнейшего сжатия информации кодирования и снижения полной величины кода в способе кодирования движущихся изображений, в котором используется предсказание компенсации движения.
Настоящее изобретение решает упомянутую выше проблему, и целью изобретения является создание технологии кодирования и декодирования движущегося изображения для снижения величины кода информации для кодирования вычислением кандидатов на информацию кодирования, и тем самым улучшение эффективности кодирования.
Для решения упомянутой выше проблемы, в соответствии с одной особенностью настоящего изобретения предоставляется устройство кодирования движущегося изображения. Это устройство разделяет первый блок, который получен разделением каждого кадра, на один или несколько вторых блоков, и кодирует движущееся изображение, используя межкадровое предсказание. Устройство содержит: блок вывода первой информации предсказания (130), который выводит кандидата на первую информацию межкадрового предсказания из информации межкадрового предсказания третьего блока, примыкающего ко второму блоку, являющемуся объектом кодирования, внутри кадра, являющегося объектом кодирования; блок вывода второй информации предсказания (132), который выводит кандидата на вторую информацию межкадрового предсказания из информации межкадрового предсказания четвертого блока, который находится в положении, идентичном положению второго блока, являющегося объектом кодирования, или в его окрестности, внутри кадра, отличного от кадра, являющегося объектом кодирования; блок построения списка кандидатов (133), который формирует список кандидатов на информацию предсказания, содержащий кандидатов на информацию предсказания, к которому в случае, когда выводится кандидат на первую информацию межкадрового предсказания, добавляется этот выведенный кандидат на первую информацию межкадрового предсказания, а в случае, когда выводится кандидат на вторую информацию межкадрового предсказания, соответственно добавляется этот выведенный кандидат на вторую информацию межкадрового предсказания; блок выбора (136), который выбирает кандидата на информацию межкадрового предсказания, используемую для межкадрового предсказания второго блока, являющегося объектом кодирования, из одного или нескольких кандидатов на информацию предсказания в списке кандидатов на информацию предсказания, и определяет индекс, который указывает на информацию межкадрового предсказания; блок кодирования (110), который кодирует индекс, указывающий на информацию межкадрового предсказания, используемую для межкадрового предсказания второго блока, являющегося объектом кодирования. При этом блок вывода первой информации предсказания (130) не использует в качестве кандидата на первую информацию межкадрового предсказания информацию кодирования пятого блока, содержащегося в блоке, идентичном первому блоку, содержащему второй блок, являющийся объектом кодирования.
В соответствии с другой особенностью настоящего изобретения, также предоставляется устройство кодирования движущегося изображения. Это устройство разделяет блок кодирования на один или несколько блоков предсказания в соответствии с режимом разделения, и осуществляет предсказание компенсации движения. Устройство содержит: блок вывода ссылочных индексов (131), который в режиме слияния, где информация межкадрового предсказания, определенная как кандидат на слияние по времени, выводится из информации межкадрового предсказания блока предсказания, который находится в положении, идентичном положению блока предсказания, являющегося объектом кодирования, или в его окрестности, внутри кодированного кадра, отличного по времени от блока предсказания, являющегося объектом кодирования, и на базе выведенной информации межкадрового предсказания осуществляется межкадровое предсказание блока предсказания, являющегося объектом кодирования, выводит информацию ссылочного индекса кандидата на слияние по времени в качестве информации ссылочного индекса, который специфицирует опорный кадр, используемый в блоке предсказания, являющемся объектом кодирования; и блок генерирования кандидатов на слияние по времени (132), который выводит информацию межкадрового предсказания кандидата на слияние по времени, базируясь на выведенной информации ссылочного индекса. В случае, когда режим разделения является режимом, где блок кодирования разделяется горизонтальной границей на блоки предсказания, расположенные вертикально, блок вывода ссылочных индексов (131) присваивает информации ссылочного индекса кандидата на слияние по времени значение информации ссылочного индекса кодированного блока предсказания, примыкающего к левой стороне блока предсказания, являющегося объектом кодирования, и выдает эту информацию ссылочного индекса, а в случае, когда режим разделения является режимом, где блок кодирования разделяется вертикальной границей на блоки предсказания, расположенные горизонтально, блок вывода ссылочных индексов (131) присваивает информации ссылочного индекса кандидата на слияние по времени значение информации ссылочного индекса кодированного блока предсказания, примыкающего к верхней стороне блока предсказания, являющегося объектом кодирования, и выдает эту информацию ссылочного индекса.
В соответствии с еще одним примером осуществления настоящего изобретения, предоставляется способ кодирования движущегося изображения. В этом способе первый блок, который получен разделением каждого кадра, разделяется на один или несколько вторых блоков, и кодируется движущееся изображение, используя межкадровое предсказание. Способ содержит: этап, на котором выводится кандидат на первую информацию межкадрового предсказания из информации межкадрового предсказания третьего блока, примыкающего ко второму блоку, являющемуся объектом кодирования, внутри кадра, являющегося объектом кодирования; этап, на котором выводится кандидат на вторую информацию межкадрового предсказания из информации межкадрового предсказания четвертого блока, который находится в положении, идентичном положению второго блока, являющегося объектом кодирования, или в его окрестности, внутри кадра, отличного от кадра, являющегося объектом кодирования; этап, на котором строится список кандидатов на информацию предсказания, содержащий кандидатов на информацию предсказания, к которому в случае, когда выводится кандидат на первую информацию межкадрового предсказания, добавляется этот выведенный кандидат на первую информацию межкадрового предсказания, а в случае, когда выводится кандидат на вторую информацию межкадрового предсказания, соответственно добавляется этот выведенный кандидат на вторую информацию межкадрового предсказания; этап, на котором выбирается кандидат на информацию межкадрового предсказания, используемую для межкадрового предсказания второго блока, являющегося объектом кодирования, из одного или нескольких кандидатов на информацию предсказания в списке кандидатов на информацию предсказания, и определяется индекс, который указывает на информацию межкадрового предсказания; этап, на котором кодируется индекс, указывающий на информацию межкадрового предсказания, используемую для межкадрового предсказания второго блока, являющегося объектом кодирования. При этом этап, на котором выводится первая информация предсказания, не использует в качестве кандидата на первую информацию предсказания информацию кодирования пятого блока, содержащегося в блоке, идентичном первому блоку, содержащему второй блок, являющийся объектом кодирования.
В соответствии с одной особенностью настоящего изобретения, предоставляется устройство декодирования движущегося изображения. Это устройство декодирует битовый поток, где первый блок, который получен разделением каждого кадра, разделяется на один или несколько вторых блоков, и движущееся изображение кодируется с использованием межкадрового предсказания. Устройство содержит: блок вывода первой информации предсказания (230), который выводит кандидата на первую информацию межкадрового предсказания из информации межкадрового предсказания третьего блока, примыкающего ко второму блоку, являющемуся объектом декодирования, внутри кадра, являющегося объектом декодирования; блок вывода второй информации предсказания (232), который выводит кандидата на вторую информацию межкадрового предсказания из информации межкадрового предсказания четвертого блока, который находится в положении, идентичном положению второго блока, являющегося объектом декодирования, или в его окрестности, внутри кадра, отличного от кадра, являющегося объектом декодирования; блок декодирования (202), который декодирует индекс, указывающий на информацию межкадрового предсказания, используемую для межкадрового предсказания второго блока, являющегося объектом декодирования; блок построения списка кандидатов (233), который формирует список кандидатов на информацию предсказания, содержащий кандидатов на информацию предсказания, к которому в случае, когда выводится кандидат на первую информацию межкадрового предсказания, добавляется этот выведенный кандидат на первую информацию межкадрового предсказания, а в случае, когда выводится кандидат на вторую информацию межкадрового предсказания, соответственно добавляется этот выведенный кандидат на вторую информацию межкадрового предсказания; и блок выбора (236), который выбирает кандидата на информацию межкадрового предсказания, используемую для межкадрового предсказания второго блока, являющегося объектом декодирования, указанного индексом, из одного или нескольких кандидатов на информацию предсказания в списке кандидатов на информацию предсказания. При этом блок вывода первой информации предсказания (230) не использует в качестве кандидата на первую информацию предсказания информацию кодирования пятого блока, содержащегося в блоке, идентичном первому блоку, содержащему второй блок, являющийся объектом декодирования.
В соответствии с другой особенностью настоящего изобретения, также предоставляется устройство декодирования движущегося изображения. Это устройство разделяет блок декодирования на один или несколько блоков предсказания в соответствии с режимом разделения, и осуществляет предсказание компенсации движения. Устройство содержит: блок вывода ссылочных индексов (231), который в режиме слияния, где информация межкадрового предсказания, определенная как кандидат на слияние по времени, выводится из информации межкадрового предсказания блока предсказания, который находится в положении, идентичном положению блока предсказания, являющегося объектом декодирования, или в его окрестности, внутри декодированного кадра, отличного по времени от блока предсказания, являющегося объектом декодирования, и из выведенной информации межкадрового предсказания осуществляется межкадровое предсказание блока предсказания, являющегося объектом декодирования, выводит информацию ссылочного индекса кандидата на слияние по времени в качестве информации ссылочного индекса, который специфицирует опорный кадр, используемый в блоке предсказания, являющемся объектом декодирования; и блок генерирования кандидатов на слияние по времени, который выводит информацию межкадрового предсказания кандидата на слияние по времени, базируясь на выведенной информации ссылочного индекса. При этом в случае, когда режим разделения является режимом, где блок декодирования разделяется горизонтальной границей на блоки предсказания, расположенные вертикально, блок вывода ссылочных индексов (231) присваивает информации ссылочного индекса кандидата на слияние по времени значение информации ссылочного индекса декодированного блока предсказания, примыкающего к левой стороне блока предсказания, являющегося объектом декодирования, и выдает эту информацию ссылочного индекса, а в случае, когда режим разделения является режимом, где блок декодирования разделяется вертикальной границей на блоки предсказания, расположенные горизонтально, блок вывода ссылочных индексов (231) присваивает информации ссылочного индекса кандидата на слияние по времени значение информации ссылочного индекса декодированного блока предсказания, примыкающего к верхней стороне блока предсказания, являющегося объектом декодирования, и выдает эту информацию ссылочного индекса.
В соответствии с еще одной особенностью изобретения, предоставляется способ декодирования движущегося изображения. Этот способ декодирует кодированный битовый поток, где первый блок, который получен разделением каждого кадра, разделяется на один или несколько вторых блоков, и движущееся изображение кодируется, используя межкадровое предсказание. Способ содержит: этап, на котором выводится кандидат на первую информацию межкадрового предсказания из информации межкадрового предсказания третьего блока, примыкающего ко второму блоку, являющемуся объектом декодирования, внутри кадра, являющегося объектом декодирования; этап, на котором выводится кандидат на вторую информацию межкадрового предсказания из информации межкадрового предсказания четвертого блока, который находится в положении, идентичном положению второго блока, являющегося объектом декодирования, или в его окрестности, внутри кадра, отличного от кадра, являющегося объектом декодирования; этап, на котором декодируется индекс, указывающий на информацию межкадрового предсказания, используемую для межкадрового предсказания второго блока, являющегося объектом декодирования; этап, на котором строится список кандидатов на информацию предсказания, содержащий кандидатов на информацию предсказания, к которому в случае, когда выводится кандидат на первую информацию межкадрового предсказания, добавляется этот выведенный кандидат на первую информацию межкадрового предсказания, а в случае, когда выводится кандидат на вторую информацию межкадрового предсказания, соответственно добавляется этот выведенный кандидат на вторую информацию межкадрового предсказания; и этап, на котором выбирается кандидат на информацию межкадрового предсказания, используемую для межкадрового предсказания второго блока, являющегося объектом декодирования, указанного индексом, из одного или нескольких кандидатов на информацию предсказания в списке кандидатов на информацию предсказания. Этап, на котором выводится кандидат на первую информацию межкадрового предсказания, не использует в качестве кандидата на первую информацию межкадрового предсказания информацию кодирования пятого блока, содержащегося в блоке, идентичном первому блоку, содержащему второй блок, являющийся объектом декодирования.
В качестве дополнительных форм настоящего изобретения могут на практике также быть использованы произвольные комбинации упомянутых выше составляющих элементов и реализаций этого изобретения в виде способов, аппаратуры, систем, носителей записи, компьютерных программ и прочего.
В соответствии с настоящим изобретением, может быть уменьшена величина сгенерированного кода передаваемой информации кодирования и может быть повышена эффективность кодирования.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 - блок-схема, иллюстрирующая структуру устройства кодирования движущегося изображения, в котором исполняется способ предсказания вектора движения, в соответствии с примером осуществления;
Фиг. 2 - блок-схема, иллюстрирующая структуру устройства декодирования движущегося изображения, в котором исполняется способ предсказания вектора движения, в соответствии с примером осуществления;
Фиг. 3 - иллюстрирует древовидный блок и блок кодирования;
Фиг. 4 - иллюстрирует режимы разделения блока предсказания;
Фиг. 5 - иллюстрирует блоки предсказания, которые примыкают к блоку предсказания, являющемуся объектом обработки, как кандидатов на пространственное слияние в режиме слияния;
Фиг. 6 - иллюстрирует блоки предсказания, которые примыкают к блоку предсказания, являющемуся объектом обработки, как кандидатов на пространственное слияние в режиме слияния;
Фиг. 7 - иллюстрирует блоки предсказания, которые примыкают к блоку предсказания, являющемуся объектом обработки, как кандидатов на пространственное слияние в режиме слияния;
Фиг. 8 - иллюстрирует блоки предсказания, которые примыкают к блоку предсказания, являющемуся объектом обработки, как кандидатов на пространственное слияние в режиме слияния;
Фиг. 9 - иллюстрирует блоки предсказания, к которым проводится обращение при выводе кандидатов на слияние по времени в режиме слияния;
Фиг. 10 - иллюстрирует синтаксис битового потока на уровне слоя, относящийся к режиму слияния;
Фиг. 11 - иллюстрирует синтаксис битового потока на уровне блока предсказания, относящийся к режиму слияния;
Фиг. 12 - иллюстрирует пример энтропийного кода синтаксического элемента индекса слияния;
Фиг. 13 - блок-схема, показывающая подробную конфигурацию блока вывода информации межкадрового предсказания устройства кодирования движущегося изображения на Фиг. 1;
Фиг. 14 - блок-схема, показывающая подробную конфигурацию блока вывода информации межкадрового предсказания устройства декодирования движущегося изображения на Фиг. 2;
Фиг. 15 - иллюстрирует блоки предсказания, примыкающие к блоку предсказания, являющемуся объектом обработки, в режиме слияния;
Фиг. 16 - показывает блок-схему, иллюстрирующую процедуру обработки при последовательной обработке процесса вывода кандидатов на слияние и процесса построения списка кандидатов на слияние;
Фиг. 17 - показывает блок-схему, иллюстрирующую процедуру обработки при параллельной обработке процесса вывода кандидатов на слияние и процесса построения списка кандидатов на слияние;
Фиг. 18 - показывает блок-схему, иллюстрирующую процедуру процесса вывода кандидатов на слияние в режиме слияния и процесса построения списка кандидатов на слияние;
Фиг. 19 - показывает блок-схему, иллюстрирующую процедуру процесса вывода кандидатов на пространственное слияние в режиме слияния;
Фиг. 20 - иллюстрирует примыкающие блоки, к которым проводится обращение в процессе вывода ссылочных индексов кандидатов на слияние по времени, в соответствии с первым примерным вариантом настоящего осуществления;
Фиг. 21 - показывает блок-схему, иллюстрирующую процедуру процесса вывода ссылочных индексов кандидатов на слияние по времени в режиме слияния, в соответствии со способом первого примерного варианта;
Фиг. 22 - иллюстрирует примыкающие блоки, к которым проводится обращение в процессе вывода ссылочных индексов кандидатов на слияние по времени, в соответствии со вторым примерным вариантом настоящего осуществления;
Фиг. 23 - показывает блок-схему, иллюстрирующую процедуру процесса вывода ссылочных индексов кандидатов на слияние по времени в режиме слияния, в соответствии со способом второго примерного варианта;
Фиг. 24 - иллюстрирует примыкающие блоки, к которым проводится обращение в процессе вывода ссылочных индексов кандидатов на слияние по времени, в соответствии с третьим примерным вариантом настоящего осуществления;
Фиг. 25 - показывает блок-схему, иллюстрирующую процедуру процесса вывода ссылочных индексов кандидатов на слияние по времени в режиме слияния, в соответствии со способом третьего примерного варианта;
Фиг. 26 - иллюстрирует примыкающие блоки, к которым проводится обращение в процессе вывода ссылочных индексов кандидатов на слияние по времени, в соответствии с четвертым примерным вариантом настоящего осуществления;
Фиг. 27 - показывает блок-схему, иллюстрирующую процедуру процесса вывода ссылочных индексов кандидатов на слияние по времени в режиме слияния, в соответствии со способом четвертого примерного варианта;
Фиг. 28 - иллюстрирует примыкающие блоки, к которым проводится обращение в процессе вывода ссылочных индексов кандидатов на слияние по времени, в соответствии с пятым примерным вариантом настоящего осуществления;
Фиг. 29 - показывает блок-схему, иллюстрирующую процедуру процесса вывода ссылочных индексов кандидатов на слияние по времени в режиме слияния, в соответствии со способом пятого примерного варианта;
Фиг. 30 - показывает блок-схему, иллюстрирующую процедуру процесса вывода ссылочных индексов кандидатов на слияние по времени в режиме слияния, в соответствии со способом шестого примерного варианта;
Фиг. 31 - иллюстрирует примыкающие блоки, к которым проводится обращение в процессе вывода ссылочных индексов кандидатов на слияние по времени, в соответствии с седьмым примерным вариантом настоящего осуществления;
Фиг. 32 - показывает блок-схему, иллюстрирующую процедуру процесса вывода ссылочных индексов кандидатов на слияние по времени в режиме слияния, в соответствии со способом седьмого примерного варианта;
Фиг. 33 - иллюстрирует примыкающие блоки, к которым проводится обращение в процессе вывода ссылочных индексов блоков кодирования с NxN-разделением;
Фиг.34 - показывает блок-схему, иллюстрирующую процедуру процесса вывода кандидатов на слияние по времени в режиме слияния;
Фиг. 35 - показывает блок-схему, иллюстрирующую процедуру процесса вывода кадра другого момента времени в режиме слияния;
Фиг. 36 - показывает блок-схему, иллюстрирующую процедуру процесса вывода блоков предсказания кадра другого момента времени в режиме слияния;
Фиг. 37 - показывает блок-схему, иллюстрирующую процедуру процесса вывода кандидатов на слияние по времени в режиме слияния;
Фиг. 38 - показывает блок-схему, иллюстрирующую процедуру процесса вывода кандидатов на слияние по времени в режиме слияния;
Фиг. 39 - показывает блок-схему, иллюстрирующую процедуру процесса вычисления масштаба вектора движения;
Фиг. 40 - показывает блок-схему, иллюстрирующую процедуру процесса вычисления масштаба вектора движения;
Фиг. 41 - показывает блок-схему, иллюстрирующую процедуру процесса построения списка кандидатов на слияние в режиме слияния;
Фиг. 42 - иллюстрирует прямой по времени режим, в соответствии с традиционным стандартом MPEG-4 AVC/H.264;
Фиг. 43 - иллюстрирует примыкающие блоки, к которым проводится обращение в процессе вывода ссылочных индексов кандидатов на слияние по времени, в соответствии с восьмым примерным вариантом настоящего осуществления, и
Фиг. 44 - показывает блок-схему, иллюстрирующую процедуру процесса вывода ссылочных индексов кандидатов на слияние по времени в режиме слияния, в соответствии со способом восьмого примерного варианта.
СПОСОБЫ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
В соответствии с настоящим примером осуществления, для кодирования движущихся изображений, а более конкретно, для повышения эффективности кодирования движущегося изображения, где каждый кадр изображения разделяется на прямоугольные блоки произвольного размера и произвольной формы, и проводится компенсация движения между кадрами в единицах блоков, из векторов движения блоков, примыкающих к блоку, являющемуся объектом кодирования, или из векторов движения блоков ранее кодированного кадра выводится несколько предсказаний вектора движения, вычисляется вектор разности между вектором движения блока, являющегося объектом кодирования, и выбранным предсказанием вектора движения, и этот разностный вектор кодируется, чем достигается снижение величины кода. В альтернативном варианте, использованием информации кодирования блоков, примыкающих к блоку, являющемуся объектом кодирования, или блоков ранее кодированного кадра, выводится информация для кодирования блока, являющегося объектом кодирования, чем достигается снижение величины кода. В случае декодирования движущегося изображения, из векторов движения блоков, примыкающих к блоку, являющемуся объектом декодирования, или из векторов движения блоков ранее декодированного кадра вычисляется несколько предсказаний вектора движения и из разностного вектора, декодированного из битового потока, и из выбранного предсказания вектора движения вычисляется вектор движения блока, являющегося объектом декодирования, чем достигается декодирование блока, являющегося объектом декодирования. В альтернативном варианте, использованием информации кодирования блоков, примыкающих к блоку, являющемуся объектом декодирования, или из блоков ранее декодированного кадра выводится информация кодирования блока, являющегося объектом декодирования.
Сначала будут даны определения технологий и технических терминов, используемых в настоящем примере осуществления.
Древовидный блок и блок кодирования
В соответствии с примером осуществления, как показывается на Фиг. 3, кадр разделяется в единицах квадратов, имеющих одинаковый произвольный размер. Эта единица определяется как древовидный блок и используется в качестве базовой единицы управления адресацией для специфицирования блока, являющегося объектом кодирования или декодирования (в дальнейшем, «блок, являющийся объектом кодирования или декодировани», используется в смысле блока, являющегося объектом кодирования, - в случае процесса кодирования, и используется в смысле блока, являющегося объектом декодирования, - в случае процесса декодирования, если только не оговорено обратное), в кадре. Древовидный блок содержит один сигнал яркости и два цветоразностных сигнала, за исключением случая монохромного изображения. Размер древовидного блока может быть определен произвольно в единицах кратных двум, в соответствии с размером кадра и/или текстуры внутри кадра. Для оптимизации процесса кодирования в соответствии с текстурой внутри кадра древовидный блок может быть иерархически разделен на четыре блока (разделением на два как по вертикали, так и по горизонтали), имеющих меньший размер блоков, делением, как этом необходимо, сигнала яркости и цветоразностных сигналов внутри древовидного блока. Эти блоки соответственно определяются как блоки кодирования и принимаются за базовые единицы обработки при осуществлении кодирования и декодирования. Блок кодирования также содержит один сигнал яркости и два цветоразностных сигнала, за исключением случая монохромного изображения. Максимальный размер блока кодирования является тем же самым, что и размер древовидного блока. Блок кодирования минимального размера именуется минимальным блоком кодирования, а его размер может быть задан произвольно в единицах кратным двум.
На Фиг. 3 блок кодирования А определяется как один блок кодирования, без разделения древовидного блока. Блок кодирования В является блоком кодирования, полученным разделением древовидного блока на четыре блока. Блок кодирования С является блоком кодирования, полученным дальнейшим разделением блока, который получен разделением древовидного блока на четыре, еще на четыре блока. Блок кодирования D является блоком кодирования, полученным дальнейшим разделением блока, который получен разделением древовидного блока на четыре, в четыре блока двойным иерархическим разделением. Блок кодирования D является блоком кодирования минимального размера.
Режим предсказания
Режим переключается между внутрикадровым предсказанием (MODE_INTRA) и межкадровым предсказанием (MODE_INTER) в единицах блоков кодирования. При внутрикадровом предсказании предсказание осуществляется из окружающих кодированных или декодированных сигналов блоков изображения внутри кадра, являющегося объектом кодирования или декодирования. (В случае процесса кодирования «декодированный» используется для декодированного кадра, который был кодирован в процессе кодирования, для блока предсказания декодирования, который был кодирован в процессе кодирования, для сигнала декодированного кадра, который был кодирован в процессе кодирования, и прочее, а в случае процесса декодирования «декодированный» используется для декодированного кадра, для декодированного блока предсказания, для сигнала декодированного кадра и прочее. Ниже все используется в этом смысле, если только не указано обратное). Этот режим, в котором различается внутрикадровое предсказание (MODE_INTRA) и межкадровое предсказание (MODE_INTER), определяется как режим предсказания (PredMode). Режим предсказания (PredMode) принимает в качестве значения внутрикадровое предсказание (MODE_INTRA) или межкадровое предсказание (MODE_INTER), и может выбирать тип предсказания при проведении кодирования.
Режим разделения, блок предсказания и единица предсказания
В случае разделения кадра на блоки и проведения внутрикадрового предсказания (MODE_INTRA) и межкадрового предсказания (MODE_INTER) предсказание осуществляется с разделением блока кодирования, в соответствии с необходимостью, на части, для того чтобы задать меньшую единицу для способов переключения между внутрикадровым предсказанием и межкадровым предсказанием. Этот режим, в котором различается способ разделения сигнала яркости и цветоразностных сигналов блока кодирования, определяется как режим разделения (PartMode). Кроме того, разделенный тем самым блок определяется как блок предсказания. Как показывается на Фиг. 4, в соответствии со способом разделения сигнала яркости блока кодирования определяется восемь типов режимов разделения (PartMode).
Режим разделения (PartMode), когда сигнал яркости блока кодирования не разделяется и рассматривается как один блок предсказания, как это показывается на Фиг. 4(a), определяется как 2Nx2N-разделение (PART_2Nx2N). Режимы разделения (PartMode), когда сигнал яркости блока кодирования разделяется в два блока предсказания, расположенных вертикально, как показывается на Фиг. 4(b), 4(c) и 4(d), определяются как 2NxN-разделение (PART_2NxN), 2NxnU-разделение (PART_2NxnU) и 2NxnD-разделение (PART_2NxnD), соответственно. 2NxN-разделение (PART_2NxN) является режимом разделения, когда блок разделяется по вертикали с соотношением 1:1, 2NxnN-разделение (PART_2NxnU) является режимом разделения, когда блок разделяется по вертикали с соотношением 1:3, а 2NxnD-разделение (PART_2NxnD) является режимом разделения, когда блок разделяется по вертикали с соотношением 3:1. Режимы разделения (PartMode), когда сигнал яркости блока кодирования разделяется в два блока предсказания, расположенных горизонтально, как показывается на Фиг. 4(e), 4(f) b 4(g), определяются как Nx2N-разделение (PART_Nx2N), nLx2N-разделение (PART_nLx2N) и nRx2N-разделение (PART_nRx2N), соответственно. Nx2N-разделение является режимом разделения, когда блок разделяется по горизонтали с соотношением 1:1, nLx2N-разделение (PART_nLx2N) является режимом разделения, когда блок разделяется по горизонтали с соотношением 1:3, а nRx2N-разделение (PART_nR2N) является режимом разделения, когда блок разделяется по горизонтали с соотношением 3:1. Режим разделения (PartMode), когда сигнал яркости блока кодирования разделяется по вертикали и по горизонтали на четыре блока, как показывается на Фиг. 4(h), определяется как NxN-разделение (PART_NxN).
Для каждого режима разделения (PartMode) цветоразностный сигнал также разделяется аналогичным образом и с таким же соотношением разделения по вертикали и по горизонтали, что и сигнал яркости.
В блоке кодирования для идентификации каждого блока предсказания блоку предсказания в этом блоке кодирования присваивается в порядке кодирования число, начиная с 0. Это число определяется как индекс разделения PartIdx. Число, записанное в каждом блоке предсказания в блоках кодирования, показанных на Фиг. 4, указывает на индекс разделения PartIdx блока предсказания. Для 2NxN-разделения (PART_2NxN), 2NxnN-разделения (PART_2NxnU) и 2NxnD-разделения (PART_2NxnD), показанных на Фиг. 4(a), 4(c) и 4(d), соответственно, индексу разделения Partldx верхнего блока предсказания присваивается значение 0, а индексу разделения PartIdx нижнего блока предсказания присваивается значение 1. Для Nx2N-разделения (PART_Nx2N), nLx2N-разделения (PART_nLx2N) и nRx2N-разделения (PART_nRx2N), показанных на Фиг. 4(e), 4(f) и 4(g), соответственно, индексу разделения PartIdx левого блока предсказания присваивается значение 0, а индексу разделения PartIdx правого блока предсказания присваивается значение 1. Для NxN-разделения (PART_NxN), показанного на Фиг. 4(h), индексу разделения PartIdx верхнего левого блока предсказания присваивается значение 0, индексу разделения PartIdx верхнего правого блока предсказания присваивается значение 1, индексу разделения PartIdx нижнего левого блока предсказания присваивается значение 2, а индексу разделения PartIdx нижнего правого блока предсказания присваивается значение 3.
В случае, когда режим предсказания (PredMode) является межкадровым предсказанием (MODE_INTER), то в качестве режимов разделения (PartMode) определяются 2Nx2N-разделение (PART_2Nx2N), 2NxN-разделение (PART_2Nx2N), 2NxnU-разделение (PART_2NxnU), 2NxD-разделение (PART_2NxnD), Nx2N-разделение (PART_Nx2N), nLx2N-разделение (PART_nLx2N) и nRx2N-разделение (PART_nRx2N). Только в случае блока кодирования D, который является минимальным блоком кодирования, может быть определено и NxN-разделение (PART_NxN) в качестве режима разделения (PartMode), дополнительно к 2Nx2N-разделению (PART_2Nx2N), 2NxN-разделению (PART_2NxN), 2NxnU-разделению (PART2NxnU), 2NxnD-разделению (PART_2NxnD), Nx2N-разделению (PART_Nx2N), nLx2N-разделению (PART_nLx2N) и nRx2N-разделению (PART_nRx2N). Однако, в соответствии с настоящим примером осуществления, принимается, что NxN-разделение (PART_NxN) не определяется в качестве режима разделения (PartMode).
В случае, режим предсказания (PredMode) является внутрикадровым предсказанием (MODE_INTRA), для блоков в качестве режима разделения (PartMode) определяется только 2Nx2N-разделение (PART_2Nx2N), за исключением блока кодирования D, который является минимальным блоком кодирования. Только в случае блока кодирования D, который является минимальным блоком кодирования, в качестве режима разделения (PartMode), дополнительно к 2Nx2N-разделению (PART_2Nx2N), определяется NxN-разделение (PART_NxN). Причиной того, почему NxN-разделение (PART_NxN) не определяется, за исключением разделения минимального блока кодирования, является то, что блок кодирования, отличный от минимального блока кодирования, может быть разделен на четыре блока, которые представляют собой блоки кодирования меньшего размера.
Положение древовидного блока, блока кодирования, блока предсказания и блока преобразования
Положение каждого блока, такого как древовидный блок, блок кодирования, блок предсказания, блок преобразования и прочие, представляется, в соответствии с настоящим примером осуществления, двумерной координатой, когда положение самого верхнего левого пикселя сигнала яркости при воспроизведении на экране сигналов яркости определяется за начало координат (0,0) и положение самого верхнего левого пикселя сигнала яркости, входящего в область каждого блока, представляется двумерной координатой (Χ, Y). Что касается направлений координатных осей, то положительными направлениями являются направление вправо по горизонтали и направление вниз по вертикали, соответственно, а что касается масштабной единицы, то ею является один пиксель сигнала яркости. Положение каждого блока цветоразностных сигналов представляется координатами пикселя сигнала яркости, содержащегося внутри области блока, а пиксель является масштабной единицей не только в случае, когда цветоразностным форматом является 4:4:4, где размеры кадра (число пикселей) сигналов яркости и цветоразностных сигналов являются идентичными между собой, но также и в случае, когда цветоразностным форматом является 4:2:0 или 4:2:2, где размеры кадра (число пикселей) сигналов яркости и цветоразностных сигналов являются различными. Приняв подобные определения, становится возможными не только идентификация положения каждого блока цветоразностных сигналов, но также понимание позиционного соотношения между блоком сигналов яркости и блоком цветоразностных сигналов из простого сравнения значений координат.
Режим межкадрового предсказания и опорный список
В соответствии с примером осуществления изобретения, в межкадровом предсказании в качестве опорного кадра может быть использовано несколько декодированных кадров, где предсказание проводится на базе сигналов изображения декодированного кадра. Для идентификации опорного кадра, выбираемого из нескольких опорных кадров, каждому блоку предсказания присваивается ссылочный индекс. Для В-слоя межкадровое предсказание может быть проведено, выбрав два произвольных опорных кадра для каждого блока предсказания. Режимами межкадрового предсказания являются L0-предсказание (Pred_L0), L1-предсказание (Pred_L1) и би-предсказание (Pred_BI). Опорный кадр управляется списком L0 (опорный список 0) и списком L1 (опорный список 1), которые являются списковыми структурами, а опорный кадр может быть идентифицирован специфицированием ссылочного индекса в L0 или в L1. L0-предсказание (Pred_L0) является межкадровым предсказанием, которое обращается к опорному кадру, управляемому списком L0, L1-предсказание (Pred_L1) является межкадровым предсказанием, которое обращается к опорному кадру, управляемому списком L1, а би-предсказание (Pred_BI) является межкадровым предсказанием, где осуществляется совместное предсказание - L0-предсказание и L1-предсказание, и проводится обращение к одному опорному кадру, управляемому списком L0, и одному опорному кадру, управляемому списком L1. В межкадровом предсказании Р-слоя может быть использовано только L0-предсказание. В межкадровом предсказании В-слоя может быть использовано L0-предсказание, L1-предсказание и би-предсказание, в котором суммируются средние значения L0-предсказания и L1-предсказания или их взвешенные значения. Что касается постоянных и переменных, к концам которых в последующих процессах присоединяется суффикс LX, то принимается, что процесс выполняется для каждого L0 и L1.
Режим слияния и кандидаты на слияние
Режим слияния не является режимом, который кодирует или декодирует информацию для межкадрового предсказания (такую, например, как режимы предсказания, ссылочные индексы, векторы движения) блока предсказания, являющегося объектом кодирования или декодирования, а является режимом, на котором осуществляется межкадровое предсказание выводом информации для межкадрового предсказания блока предсказания, являющегося объектом кодирования или декодирования, из информации межкадрового предсказания: блока предсказания, который находится внутри того же самого кадра, что и блок предсказания, являющийся объектом кодирования или декодирования, и который находятся в окрестности блока предсказания, являющегося объектом кодирования или декодирования; или блока предсказания, который находятся в кадре, отличном по времени от кадра блока предсказания, являющегося объектом кодирования или декодирования, и который находятся в положении, идентичном положению блока предсказания, являющегося объектом кодирования или декодирования, или в его окрестности (в положении примыкания к нему). Блок предсказания и его информация межкадрового предсказания, при этом блок предсказания находится внутри того же самого кадра, что и блок предсказания, являющийся объектом кодирования или декодирования, и находится в окрестности блока предсказания, являющегося объектом кодирования или декодирования, используется как кандидат на пространственное слияние. Информация межкадрового предсказания, выведенная из блока предсказания, и его информация межкадрового предсказания, при этом блок предсказания находится в кодированном или декодированном кадре, отличном по времени от кадра блока предсказания, являющегося объектом кодирования или декодирования, и находится в положении, идентичном положению блока, являющегося объектом кодирования или декодирования, или в его окрестности (в положении примыкания к нему), используется как кандидат на слияние по времени. Каждый кандидат на слияние регистрируется в списке кандидатов на слияние, а кандидат на слияние, который используется для межкадрового предсказания, специфицируется индексом слияния.
Примыкающие блоки предсказания
На Фиг. 5, Фиг. 6, Фиг. 7 и Фиг. 8 иллюстрируются (вывод кандидатов на пространственное слияние и блоки предсказания, к которым проводится обращение во время вывода кандидатов на пространственное слияние и вывода ссылочных индексов кандидатов на слияние по времени, при этом блоки предсказания находятся внутри того же самого кадра, что и блок предсказания, являющийся объектом кодирования или декодирования, и примыкают к блоку предсказания, являющемуся объектом кодирования или декодирования. На Фиг. 9 иллюстрируется блок предсказания, к которому проводится обращение при выводе ссылочного индекса кандидата на слияние по времени, при этом блок предсказания находится в кодированном или декодированном кадре, отличном по времени от блока предсказания, являющегося объектом кодирования или декодирования, и находится в положении, идентичном положению блока предсказания, являющегося объектом кодирования или декодирования, или в его окрестности. Со ссылками на Фиг. 5, Фиг. 6, Фиг. 7, Фиг. 8 и Фиг. 9 будет дано объяснение для блоков предсказания, примыкающих в пространстве к блоку предсказания, являющемуся объектом кодирования или декодирования, и блоков предсказания в идентичном положении, но различающихся по времени.
Как показывается на Фиг. 5, внутри того же самого кадра с блоком предсказания, являющимся объектом кодирования или декодирования, определены в качестве блоков предсказания, примыкающих в пространстве, блок предсказания А, примыкающий к левой стороне блока предсказания, являющегося объектом кодирования или декодирования, блок предсказания В, примыкающий к его верхней стороне, блок предсказания С, примыкающий в его верхней правой вершине, блок предсказания D, примыкающий к его нижней левой вершине, и блок предсказания Е, примыкающий к его верхней левой вершине.
Как показывается на Фиг. 6, в случае, когда существует несколько блоков предсказания, размеры которых меньше, чем размер блока предсказания, являющегося объектом кодирования или декодирования, и которые примыкают к левой стороне блока предсказания, являющегося объектом кодирования или декодирования, то из нескольких блоков предсказания, примыкающих к левой стороне, блок предсказания А10, находящийся в крайнем нижнем положении, определяется, в соответствии с настоящим примером осуществления, как блок предсказания А, примыкающий к левой стороне.
Аналогичным образом, если существует несколько блоков предсказания, размеры которых меньше, чем размер блока предсказания, являющегося объектом кодирования или декодирования, и которые примыкают к верхней стороне блока предсказания, являющегося объектом кодирования или декодирования, то из нескольких блоков предсказания, примыкающих к верхней стороне, блок предсказания В10, находящийся в крайнем правом положении, определяется, в соответствии с настоящим примером осуществления, как блок предсказания В1, примыкающий к верхней стороне.
Как показывается на Фиг. 7, также и в случае, когда размер блока предсказания F, примыкающего к левой стороне блока предсказания, являющегося объектом кодирования или декодирования, будет больше, чем размер блока предсказания, являющегося объектом кодирования или декодирования, то в соответствии с условиями, описанными выше, блок предсказания А определяется как блок предсказания А, если блок предсказания А примыкает к левой стороне блока предсказания, являющегося объектом кодирования или декодирования, определяется как блок предсказания D, если блок предсказания D примыкает к нижней левой вершине блока предсказания, являющегося объектом кодирования или декодирования, и определяется как блок предсказания Е, если блок предсказания Ε примыкает к верхней левой вершине блока предсказания, являющегося объектом кодирования или декодирования. В соответствии с примером, показанным на Фиг. 6, блок предсказания А, блок предсказания Ε и блок предсказания Ε являются идентичными блоками предсказания.
Как показывается на Фиг. 8, также и в случае, когда размер блока предсказания G, примыкающего к верхней стороне блока предсказания, являющегося объектом кодирования или декодирования, будет больше, чем размер блока предсказания, являющегося объектом кодирования или декодирования, то в соответствии с условиями, описанными выше, блок предсказания G определяется как блок предсказания В, если блок предсказания G примыкает к верхней стороне блока предсказания, являющегося объектом кодирования или декодирования, определяется как блок предсказания С, если блок предсказания G примыкает к верхней правой вершине блока предсказания, являющегося объектом кодирования или декодирования, и определяется как блок предсказания Е, если блок предсказания G примыкает к верхней левой вершине блока предсказания, являющегося объектом кодирования или декодирования. В соответствии с примером, показанным на Фиг. 8, блок предсказания В, блок предсказания С и блок предсказания Ε являются идентичными блоками предсказания.
Как показывается на Фиг. 9, ранее кодированные или уже декодированные блоки предсказания Т0 и Т1 в кадре, отличном по времени от кадра блока предсказания, являющегося объектом кодирования или декодирования, и находящиеся в положении, идентичном положению блока предсказания, являющегося объектом кодирования или декодирования, или в его окрестности, определяются как блоки предсказания в том же самом положении, но в другой момент времени.
РОС
РОС определяется как переменная, которая непосредственно связана с кодируемым кадром, и значение которой увеличивается на единицу в порядке вывода кадров. По значению переменной РОС может быть определено, являются или не являются кадры идентичными между собой, может быть определено, является ли кадр предыдущим или последующим относительно другого кадра в порядке вывода, или может быть выведено расстояние между кадрами. Например, в случае, когда переменные РОС двух кадров имеют одинаковые значения, то может быть определено, что кадры являются идентичными. В случае, когда переменные РОС двух кадров имеют различные значения, то кадр с меньшим значением РОС определяется как кадр, который должен быть выдан перед другим кадром, а разность между переменными РОС двух кадров представляет расстояние между этими кадрами по оси времени.
Ниже со ссылками на фигуры чертежей будет дано объяснение примера осуществления изобретения. На Фиг. 1 представлена блок-схема, показывающая структуру устройства кодирования движущегося изображения, в соответствии с примером осуществления изобретения. Устройство кодирования движущегося изображения, в соответствии с примером осуществления, содержит память кадров 101, блок обнаружения векторов движения 102, блок вычисления разности векторов движения 103, блок вывода информации межкадрового предсказания 104, блок предсказания компенсации движения 105, блок внутрикадрового предсказания 106, блок определения способа предсказания 107, блок генерирования остаточного сигнала 108, блок ортогонального преобразования/квантования 109, блок генерирования первого битового потока 110, блок генерирования второго битового потока 111, блок мультиплексирования 112, блок деквантования/обратного ортогонального преобразования 113, блок свертки сигналов декодированных кадров 114, память хранения информации кодирования 115 и память декодированных кадров 116.
В памяти кадров 101 временно хранятся сигналы изображений кадров, являющихся объектами кодирования, причем сигналы поступают в порядке съемки и/или в порядке времени воспроизведения. Память кадров 101 предоставляет хранимые сигналы изображения кадра, являющегося объектом кодирования, в единицах заранее заданных блоков пикселей блоку обнаружения векторов движения 102, блоку определения способа предсказания 107 и блоку генерирования остаточных сигналов 108. В этом процессе сигналы изображений кадров, хранимых в порядке съемки и/или в порядке времени воспроизведения, переупорядочиваются по порядку кодирования и выдаются из памяти кадров 101 в единицах блоков пикселей.
Блок обнаружения векторов движения 102 обнаруживает векторы движения для соответствующего размера блока предсказания и соответствующих режимов предсказания для каждого блока предсказания, например, блочным согласованием между сигналом кадра, предоставляемого из памяти кадров 101, и опорным кадром, предоставляемым из памяти декодированных кадров 116. Блок обнаружения векторов движения 102 предоставляет обнаруженный вектор движения блоку предсказания компенсации движения 105, блоку вычисления разности векторов движения 103 и блоку определения способа предсказания 107.
Использованием информации кодирования уже закодированного кадрового сигнала и хранящейся в памяти хранения информации кодирования 115, блок вычисления разности векторов движения 103 вычисляет несколько кандидатов на предсказание вектора движения и сохраняет этих кандидатов в списке предсказаний векторов движения, выбирает оптимальное предсказание вектора движения из нескольких кандидатов на предсказание вектора движения, зарегистрированных в списке предсказаний векторов движения, вычисляет разность векторов движения между вектором движения, обнаруженным блоком обнаружения векторов движения 102, и предсказанием вектора движения и предоставляет вычисленную разность векторов движения блоку определения способа предсказания 107. Далее, блок вычисления разности векторов движения 103 предоставляет блоку определения способа предсказания 107 индекс предсказания вектора движения, который специфицирует предсказание вектора движения, выбранное из кандидатов на предсказание векторов движения, зарегистрированных в списке предсказаний векторов движения.
Блок вывода информации межкадрового предсказания 104 выводит кандидата на слияние в режиме слияния. Использованием информации кодирования уже закодированного блока предсказания и хранящейся в памяти хранения информации кодирования 115, блок вывода информации межкадрового предсказания 104 выводит несколько кандидатов на слияние и регистрирует этих кандидатов в списке кандидатов на слияние, который будет описан ниже, выбирает надлежащего кандидата на слияние из нескольких кандидатов на слияние, зарегистрированных в списке кандидатов на слияние, предоставляет блоку предсказания компенсации движения 105 информацию межкадрового предсказания (например, флаги predFlagL0 [хР] [yP] и predFlagL1 [хР] [yP], указывающие на то, использовать или не использовать L0-предсказание и/или L1-предсказание, ссылочные индексы refIdxL0 [хР] [yP] и refIdxL1 [xP] [yP], векторы движения mvL0 [xP] [yP] и mvL1 [xP] [yP] и прочее) каждого блока предсказания выбранного кандидата на слияние, и предоставляет блоку определения способа предсказания 107 индекс слияния, который специфицирует выбранного кандидата на слияние. Здесь xP и yP являются индексами, указывающими на положение верхнего левого пикселя внутри блока предсказания в кадре. Подробная конфигурация и работа блока вывода информации межкадрового предсказания 104 будут представлены позднее.
Блок предсказания компенсации движения 105 генерирует из опорного кадра сигнал предсказания кадра (предсказание компенсации движения) использованием вектора движения, обнаруженного блоком обнаружения векторов движения 102 и блоком вывода информации межкадрового предсказания 104, и предоставляет сигнал предсказания кадра блоку определения способа предсказания 107. В L0-предсказании и в L1-предсказании выполняется предсказание по одному направлению. В случае би-предсказания (Pred_BI), выполняется предсказание по двум направлениям, соответствующие предсказанные сигналы межкадрового предсказания L0-предсказания и L1-предсказания адаптивно умножаются на коэффициент взвешивания, добавляется величина смещения и проводится свертка сигналов для формирования полного сигнала предсказания кадра.
Блок внутрикадрового предсказания 106 выполняет внутрикадровое предсказание для каждого режима внутрикадрового предсказания. Блок внутрикадрового предсказания 106 генерирует сигнал предсказания кадра внутрикадровым предсказанием из сигнала декодированного кадра, хранящегося в памяти декодированных кадров 211, выбирает надлежащий режим внутрикадрового предсказания из нескольких режимов внутрикадрового предсказания и предоставляет блоку определения способа предсказания 107 выбранный режим внутрикадрового предсказания и сигнал предсказания кадра, в соответствии с выбранным режимом внутрикадрового предсказания.
Блок определения способа предсказания 107 определяет режим предсказания PredMode и режим разделения PartMode, который определяет межкадровое предсказание (PRED_INTER) или внутрикадровое предсказание (PRED_INTRA) в единицах оптимальных блоков кодирования из нескольких способов предсказания оцениванием величины кода информации кодирования и остаточного сигнала, величины искажения между сигналом предсказания кадра и кадровым сигналом для соответствующих способов предсказания. В случае межкадрового предсказания (PRED_INTER) блок определения способа предсказания 107 определяет, является или не является режим режимом слияния, в единицах блоков предсказания. В случае, когда режим является режимом слияния, блок определения способа предсказания 107 определяет индекс слияния, а в случае, когда режим не является режимом слияния, определяет режим межкадрового предсказания, индекс предсказания вектора движения, ссылочные индексы в L0 и L1, разность векторов движения и прочее, и в соответствии с результатами этих определений предоставляет блоку генерирования первого битового потока 110 информацию для кодирования.
Далее, для блока определения способа предсказания 107 в памяти хранения информации кодирования 115 хранится информация, указывающая на определенный способ предсказания, и информация кодирования, содержащая вектор движения, соответствующий этому определенному способу предсказания.
Здесь хранящаяся информация кодирования включает, например: режим предсказания PredMode и режим разделения PatrMode соответствующих блоков кодирования, флаги predFlagL0[ [xP] [yP] и predFlagL1 [xP] [yP], указывающие на то, использовать или не использовать L0-предсказание и L1-предсказание каждого блока предсказания, ссылочные индексы refIdxL0 [xP] [yP] и refIdxL1 [xP] [yP] в L0 и L1, векторы движения mvL0 [xP] [yP] и mvL1 [xP] [yP] в L0 и L1. Здесь xP и yP являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания внутри кадра. В случае, когда режим предсказания PredMode является внутрикадровым предсказанием (MODE_INTRA), то оба флага, predFlagL0 [xP] [yP], указывающий на то, использовать или не использовать L0-предсказание, и predFlagL1 [xP] [yP], указывающий на то, использовать или не использовать L1-предсказание, являются 0. С другой стороны, в случае, когда режим предсказания PredMode является межкадровым предсказанием (MODE_INTER) и режим межкадрового предсказания является L0-предсказанием (Pred_L0), то флаг predFlagL0 [xP] [yP], указывающий на то, использовать или не использовать L0-предсказание, является 1, а флаг predFlagL1 [xP] [yP], указывающий на то, использовать или не использовать L1-предсказание, является 0. В случае, когда режим межкадрового предсказания является L1-предсказанием (Pred_L1), то флаг predFlagL0 [xP] [yP], указывающий на то, использовать или не использовать L0-предсказание, является 0, а флаг predFlagL1 [xP] [yP], указывающий на то, использовать или не использовать L1-предсказание, является 1. В случае, когда режим межкадрового предсказания является би-предсказанием (Pred_BI), то оба флага, predFlagL0 [xP] [yP], указывающий на то, использовать или не использовать L0-предсказание, и флаг predFlagL1 [xP] [yP], указывающий на то, использовать или не использовать L1-предсказание, являются 1. Блок определения способа предсказания 107 предоставляет блоку генерирования остаточного сигнала 108 и блоку свертки сигналов декодированных кадров 114 сигнал предсказания кадра, соответствующий определенному им режиму предсказания.
Блок генерирования остаточного сигнала 108 генерирует остаточный сигнал, выполняя операцию вычитания между сигналом кадра, являющегося объектом кодирования, и сигналом предсказания кадра, и предоставляет сигнал остатка блоку ортогонального преобразования/квантования 109. Блок ортогонального преобразования/квантования 109 выполняет ортогональное преобразование и квантование остаточного сигнала в соответствии с параметром квантования, тем самым генерирует ортогонально-преобразованный и проквантованный остаточный сигнал, и предоставляет ортогонально-преобразованный и проквантованный остаточный сигнал блоку генерирования второго битового потока 111 и блоку деквантования/обратного ортогонального преобразования 113. Далее, блок ортогонального преобразования/квантования 109 сохраняет параметр квантования в памяти хранения информации кодирования 115.
Блок генерирования первого битового потока 110, в дополнение к информации каждой последовательности, каждого кадра, каждого слоя и каждого блока кодирования, кодирует информацию для кодирования, в соответствии со способом предсказания, определенным для каждого блока кодирования и для каждого блока предсказания блоком определения способа предсказания 107. Более конкретно, блок генерирования первого битового потока 110 для каждого блока кодирования кодирует такую информацию для кодирования, как режим предсказания PredMode, режим разделения PartMode, флаг, который определяет, является или не является режим режимом слияния в случае межкадрового предсказания (PRED_INTER), индекс слияния в случае режима слияния, режим межкадрового предсказания в случае, когда режим не является режимом слияния, индекс предсказания вектора движения, информацию, относящуюся к разности векторов движения и прочее, в соответствии с предписанным синтаксическим правилом, которое будет описано позднее, тем самым генерирует первый битовый поток и предоставляет этот первый битовый поток блоку мультиплексирования 112.
Блок генерирования второго битового потока 111 осуществляет энтропийное кодирование ортогонально-преобразованного и проквантованного остаточного сигнала в соответствии с предписанным синтаксическим правилом, тем самым генерирует второй битовый поток и предоставляет этот второй битовый поток блоку мультиплексирования 112. В блоке мультиплексирования 112 первый битовый поток и второй битовый поток объединяются в соответствии с предписанным синтаксическим правилом, тем самым генерируется битовый поток.
Блок деквантования/обратного ортогонального преобразования 113 осуществляет деквантование и обратное ортогональное преобразование ортогонально-преобразованного и проквантованного остаточного сигнала, предоставленного от блока ортогонального преобразования/квантования 109, тем самым вычисляет остаточный сигнал и предоставляет этот остаточный сигнал блоку свертки сигналов декодированных кадров 114. Блок свертки сигналов декодированных кадров 114 выполняет операцию свертки сигнала предсказанного кадра, полученного в соответствии с результатами определения блоком определения способа предсказания 107, и остаточного сигнала, который является деквантованным и обратно ортогонально-преобразованным сигналом из блока деквантования/обратного ортогонального преобразования 113, тем самым генерирует декодированный кадр и сохраняет декодированный кадр в памяти декодированных кадров 116. В зависимости от обстоятельств, для декодированного кадра выполняется процесс фильтрации, который снижает искажения, такие, например, как блочные искажения, являющиеся результатом кодирования, и этот декодированный кадр соответственно сохраняется в памяти декодированных кадров 116.
На Фиг. 1 представлена блок-схема, показывающая структуру устройства декодирования движущегося изображения, в соответствии с примером осуществления изобретения, при этом устройство декодирования движущегося изображения соответствует устройству кодирования движущегося изображения на Фиг. 1. Устройство декодирования движущегося изображения, в соответствии с примером осуществления, содержит блок разделения 201, блок декодирования первого битового потока 202, блок декодирования второго битового потока 203, блок вычисления векторов движения 204, блок вывода информации межкадрового предсказания 205, блок предсказания компенсации движения 206, блок внутрикадрового предсказания 207, блок деквантования/обратного ортогонального преобразования 208, блок свертки сигналов декодированных кадров 209, память хранения информации кодирования 210 и память декодированных кадров 211.
Процесс декодирования в устройстве декодирования движущегося изображения на Фиг. 2 соответствует процессу декодирования, проводимому в устройстве кодирования движущегося изображения на Фиг. 1. Поэтому соответствующие конфигурации блока предсказания компенсации движения 206, блока деквантования/обратного ортогонального преобразования 208, блока свертки сигналов декодированных кадров 209, памяти хранения информации кодирования 210 и памяти декодированных кадров 211 на Фиг. 2 имеют функции, соответствующие конфигурациям блока предсказания компенсации движения 105, блока деквантования/обратного ортогонального преобразования 113, блока свертки сигналов декодированных кадров 114, памяти хранения информации кодирования 115 и памяти декодированных кадров 116 устройства кодирования движущегося изображения на Фиг. 1, соответственно.
Битовый поток, предоставляемый блоку разделения 201, разделяется в соответствии с предписанным синтаксическим правилом. Отделенный первый битовый поток предоставляется блоку декодирования первого битового потока 202, а отделенный второй битовый поток предоставляется блоку декодирования второго битового потока 203.
Блок декодирования первого битового потока 202 декодирует предоставленный кодированный битовый поток и получает информацию кодирования для каждой последовательности, каждого кадра, каждого слоя и каждого блока кодирования, а также информацию кодирования для каждого блока предсказания. Более конкретно, блок декодирования первого битового потока 202 декодирует информацию для кодирования, относящуюся, например, к режиму предсказания PredMode, который для каждого блока кодирования определяет, является ли предсказание межкадровым предсказанием (PRED_INTER) или внутрикадровым предсказанием (PRED_INTRA), определяет режим разделения PartMode, флаг, который определяет, является или не является режим режимом слияния в случае межкадрового предсказания (PRED_INTER), индекс слияния в случае, когда режим является режимом слияния, режим межкадрового предсказания в случае, когда режим не является режимом слияния, индекс предсказания вектора движения, разность векторов движения или прочее, в соответствии с предписанным синтаксическим правилом, которое будет описано позднее, и предоставляет информацию кодирования блоку вычисления векторов движения 204, блоку вывода информации межкадрового предсказания 205 или блоку внутрикадрового предсказания 207.
Блок декодирования второго битового потока 203 декодирует предоставленный битовый поток, тем самым вычисляет ортогонально-преобразованный и проквантованный остаточный сигнал и предоставляет ортогонально-преобразованный и проквантованный остаточный сигнал блоку деквантования/обратного ортогонального преобразования 208.
Когда режим предсказания PredMode блока предсказания, являющегося объектом декодирования, является межкадровым предсказанием (PRED_INTER) и не режимом слияния, то блок вычисления векторов движения 204, используя информацию кодирования сигнала уже декодированного кадра и хранящуюся в памяти хранения информации кодирования 210, выводит несколько кандидатов на предсказание вектора движения и регистрирует этих кандидатов в списке предсказаний векторов движения, который будет описан позднее. Блок вычисления векторов движения 204 выбирает из нескольких кандидатов на предсказание вектора движения, зарегистрированных в списке предсказаний векторов движения, предсказание вектора движения в соответствии с индексом предсказания вектора движения, который декодирован в блоке декодирования первого битового потока 202 и предоставлен им, вычисляет вектор движения из разностного вектора, декодированного блоком декодирования первого битового потока 202, и из выбранного предсказания вектора движения. Блок вычисления векторов движения 204 предоставляет блоку предсказания компенсации движения 206 вектор движения вместе с другой информацией для кодирования, и сохраняет этот вектор движения и другую информацию для кодирования в памяти хранения информации кодирования 210. Информация для кодирования блока предсказания, предоставляемая и сохраняемая в этом процессе, содержит: режим предсказания PredMode, режим разделения PartMode, флаги predFlagL0 [xP] [yP] и predFlagL1 [xP] [yP], указывающие на то, использовать или не использовать L0-предсказание и L1-предсказание, соответственно, ссылочные индексы refIdxL0 [xP] [yP] и refIdxL1 [xP] [yP] в L0 и L1, векторы движения mvL0 [xP] [yP] и mvL1 [xP] [yP] в L0 и L1 и прочее. Здесь xP и yP являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания внутри кадра. В случае, когда режим предсказания PredMode является межкадровым предсказанием (MODE_INTER) и режим межкадрового предсказания является L0-предсказанием (Pred_L0), то флаг predFlagL0, указывающий на то, использовать или не использовать L0-предсказание, является 1, а флаг predFlagL1, указывающий на то, использовать или не использовать L1-предсказание, является 0. В случае, когда режим межкадрового предсказания является L1-предсказанием (Pred_L1), то флаг predFlagL0, указывающий на то, использовать или не использовать L0-предсказание, является 0, а флаг predFlagL1, указывающий на то, использовать или не использовать L1-предсказание, является 1. В случае, когда режим межкадрового предсказания является би-предсказанием (Pred_BI), то флаг predFlagL0, указывающий на то, использовать или не использовать L0-предсказание, и флаг predFlagL1 [xP] [yP], указывающий на то, использовать или не использовать L1-предсказание, оба являются 1.
Когда режим предсказания PredMode блока предсказания, являющегося объектом декодирования, является межкадровым предсказанием (PRED_INTER) и если режим является режимом слияния, то блок вывода информации межкадрового предсказания 205 выводит кандидата на слияние. Использованием информации кодирования ранее уже кодированного блока предсказания и сохраненной в памяти хранения информации кодирования 115, блок вывода информации межкадрового предсказания 205 выводит несколько кандидатов на слияние и регистрирует этих кандидатов в списке кандидатов на слияние, который будет описан позднее. Блок вывода информации межкадрового предсказания 205 выбирает из нескольких кандидатов на слияние, зарегистрированных в списке кандидатов на слияние, кандидата на слияние, соответствующего индексу слияния, который декодирован в блоке декодирования первого битового потока 202 и предоставлен им. Блок вывода информации межкадрового предсказания 205 предоставляет блоку предсказания компенсации движения 206 такую информацию межкадрового предсказания выбранного кандидата на слияние, как флаги predFlagL0 [xP] [yP] и predFlagL1 [xP] [yP], указывающие на то, использовать или не использовать L0-предсказание и L1-предсказание, ссылочные индексы refIdxL0 [xP] [yP] и refldxL1 [xP] [yP] в L0 и L1, векторы движения mvL0 [xP] [yP] и mvL1 [xP] [yP] в L0 и L1, и прочее, и сохраняет информацию межкадрового предсказания в памяти хранения информации кодирования 210. Здесь xP и yP являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания внутри кадра. Подробности конфигурации и работы блока вывода информации межкадрового предсказания 205 будут даны позднее.
Блок предсказания компенсации движения 206 генерирует сигнал предсказания кадра межкадровым предсказанием (предсказание компенсации движения), использованием для этого информации межкадрового предсказания, вычисленной в блоке вычисления векторов движения 204 или в блоке вывода информации межкадрового предсказания 205, из опорного кадра, хранящегося в памяти декодированных кадров 211, и предоставляет этот сигнал предсказания кадра блоку свертки сигналов декодированных кадров 209. В случае би-предсказания (Pred_BI) сигналы двух кадров предсказания компенсации движения в L0-предсказании и L1-предсказании адаптивно умножаются на весовые коэффициенты и выполняется операция свертки этих сигналов, генерируя тем самым полный сигнал предсказания кадра.
Блок внутрикадрового предсказания 207 выполняет внутрикадровое предсказание, когда режим предсказания PredMode декодируемого блока предсказания является внутрикадровым предсказанием (PRED_INTRA). Информация кодирования, декодированная в блоке декодирования первого битового потока, содержит режим внутрикадрового предсказания. Базируясь на этом режиме внутрикадрового предсказания, из сигнала декодированного кадра, хранящегося в памяти декодированных кадров 211, внутрикадровым предсказанием генерируется сигнал предсказания кадра, который предоставляется блоку свертки сигналов декодированных кадров 209. Оба флага, predFlagL0 [xP] [yP] и predFlagL1 [xP] [yP], указывающие на то, использовать или не использовать L0-предсказание и L1-предсказание, задаются равными 0 и сохраняются в памяти хранения информации кодирования 210. Здесь xP и yP являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания внутри кадра.
Блок деквантования/обратного ортогонального преобразования 208 осуществляет обратное ортогональное преобразование и деквантование ортогонально-преобразованного и проквантованного остаточного сигнала, который декодирован в блоке декодирования первого битового потока 202, получая в результате обратно ортогонально-преобразованный и деквантованный остаточный сигнал.
Блок сверки сигналов декодированных кадров 209 декодирует сигнал декодированного кадра сверткой сигнала предсказания кадра, который является сигналом межкадрового предсказания, предсказанным блоком предсказания компенсации движения 206, или сигналом предсказания кадра, который является сигналом внутрикадрового предсказания, предсказанным блоком внутрикадрового предсказания 207, и остаточного сигнала, который является обратно ортогонально-преобразованным и деквантованным сигналом, полученным блоком деквантования/обратного ортогонального преобразования 208, и сохраняет полученный сигнал декодированного кадра в памяти декодированных кадров 211. Когда декодированный кадр сохраняется в памяти декодированных кадров 211, то, в зависимости от обстоятельств, для декодированного кадра выполняется процесс фильтрации, который снижает искажения, такие, например, как блочные искажения, являющиеся результатом кодирования, и этот декодированный кадр сохраняется в памяти декодированных кадров 211.
Относительно синтаксиса
Далее будет дано объяснение синтаксиса, представляющего собой общее правило кодирования и декодирования битового потока движущегося изображения, которое кодируется устройством кодирования движущегося изображения, использующим способ предсказания вектора движения, в соответствии с настоящим примером осуществления, и которое декодируется устройством декодирования.
На Фиг. 10 показывается первая синтаксическая структура, которая описывается в заголовке слоя для каждого слоя битового потока, генерируемого в соответствии с настоящим примером осуществления. На рисунке показываются только синтаксические элементы, относящиеся к настоящему примеру осуществления. В случае, когда типом слоя является В-слой, устанавливается флаг collocated_from_10_flag. Этот флаг collocated_from_10_flag указывает на то, который из опорных кадров использует кадр colPic другого момента времени, то есть, опорный кадр, зарегистрированный в опорном списке в L0, или опорный кадр, зарегистрированный в опорном списке в L1 кадра, который содержит блок предсказания, являющийся объектом обработки. Кадр colPic другого момента времени используется при выводе кандидата на предсказание вектора движения по времени или при выводе кандидата на слияние. Подробно флаг collocated_from_10_flag будет описан позднее.
Далее, описанные выше синтаксические элементы могут быть установлены в совокупности параметров кадра, которая описывает синтаксические элементы, заданные для каждого кадра.
На Фиг. 11 показывается синтаксическая структура, описанная для каждого блока предсказания. В случае, когда значение режима предсказания PredMode блока предсказания является межкадровым предсказанием (MODE_INTER), устанавливается merge_flag [x0] [y0], который указывает на то, является или не является режим режимом слияния. Здесь x0 и y0 являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания внутри кадра сигналов яркости, а merge_flag [x0] [y0] является флагом, указывающим на то, является или не является режим блока предсказания, расположенного с координатами (x0, y0) внутри кадра, режимом слияния.
Далее, в случае, когда merge_flag [x0] [y0] является 1, который указывает на то, что режим является режимом слияния, устанавливается синтаксический элемент merge_idx [x0] [y0] индекса списка слияния, который является списком кандидатов на слияние, к которым проводится обращение. Здесь x0 и y0 являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания внутри кадра, а merge_flag [x0] [y0] является индексом слияния блока предсказания, расположенного с координатами (x0, y0) внутри кадра. На Фиг. 12 показывается пример энтропийного кода синтаксического элемента merge_idx [x0] [y0] индекса слияния. В соответствии с настоящим примером осуществления, число кандидатов на слияние задается равным 5. Когда индексом слияния является 0, 1, 2, 3 и 4, то кодом синтаксического элемента merge_idx [x0] [y0] индекса слияния является ′0′, ′10, ′110′, ′1110′ и ′1111′, соответственно.
С другой стороны, в случае, когда merge_flag [x0] [y0] является 0, то merge_flag [x0] [y0] указывает на то, что режим не является режимом слияния, и в случае, когда тип слоя является В-слоем, устанавливается синтаксический элемент inter_pred_flag [x0] [y0], который идентифицирует режим межкадрового предсказания. Этим синтаксическим элементом различается L0-предсказание (Pred_L0), L1-предсказание (Pred_L1) и би-предсказание (Pred_BI). Для каждого L0 и L1 устанавливаются синтаксические элементы ссылочного индекса ref_idx10 [x0] [y0] и ref_idx_11 [x0] [y0] для специфицирования опорного кадра, и синтаксические элементы mvd_10 [x0] [y0] [j] и mvd_11 [x0] [y0] [j] разности векторов движения, которая является разностью между вектором движения блока предсказания, выведенного обнаружением вектора движения, и предсказанием вектора движения. Здесь x0 и y0 являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания внутри кадра. ref_idx_10 [x0] [y0] и mvd_10 [x0] [y0] [j] являются ссылочным индексом и разностью векторов движения в L0 блока предсказания, расположенного с координатами (x0, y0) внутри кадра, соответственно. ref_idx_11 [x0] [y0], mvd_11 [x0] [y0] [j] являются ссылочным индексом и разностью векторов движения в L1 блока предсказания, расположенного с координатами (x0, y0) внутри кадра, соответственно. j указывает на компоненты разности векторов движения. Значение 0 для j представляет компонент x, а значение 1 для j представляет компонент y. Далее, устанавливаются синтаксические элементы mvp_idx_10 [x0] [y0] и mvp_idx_11 [x0] [y0] индекса списка предсказаний векторов движения, который является списком кандидатов на предсказания векторов движения, к которым проводится обращение. Здесь x0 и y0 являются индексами, которые указывают на положение верхнего левого пикселя в блоке предсказания внутри кадра. mvp_idx_10 [x0] [y0] и mvp idx_11 [x0] являются соответственно индексом предсказания вектора движения в L0 и L1 блока предсказания, расположенного с координатами (x0, y0) внутри кадра. В соответствии с настоящим примером осуществления, значение числа кандидатов задается равным 2.
Способ вывода информации межкадрового предсказания, в соответствии с примером осуществления, реализуется в блоке вывода информации межкадрового предсказания 104 устройства кодирования движущегося изображения на Фиг. 1 и в блоке вывода информации межкадрового предсказания 205 устройства декодирования движущегося изображения на Фиг. 2.
Далее будет дано объяснение способа вывода информации межкадрового предсказания, в соответствии с примером осуществления, со ссылками на фигуры чертежей. Способ вывода информации межкадрового предсказания исполняется для каждого блока предсказания, который образует блок кодирования, на любом из процессов кодирования или процессов декодирования. Если режим предсказания PredMode блока предсказания является межкадровым предсказанием (MODE_INTER) и режим является режимом слияния, то в случае кодирования используется способ, когда выводится режим предсказания, ссылочный индекс и вектор движения блока предсказания, являющегося объектом кодирования, использованием режима предсказания, ссылочного индекса и вектора движения уже кодированного блока предсказания. В случае декодирования используется способ, когда выводится режим предсказания, ссылочный индекс и вектор движения блока предсказания, являющегося объектом декодирования, использованием режима предсказания, ссылочного индекса и вектора движения уже декодированного блока предсказания.
В режиме слияния кандидат на слияние выводится не только из пяти блоков предсказания (то есть, блока предсказания А, примыкающего слева, блока предсказания B, примыкающего сверху, блока предсказания С, примыкающего сверху справа, блока предсказания D, примыкающего снизу слева и блока предсказания Е, примыкающего сверху слева), как показывается на Фиг. 5, Фиг. 6, Фиг. 7 и Фиг. 8, но также из блока предсказания в блоке предсказания Col (Т0 или Т1), который существует в идентичном положении или в его окрестности, но в другой момент времени, как показывается на Фиг. 9. Блок вывода информации межкадрового предсказания 104 устройства кодирования движущегося изображения и блок вывода информации межкадрового предсказания 205 устройства декодирования движущегося изображения регистрируют этих кандидатов на слияние в списке кандидатов на слияние в заранее заданном порядке, который является общим как для процессов кодирования, так и для процессов декодирования. Блок вывода информации межкадрового предсказания 104 устройства кодирования движущегося изображения определяет индекс слияния, который специфицирует элемент списка кандидатов, и кодирует его посредством блока генерирования первого битового потока. Блок вывода информации межкадрового предсказания 205 устройства декодирования движущегося изображения выбирает блок предсказания из списка кандидатов на слияние в соответствии с индексом слияния, декодированным в блоке декодирования первого битового потока 202 и переданным от него, и проводит предсказание компенсации движения, используя для этого информацию межкадрового предсказания (например, режим предсказания, ссылочный индекс, вектор движения или прочее) выбранного кандидата на слияние.
На Фиг. 13 показывается подробная конфигурация блока вывода информации межкадрового предсказания 104 устройства кодирования движущегося изображения на Фиг. 1. На Фиг. 14 показывается подробная конфигурация блока вывода информации межкадрового предсказания 205 устройства декодирования движущегося изображения на Фиг. 2.
Части, ограниченные прямоугольником из толстой линии на Фиг. 13 и Фиг. 14, показывают блок вывода информации межкадрового предсказания 104 устройства кодирования движущегося изображения и блок вывода информации межкадрового предсказания 205 устройства декодирования движущегося изображения, соответственно.
Кроме того, части, окруженные толстой пунктирной линией в этих прямоугольниках, показывают блок построения списка кандидатов на слияние 120 устройства кодирования движущегося изображения и блок построения списка кандидатов на слияние 220 устройства декодирования движущегося изображения, соответственно. Блок построения списка кандидатов на слияние имеется также в устройстве декодирования движущегося изображения, которое соответствует устройству кодирования движущегося изображения, в соответствии с примером осуществления, так что могут быть получены одинаковые результаты вывода, которые не создают противоречия между кодированием и декодированием.
В соответствии со способом вывода информации межкадрового предсказания, в процессе вывода кандидатов на слияние и в процессе построения списка кандидатов на слияние в блоке построения списка кандидатов на слияние 120 устройства кодирования движущегося изображения и блоке построения списка кандидатов на слияние 220 устройства декодирования движущегося изображения принимается, в соответствии с примером осуществления, что процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние блока предсказания, являющегося объектом обработки, исполняется без обращения к блоку предсказания, содержащемуся в блоке кодирования, идентичном блоку кодирования, содержащему блок предсказания, являющийся объектом обработки. Подобным образом, в случае, когда режим разделения (PartMode) блока кодирования не является 2Nx2N-разделением (PART_2Nx2N), то есть, в случае, когда внутри блока кодирования существует несколько блоков предсказания, процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние блока предсказания, являющегося объектом обработки, могут быть для каждого блока предсказания внутри блока кодирования выполнены параллельно при кодировании.
Используя теперь Фиг. 15, будет дано объяснение каждого режима разделения (PartMode) при параллельном исполнении процесса построения списка кандидатов на слияние соответствующего блока предсказания внутри блока кодирования. На Фиг. 15 иллюстрируются блоки предсказания, которые примыкают к блоку предсказания, являющемуся объектом обработки для каждого режима разделения (PartMode) блока предсказания, являющегося объектом обработки. На Фиг. 15 блоки А0, В0, С0, D0 и Е0 показывают: блок предсказания А, примыкающий к левой стороне блока предсказания, являющегося объектом обработки, индексом разделения PartIdx которого является 0, блок предсказания В, примыкающий к его верхней стороне, блок предсказания С, примыкающий к его верхней правой вершине, блок предсказания D, примыкающий к его нижней левой вершине, и блок предсказания Е, примыкающий к его левой верхней вершине, соответственно. Блоки A1, В1, C1, D1 и E1 показывают: блок предсказания А, примыкающий к левой стороне блока предсказания, являющегося объектом обработки, индексом разделения PartIdx которых является 1, блок предсказания В, примыкающий к его верхней стороне, блок предсказания С, примыкающий к его верхней правой вершине, блок предсказания D, примыкающий к его нижней левой вершине, и блок предсказания Е, примыкающий к его верхней левой вершине, соответственно. Блоки А2, В2, С2, D2 и Е2 показывают: блок предсказания А, примыкающий к левой стороне блока предсказания, являющегося объектом обработки, индексом разделения PartIdx которых является 2, блок предсказания В, примыкающий к его верхней стороне, блок предсказания С, примыкающий к его верхней правой вершине, блок предсказания D, примыкающий к его нижней левой вершине, и блок предсказания Е, примыкающий к его верхней левой вершине, соответственно. Блоки A3, В3, С3, D3 и Е3 показывают: блок предсказания А, примыкающий к левой стороне блока предсказания, являющегося объектом обработки, индексом разделения PartIdx которых является 3, блок предсказания В, примыкающий к его верхней стороне, блок предсказания С, примыкающий к его верхней правой вершине, блок предсказания D, примыкающий к его нижней левой вершине, и блок предсказания Е, примыкающий к его верхней левой вершине, соответственно.
На Фиг. 15(b), Фиг. 15(c) и Фиг. 15(d) показываются примыкающие блоки предсказания для случаев, когда режим разделения (PartMode) является 2NxN-разделением (PART_2NxN), 2NxnU-разделением (PART_2NxnU) или 2NxnD-разделением (PART_2NxnD), где блок кодирования, являющийся объектом обработки, разделяется на два блока предсказания, расположенные вертикально. Блок предсказания В1, примыкающий к блоку предсказания, являющемуся объектом обработки, PartIdx которого является 1, является блоком предсказания, PartIdx которого является 0. Следовательно, процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние блока предсказания, PartIdx которого является 1, не может быть проведен обращением к блоку предсказания В1 до тех пор, пока процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние блока предсказания, которым является блок предсказания В1, принадлежит к тому же самому блоку кодирования и PartIdx которого является 0, не будет завершен и не будет специфицирован используемый кандидат на слияние. Следовательно, в способе вывода информации межкадрового предсказания, в соответствии с примером осуществления, в случае, когда режим разделения является 2NxN-разделением (PART_2NxN), 2NxnU-разделением (PART_2NxnU) или 2NxnD-разделением (PART_2NxnD), и в случае, когда PartIdx блока предсказания, являющегося объектом обработки, является 1, процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние двух блоков предсказания в блоке кодирования могут быть проведены параллельно обращением к информации кодирования блоков предсказания A1, C1, D1 или E1, которые не содержатся в блоке кодирования, идентичном блоку кодирования, содержащему блок предсказания, являющийся объектом обработки, и проведением процесса вывода кандидатов на слияние и процесса построения списка кандидатов на слияние блока предсказания, PartIdx которого является 1, без обращения к информации кодирования блока предсказания В1, который является блоком предсказания, примыкающим к верхней стороне блока предсказания, являющегося объектом обработки, и содержится в блоке кодирования, идентичном блоку кодирования, содержащему блок предсказания, являющийся объектом обработки, и PartIdx которого является 0.
На Фиг. 15(e), Фиг. 15(f) и Фиг. 15(g) показываются примыкающие блоки предсказания для случаев, когда режим разделения (PartMode) является Nx2N-разделением (PART_Nx2N), nLx2N-разделением (PART_nLx2N) или nRx2ND-разделением (PART_nRx2N), где блок кодирования, являющийся объектом обработки, разделяется на два блока предсказания, расположенные горизонтально. Блок предсказания A1, примыкающий к блоку предсказания, являющемуся объектом обработки, PartIdx которого есть 1, является блоком предсказания, PartIdx которого является 0. Следовательно, процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние блока предсказания, PartIdx которого является 1, не может быть проведен обращением к блоку предсказания A1 до тех пор, пока процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние блока предсказания, которым является блок предсказания A1, принадлежит к тому же самому блоку кодирования и PartIdx которого является 0, не будет завершен и не будет специфицирован используемый кандидат на слияние. Следовательно, в способе вывода информации межкадрового предсказания, в соответствии с примером осуществления, в случае, когда режим разделения является Nx2N-разделением (PART_Nx2N), nLx2N-разделением (PART_nLx2N) и nRx2N-разделением (PART_nRx2N), и в случае, когда PartIdx блока предсказания, являющегося объектом обработки, является 1, процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние соответствующих блоков предсказания внутри блока кодирования могут быть проведены параллельно обращением к информации кодирования блоков предсказания В1, C1, D1 или E1, которые не содержатся в блоке кодирования, идентичном блоку кодирования, содержащему блок предсказания, являющийся объектом обработки, и проведением процесса вывода кандидатов на слияние и процесса построения списка кандидатов на слияние блока предсказания, PartIdx которого является 1, без обращения к информации кодирования блока предсказания A1, который является блоком предсказания, примыкающим к левой стороне блока предсказания, являющегося объектом обработки, и содержится в блоке кодирования, идентичном блоку кодирования, содержащему блок предсказания, являющийся объектом обработки, и PartIdx которого является 0.
Здесь будет дано объяснение параллельной обработки процесса вывода кандидатов на слияние и процесса построения списка кандидатов на слияние. На Фиг. 16 показывается блок-схема, иллюстрирующая процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние при последовательной обработке, а на Фиг. 17 показывается блок-схема, иллюстрирующая процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние при параллельной обработке.
В последовательной обработке процесса вывода кандидатов на слияние и процесса построения списка кандидатов на слияние, показанной на Фиг. 16, кандидат на слияние выводится и список кандидатов на слияние строится для блока предсказания, индексом разделения PartIdx которого является 0, блока кодирования, являющегося объектом обработки (этап S101). Далее, в случае, когда режим разделения (PartMode) является 2Nx2N-разделением (PART_2Nx2N) (нет в этапе S102), процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние завершаются. В случае, когда режим разделения (PartMode) не является 2Nx2N-разделением (PART_2Nx2N) (Нет в этапе S102), то есть, в случае, когда режим разделения (PartMode) является 2NxN-разделением (PART_2NxN), 2NxnU-разделением (PART_2NxnU), 2NxnD-разделением (PART_2NxnD), Nx2N-разделением (PART_Nx2N), nLx2N-разделением (PART_nLx2N) или nRx2N-разделением (PART_nRx2N), кандидат на слияние выводится и список кандидатов на слияние строится для блока предсказания, индекс разделения PartIdx которого есть 1, блока кодирования, являющегося объектом обработки (этап S103), и процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние заканчивается, соответственно.
В параллельной обработке процесса вывода кандидатов на слияние и процесса построения списка кандидатов на слияние, показанной на Фиг. 17, кандидат на слияние выводится и список кандидатов на слияние строится для блока предсказания, индексом разделения PartIdx которого является 0, блока кодирования, являющегося объектом обработки (этап S101). Параллельно с этапом S101, в случае, когда режим разделения (PartMode) не является 2Nx2N-разделением (PART_2Nx2N) (Нет в этапе S102) то есть, в случае, когда режим разделения (PartMode) является 2NxN-разделением (PART_2NxN), 2NxnU-разделением (PART_2NxnU), 2NxnD-разделением (PART_2NxnD), Nx2N-разделением (PART_Nx2N), nLx2N-разделением (PART_nLx2N) или nRx2N-разделением (PART_nRx2N), кандидат на слияние выводится и список кандидатов на слияние строится для блока предсказания, индексом разделения PartIdx которого является 1, блока кодирования, являющегося объектом обработки (этап S103).
В параллельной обработке процесса вывода кандидатов на слияние и процесса построения списка кандидатов на слияние, показанной на Фиг. 17, в случае, когда режим разделения (PartMode) является 2NxN-разделением (PART_2NxN), 2NxnU-разделением (PART_2NxnU), 2NxnD-разделением (PART_2NxnD), Nx2N-разделением (PART_Nx2N), nLx2N-разделением (PART_nLx2N) или nRx2N-разделением (PART_nRx2N), процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние двух блоков предсказания, индексом разделения PartIdx которых является 0 и 1, соответственно, могут быть начаты одновременно, выполнением вывода кандидатов на слияние и построением списка кандидатов на слияние блока предсказания, индексом разделения PartIdx которого является 1, внутри того же самого блока кодирования, без обращения к блоку предсказания, индексом разделения PertIdx которого является 0.
Также в последовательной обработке процесса вывода кандидатов на слияние и процесса построения списка кандидатов на слияние, показанной на Фиг. 16, процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние блока предсказания, индексом разделения PartIdx которого является 1, может быть выполнен без обращения к блоку предсказания, индексом разделения PartIdx которого является 0.
Хотя, в соответствии с настоящим примером осуществления, принимается, что NxN-разделение (PART_NxN) не определяется в качестве режима разделения (PartMode), можно также определить и NxN-разделение (PART_NxN). На Фиг. 15(h) показываются примыкающие блоки предсказания для случая, когда режим разделения (PartMode) является NxN-разделением (PART_NxN), в котором сигнал яркости блока кодирования, являющегося объектом обработки, разделяется на четыре блока по вертикали и по горизонтали. Блок предсказания В1, примыкающий к блоку предсказания, являющемуся объектом обработки, PartIdx которого является 1, представляет собой блок предсказания, PartIdx которого является 0. Следовательно, процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние блока предсказания, PartIdx которого является 1, обращением к блоку предсказания A1 не может быть проведен до тех пор, пока процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние блока предсказания, которым является блок предсказания A1, принадлежит к одному и тому же блоку кодирования и PartIdx которого является 0, не будет завершен и не будет специфицирован используемый кандидат на слияние. Следовательно, в способе вывода информации межкадрового предсказания, в соответствии с примером осуществления, в случае, когда режим разделения является NxN-разделением (PART_NxN), и в случае, когда PartIdx блока предсказания, являющегося объектом обработки, является 1, процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние соответствующих блоков предсказания внутри блока кодирования могут быть проведены параллельно, исполнением процесса вывода кандидатов на слияние и процесса построения списка кандидатов на слияние блока предсказания, PartIdx которого является 1, без обращения к информации кодирования блока предсказания A1, PartIdx которого является 0. Блок предсказания В2, примыкающий к блоку предсказания, являющегося объектом обработки, PartIdx которого является 2, представляет собой блок предсказания, PartIdx которого является 0, а блок предсказания С2 представляет собой блок предсказания, PartIdx которого является 1. Следовательно, процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние блока предсказания, PartIdx которого является 2, обращением к блокам предсказания В2 и С2 не может быть проведен до тех пор, пока процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние блоков предсказания, которыми являются блоки предсказания В2 и С2, принадлежит к тому же блоку кодирования и PartIdx которых является 0 и 1, соответственно, не будет завершен и не будет специфицирован используемый кандидат на слияние. Следовательно, в способе вывода информации межкадрового предсказания, в соответствии с примером осуществления, в случае, когда режим разделения является NxN-разделением (PART_NxN), и в случае, когда PartIdx блока предсказания, являющегося объектом обработки, является 2, процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние соответствующих блоков предсказания внутри блока кодирования могут быть проведены параллельно, исполнением процесса вывода кандидатов на слияние и процесса построения списка кандидатов на слияние блока предсказания, PartIdx которого является 2, без обращения к информации кодирования блоков предсказания В2 и С2, PartIdx которых является 0 и 1, соответственно. Блок предсказания Е3, примыкающий к блоку предсказания, являющемуся объектом обработки, PartIdx которого является 3, представляет собой блок предсказания, PartIdx которого является 0, блок предсказания В3 является блоком предсказания, PartIdx которого является 1, а блок предсказания A3 является блоком предсказания, PartIdx которого является 2. Следовательно, процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние блока предсказания, PartIdx которого есть 3, обращением к блокам предсказания Е3, В3 и A3 не может быть проведен до тех пор, пока процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние блоков предсказания, которыми являются блоки предсказания Е3, В3 и A3, принадлежат к одному и тому же блоку кодирования и PartIdx которых является 0, 1 и 2, соответственно, не будет завершен и не будет специфицирован используемый кандидат на слияние. Следовательно, в способе вывода информации межкадрового предсказания, в соответствии с примером осуществления, в случае, когда режим разделения является NxN-разделением (PART_NxN), и в случае, когда PartIdx блока предсказания, являющегося объектом обработки, является 3, процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние соответствующих блоков предсказания в блоке кодирования могут быть проведены параллельно, исполнением процесса вывода кандидатов на слияние и процесса построения списка кандидатов на слияние блока предсказания, PartIdx которого является 3, без обращения к информации кодирования блоков предсказания Е3, В3 и A3, PartIdx которых является 0, 1 и 2, соответственно.
Блок вывода информации межкадрового предсказания 104 на Фиг. 13 содержит блок генерирования кандидатов на пространственное слияние 130, блок вывода ссылочных индексов 131, блок генерирования кандидатов на слияние по времени 132, блок регистрации кандидатов на слияние 133, блок определения равенства кандидатов на слияние 134, блок пополнения кандидатов на слияние 135 и блок выбора информации кодирования 136.
Блок вывода информации межкадрового предсказания 205 на фиг. 14 содержит блок генерирования кандидатов на пространственное слияние 230, блок вывода ссылочных индексов кандидатов слияния во времени 231, блок генерирования кандидатов на слияние по времени 232, блок регистрации кандидатов на слияние 233, блок определения равенства кандидатов на слияние 234, блок пополнения кандидатов на слияние 235 и блок выбора информации кодирования 236.
На Фиг. 18 показывается блок-схема, иллюстрирующая процедуру процесса вывода кандидатов на слияние и процедуру построения списка кандидатов на слияние, которая является общей функцией для блока вывода информации межкадрового предсказания 104 устройства кодирования движущегося изображения и блока вывода информации межкадрового предсказания 205 устройства декодирования движущегося изображения, в соответствии с примером осуществления изобретения. Ниже последовательно будет дано объяснение этим процессам. Хотя в последующем будет дано объяснение для случая, когда тип слоя slice_type является В-слоем, это объяснение может также быть применено к случаю P-слоя, если не оговорено обратное. Однако в случае, когда тип слоя slice_type является P-слоем, режим межкадрового предсказания содержит только L0-предсказание (Pred_L0) и не содержит ни L1-предсказания (Pred_L1), ни би-предсказания (Pred_BI). Поэтому процесс, касающийся L1, может быть опущен.
В блоке генерирования кандидатов на пространственное слияние 130 блока вывода информации межкадрового предсказания 104 устройства кодирования движущегося изображения и в блоке генерирования кандидатов на пространственное слияние 230 блока вывода информации межкадрового предсказания 205 устройства декодирования движущегося изображения выводятся и выдаются кандидаты на пространственное слияние А, В, С и D и Ε из соответствующих блоков предсказания А, В, С, D и Е, примыкающих к блоку, являющемуся объектом кодирования или декодирования. Далее, определяется Ν, которое указывает на А, В, С. D, Ε или на кандидата на пространственное слияние Col. Выдаются флаг availableFlagN, указывающий на возможность или невозможность использования информации межкадрового предсказания блока предсказания N, как кандидата на пространственное слияние N, ссылочный индекс refIdxL0N в L0 и ссылочный индекс refIdxL1N в L1 кандидата на пространственное слияние N, флаг предсказания predFlagL0N в L0, указывающий на то, выполняется или не выполняется L0-предсказание, и флаг предсказания predFlagL1N в L1, указывающий на то, выполняется или не выполняется L1-предсказание, вектор движения mvL0N в L0 и вектор движения mvL1N в L1 (этап S201). Однако, в соответствии с настоящим примером осуществления, поскольку кандидат на слияние выводится без обращения к блоку предсказания, содержащемуся в блоке кодирования, идентичном блоку кодирования, который содержит блок предсказания, являющийся объектом обработки, то кандидат на пространственное слияние, содержащийся в блоке кодирования, идентичном блоку кодирования, который содержит блок предсказания, являющийся объектом обработки, не выводится. Подробное объяснение будет дано позднее на подробной процедуре обработки этапа S201 со ссылками на блок-схему, показанную на Фиг. 19.
Вслед за этим, в блоке вывода ссылочных индексов 131 кандидатов на слияние по времени блока вывода информации межкадрового предсказания 104 устройства кодирования движущегося изображения и в блоке вывода ссылочных индексов 231 кандидатов на слияние по времени блока вывода информации межкадрового предсказания 205 устройства декодирования движущегося изображения выводится и выдается ссылочный индекс кандидата на слияние по времени из блока предсказания, примыкающего к блоку, являющемуся объектом кодирования или декодирования (этап S202). Однако, в соответствии с настоящим примером осуществления, ссылочный индекс кандидата на слияние по времени выводится без обращения к блоку предсказания, содержащемся в блоке кодирования, идентичном блоку кодирования, который содержит блок предсказания, являющийся объектом обработки. В случае, когда тип слоя slice_type является P-слоем и проводится межкадровое предсказание использованием информации межкадрового предсказания кандидата на слияние по времени, то выводится только ссылочный индекс в L0 с целью проведения L0-предсказания (Pred_L0). В случае, когда тип слоя slice_type является В-слоем и проводится межкадровое предсказание использованием информации межкадрового предсказания кандидата на слияние по времени, то выводятся соответствующие ссылочные индексы в L0 и L1 с целью проведения би-предсказания (Pred_BI). Подробное объяснение будет дано позднее на подробной процедуре обработки этапа S202 со ссылками на блок-схемы, показанные на Фиг. 21, Фиг. 23, Фиг. 25, Фиг. 27, Фиг. 29, Фиг. 30 и Фиг. 32.
Вслед за этим, в блоке генерирования кандидатов на слияние по времени 132 блока вывода информации межкадрового предсказания 104 устройства кодирования движущегося изображения и в блоке генерирования кандидатов на слияние по времени 232 блока вывода информации межкадрового предсказания 205 устройства декодирования движущегося изображения выводится кандидат на слияние по времени из кадра другого момента времени и выдается этот кандидат на слияние по времени. Выдаются флаг availableFlagCol, указывающий на то, возможно или невозможно использование кандидата на слияние по времени, флаг предсказания predFlagL0Col, указывающий на то, проводится или не проводится L0-предсказание кандидата на слияние по времени, и флаг предсказания predFlagL1Col, указывающий на то, проводится или не проводится L1-предсказание кандидата на слияние по времени, вектор движения mvL0N в L0 и вектор движения mvL1N в L1 (этап S203). Подробное объяснение будет дано позднее на подробной процедуре обработки этапа S203 со ссылками на блок-схему, показанную на Фиг. 34.
Вслед за этим, блоком регистрации кандидатов на слияние 133 блока вывода информации межкадрового предсказания 104 устройства кодирования движущегося изображения и блоком регистрации кандидатов на слияние 233 блока вывода информации межкадрового предсказания 205 устройства декодирования движущегося изображения генерируется список кандидатов на слияние mergCandList, и добавляются кандидаты на пространственное слияние А, В, С, D и Ε и кандидат на слияние по времени Col к списку кандидатов на слияние mergCandList, чем формируется окончательный список кандидатов на слияние mergCandList и этот список кандидатов на слияние mergCandList выдается (этап S204). Подробное объяснение будет дано позднее на подробной процедуре обработки этапа S204 со ссылками на блок-схему, показанную на Фиг. 41.
Вслед за этим, блоком определения равенства кандидатов на слияние 134 блока вывода информации межкадрового предсказания 104 устройства кодирования движущегося изображения и блоком определения равенства кандидатов на слияние 234 блока вывода информации межкадрового предсказания 205 устройства декодирования движущегося изображения в случае, когда внутри списка кандидатов на слияние mergeCandLis векторы движения с одинаковыми ссылочными индексами кандидатов на слияние имеют одинаковые значения, все такие кандидаты на слияние удаляются за исключением кандидата на слияние, который является самым ранним по порядку, и выдается список кандидатов на слияние mergeCandList (этап S205).
Вслед за этим, блоком пополнения кандидатов на слияние 135 блока вывода информации межкадрового предсказания 104 устройства кодирования движущегося изображения и блоком пополнения кандидатов на объединение 235 блока вывода информации межкадрового предсказания 205 устройства декодирования движущегося изображения пополняется список кандидатов на слияние так, что число кандидатов на слияние, зарегистрированных внутри списка кандидатов на слияние mergeCandList, становится равным заданному числу, и этот список кандидатов на слияние mergeCandList выдается (этап S206). В соответствии с настоящим примером осуществления, число кандидатов на слияние задается равным 5.
Хотя верхняя граница числа кандидатов на слияние, зарегистрированных внутри списка кандидатов на слияние mergeCandList, задается равным 5, в него добавляются кандидат на слияние, режимом предсказания которого является би-предсказание (Pred_BI) и кандидат, который получен изменением комбинации L0-предсказания и L1-предсказания между кандидатами на слияние, которые уже были зарегистрированы, кандидат на слияние, режимом предсказания которого является би-предсказание (Pred_BI), который имеет другой ссылочный индекс и величина вектора движения которого есть (0, 0) или прочие.
Вслед за этим, будет дано подробное описание способа вывода кандидата на слияние N из блоков предсказания N, которые примыкают к блоку предсказания, являющемуся объектом кодирования или декодирования, представляющего собой процедуру обработки этапа S201 на Фиг. 18. На Фиг. 19 показывается блок-схема, иллюстрирующая процедуру процесса вывода кандидата на пространственное слияние этапа S201 на Фиг. 18. В N входит А (слева), В (вверху), С (вверху справа), D (внизу слева) или Ε (вверху слева), которые показывают примыкающие блоки предсказания. В соответствии с настоящим примером осуществления, из пяти примыкающих блоков предсказания выводится до четырех кандидатов на пространственное слияние.
На Фиг. 18, присваивая А значению переменной Ν, просматривается информация кодирования блока предсказания А, примыкающего к левой стороне блока предсказания, являющегося объектом кодирования или декодирования, и выводится кандидат на слияние А; присваивая В значению переменной Ν, просматривается информация кодирования блока предсказания В, примыкающего к верхней стороне, и выводится кандидат на слияние В; присваивая С значению переменной Ν, просматривается информация кодирования блока предсказания С, примыкающего сверху справа, и выводится кандидат на слияние С; присваивая D значению переменной N, просматривается информация кодирования блока предсказания D, примыкающего снизу слева, и выводится кандидат на слияние D; и присваивая Ε значению переменной Ν, просматривается информация кодирования блока предсказания Е, примыкающего сверху слева, и выводится кандидат на слияние Ε (этапы S1101 - S1114).
Сначала, в случае, когда переменная N является Ε и когда добавлены значения флагов availableFlagA, availableFlagB, availableFlagC и availableFlagD и их полная сумма является 4 (да в этапе S1102), то есть, в случае, когда выводятся четыре кандидата на пространственное слияние, флаг кандидата на слияние Ε availableFlagE задается равным 0 (этап S1107), оба значения векторов движения mvL0E и mvL1E кандидата на слияние Ε задаются равными (0, 0) (этап S1108), оба значения флагов predFlagL0E и predFlagL1E кандидата на слияние Ε задаются равными 0 (этап S1109) и на этом процесс вывода кандидата на пространственное слияние заканчивается. В соответствии с настоящим примером осуществления, из примыкающих блоков предсказания выводится до четырех кандидатов на пространственное слияние, поэтому в случае, когда уже были выведены четыре кандидата на пространственное слияние, нет необходимости в дальнейшем проведении процесса вывода кандидатов на пространственное слияние.
С другой стороны, в случае, когда переменная N не является Е, или в случае, когда добавляются значения флагов availableFlagA, availableFlagB, availableFlagC и availableFlagD, а их полная сумма не является равной 4 (Нет в S1102), процесс переходит к этапу S1103. Когда примыкающий блок предсказания N содержится в блоке кодирования, идентичном блоку кодирования, содержащему блок предсказания, являющийся объектом вывода (Да в этапе S1103), значение флага availableFlagN кандидата на слияние N задается равным 0 (этап S1107), оба значения векторов движения mvL0N и mvL1N кандидата на слияние N задаются равными (0, 0) (этап S1108) и оба значения флагов predFlagL0N и predFlagL1N кандидата на слияние N задаются равными 0 (этап S1109). В случае, когда примыкающий блок предсказания N содержится в блоке кодирования, идентичном блоку кодирования, содержащему блок предсказания, являющийся объектом вывода (Да в этапе S1103), значение флага availableFlagN кандидата на слияние N задается равным 0 (этап S1107), не обращаясь к информации кодирования примыкающего блока предсказания N и заданием значения флага availableFlagN кандидата на слияние N равным 0, и тем самым не используя его в качестве кандидата на пространственное слияние, процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние для соответствующих блоков предсказания внутри одного и того же блока кодирования могут быть проведены параллельно.
Более конкретно, случай блока предсказания В, примыкающего к верхней стороне блока предсказания, являющегося объектом вывода, когда режим разделения является 2NxN-разделением (PART_2NxN), 2NxnU-разделением (PART_2NxnU) или 2NxnD-разделением (PART_2NxnD) и когда PartIdx блока предсказания, являющегося объектом обработки, является 1, соответствует случаю, когда примыкающий блок предсказания N содержится в блоке кодирования, идентичном блоку кодирования, содержащему блок предсказания, являющийся объектом вывода. В этом случае, блок предсказания В, примыкающий к верхней стороне блока предсказания, являющегося объектом вывода, является блоком предсказания, который содержится в блоке кодирования, идентичном блоку кодирования, содержащему блок предсказания, являющийся объектом вывода, и PartIdx которого является 0. Поэтому, не обращаясь к информации кодирования примыкающего блока предсказания В и заданием значения флага availableFlagB кандидата на слияние В равным 0, и тем самым не используя его в качестве кандидата на пространственное слияние, процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние для соответствующих блоков предсказания внутри одного и того же блока кодирования могут быть проведены параллельно.
Далее, случай блока предсказания А, примыкающего к верхней стороне блока предсказания, являющегося объектом вывода, когда режим разделения является Nx2N-разделением (PART_Nx2N) nLx2N-разделением (PART_nLx2N) или nRx2N-разделением (PART_nRx2N) и когда PartIdx блока предсказания, являющегося объектом обработки, является 1, также соответствует случаю, когда примыкающий блок предсказания N содержится в блоке кодирования, идентичном блоку кодирования, содержащему блок предсказания, являющийся объектом вывода. Также и в этом случае, блок предсказания А, примыкающий к левой стороне блока предсказания, являющегося объектом вывода, является блоком предсказания, который содержится в блоке кодирования, идентичном блоку кодирования, содержащему блок предсказания, являющийся объектом вывода, и PartIdx которого является 0. Поэтому, не обращаясь к информации кодирования примыкающего блока предсказания А и задав значение флага availableFlagA кандидата на слияние А равным 0, и тем самым не используя его в качестве кандидата на пространственное слияние, процесс вывода кандидатов на слияние и процесс построения списка кандидатов на слияние для соответствующих блоков предсказания внутри одного и того же блока кодирования могут быть проведены параллельно.
Также и в случае, хотя это не определено в соответствии с настоящим примером осуществления, когда режим разделения (PartMode) является NxN-разделением (PART_NxN), и когда PartIdx блока предсказания, являющегося объектом обработки, являются 1, 2, или 3, случается так, что примыкающий блок предсказания N содержится в блоке кодирования, идентичном блоку кодирования, содержащему блок предсказания, являющийся объектом вывода.
С другой стороны, в случае, когда примыкающий блок предсказания N не содержится в блоке кодирования, идентичном блоку кодирования, содержащему блок предсказания, являющийся объектом вывода (Да в этапе S1103), определяется блок предсказания N, примыкающий к блоку предсказания, являющемуся объектом кодирования или декодирования, и в случае, когда соответствующие блоки предсказания N могут использоваться, из памяти хранения информации кодирования 115 или из памяти хранения информации кодирования 210 выводится информация для кодирования блока предсказания N (этап S1104).
Если примыкающий блок предсказания N не может быть использован (Нет в этапе S1105) или режим предсказания PredMode блока предсказания N является внутрикадровым предсказанием (MODE_INTRA) (Да в этапе S1106), то значение флага availableFlagN кандидата на слияние N задается равным 0 (этап S1107), значения обоих векторов движения mvL0N и mvL1N кандидата на слияние N задаются равными (0, 0) (этап S1108), и значения флагов обоих predFlagL0N и PredFlagL1N кандидата на слияние N задаются равными 0 (этап S1109). Случай, когда примыкающий блок предсказания N не может быть использован, соответствует, например, случаю, когда примыкающий блок предсказания N расположен с внешней стороны слоя, являющегося объектом кодирования или декодирования, а также случаю, когда процесс кодирования или декодирования не был завершен, поскольку, например, блок N запаздывает по порядку исполнения процесса кодирования или декодирования.
С другой стороны, в случае, когда примыкающий блок предсказания N находится с внешней стороны блока кодирования, идентичного блоку кодирования, содержащему блок предсказания, являющийся объектом вывода (Да в этапе S1104), примыкающий блок предсказания N может использоваться (Да в этапе S1105), и в случае, когда режим предсказания PredMode блока предсказания N не является внутрикадровым предсказанием (MODE_INTRA) (Да в этапе S1106), то информация межкадрового предсказания блока предсказания N используется в качестве информации межкадрового предсказания кандидата на слияние N. Значение флага availableFlagN кандидата на слияние N задается равным 1 (этап S1110), значения векторов движения mvL0N и mvL1N кандидата на слияние N задаются идентичными значениям векторов движения mvL0N [xN] [yN] и mvL1N [xN] [yN] соответствующего блока предсказания N (этап S1111), значения ссылочных индексов refIdxL0N и refIdxL1N кандидата на слияние N задаются идентичными значениям ссылочных индексов refIdxL0 [xN] [yN] и refIdxL1 [xN] [yN] соответствующего блока предсказания N (этап S1112), а флаги predFlagL0N и predFlagL1N кандидата на слияние N задаются как флаги predFlagL0 [xN] [yN] и predFlagL1 [xN] [yN] соответствующего блока предсказания N (этап S1113). Здесь xN и yN являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания N внутри кадра.
Приведенные выше процессы на этапах от S1102 до S1113 повторяются для N=А, В, С, D и Е, соответственно (этап S1101 - этап S1114).
Далее, будет дано подробное объяснение способа вывода ссылочного индекса кандидата на слияние по времени этапа S202 на Фиг. 18. Выведены соответствующие ссылочные индексы в L0 и L1 кандидата на слияние по времени.
В соответствии с настоящим примером осуществления, ссылочный индекс кандидата на слияние по времени выводится использованием ссылочного индекса кандидата на пространственное слияние, то есть ссылочного индекса, используемого в блоке предсказания, примыкающем к блоку предсказания, являющемуся объектом кодирования или декодирования. Это определяется тем, что в случае, когда выбирается кандидат на слияние по времени, ссылочный индекс блока предсказания, являющегося объектом кодирования или декодирования, имеет высокую корреляцию со ссылочным индексом блока предсказания, примыкающего к блоку предсказания, являющегося объектом кодирования или декодирования, который будет кандидатом на пространственное слияние. В частности, в соответствии с настоящим примером осуществления, используется только ссылочный индекс блока предсказания А, примыкающего к левой стороне блока предсказания, являющегося объектом вывода, или блока предсказания В, примыкающего к его верхней стороне, за исключением шестого примера осуществления и седьмого примера осуществления, которые будут описаны позднее. Это определяется тем, что блоки предсказания А и В, примыкающие к сторонам блока предсказания, являющегося объектом кодирования или декодирования, из всех примыкающих блоков А, В, С, D и Е, которые также являются кандидатами на пространственное слияние, имеют более высокую корреляцию, чем блоки предсказания С, D и Е, примыкающие только к вершинам. Ограничением блоков предсказания использованием только блоков предсказания А и В и без использования блоков предсказания С, D и Е, имеющих относительно низкую корреляцию, может быть получен эффект улучшения эффективности кодирования выводом ссылочного индекса кандидата на слияние по времени, и могут быть уменьшены объем вычислений и частота обращений к памяти, связанных с процессом вывода ссылочного индекса кандидата на слияние по времени.
Первый примерный вариант
В последующем на некоторых примерных вариантах будет дано объяснение настоящего осуществления изобретения. Сначала, ниже будет представлено объяснение первого примерного варианта настоящего осуществления изобретения. На Фиг. 20 показываются примыкающие блоки, к которым проводится обращение в процессе вывода ссылочных индексов кандидатов на слияние по времени, в соответствии с первым примерным вариантом настоящего осуществления. В первом примерном варианте настоящего осуществления, в соответствии с режимом разделения (PartMode) происходит переключение на то, который из блоков предсказания используется: блок предсказания, примыкающий к левой стороне блока предсказания, являющегося объектом вывода, или блок предсказания, примыкающий к его верхней стороне. К ним обращается блок предсказания, примыкающий к блоку кодирования с внешней стороны. В случае, когда режим разделения (PartMode) является 2Nx2N-разделением (PART_2Nx2N), как показывается на Фиг. 20(a), проводится обращение к блоку предсказания А0, примыкающему к левой стороне блока предсказания, являющегося объектом вывода, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания А0.
В случае, когда режим разделения (PartMode) является ΙΝxΝ-разделением (ΡΑRΤ_2Νx2Ν), 2NxnU-разделением (PART_2NxnU) или 2NxnD-разделением (PART_2NxnD), когда блок кодирования, являющийся объектом обработки, разделяется на два блока предсказания, расположенных вертикально, как показывается на Фиг. 20(b), Фиг. 20(c) и Фиг. 20(d), проводится обращение к блокам предсказания, примыкающим к левым сторонам соответствующих блоков предсказания, являющихся объектами вывода, и соответствующим ссылочным индексам в LX кандидатов на слияние по времени присваиваются значения ссылочных индексов в LX блоков предсказания, примыкающих к левой стороне соответствующих блоков предсказания, являющихся объектами вывода. В случае блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 0, проводится обращение к блоку предсказания А0, примыкающему слева, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания А0. В случае блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 1, проводится обращение к блоку предсказания A1, примыкающему слева, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания A1. Поскольку оба блока предсказания А0 и A1, к которым проводится обращение, находятся с внешней стороны блока кодирования, то ссылочные индексы кандидатов на слияние по времени двух блоков предсказания, индексом разделения которых PartIdx является 0 и 1, соответственно, могут быть соответственно выведены параллельно.
В случае, когда режим разделения (PartMode) является Nx2N-разделением (PART_Nx2N), nLx2N-разделением (PART_nLx2N) или nRx2N-разделением (PART_nRx2N), когда блок кодирования, являющийся объектом обработки, разделяется на два блока предсказания, расположенных горизонтально, как показывается на Фиг. 20(e), Фиг. 20(f) и Фиг. 20(g), проводится обращение к блокам предсказания, примыкающим к верхней стороне блока предсказания, являющегося объектом вывода, и соответствующим ссылочным индексам в LX кандидатов на слияние по времени присваиваются значения ссылочных индексов в LX блоков предсказания, примыкающих к верхней стороне соответствующих блоков предсказания, являющихся объектами вывода. В случае блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 0, проводится обращение к блоку предсказания В0, примыкающему сверху, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блоков предсказания В0 и/или В1. В случае блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 1, проводится обращение к блоку предсказания В1, примыкающему сверху, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания В1. Поскольку оба блока предсказания В0 и В1, к которым проводится обращение, находятся с внешней стороны блока кодирования, то ссылочные индексы кандидатов на слияние по времени двух блоков предсказания, индексом разделения PartIdx которых является 0 и 1, соответственно, могут быть соответственно выведены параллельно.
Однако в случае, когда примыкающие блоки предсказания А и В не проводят LX-предсказание, ссылочному индексу в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0. Причиной, почему значение по умолчанию ссылочного индекса в LX кандидата на слияние по времени задается равным 0 в случае, когда примыкающие блоки предсказания А и В не осуществляют LX-предсказание, является то, что опорный кадр, соответствующий значению ссылочного индекса равного 0, имеет наивысшую вероятность быть выбранным в межкадровом предсказании. Однако объем настоящего изобретения не ограничен этим примером. Значению по умолчанию ссылочного индекса может быть присвоено значение, отличное от 0 (например, 1, 2 и т.д.), или же в битовом потоке на уровне последовательности, на уровне кадра или на уровне слоя может быть образован синтаксический элемент, показывающий значение по умолчанию ссылочного индекса, так что этот синтаксический элемент может быть передан и выбран при кодировании.
На Фиг. 21 показывается блок-схема, иллюстрирующая процедуру процесса вывода ссылочных индексов кандидатов на слияние по времени на этапе S202 на Фиг. 18, в соответствии с первой примерным вариантом настоящего осуществления. Сначала в случае, когда режим разделения (PartMode) не является Nx2N-разделением (PART_Nx2N), nLx2N-разделением (PART_nLx2N) или nRx2N-разделением (PART_nRx2N) (Нет в этапе S2101), то есть, в случае 2Nx2N-разделения (PART_2Nx2N), 2NxN-разделения (PART_2NxN), 2NxnU-разделения (PART_2NxnU), 2NxnD (PART_2NxnD)-разделения, из памяти хранения информации кодирования 115 или 210 выводится информация для кодирования блока предсказания А, примыкающего слева (этап S2111).
Последующие процессы от этапа S2113 до этапа S2115 проводятся соответственно для L0 и L1 (этап S2112 - этап S2116). В случае вывода ссылочного индекса в L0 кандидата на слияние по времени, LX задается как L0, а в случае вывода ссылочного индекса в L1 кандидата на слияние по времени, LX задается как L1. Однако в случае, когда тип слоя slice_type является P-слоем, режим межкадрового предсказания содержит только L0-предсказание (Pred_L0) и не содержит ни L1-предсказания (Pred_L1), ни би-предсказания (Pred_BI). Поэтому процесс, относящийся к L1, может быть опущен.
В случае, когда флаг predFlagLX [xA] [yA], указывающий на то, проводить или не проводить LX-предсказание блока предсказания А, не является 0 (Да в этапе S2113), ссылочному индексу refldxLXCol в LX кандидата на слияние по времени присваивается значение, идентичное значению ссылочного индекса refldxLX [xA] [yA] в LX блока предсказания А (этап S2114). Здесь xA и yA являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания А внутри кадра.
В соответствии с настоящим примером осуществления, в блоке предсказания N (N=А, В) в случае, когда блок предсказания N находится с внешней стороны слоя, являющегося объектом кодирования или декодирования, и не может быть использован, в случае, когда блок предсказания N не был закодирован, поскольку блок предсказания N является последующим относительно блока предсказания, являющегося объектом кодирования или декодирования, по порядку кодирования или декодирования, так что блок предсказания N не может быть использован, или в случае, когда режим предсказания PredMode является внутрикадровым предсказанием (MODE_INTRA), оба флага, predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L-предсказание, и predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание, являются 0. Здесь xN и yN являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания N внутри кадра. В случае, когда режим предсказания PredMode блока предсказания N является межкадровым предсказанием (MODE_INTER) и режимом межкадрового предсказания является L0-предсказание (Pred_L0), флаг predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание блока предсказания N, является 1, а флаг predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание блока предсказания N, является 0. В случае, когда режим межкадрового предсказания блока предсказания N является L1-предсказанием (Pred_L1), флаг predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание блока предсказания N, является 0, а флаг predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание блока предсказания N, является 1. В случае, когда режим межкадрового предсказания блока предсказания N является би-предсказанием (Pred_BI), флаг predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание блока предсказания N, и флаг predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание блока предсказания N, оба являются 1.
В случае, когда флаг predFlagLX [xA] [yA], указывающий на то, проводить или не проводить LX-предсказание блока предсказания А, является 0 (Нет в этапе S2113), ссылочному индексу refIdxLXCol в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0 (этап S2115).
Процессы от этапа S2113 до этапа S2115 выполняются для L0 и L1 соответственно (этап S2112 - этап S2116), и процесс вывода ссылочных индексов завершается.
С другой стороны, в случае, когда режим разделения (PartMode) является Nx2N-разделением (PART_Nx2N), nLx2N-разделением (PART_nLx2N) или nRx2N-разделением (PART_nRx2N) (Да в этапе S2101), то из памяти хранения информации кодирования 115 или 210 выводится информация для кодирования блока предсказания В, примыкающего сверху к блоку предсказания, являющемуся объектом вывода (этап S2117).
Последующие процессы от этапа S2119 до этапа S2121 выполняются соответственно для L0 и L1 (этап S2118 - этап S2122). В случае вывода ссылочного индекса в L0 кандидата на слияние по времени, LX задается как L0, а в случае вывода ссылочного индекса в L1 кандидата на слияние по времени, LX задается как L1. Однако в случае, когда тип слоя slice_type является P-слоем, режим межкадрового предсказания содержит только L0-предсказание (Pred_L0) и не содержит ни L1-предсказания (Pred_L1), ни би-предсказания (Pred_BI). Поэтому процесс, относящийся к L1, может быть опущен.
В случае, когда флаг predFlagLX [xB] [yB], указывающий на то, проводить или не проводить LX-предсказание блока предсказания В, не является 0 (Да в этапе S2119), ссылочному индексу refIdxLXCol в LX кандидата на слияние по времени присваивается значение, идентичное значению ссылочного индекса refIdxLX [xB] [yB] в LX блока предсказания В (этап S2120). Здесь xB и yB являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания В внутри кадра.
В случае, когда флаг predFlagLX [xB] [yB], указывающий на то, проводить или не проводить LX-предсказание блока предсказания В, является 0 (Нет в этапе S2119), ссылочному индексу refIdxLXCol в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0 (этап S2121).
Процессы от этапа S2119 до этапа S2121 выполняются для L0 и L1 соответственно (этап S2118 - этап S2122), и процесс вывода ссылочных индексов завершается.
Второй примерный вариант
Далее, в последующем будет дано объяснение второго примерного варианта настоящего осуществления изобретения. На Фиг. 22 показываются примыкающие блоки, к которым происходит обращение в процессе вывода ссылочных индексов кандидатов на слияние по времени, в соответствии со вторым примерным вариантом настоящего осуществления. Во втором примерном варианте настоящего осуществления, в соответствии с режимом разделения (PartMode) блока предсказания и индекса разделения PartIdx блока предсказания происходит переключение на то, который из блоков предсказания используется: блок предсказания, примыкающий к левой стороне блока предсказания, являющегося объектом вывода, или блок предсказания, примыкающий к его верхней стороне. К ним обращается блок предсказания, примыкающий к блоку кодирования с внешней стороны. В случае, когда режим разделения (PartMode) является 2Nx2N-разделением (PART_2Nx2N), как показывается на Фиг. 22(a), проводится обращение к блоку предсказания А0, примыкающему слева к блоку предсказания, являющемуся объектом вывода, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания А0.
В случае, когда режим разделения (PartMode) является 2NxN-разделением (PART_2Nx2N), 2NxnU-разделением (PART_2NxnU) или 2NxnD)-разделением (PART_2NxnD), когда блок кодирования, являющийся объектом обработки, разделяется на два блока предсказания, расположенных вертикально, как показывается на Фиг. 22(b), Фиг. 22(c) и Фиг. 22(d), проводится обращение к блокам предсказания, примыкающим к левым сторонам соответствующих блоков предсказания, являющихся объектами вывода, и соответствующим ссылочным индексам в LX кандидатов на слияние по времени присваиваются значения ссылочных индексов в LX блоков предсказания, примыкающих к левой стороне соответствующих блоков предсказания, являющихся объектами вывода. В случае блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 0, проводится обращение к блоку предсказания А0, примыкающему слева, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания А0. В случае блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 1, проводится обращение к блоку предсказания A1, примыкающему слева, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания A1. Поскольку оба блока предсказания А0 и A1, к которым проводится обращение, находятся с внешней стороны блока кодирования, то ссылочные индексы кандидатов на слияние по времени двух блоков предсказания, индексом разделения которых PartIdx является 0 и 1, соответственно, могут быть соответственно выведены параллельно.
В случае, когда режим разделения (PartMode) является Nx2N-разделением (PART_Nx2N), nLx2N-разделением (PART_nLx2N) или nRx2N-разделением (PART_nRx2N), когда блок кодирования, являющийся объектом обработки, разделяется на два блока предсказания, расположенных горизонтально, как показывается на Фиг. 22(e), Фиг. 22(f) и Фиг. 22(g), проводится обращение к блоку предсказания А0, примыкающему слева, того блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 0, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания А0. В случае блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 1, проводится обращение к блоку предсказания В1, примыкающему сверху, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания В1. Поскольку оба блока предсказания А0 и В1, к которым проводится обращение, находятся с внешней стороны блока кодирования, то ссылочные индексы кандидатов на слияние по времени двух блоков предсказания, индексом разделения PartIdx, которых является 0 и 1, соответственно, могут быть соответственно выведены параллельно.
Однако, в случае когда примыкающие блоки предсказания А и В не проводят LX-предсказание, ссылочному индексу в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0. Причиной, почему значение по умолчанию ссылочного индекса в LX кандидата на слияние по времени задается равным 0 в случае, когда примыкающие блоки предсказания А и В не осуществляют LX-предсказание, является то, что опорный кадр, соответствующий значению ссылочного индекса равного 0, имеет наивысшую вероятность быть выбранным в межкадровом предсказании. Однако, объем настоящего изобретения не ограничен этим примером. Значению по умолчанию ссылочного индекса может быть присвоено значение, отличное от 0 (например, 1, 2 и т.д.), или же в битовом потоке на уровне последовательности, на уровне кадра или на уровне слоя может быть образован синтаксический элемент, показывающий значение по умолчанию ссылочного индекса, так что этот синтаксический элемент может быть передан и выбран при кодировании.
На Фиг. 23 показывается блок-схема, иллюстрирующая процедуру процесса вывода ссылочных индексов кандидатов на слияние по времени на этапе S202 на Фиг. 18, в соответствии со вторым примерным вариантом настоящего осуществления. Сначала в случае, когда режим разделения (PartMode) не является Nx2N-разделением (PART_Nx2N), nLx2N-разделением (PART_nLx2N) или nRx2N-разделением (PART_nRx2N) и индекс разделения PartIdx не является 1 (Нет в этапе S2101), (то есть, в случае, когда является 2Nx2N-разделением (PART_2Nx2N), 2NxN-разделением (PART_2NxN), 2NxnU-разделением (PART_2NxnU), 2NxnD-разделением (PART_2NxnD), или является Nx2N-разделением (PART_Nx2N), nLx2N-разделением (PART_nLx2N), nRx2N-разделением (PART nRx2N) и индексом разделения PartIdx которых является 0) из памяти хранения информации кодирования 115 или 210 выводится информация для кодирования блока предсказания А, примыкающего слева к блоку предсказания, являющемуся объектом вывода (этап S2111).
Последующие процессы от этапа S2113 до этапа S2115 выполняются соответственно для L0 и L1 (этап S2112 - этап S2116). В случае вывода ссылочного индекса в L0 кандидата на слияние по времени, LX задается как L0, а в случае вывода ссылочного индекса в L1 кандидата на слияние по времени, LX задается как L1. Однако в случае, когда тип слоя slice_type является P-слоем, режим межкадрового предсказания содержит только L0-предсказание (Pred_L0) и не содержит ни L1-предсказания (Pred_L1), ни би-предсказания (Pred_BI). Поэтому процесс, относящийся к L1, может быть опущен.
В случае, когда флаг predFlagLX [xA] [yA], указывающий на то, проводить или не проводить LX-предсказание блока предсказания А, является 0 (Да в этапе S2113), ссылочному индексу refIdxLXCol в LX кандидата на слияние по времени присваивается значение, идентичное значению ссылочного индекса refIdxLX [xA] [yA] в LX блока предсказания А (этап S2114). Здесь xA и yA являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания А внутри кадра.
В соответствии с настоящим примером осуществления, в блоке предсказания Ν (Ν=А, В) в случае, когда блок предсказания N находится с наружной стороны слоя, являющегося объектом кодирования или декодирования, и не может быть использован, в случае, когда блок предсказания N не был закодирован, поскольку блок предсказания N является последующим относительно блока предсказания, являющегося объектом кодирования или декодирования, по порядку кодирования или декодирования, так что блок предсказания N не может быть использован, или в случае, когда режим предсказания PredMode является внутрикадровым предсказанием (MODE_INTRA), оба флага, predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание, и predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание, являются 0. Здесь xN и yN являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания N внутри кадра. В случае, когда режим предсказания PredMode блока предсказания N является межкадровым предсказанием (MODE_INTER), и режим межкадрового предсказания блока предсказания N является L0-предсказанием (Pred_L0), флаг predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать LO-предсказание блока предсказания N является 1, а флаг predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание блока предсказания N, является 0. В случае, когда режим межкадрового предсказания блока предсказания N является L1-предсказанием (Pred_L1), флаг predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание блока предсказания N, является 0, а флаг predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание блока предсказания N, является 1. В случае, когда режим межкадрового предсказания блока предсказания N является би-предсказанием (Pred_BI), флаг predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание блока предсказания N, и флаг predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание блока предсказания N, оба являются 1.
В случае, когда флаг predFlagLX [xA] [yA], указывающий на то, проводить или не проводить LX-предсказание блока предсказания А, является 0 (Нет в этапе S2113), ссылочному индексу refIdxLXCol в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0 (этап S2115).
Процессы от этапа S2113 до этапа S2115 выполняются для L0 и L1 соответственно (этап S2112 - этап S2116), и процесс вывода ссылочных индексов завершается.
С другой стороны, в случае, когда режим разделения (PartMode) является Nx2N-разделением (PART_Nx2N), nLx2N-разделением (PART_nLx2N) или nRx2N-разделением (PART_nRx2N) и индексом разделения PartIdx является 1 (Да в этапе S2102), то из памяти хранения информации кодирования 115 или 210 выводится информация для кодирования блока предсказания В, примыкающего сверху к блоку предсказания, являющемуся объектом вывода (этап S2117).
Последующие процессы от этапа S2119 до этапа S2121 выполняются соответственно для L0 и L1 (этап S2118 - этап S2122). В случае вывода ссылочного индекса в L0 кандидата на слияние по времени, LX задается как L0, а в случае вывода ссылочного индекса в L1 кандидата на слияние по времени, LX задается как L1. Однако в случае, когда тип слоя slice_type является P-слоем, режим межкадрового предсказания содержит только L0-предсказание (Pred_L0) и не содержит ни L1-предсказания (Pred_L1), ни би-предсказания (Pred_BI). Поэтому процесс, относящийся к L1, может быть опущен.
В случае, когда флаг predFlagLX [xB] [yB], указывающий на то, проводить или не проводить LX-предсказание блока предсказания В, не является 0 (Да в этапе S2119), ссылочному индексу refIdxLXCol в LX кандидата на слияние по времени присваивается значение, идентичное значению ссылочного индекса refIdxLX [xB] [yB] в LX блока предсказания В (этап S2120). Здесь xB и yB являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания В внутри кадра.
В случае, когда флаг predFlagLX [xB] [yB], указывающий на то, проводить или не проводить LX-предсказание блока предсказания В, является 0 (Нет в этапе S2119), ссылочному индексу refIdxLXCol в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0 (этап S2121).
Процессы от этапа S2119 до этапа S2121 выполняются для L0 и L1 соответственно (этап S2118 - этап S2122), и процесс вывода ссылочных индексов завершается.
Третий примерный вариант
Далее, в последующем будет дано объяснение третьего примерного варианта настоящего осуществления изобретения. На Фиг. 24 показываются примыкающие блоки, к которым происходит обращение в процессе вывода ссылочных индексов кандидатов на слияние по времени, в соответствии с третьим примерным вариантом настоящего осуществления. В третьем примерном варианте настоящего осуществления, в соответствии с режимом разделения (PartMode) блока предсказания и индексом разделения PartIdx блока предсказания, происходит переключение на то, который из блоков предсказания используется: блок предсказания, примыкающий к левой стороне блока предсказания, являющегося объектом вывода, или блок предсказания, примыкающий к его верхней стороне. В случае блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 0, проводится обращение к блоку предсказания, примыкающему к длинной стороне, который имеет более высокую корреляцию. В случае блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 1, проводится обращение к блоку предсказания, который примыкает к блоку предсказания с его внешней стороны. В случае, когда режим разделения (PartMode) является 2Nx2N-разделением (PART_2Nx2N), как показывается на Фиг. 24(a), проводится обращение к блоку предсказания А0, примыкающему слева к блоку предсказания, являющемуся объектом вывода, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания АО.
В случае, когда режим разделения (PartMode) является 2NxN-разделением (PART_2NxN), 2NxnU-разделением (PART_2NxnU) или 2NxnD-разделением (PART_2NxnD), когда блок кодирования, являющийся объектом обработки, разделяется на два блока предсказания, расположенных вертикально, как показывается на Фиг. 24(b), Фиг. 24(c) и Фиг. 24(d), проводится обращение к блоку предсказания В0, примыкающему к верхней стороне, которая является длинной стороной, того блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 0, ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания В0. В случае блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 1, проводится обращение к блоку предсказания A1, примыкающему к левой стороне и находящемуся с внешней стороны блока кодирования, а ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания A1. Поскольку оба блока предсказания В0 и A1, к которым проводится обращение, находятся с внешней стороны блока кодирования, то ссылочные индексы кандидатов на слияние по времени двух блоков предсказания, индексом разделения PartIdx которых является 0 и 1, соответственно, могут быть соответственно выведены параллельно.
В случае, когда режим разделения (PartMode) является Nx2N-разделением (PART_Nx2N), nLx2N-разделением (PART_nLx2N) или nRx2N-разделением (PART_nRx2N), когда блок кодирования, являющийся объектом обработки, разделяется на два блока предсказания, расположенных горизонтально, как показывается на Фиг. 24(e), Фиг. 24(f) и Фиг. 24(g), проводится обращение к блоку предсказания А0, примыкающему к левой стороне, которая является длинной стороной, того блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 0, ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания А0. В случае блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 1, проводится обращение к блоку предсказания В1, примыкающему к верхней стороне и находящемуся с внешней стороны блока кодирования, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания В1. Поскольку оба блока предсказания А0 и В1, к которым проводится обращение, находятся с внешней стороны блока кодирования, то ссылочные индексы кандидатов на слияние по времени двух блоков предсказания, индексами разделения PartIdx которых соответственно являются 0 и 1, могут быть соответственно выведены параллельно.
Однако, в случае когда примыкающие блоки предсказания А и В не проводят LX-предсказание, ссылочному индексу в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0. Причиной, почему значению по умолчанию ссылочного индекса в LX кандидата на слияние по времени присваивается значение равное 0 в случае, когда примыкающие блоки предсказания А и В не проводят LX-предсказание, является то, что опорный кадр, соответствующий значению ссылочного индекса равного 0, имеет наивысшую вероятность быть выбранным в межкадровом предсказании. Однако объем настоящего изобретения не ограничен этим примером. Значению по умолчанию ссылочного индекса может быть присвоено значение, отличное от 0 (например, 1, 2 и т.д.), или же в битовом потоке на уровне последовательности, на уровне кадра или на уровне слоя может быть образован синтаксический элемент, показывающий значение по умолчанию ссылочного индекса, так что этот синтаксический элемент может быть передан и выбран при кодировании.
На Фиг. 25 показывается блок-схема, иллюстрирующая процедуру процесса вывода ссылочных индексов кандидатов на слияние по времени на этапе S202 на Фиг. 18, в соответствии с третьим примерным вариантом настоящего осуществления. Сначала в случае, когда режим разделения (PartMode) является 2NxN-разделением (PART_2NxN), 2NxnU-разделением (PART_2NxnU), 2NxnD-разделением (PART_2NxnD) и индекс разделения PartIdx не является 0, или в случае, когда режим разделения является Nx2N-разделением (PART_Nx2N), nLx2N-разделением (PART_nLx2N) или nRx2N-разделением (PART_nRx2N) и индекс разделения PartIdx не является 1 (Нет в этапе S2103), иными словами, в случае, когда режим разделения является 2Nx2N-разделением (PART_2Nx2N), в случае, когда режим разделения является 2NxN-разделением (PART_2NxN), 2NxnU-разделением (PART_2NxnU) или 2NxnD-разделением (PART_2NxnD) и индексом разделения PartIdx является 0, или в случае, когда режим разделения является Nx2N-разделением (PART_Nx2N), nLx2N-разделением (PART_nLx2N) или nRx2N-разделением (PART_nRx2N) и индексом разделения PartIdx является 0, из памяти хранения информации кодирования 115 или 210 выводится информация для кодирования блока предсказания А, примыкающего слева к блоку предсказания, являющемуся объектом вывода (этап S2111).
Последующие процессы от этапа S2113 до этапа S2115 выполняются соответственно для L0 и L1 (этап S2112 - этап S2116). В случае вывода ссылочного индекса в L0 кандидата на слияние по времени, LX задается как L0, а в случае вывода ссылочного индекса в L1 кандидата на слияние по времени, LX задается как L1. Однако в случае, когда тип слоя slice_type является P-слоем, режим межкадрового предсказания содержит только L0-предсказание (Pred_L0) и не содержит ни L1-предсказания (Pred_L1), ни би-предсказания (Pred_BI). Поэтому процесс, относящийся к L1, может быть опущен.
В случае, когда флаг predFlagLX [xA] [yA], указывающий на то, проводить или не проводить LX-предсказание блока предсказания А, не является 0 (Да в этапе S2113), ссылочному индексу refIdxLXCol в LX кандидата на слияние по времени присваивается значение, идентичное значению ссылочного индекса refIdxLX [xA] [yA] в LX блока предсказания А (этап S2114). Здесь xA и yA являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания А внутри кадра.
В соответствии с настоящим примером осуществления, в блоке предсказания N (N=А, В) в случае, когда блок предсказания N находится с внешней стороны слоя, являющегося объектом кодирования или декодирования, и не может быть использован, в случае, когда блок предсказания N не был закодирован, поскольку блок предсказания N является последующим относительно блока предсказания, являющегося объектом кодирования или декодирования, по порядку кодирования или декодирования, так что блок предсказания N не может быть использован, или в случае, когда режим предсказания PredMode является внутрикадровым предсказанием (MODE_INTRA), оба флага, predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание, блока предсказания N и predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание, блока предсказания N являются 0. Здесь xN и yN являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания N внутри кадра. В случае, когда режим предсказания PredMode блока предсказания N является межкадровым предсказанием (MODE_INTER) и режимом межкадрового предсказания является L0-предсказание (Pred_L0), флаг predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание блока предсказания N является 1, а флаг predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание блока предсказания N, является 0. В случае, когда режим межкадрового предсказания блока предсказания N является L1-предсказанием (Pred_L1), флаг predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание блока предсказания N, является 0, а флаг predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание блока предсказания N, является 1. В случае, когда режим межкадрового предсказания блока предсказания N является би-предсказанием (Pred_BI), флаг predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание блока предсказания N, и флаг predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание блока предсказания N, оба являются 1.
В случае, когда флаг predFlagLX [xA] [yA], указывающий на то, проводить или не проводить LX-предсказание блока предсказания А, является 0 (Нет в этапе S2113), ссылочному индексу refIdxLXCol в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0 (этап S2115).
Процессы от этапа S2113 до этапа S2115 выполняются для L0 и L1 соответственно (этап S2112 - этап S2116), и процесс вывода ссылочных индексов завершается.
С другой стороны, в случае, когда режим разделения (PartMode) является Nx2N-разделением (PART_Nx2N), nLx2N-разделением (PART_nLx2N) или nRx2N-разделением (PART_nRx2N) и индексом разделения PartIdx является 1 (Да в этапе S2102), то из памяти хранения информации кодирования 115 или 210 выводится информация для кодирования блока предсказания В, примыкающего сверху к блоку предсказания, являющемуся объектом вывода (этап S2117).
Последующие процессы от этапа S2119 до этапа S2121 выполняются соответственно для L0 и L1 (этап S2118 - S2122). В случае вывода ссылочного индекса в L0 кандидатов на слияние по времени, LX задается как L0, а в случае вывода ссылочного индекса в L1 кандидатов на слияние по времени, LX задается как L1. Однако в случае, когда тип слоя slice_type является P-слоем, режим межкадрового предсказания содержит только L0-предсказание (Pred_L0) и не содержит ни L1-предсказания (Pred_L1), ни би-предсказания (Pred_BI). Поэтому процесс, относящийся к L1, может быть опущен.
В случае, когда флаг predFlagLX [xB] [yB], указывающий на то, проводить или не проводить LX-предсказание блока предсказания В, не является 0 (Да в этапе S2119), ссылочному индексу refIdxLXCol в LX кандидата на слияние по времени присваивается значение, идентичное значению ссылочного индекса refIdxLX [xB] [yB] в LX блока предсказания В (этап S2120). Здесь xB и yB являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания В внутри кадра.
В случае, когда флаг predFlagLX [xB] [yB], указывающий на то, проводить или не проводить LX-предсказание блока предсказания В, является 0 (Нет в этапе S2119), ссылочному индексу refIdxLXCol в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0 (этап S2121).
Процессы от этапа S2119 до этапа S2121 выполняются для L0 и L1 соответственно (этап S2118 - этап S2122), и процесс вывода ссылочных индексов завершается.
Четвертый примерный вариант
Далее, в последующем будет дано объяснение четвертого примерного варианта настоящего осуществления изобретения. На Фиг. 26 показываются примыкающие блоки, к которым проводится обращение в процессе вывода ссылочных индексов кандидатов на слияние по времени, в соответствии с четвертым примерным вариантом настоящего осуществления. В четвертом примерном варианте настоящего осуществления, в соответствии с режимом разделения (PartMode) блока кодирования и индексом разделения PartIdx блока предсказания происходит переключение на то, обращаться или не обращаться к блоку предсказания, примыкающему к левой стороне блока предсказания, являющемуся объектом вывода. В случае, когда блок предсказания, примыкающий к левой стороне, находится с внешней стороны блока кодирования, проводится обращение к блоку предсказания, а в случае, когда блок предсказания, примыкающий к левой стороне, находится внутри блока кодирования, не проводится обращения к блоку предсказания и ссылочному индексу присваивается значение по умолчанию. В случае, когда режим разделения (PartMode) является 2Nx2N-разделением (PART_2Nx2N), как показывается на Фиг. 26(a), проводится обращение к блоку предсказания А0, примыкающему слева к блоку предсказания, являющемуся объектом вывода, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания А0.
В случае, когда режим разделения (PartMode) является 2NxN-разделением (PART_2NxN), 2NxnU-разделением (PART_2NxnU) или 2NxnD-разделением (PART_2NxnD), когда блок кодирования, являющийся объектом обработки, разделяется на два блока предсказания, расположенных вертикально, как показывается на Фиг. 26(b), Фиг. 26(c) и Фиг. 26(d), проводится обращение к блоку предсказания А0, примыкающему слева, того блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 0, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания А0. В случае блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 1, проводится обращение к блоку предсказания A1, примыкающему слева, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания A1. Поскольку оба блока предсказания А0 и A1, к которым происходит обращение, находятся с внешней стороны блока кодирования, то ссылочные индексы кандидатов на слияние по времени двух блоков предсказания, индексом разделения PartIdx которых является 0 и 1, соответственно, могут быть соответственно выведены параллельно.
В случае, когда режим разделения (PartMode) является Nx2N-разделением (PART_Nx2N), nLx2N-разделением (PART_nLx2N) или nRx2N-разделением (PART_nRx2N), когда блок кодирования, являющийся объектом обработки, разделяется на два блока предсказания, расположенных горизонтально, как показывается на Фиг. 26(e), Фиг. 26(f) и Фиг. 26(g), проводится обращение к блоку предсказания А0, примыкающему слева, того блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 0, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания А0. В случае блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 1, не проводится обращение к примыкающему блоку предсказания, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0. Поскольку блок предсказания А0, к которому проводится обращение, находится с внешней стороны блока кодирования, то ссылочные индексы кандидатов на слияние по времени двух блоков предсказания, индексом разделения PartIdx которых соответственно является 0 и 1, могут быть соответственно выведены параллельно.
Однако, в случае когда примыкающий блок предсказания А не проводит LX-предсказание, ссылочному индексу в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0. Причиной, почему значению по умолчанию ссылочного индекса в LX кандидата на слияние по времени присваивается значение равное 0 в случае, когда примыкающие блоки предсказания А и В не проводят LX-предсказание, является то, что опорный кадр, соответствующий значению ссылочного индекса равного 0, имеет наивысшую вероятность быть выбранным в межкадровом предсказании. Однако объем настоящего изобретения не ограничен этим примером. Значению по умолчанию ссылочного индекса может быть присвоено значение, отличное от 0 (например, 1, 2 и т.д.), или же в битовом потоке на уровне последовательности, на уровне кадра или на уровне слоя может быть образован синтаксический элемент, показывающий значение по умолчанию ссылочного индекса, так что этот синтаксический элемент может быть передан и выбран при кодировании.
На Фиг. 27 показывается блок-схема, иллюстрирующая процедуру процесса вывода ссылочных индексов кандидатов на слияние по времени на этапе S202 на Фиг. 18, в соответствии с четвертым примерным вариантом настоящего осуществления. Сначала в случае, когда режим разделения (PartMode) не является Nx2N-разделением (PART_Nx2N), nLx2N-разделением (PART_nLx2N) или nRx2N-разделением (PART_nRx2N) и индекс разделения PartIdx не является 1 (Нет в этапе S2102), (то есть, в случае 2Nx2N-разделения (PART_2Nx2N), 2NxN-разделения (PART_2NxN), 2NxnU-разделения (PART_2NxnU), 2MxnD-разделения (PART_2NxnD) или nRx2N-разделением (PART_nRx2N) и индексом разделения PartIdx является 0), из памяти хранения информации кодирования 115 или 210 выводится информация для кодирования блока предсказания А, примыкающего слева к блоку предсказания, являющемуся объектом вывода (этап S2111).
Последующие процессы от этапа S2113 до этапа S2115 выполняются соответственно для L0 и L1 (этап S2112 - этап S2116). В случае вывода ссылочного индекса в L0 кандидата на слияние по времени, LX задается как L0, а в случае вывода ссылочного индекса в L1 кандидата на слияние по времени, LX задается как L1. Однако в случае, когда тип слоя slice_type является P-слоем, режим межкадрового предсказания содержит только L0-предсказание (Pred_L0) и не содержит ни L1-предсказания (Pred_L1), ни би-предсказания (Pred_BI). Поэтому процесс, относящийся к L1, может быть опущен.
В случае, когда флаг predFlagLX [xA] [yA], указывающий на то, проводить или не проводить LX-предсказание блока предсказания А, не является 0 (Да в этапе S2113), ссылочному индексу refIdxLXCol в LX кандидата на слияние по времени присваивается значение, идентичное значению ссылочного индекса refIdxLX [xA] [yA] в LX блока предсказания А (этап S2114). Здесь xA и yA являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания А внутри кадра.
В соответствии с настоящим примером осуществления, в блоке предсказания Ν (N=А, В) в случае, когда блок предсказания N находится с внешней стороны слоя, являющегося объектом кодирования или декодирования, и не может быть использован, в случае, когда блок предсказания N не был закодирован, поскольку блок предсказания N является последующим относительно блока предсказания, являющегося объектом кодирования или декодирования, по порядку кодирования или декодирования, так что блок предсказания N не может быть использован, или в случае, когда режим предсказания PredMode является внутрикадровым предсказанием (MODE_INTRA), оба флага, predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание, и predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание, являются 0. Здесь xN и yN являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания N внутри кадра. В случае, когда режим предсказания PredMode блока предсказания N является межкадровым предсказанием (MODE_INTER) и режимом межкадрового предсказания является L0-предсказание (Pred_L0), флаг predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание блока предсказания N, является 1, а флаг predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание блока предсказания N, является 0. В случае, когда режим межкадрового предсказания блока предсказания N является L1-предсказанием (Pred_L1), флаг predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание блока предсказания N, является 0, а флаг predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание блока предсказания N, является 1. В случае, когда режим межкадрового предсказания блока предсказания N является би-предсказанием (Pred_BI), флаг predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание блока предсказания N, и флаг predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание блока предсказания N, оба являются 1.
В случае, когда флаг predFlagLX [xA] [yA], указывающий на то, проводить или не проводить LX-предсказание блока предсказания А, является 0 (Нет в этапе S2113), ссылочному индексу refIdxLXCol в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0 (этап S2115).
Процессы от этапа S2113 до этапа S2115 выполняются для L0 и L1 соответственно (этап S2112 - этап S2116), и процесс вывода ссылочных индексов завершается.
С другой стороны, в случае, когда режим разделения (PartMode) является Nx2N-разделением (PART_Nx2N), nLx2N-разделением (PART_nLx2N) или nRx2N-разделением (PART_nRx2N) и индексом разделения PartIdx является 1 (Да в этапе S2102), последующий процесс этапа S2121 выполняется для каждого L0 и L1 (этап S2118 - S2122). В случае вывода ссылочного индекса в L0 кандидата на слияние по времени LX задается как L0, а в случае вывода ссылочного индекса в L1 кандидата на слияние по времени, LX задается как L1. Однако в случае, когда тип слоя slice_type является P-слоем, режим межкадрового предсказания содержит только L0-предсказание (Pred_L0) и не содержит ни L1-предсказания (Pred_L1), ни би-предсказания (Pred_BI). Поэтому процесс, относящийся к L1, может быть опущен.
Ссылочному индексу refIdxLXCol в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0 (этап S2121).
Процессы от этапа S2119 до этапа S2121 выполняются для L0 и L1 соответственно (этап S2118 - этап S2122), и процесс вывода ссылочных индексов завершается.
Пятый примерный вариант
Далее, в последующем будет дано объяснение пятого примерного варианта настоящего осуществления изобретения. На Фиг. 28 показываются примыкающие блоки, к которым проводится обращение в процессе вывода ссылочных индексов кандидатов на слияние по времени, в соответствии с пятым примерным вариантом настоящего осуществления. В пятом примерном варианте настоящего осуществления, в соответствии с режимом разделения (PartMode) происходит переключение на то, обращаться или не обращаться к блоку предсказания, примыкающему к левой стороне блока предсказания, являющемуся объектом вывода. Проводится обращение к блоку предсказания, примыкающему с внешней стороны блока кодирования. В случае, когда блок предсказания, примыкающий к левой стороне, находится с внешней стороны блока кодирования, то блок кодирования обращается к блоку предсказания, а в случае, когда блок предсказания, примыкающий к левой стороне, находится внутри блока кодирования, то блок кодирования не обращается к блоку предсказания, и ссылочному индексу присваивается значение по умолчанию. В случае, когда режим разделения (PartMode) является 2Nx2N-разделением (PART_2Nx2N), как показывается на Фиг. 28(a), проводится обращение к блоку предсказания А0, примыкающему слева к блоку предсказания, являющемуся объектом вывода, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания А0.
В случае, когда режим разделения (PartMode) является 2NxN-разделением (PART_2NxN), 2NxnU-разделением (PART_2NxnU) и 2NxnD-разделением (PART_2NxnD), когда блок кодирования, являющийся объектом обработки, разделяется на два блока предсказания, расположенных вертикально, как показывается на Фиг. 28(b), Фиг. 28(c) и Фиг. 28(d), проводится обращение к блоку предсказания А0, примыкающему слева, того блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 0, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания А0. В случае блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 1, проводится обращение к блоку предсказания A1, примыкающему слева, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания A1. Поскольку оба блока предсказания А0 и A1, к которым проводится обращение, находятся с внешней стороны блока кодирования, то ссылочные индексы кандидатов на слияние по времени двух блоков предсказания, индексом разделения PartIdx которых является 0 и 1, соответственно, могут быть соответственно выведены параллельно.
В случае, когда режим разделения (PartMode) является Nx2N-разделением (PART_Nx2N), nLx2N-разделением (PART_nLx2N) или nRx2N-разделением (PART_nRx2N), когда блок кодирования, являющийся объектом обработки, разделяется на два блока предсказания, расположенных горизонтально, в обоих случаях блока предсказания, индексом разделения PartIdx которого является 0 или 1, не проводится обращение к примыкающему блоку предсказания, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0. Поскольку не проводится обращения к блоку предсказания, примыкающему к блоку предсказания, являющемуся объектом обработки, не проводится обращения к блоку предсказания в блоке кодирования, то ссылочные индексы кандидатов на слияние по времени двух блоков предсказания, индексом разделения PartIdx которых является 0 и 1, соответственно, могут быть соответственно выведены параллельно.
Однако в случае, когда примыкающий блок предсказания А не проводит LX-предсказание, ссылочному индексу в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0. Причиной, почему значению по умолчанию ссылочного индекса в LX кандидата на слияние по времени присваивается значение равное 0 в случае, когда примыкающий блок предсказания А не проводит LX-предсказание, или в случае, когда режим разделения (PartMode) блока кодирования, содержащего блок предсказания, являющегося объектом вывода, является Nx2N-разделением (PART_Nx2N), nLx2N-разделением (PART_nLx2N) или nLx2N-разделением (PART_nRx2N), является то, что опорный кадр, соответствующий значению ссылочного индекса равному 0, имеет наивысшую вероятность быть выбранным в межкадровом предсказании. Однако объем настоящего изобретения не ограничен этим примером. Значение по умолчанию ссылочного индекса может быть задано значением, отличным от 0 (например, 1, 2 и т.д.), или же в битовом потоке на уровне последовательности, на уровне кадра или на уровне слоя может быть образован синтаксический элемент, показывающий значение по умолчанию ссылочного индекса, так что этот синтаксический элемент может быть передан и выбран при кодировании.
На Фиг. 29 показывается блок-схема, иллюстрирующая процедуру процесса вывода ссылочных индексов кандидатов на слияние по времени в этапе S202 на Фиг. 18, в соответствии с пятым примерным вариантом настоящего осуществления. Сначала в случае, когда режим разделения (PartMode) не является Nx2N-разделением (PART_Nx2N), nLx2N-разделением (PART_nLx2N) или nRx2N-разделением (PART_nRx2N) (Нет в этапе S2101), то есть, в случае 2Nx2N-разделения (PART_2Nx2N), 2NxN-разделения (PART_2NxN), 2NxnU-разделения (PART_2NxnU), 2NxnD-разделения (PART_2NxnD) из памяти хранения информации кодирования 115 или 210 выводится информация для кодирования блока предсказания А, примыкающего слева к блоку предсказания, являющемуся объектом вывода (этап S2111).
Последующие процессы от этапа S2113 до этапа S2115 выполняются соответственно для L0 и L1 (этап S2112 - этап S2116). В случае вывода ссылочного индекса в L0 кандидата на слияние по времени, LX задается как L0, а в случае вывода ссылочного индекса в L1 кандидата на слияние по времени, LX задается как L1. Однако в случае, когда тип слоя slice_type является P-слоем, режим межкадрового предсказания содержит только L0-предсказание (Pred_L0) и не содержит ни L1-предсказания (Pred_L1), ни би-предсказания (Pred_BI). Поэтому процесс, относящийся к L1, может быть опущен.
В случае, когда флаг predFlagLX [xA] [yA], указывающий на то, проводить или не проводить LX-предсказание блока предсказания А, не является 0 (Да в этапе S2113), ссылочному индексу refIdxLXCol в LX кандидата на слияние по времени присваивается значение, идентичное значению ссылочного индекса refIdxLX [xA] [yA] в LX блока предсказания А (этап S2114). Здесь xA и yA являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания А внутри кадра.
В соответствии с настоящим примером осуществления, в блоке предсказания N (N=А, В) в случае, когда блок предсказания N находится с внешней стороны слоя, являющегося объектом кодирования или декодирования, и не может быть использован, в случае, когда блок предсказания N не был закодирован, поскольку блок предсказания N является последующим относительно блока предсказания, являющегося объектом кодирования или декодирования, по порядку кодирования или декодирования, так что блок предсказания N не может быть использован, или в случае, когда режим предсказания PredMode является внутрикадровым предсказанием (MODE_INTRA), оба флага, predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание, и predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание, являются 0. Здесь xN и yN являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания N внутри кадра. В случае, когда режим предсказания PredMode блока предсказания N является межкадровым предсказания (MODE_INTER) и режим межкадрового предсказания является L0-предсказанием (Pred_L0), флаг predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание блока предсказания N является 1, а флаг predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание блока предсказания N, является 0. В случае, когда режим межкадрового предсказания блока предсказания N является L1-предсказанием (Pred_L1), флаг predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание блока предсказания N, является 0, а флаг predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание блока предсказания N, является 1. В случае, когда режим межкадрового предсказания блока предсказания N является би-предсказанием (Pred_BI), флаг predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание блока предсказания N, и флаг predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание блока предсказания N, оба являются 1.
В случае, когда флаг predFlagLX [xA] [yA], указывающий на то, проводить или не проводить LX-предсказание блока предсказания А, является 0 (Нет в этапе S2113), ссылочному индексу refIdxLXCol в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0 (этап S2115).
Процессы от этапа S2113 до этапа S2115 выполняются для L0 и L1 соответственно (этап S2112 - этап S2116), и процесс вывода ссылочных индексов завершается.
С другой стороны, в случае, когда режим разделения (PartMode) является Nx2N-разделением (PART_Nx2N), nLx2N-разделением (PART_nLx2N) или nRx2N-разделением (PART_nRx2N) (Да в этапе S2101), последующий процесс этапа S2121 выполняется для каждого L0 и L1 (этап S2118 - этап S2122). В случае вывода ссылочного индекса в L0 кандидата на слияние по времени LX задается как L0, а в случае вывода ссылочного индекса в L1 кандидата на слияние по времени LX задается как L1. Однако в случае, когда тип слоя slice_type является P-слоем, режим межкадрового предсказания содержит только L0-предсказание (Pred_L0) и не содержит ни L1-предсказания (Pred_L1), ни би-предсказания (Pred_BI). Поэтому процесс, относящийся к L1, может быть опущен.
Ссылочному индексу refIdxLXCol в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0 (этап S2121).
Процессы от этапа S2119 до этапа S2121 выполняются для L0 и L1 соответственно (этап S2118 - этап S2122), и процесс вывода ссылочных индексов завершается.
Шестой примерный вариант
Далее, в последующем будет дано объяснение шестого примерного варианта настоящего осуществления изобретения. В соответствии с шестым примерным вариантом настоящего осуществления, безотносительно к режиму разделения (PartMode) блока кодирования, который содержит режим предсказания, являющийся объектом вывода (блока кодирования, являющегося объектом обработки), и к значению индекса разделения PartIdx режима, являющегося объектом вывода, обращение к примыкающим блокам предсказания не проводится и опорному индексу в LX кандидата на слияние по времени присваивается по умолчанию значение равное 0. Поскольку не происходит обращения к блокам предсказания, примыкающим к блоку предсказания, являющемуся объектом обработки, не происходит обращения к блокам предсказания внутри блока кодирования, поэтому кандидаты на слияние по времени двух блоков предсказания, которые содержатся в одном и том же блоке кодирования, индекс разделения PartIdx который соответственно является 0 и 1, могут быть соответственно выведены параллельно.
Причиной, почему значению по умолчанию ссылочного индекса в LX кандидата на слияние по времени присваивается значение равное 0, является то, что опорный кадр, соответствующий значению ссылочного индекса равному 0, имеет наивысшую вероятность быть выбранным в межкадровом предсказании. Однако объем настоящего изобретения не ограничен этим примером. Значение по умолчанию ссылочного индекса может быть задано значением, отличным от 0 (например, 1, 2 и т.д.), или же в битовом потоке на уровне последовательности, на уровне кадра или на уровне слоя может быть образован синтаксический элемент, показывающий значение по умолчанию ссылочного индекса, так что этот синтаксический элемент может быть передан и выбран при кодировании.
Кроме того, в соответствии с шестым примерным вариантом осуществления, ссылочному индексу refIdxLXCol в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0, без обращения к примыкающему блоку. Поэтому процесс вывода может быть упрощен по сравнению с первым, вторым, третьим, четвертым, пятым и седьмым (описанным позднее) примерами осуществления.
На Фиг. 30 показывается блок-схема, иллюстрирующая процедуру процесса вывода ссылочных индексов кандидатов на слияние по времени в этапе S202 на Фиг. 18, в соответствии с шестым примерным вариантом настоящего осуществления.
Процесс этапа S2115 выполняется для L0 и L1 соответственно (этап S2112 - S2116). В случае вывода ссылочного индекса в L0 кандидата на слияние по времени, LX задается как L0, а в случае вывода ссылочного индекса списка в L1 кандидата на слияние по времени, LX задается как L1. Однако в случае, когда тип слоя slice_type является P-слоем, режим межкадрового предсказания содержит только L0-предсказание (Pred_L0) и не содержит ни L1-предсказания (Pred_L1), ни би-предсказания (Pred_BI). Поэтому процесс, относящийся к L1, может быть опущен.
Ссылочному индексу refIdxLXCol в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0 (этап S2115).
Процесс этапа S2115 выполняется для L0 и L1 соответственно (этап S2112 - этап S2116), и процесс вывода ссылочных индексов завершается.
Седьмой примерный вариант
Далее, в последующем будет представлено объяснение седьмого примерного варианта настоящего осуществления. На Фиг. 31 показываются примыкающие блоки, к которым происходит обращение в процессе вывода ссылочных индексов кандидатов на слияние по времени, в соответствии с седьмым примерным вариантом настоящего осуществления. В соответствии с седьмым примерным вариантом настоящего осуществления, безотносительно к режиму разделения (PartMode) блока кодирования, который содержит режим предсказания, являющийся объектом вывода (блока кодирования, являющегося объектом обработки), и к значению индекса разделения PartIdx режима, являющегося объектом вывода, происходит обращение к блоку предсказания А, примыкающему слева к блоку кодирования, являющемуся объектом обработки, как показывается на Фиг. 31(a) - Фиг. 31(g), и значению ссылочного индекса в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания А. Поскольку блок предсказания А, к которому происходит обращение, находится с внешней стороны блока кодирования, то ссылочные индексы кандидатов на слияние по времени двух блоков предсказания, индексом разделения PartIdx которых является 0 и 1, соответственно, могут быть соответственно выведены параллельно.
Однако в случае, когда примыкающий блок предсказания А не проводит LX-предсказание, ссылочный индексу в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0. Причиной, почему значению по умолчанию ссылочного индекса в LX кандидата на слияние по времени присваивается значение равное 0 в случае, когда примыкающий блок предсказания А не поводит LX-предсказание, является то, что опорный кадр, соответствующий значению ссылочного индекса равному 0, имеет наивысшую вероятность быть выбранным в межкадровом предсказании. Однако объем настоящего изобретения не ограничен этим примером. Значение по умолчанию ссылочного индекса может быть задано значением, отличным от 0 (например, 1, 2 и т.д.), или же в битовом потоке на уровне последовательности, на уровне кадра или на уровне слоя может быть образован синтаксический элемент, показывающий значение по умолчанию ссылочного индекса, так что этот синтаксический элемент может быть передан и выбран при кодировании.
В соответствии с седьмым примерным вариантом осуществления, значения ссылочных индексов кандидатов на слияние по времени соответствующих блоков предсказания внутри блока кодирования задаются как общие значения. Поэтому не требуется выводить ссылочный индекс кандидата на слияние по времени для каждого блока предсказания, так что процесс вывода может быть упрощен.
На Фиг. 32 показывается блок-схема, иллюстрирующая процедуру процесса вывода ссылочных индексов кандидатов на слияние по времени в этапе S202 на Фиг. 18, в соответствии с седьмым примерным вариантом настоящего осуществления. Сначала из памяти хранения информации кодирования 115 или 210 выводится информация для кодирования блока предсказания А, примыкающего слева к блоку кодирования, являющемуся объектом обработки (этап S2131).
Последующие процессы от этапа S2133 до этапа S2135 выполняются для L0 и L1 соответственно (этап S2132 - этап S2136). В случае вывода ссылочного индекса в L0 кандидата на слияние по времени, LX задается как L0, а в случае вывода ссылочного индекса в L1 кандидата на слияние по времени, LX задается как L1. Однако в случае, когда тип слоя slice_type является P-слоем, режим межкадрового предсказания содержит только L0-предсказание (Pred_L0) и не содержит ни L1-предсказания (Pred_L1), ни би-предсказания (Pred_BI). Поэтому процесс, относящийся к L1, может быть опущен.
В случае, когда флаг predFlagLX [xA] [yA], указывающий на то, проводить или не проводить LX-предсказание блока предсказания А, который примыкает слева к блоку кодирования, являющемуся объектом обработки, не является 0 (Да в этапе S2133), ссылочному индексу refIdxLXCol в LX кандидата на слияние по времени присваивается значение, идентичное значению ссылочного индекса refIdxLX [xA] [yA] в LX блока предсказания А (этап S2134). Здесь xA и yA являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания А, который примыкает слева к блоку кодирования, являющемуся объектом обработки, внутри кадра.
В соответствии с настоящим примером осуществления, в блоке предсказания N (N=А, В) в случае, когда блок предсказания N находится с внешней стороны слоя, являющегося объектом кодирования или декодирования, и не может быть использован, в случае, когда блок предсказания N не был закодирован, поскольку блок предсказания N является последующим относительно блока предсказания, являющегося объектом кодирования или декодирования, по порядку кодирования или декодирования, так что блок предсказания N не может быть использован, или в случае, когда режим предсказания PredMode является внутрикадровым предсказанием (MODE_INTRA), оба флага, predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание, и predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание, являются 0. Здесь xN и yN являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания N внутри кадра. В случае, когда режим предсказания PredMode блока предсказания N является межкадровым предсказанием (MODE_INTER), а режим межкадрового предсказания является L0-предсказанием (Pred_L0), флаг predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание блока предсказания N является 1, а флаг predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание блока предсказания N, является 0. В случае, когда режим межкадрового предсказания блока предсказания N является L1-предсказанием (Pred_L1), флаг predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание блока предсказания N, является 0, а флаг predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание блока предсказания N, является 1. В случае, когда режим межкадрового предсказания блока предсказания N является би-предсказанием (Pred_BI), флаг predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание блока предсказания N, и флаг predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание блока предсказания N, оба являются 1.
В случае, когда флаг predFlagLX [хА] [yA], указывающий на то, проводить или не проводить LX-предсказание блока предсказания А, является 0 (Нет в этапе S2133), ссылочному индексу refIdxLXCol в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0 (этап S2135).
Процессы от этапа S2133 до этапа S2135 выполняются для L0 и L1 соответственно (этап S2132 - этап S2136), и процесс вывода ссылочных индексов завершается.
Хотя, в соответствии с седьмым примерным вариантом осуществления, происходит переключение того, обращаться или не обращаться к блоку предсказания, примыкающему к левой стороне блока кодирования, содержащего блок предсказания, являющийся объектом вывода, может вместо блока предсказания, примыкающего к левой стороне, происходить переключение того, обращаться или не обращаться к блоку предсказания, примыкающему к верхней стороне.
Восьмой примерный вариант
Затем, в дальнейшем будет представлено объяснение восьмого примерного варианта настоящего осуществления изобретения. На Фиг. 43 показываются примыкающие блоки, к которым проводится обращение в процессе вывода ссылочных индексов кандидатов на слияние по времени, в соответствии с восьмым примерным вариантом настоящего осуществления. В соответствии с восьмым примерным вариантом настоящего осуществления, безотносительно к режиму разделения (PartMode) блока кодирования, и в соответствии с индексом разделения PartIdx блока предсказания происходит переключение на то, обращаться или не обращаться к блоку предсказания, примыкающему к левой стороне блока предсказания, являющемуся объектом вывода. В случае, когда индексом разделения PartIdx блока предсказания является 0, проводится обращение к блоку предсказания, примыкающему к левой стороне, а в случае, когда индекс разделения PartIdx является величиной, отличной от 0, обращение к примыкающему блоку предсказания не проводится, и значение индекса разделения задается по умолчанию. В случае, когда индексом разделения PartIdx блока предсказания является 0, блок предсказания, примыкающий к левой стороне, всегда находится с внешней стороны блока кодирования при любом режиме разделения (PartMode). Однако в случае, когда индекс разделения PartIdx принимает значение, отличное от 0, блок предсказания, примыкающий к левой стороне, может быть внутри блока кодирования, что зависит от режима разделения (PartMode). Как показывается на Фиг. 43(a), проводится обращение к блоку предсказания А0, примыкающему слева к блоку предсказания, являющемуся объектом вывода, и значению ссылочного индекса в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания А0.
В случае, когда режим разделения (PartMode) является 2NxN-разделением (PART_2Nx2N), 2NxnU-разделением (PART_2NxnU) и 2NxnD-разделением (PART_2NxnD), когда блок кодирования, являющийся объектом обработки, разделяется на два блока предсказания, расположенных вертикально, или в случае, когда режим разделения (PartMode) является Nx2N-разделением (PART_Nx2N), nLx2N-разделением (PART_nLx2N) или nRx2N-разделением (PART_nRx2N), как показывается на Фиг. 43(b), 43(c), 43(d), 43(e), 43(f) и 43(g), проводится обращение к блоку предсказания А0, примыкающему слева от блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 0, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания А0. В случае блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 1, не проводится обращение к примыкающему блоку предсказания, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0. Поскольку блок предсказания А0, к которому происходит обращение, находится с внешней стороны блока кодирования, то значения ссылочных индексов кандидатов на слияние по времени двух блоков предсказания, индексом разделения PartIdx которых является 0 и 1, соответственно, могут быть соответственно выведены параллельно.
Однако в случае, когда примыкающий блок предсказания А не проводит LX-предсказание, ссылочному индексу в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0. Причиной, почему значению по умолчанию ссылочного индекса в LX кандидата на слияние по времени присваивается значение равное 0 в случае, когда примыкающий блок предсказания А не проводит LX-предсказание, или в случае, когда индекс разделения PartIdx блока предсказания, являющегося объектом вывода, равен 1, является то, что опорный кадр, соответствующий значению ссылочного индекса равному 0, имеет наивысшую вероятность быть выбранным в межкадровом предсказании. Однако объем настоящего изобретения не ограничен этим примером. Значение по умолчанию ссылочного индекса может быть задано значением, отличным от 0 (например, 1, 2 и т.д.), или же в битовом потоке на уровне последовательности, на уровне кадра или на уровне слоя может быть образован синтаксический элемент, показывающий значение по умолчанию ссылочного индекса, так что этот синтаксический элемент может быть передан и выбран при кодировании.
На Фиг. 44 показывается блок-схема, иллюстрирующая процедуру процесса вывода ссылочных индексов кандидатов на слияние по времени в этапе S202 на Фиг. 18, в соответствии с восьмым примерным вариантом настоящего осуществления. Сначала в случае, когда индексом разделения PartIdx является 0 (Да в этапе S2104), из памяти хранения информации кодирования 115 или 210 выводится информация для кодирования блока предсказания А, примыкающего слева к блоку кодирования, являющемуся объектом обработки (этап S2111).
Последующие процессы от этапа S2113 до этапа S2115 выполняются для L0 и L1 соответственно (этап S2112 - этап S2116). В случае вывода ссылочного индекса в L0 кандидата на слияние по времени, LX задается как L0, а в случае вывода ссылочного индекса в L1 кандидата на слияние по времени, LX задается как L1. Однако в случае, когда тип слоя slice_type является P-слоем, режим межкадрового предсказания содержит только L0-предсказание (Pred_L0) и не содержит ни L1-предсказания (Pred_L1), ни би-предсказания (Pred_BI). Поэтому процесс, относящийся к L1, может быть опущен.
В случае, когда флаг predFlagLX [xA] [yA], указывающий на то, проводить или не проводить LX-предсказание блока предсказания А, не является 0 (Да в этапе S2113), ссылочному индексу refIdxLXCol в LX кандидата на слияние по времени присваивается значение, идентичное значению ссылочного индекса refIdxLX [xA] [yA] в LX блока предсказания А (этап S2114). Здесь xA и yA являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания А внутри кадра.
В соответствии с настоящим примером осуществления, в блоке предсказания N (N=А или В) в случае, когда блок предсказания N находится с внешней стороны слоя, являющегося объектом кодирования или декодирования, и не может быть использован, в случае, когда блок предсказания N не был закодирован, поскольку блок предсказания N является последующим относительно блока предсказания, являющегося объектом кодирования или декодирования, по порядку кодирования или декодирования, так что блок предсказания N не может быть использован, или в случае, когда режим предсказания PredMode является внутрикадровым предсказанием (MODE_INTRA), оба флага, predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание, и predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание, являются 0. Здесь xN и yN являются индексами, указывающими на положение верхнего левого пикселя в блоке предсказания N внутри кадра. В случае, когда режим предсказания PredMode блока предсказания N является межкадровым предсказания (MODE_INTER) и режим межкадрового предсказания является L0-предсказанием (Pred_L0), флаг predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание блока предсказания N является 1, а флаг predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание блока предсказания N, является 0. В случае, когда режим межкадрового предсказания блока предсказания N является L1-предсказанием (Pred_L1), флаг predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание блока предсказания N, является 0, а флаг predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание блока предсказания N, является 1. В случае, когда режим межкадрового предсказания блока предсказания N является би-предсказанием (Pred_BI), флаг predFlagL0 [xN] [yN], указывающий на то, использовать или не использовать L0-предсказание блока предсказания N, и флаг predFlagL1 [xN] [yN], указывающий на то, использовать или не использовать L1-предсказание блока предсказания N, оба являются 1.
В случае, когда флаг predFlagLX [xA] [yA], указывающий на то, проводить или не проводить LX-предсказание блока предсказания А, является 0 (Нет в этапе S2113), ссылочному индексу refIdxLXCol в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0 (этап S2115).
Процессы от этапа S2113 до этапа S2115 выполняются для L0 и L1 соответственно (этап S2112 - этап S2116), и процесс вывода ссылочных индексов завершается.
С другой стороны, в случае, когда индексом разделения PartIdx не является 0 (Нет в этапе S2104), последующий процесс этапа S2121 выполняется для каждого L0 и L1 (этап S2118 - этап S2122). В случае вывода ссылочного индекса в L0 кандидата на слияние по времени, LX задается как L0, а в случае вывода ссылочного индекса в L1 кандидата на слияние по времени, LX задается как L1. Однако в случае, когда тип слоя slice_type является P-слоем, режим межкадрового предсказания содержит только L0-предсказание (Pred_L0) и не содержит ни L1-предсказания (Pred_L1), ни би-предсказания (Pred_BI). Поэтому процесс, относящийся к L1, может быть опущен.
Ссылочному индексу refIdxLXCol в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0 (этап S2121).
Процессы этапа S2121 выполняются для L0 и L1 соответственно (этап S2118 - этап S2122), и процесс вывода ссылочных индексов завершается.
Хотя, в соответствии с восьмым примерным вариантом осуществления, проводится переключение того, обращаться или не обращаться к блоку предсказания, примыкающему к левой стороне блока кодирования, содержащего блок предсказания, являющийся объектом вывода, может вместо блока предсказания, примыкающего к левой стороне, проводиться переключение того, обращаться или не обращаться к блоку предсказания, примыкающему к верхней стороне.
Хотя, в соответствии с настоящим примером осуществления, принимается, что NxN-разделение (PART_NxN) не определяется в качестве режима разделения (PartMode) блока кодирования, можно также определить NxN-разделение (PART_NxN. В случае, когда режим разделения (PartMode) является NxN-разделением (PART_NxN), также при выводе ссылочного индекса кандидата на слияние по времени блока предсказания, содержащегося в блоке кодирования, являющемся объектом обработки, выводом ссылочного индекса без обращения к примыкающему блоку предсказания, который содержится внутри блока кодирования, идентичного блоку кодирования, входящему в блок предсказания, являющийся объектом обработки, ссылочные индексы кандидатов на слияние по времени четырех блоков предсказания, индексом разделения PartIdx которых является 0, 1, 2 и 3 соответственно, могут быть соответственно выведены параллельно.
Например, в случае NxN-разделения (Part_NxN), не проводится обращения к примыкающему блоку предсказания и ссылочному индексу в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0. Поскольку не проводится обращения к блоку предсказания, примыкающему к блоку предсказания, являющемуся объектом вывода, ссылочные индексы кандидатов на слияние по времени четырех блоков предсказания, индексом разделения PartIdx которых является 0, 1, 2 и 3, соответственно, могут быть соответственно выведены параллельно.
В альтернативном варианте, может быть также выведен ссылочный индекс кандидата на слияние по времени, обратившись к ссылочному индексу примыкающего блока. На Фиг. 33 иллюстрируются примыкающие блоки, к которым проводится обращение в процессе вывода ссылочных индексов кандидатов на слияние по времени блока кодирования NxN-разделения (PART_NxN).
Как показывается на Фиг. 33(a), в случае блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 0, проводится обращение к блоку предсказания А0, примыкающему слева, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания А0. В случае блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 1, проводится обращение к блоку предсказания В1, примыкающему сверху, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания В1. В случае блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 2, проводится обращение к блоку предсказания А2, примыкающему слева, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания А2. В случае блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 3, обращение к примыкающему блоку предсказания не проводится, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0. Поскольку блоки предсказания А0 и А2, примыкающие слева к блоку предсказания, являющемуся объектом обработки, и В1, примыкающий к нему сверху, все находятся с внешней стороны блока кодирования, ссылочные индексы кандидатов на слияние по времени четырех блоков предсказания, индексами разделения PartIdx которых являются 0, 1, 2 и 3, соответственно, могут быть соответственно выведены параллельно.
В альтернативном варианте, как показывается на Фиг. 33(b), в случае блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 0, проводится обращение к блоку предсказания А0, примыкающему слева, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания А0. В случае блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 2, проводится обращение к блоку предсказания А2, примыкающему слева, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания А2. В случае блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 1 или 3, обращение к примыкающему блоку предсказания не проводится, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0. Поскольку оба блока предсказания А0 и А2, примыкающие слева к блоку предсказания, являющемуся объектом обработки, находятся с внешней стороны блока кодирования, то ссылочные индексы кандидатов на слияние по времени четырех блоков предсказания, индексом разделения PartIdx которых является соответственно 0, 1, 2 и 3, могут быть соответственно выведены параллельно.
В альтернативном варианте, как показывается на Фиг. 33(c), проводится обращение к блоку предсказания А, примыкающему слева к блоку кодирования, являющемуся объектом обработки, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания А. Поскольку блок предсказания А, примыкающий слева к блоку кодирования, являющемуся объектом обработки, находится с внешней стороны блока кодирования, то значения ссылочных индексов кандидатов на слияние по времени четырех блоков предсказания, индексом разделения PartIdx которых является соответственно 0, 1, 2 и 3, могут быть соответственно выведены параллельно.
В альтернативном варианте, как показывается на Фиг. 33(d), в случае блока предсказания, являющегося объектом вывода, индексом разделения PartIdx которого является 0, проводится обращение к блоку предсказания А0, примыкающему слева, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение ссылочного индекса в LX блока предсказания А0. В случае блока предсказания, являющегося объектом вывода, индекс разделения PartIdx которого отличен от 0 (PartIdx является 1, 2 или 3), обращение к примыкающему блоку не проводится, и ссылочному индексу в LX кандидата на слияние по времени присваивается значение по умолчанию равное 0. Поскольку блок предсказания А0, примыкающий слева к блоку предсказания, являющемуся объектом обработки, находится с внешней стороны блока кодирования, ссылочные индексы кандидатов на слияние по времени четырех блоков предсказания, индексом разделения PartIdx которых является соответственно 0, 1, 2 и 3, могут быть соответственно выведены параллельно.
Далее будет дано подробное объяснение способа вывода кандидата на слияние с использованием информации межкадрового предсказания кадра другого момента времени этапа S203 на Фиг. 18. На Фиг. 34 показывается блок-схема, иллюстрирующая процедуру процесса вывода кандидата на слияние по времени этапа S203 на Фиг. 18.
Сначала выводится кадр colPic другого момента времени использованием типа слоя slice_type и флага collocated_from_flag, описанного выше, (этап S3101).
На Фиг. 35 показывается блок-схема, иллюстрирующая процедуру процесса вывода кадра colPic другого момента времени этапа S3101 на Фиг. 34. В случае, когда типом слоя slice_type является В-слой, а флагом collocated_from_10_flag, описанным выше, является 0 (Да в этапе S3201 и Да в этапе S3202), RefPicList1 [0] (то есть, кадр, ссылочным индексом в опорном списке L1 которого является 0) определяется как кадр colPic другого момента времени (этап S3203). В обратном случае, то есть в случае, когда типом слоя slice_type является В-слой, а флагом collocated_from_10_flag, описанным выше, является 1 (Да в этапе S3201 и Нет в этапе S3202), или в случае, когда типом слоя slice_type является P-слой (Нет в этапе S3201 и Да в этапе S3204), RefPicList0[0] (то есть, кадр, ссылочным индексом в опорном списке L0 которого является 0), определяется как кадр colPic другого момента времени (этап S3205).
Затем, возвращаясь к блок-схеме на Фиг. 34, выводится блок предсказания colPU другого момента времени, и выводится информация кодирования (этап S3102).
На Фиг. 36 показывается блок-схема, иллюстрирующая процедуру процесса вывода блока предсказания colPU кадра colPic другого момента времени этапа S3102 на Фиг. 34.
Сначала в кадре colPic другого момента времени блок предсказания, расположенный снизу справа (с внешней стороны) в положении, идентичном положению блока предсказания, являющемуся объектом обработки, используется как блок предсказания colPU другого момента времени (этап S3301). Этот блок предсказания соответствует блоку предсказания Т0 на Фиг. 9.
Затем, выводится информация кодирования блока предсказания colPU другого момента времени (этап S3302). В случае, когда PredMode блока предсказания colPU другого момента времени не может быть использован, или в случае, когда режим предсказания PredMode блока предсказания colPU другого момента времени является внутрикадровым предсказанием (MODE_INTRA) (Да в этапе S3303 и Да в этапе S3304), блок предсказания внутри кадра colPic другого момента времени, находящийся вверху слева в середине положения, идентичном положению блока предсказания, являющегося объектом обработки, используется в качестве блока предсказания colPU другого момента времени (этап S3305). Этот блок предсказания соответствует блоку предсказания Т1 на Фиг. 9.
Затем, возвращаясь к блок-схеме на Фиг. 34, выводится предсказание вектора движения mvL1Col в L0 из блока предсказания в другом кадре в положении, идентичном положению блока предсказания, являющегося объектом кодирования или декодирования, выводится флаг availableFlagL0Col, указывающий на допустимость или недопустимость кандидата на слияние по времени Col (этап S3103), и выводится предсказание вектора движения mvL1Col в L1 и флаг availableFlagL1Col, указывающий на допустимость или недопустимость кандидата на слияние по времени Col. Кроме того, в случае, когда флагом availableFlagL0Col или флагом availableFlagL1Col является 1, флаг availableFlagCol, указывающий на допустимость или не допустимость кандидата на слияние по времени Col, задается равным 1.
На Фиг. 37 показывается блок-схема, иллюстрирующая процедуру процесса вывода информации межкадрового предсказания кандидата на слияние по времени этапа S3103 и этапа S3104 на Фиг. 34. Для L0 или L1 список объектов для вывода кандидатов на слияние по времени определяется как LX, а предсказание, использующее список LX, именуется как LX-предсказание, и далее используется в этом смысле, если не оговорено обратное. В случае вызова этапа S3103, который является процессом вывода в L0 кандидата на слияние по времени, LX задается как L0, а в случае вызова этапа S3104, который является процессом вывода в L1 кандидата на слияние по времени, LX задается как L1.
В случае, когда режим предсказания PredMode блока предсказания colPU другого момента времени является внутрикадровым предсказанием (MODE_INTRA) или блок предсказания colPU не может быть использован, (Нет в этапе S3402, Нет в этапе S3401), оба флага, флаг availableFlagLXCol и флаг predFlagLXCol, задаются равными 0 (этап S3403), вектор движения mvLXCol задается как (0,0) (этап S3404), процесс вывода информации межкадрового предсказания кандидата на слияние по времени завершается.
В случае, когда блок предсказания colPU может использоваться и в случае, когда режим предсказания PredNode не является режимом внутрикадрового предсказания (MODE_INRTA) (Да в этапе S3401, Да в этапе S3402), последующей процедурой выводятся mvCol, refIdxCol и availableFlagCol.
В случае, когда флаг PredFlagL0 [xPCol] [yPCol], который указывает на то, является или не является L0-предсказание блока предсказания colPU, равным 0 (Да в этапе S3405), режимом предсказания блока предсказания colPU является Pred_L1, поэтому вектор движения mvCol задается по значению идентичным значению MvL1 [xPCol] [yPCol], который является вектором движения в L1 блока предсказания colPU (этап S3406), ссылочный индекс refIdxCol задается по значению идентичным значению ссылочного индекса RefIdxL1 [xPCol] [yPCol] в L1 (этап S3407), а список ListCol задается как L1 (этап S3408). Здесь xPCol и yPCol являются индексами, указывающими на положение верхнего левого пикселя блока предсказания colPU внутри кадра colPic другого момента времени.
С другой стороны, в случае, когда флаг PredFlagL0 [xPCol] [yPCLo1] L0-предсказания блока предсказания colPU не является 0 (Нет в этапе S3405 на Фиг. 37), то определяется, является или не является флаг PredFlagL1 [xPCol] [yPCLo1] Ll-предсказания блока предсказания colPU равным 0. В случае, когда флаг PredFlagL1 [xPCol] [yPCLol] L1-предсказания блока предсказания colPU является 0 (Да в этапе S3409), вектор движения mvCol задается по значению идентичным значению MvL0 [xPCol] [yPCol], который является вектором движения в L0 блока предсказания colPU (этап S3410), ссылочный индекс refldxCol задается по значению идентичным значению ссылочного индекса RefIdxL0 [xPCol] [yPCLol] в L0 (этап S3411), и список ListCol задается как L0 (этап S3412).
С другой стороны, в случае, когда флаг PredFlagL0 [xPCol] [yPCLol] L0-предсказания блока предсказания colPU и флаг PredFlagL1 [xPCol] [yPCLol] Ll-предсказания блока colPU одновременно не являются 0 (Нет в этапе S3405 и Нет в этапе S3409), режим межкадрового предсказания блока предсказания colPU является би-предсказанием (Pred_BI), и поэтому из векторов движения в двух L0 и L1 выбирается один (этап S3413).
На Фиг. 38 представлена блок-схема, иллюстрирующая процесс процедуры вывода информации межкадрового предсказания кандидата на слияние по времени, когда режим межкадрового предсказания блока предсказания colPU является би-предсказанием (Pred_BI).
Сначала определяется то, являются или не являются РОС всех кадров, зарегистрированных во всех опорных списках, меньше чем РОС кадра, являющегося объектом текущего кодирования или декодирования, (этап S3501). В случае, когда РОС всех кадров, зарегистрированных в L0 или L1, где L0 и L1 являются опорными списками блока предсказания colPU, будут меньше, чем РОС кадра, являющегося объектом текущего кодирования или декодирования (Да в этапе S3501), и LX является L0, то есть, выводится кандидат на вектор предсказания вектора движения в L0 кадра, являющегося объектом кодирования или декодирования, (Да в этапе S3502), выбирается информация межкадрового предсказания в L0 блока предсказания colPU, а в случае, когда LX является L1, то есть, выводится кандидат на вектор предсказания вектора движения в L1 кадра, являющегося объектом кодирования или декодирования (Нет в этапе S3502), выбирается информация межкадрового предсказания в L1 блока предсказания colPU. С другой стороны, в случае, когда по меньшей мере один из РОС кадров, зарегистрированных в любом из опорных списков L0 и L1 блока предсказания colPU, является больше, чем РОС кадра, являющегося объектом текущего кодирования или декодирования, (Нет в этапе S3501), и при этом флаг collocated_from_10_flag является 0 (Да в этапе S3503), то выбирается информация межкадрового предсказания в L0 блока предсказания colPU, а в случае, когда флаг collocated_from_10_flag является 1, (Нет в этапе S3503), то выбирается информация межкадрового предсказания в L1 блока предсказания colPU.
В случае выбора информации межкадрового предсказания в L0 блока предсказания colPU (Да в этапе и Да в этапе S3503), вектор движения mvCol задается по значению идентичным значению MvL0 [xPCol] [yPCol] (этап S3504), ссылочный индекс refIdxCol задается по значению идентичным значению RefIdxL0 [xPCol] [yPCol] (этап S3505), а список ListCol задается как L0 (этап S3506).
В случае выбора информации межкадрового предсказания в L1 блока предсказания colPU (Нет в этапе S2502 и Нет в этапе S3503), вектор движения mvCol задается по значению идентичным значению MvL1 [xPCol] [yPCol] (этап S3507), ссылочный индекс refIdxCol задается по значению идентичным значению RefIdxL1 [xPCol] [yPCol] (этап S3508), а список ListCol задается как L1 (этап S3509).
Обращаясь снова к Фиг. 37, если информация межкадрового предсказания может быть выведена из блока предсказания colPU, то флаг availableFlagLXCol и флаг predFlagLXCol оба задаются равными 1 (этап S3414).
После этого, вектор движения mcCol масштабируется и определяется как вектор движения mvLXCol в LX кандидата на слияние по времени (этап S3415). Со ссылками на Фиг. 39 и Фиг. 40 будет дано объяснение процедуры процесса вычисления масштаба вектора движения.
На Фиг. 39 представлена блок-схема, показывающая процедуру процесса вычисления масштаба вектора движения этапа S3105 на Фиг. 34.
Вычитая РОС опорного кадра, соответствующего ссылочному индексу refIdxCol, к которому проводится обращение в списке ListCol блока предсказания colPU, из РОС кадра colPic другого момента времени, выводится расстояние td между кадрами (этап S3601). Далее, в случае, когда РОС опорного кадра, к которому проводится обращение в списке ListCol блока предсказания colPU, является предшествующим относительно кадра colPic другого момента времени в порядке воспроизведения, расстояние td между кадрами имеет положительное значение, а в случае, когда РОС опорного кадра, к которому проводится обращение в списке ListCol блока предсказания colPU, является последующим относительно кадра colPic другого момента времени в порядке воспроизведения, то расстояние td между кадрами имеет отрицательное значение, td = РОС блока предсказания colPU другого момента времени - РОС опорного кадра, к которому проводится обращение в списке ListCol блока предсказания colPU.
Вычитания РОС опорного кадра, соответствующего ссылочному индексу в LX кандидата на слияние по времени, выведенного в этапе S202 на Фиг. 18, из РОС кадра, являющегося объектом текущего кодирования или декодирования, выводится расстояние между кадрами (этап S3602). В случае, когда опорный кадр, к которому проводится обращение в списке LX кадра, являющегося объектом текущего кодирования или декодирования, является предыдущим в порядке воспроизведения относительно кадра, являющегося объектом текущего кодирования или декодирования, расстояние между кадрами принимает положительное значение, а в случае, когда опорный кадр, к которому происходит обращение в списке LX кадра, являющегося объектом текущего кодирования или декодирования, является последующим в порядке воспроизведения относительно кадра, являющегося объектом текущего кодирования или декодирования, расстояние между кадрами принимает отрицательное значение.
tb = РОС кадра, являющегося объектом текущего кодирования или декодирования - РОС опорного кадра, соответствующего ссылочному индексу в LX кандидата на слияние по времени.
После этого, сравниваются расстояния td между кадрами и tb между кадрами (этап S3603). В случае, когда расстояния td и tb идентичны друг другу (Да в этапе S3603), вектор движения mvLXCol в LX кандидата на слияние по времени задается по значению идентичным значению вектора движения mvCol (этап S3604), и процесс масштабирования завершается.
mvLXCol=mvCol
С другой стороны, в случае, когда расстояния td и tb не идентичны друг другу (Нет в этапе S3603), проводится процесс вычисления масштаба умножением mvCol на tb или td в соответствии со следующим уравнением (этап S3605), и определяется масштабированный вектор движения mvCol в LX кандидата на слияние по времени.
mvLXCol=tb или td*mvCol
На Фиг. 40 показывается пример в случае, когда вычисление масштаба на этапе S3605 выполняется с точностью до целого. Процессы этапа S3606 - этапа S3608 на Фиг. 40 соответствуют этапу S3605 на Фиг. 40.
Сначала, подобным же образом, что и на блок-схеме, показанной на Фиг. 39, выводится расстояние td между кадрами и расстояние tb между кадрами (этап S3601 и S3602).
После этого, сравниваются расстояния td между кадрами и tb между кадрами (этап S3603). В случае, когда расстояния td и tb являются идентичными (Да в этапе S3603), вектор движения mvLXCol в LX кандидата на слияние по времени задается по значению идентичным значению вектора движения mvCol (этап S3604), аналогичным образом, что и на блок-схеме на Фиг. 39, и процесс вычисления масштаба завершается.
mvLXCol=mvCol
С другой стороны, в случае, когда расстояния td и tb не являются идентичными (Нет в этапе S3603), выводится переменная tx в соответствии со следующим уравнением (этап S3606).
tx=(16384+Abs (td или 2)) или td
Далее, выводится коэффициент масштабирования DistScaleFactor в соответствии со следующим уравнением (этап S3607).
DistScaleFactor=(tb*tx+32)>>6
После этого, определяется масштабированный вектор движения mvLXCol в LX кандидата на слияние по времени в соответствии со следующим уравнением (этап S3608).
mvLXCol=ClipMv(Sign(DistScaleFactor*mvCol)*
((Abs(DistScaleFactor*mvCol)+127)>>8))
Далее, будет дано подробное объяснение способа этапа S204 на Фиг. 18 регистрации кандидата на слияние в списке кандидатов на слияние и построения списка кандидатов на слияние. На Фиг. 41 представлена блок-схема, показывающая процедуру обработки при построении списка кандидатов на слияние. В соответствии с этим способом, заданием приоритетов и регистрацией кандидатов на слияние с более высоким приоритетом в списке кандидатов на слияние mergeCandList снижается величина кода индекса слияния merge_idx [x0] [y0]. Вставкой элемента с более высоким приоритетом в верхнюю часть списка кандидатов на слияние, снижается величина кода. Например, в случае, когда в списке кандидатов на слияние mergeCandList существует пять элементов, индекс 0 списка кандидатов на слияние задается как "0", его индекс 1 задается как "10", его индекс 2 задается как "110", его индекс 3 задается как "1110" и его индекс 4 задается как "11110", тем самым величина кода, представляющего индекс 0, становится равной 1 бит. Регистрацией с индексом 1 элементов, для которых предполагается, что они будут возникать с высокой частотой, снижается величина кода.
Список кандидатов на слияние mergeCandList сконфигурирован как списковая структура, в которой содержатся индексы слияния, указывающие на положение в списке кандидатов на слияние, и область памяти, в которой в качестве элементов хранятся кандидаты на слияние, соответствующие их индексам. Номер индекса слияния начинается с 0, а кандидаты на слияние хранятся в области памяти списка кандидатов на слияние mergeCandList. В последующем процессе блок предсказания, который становится кандидатом на слияние с индексом слияния i, зарегистрированным в списке кандидатов на слияние mergeCandList, представляется как mergeCandList[i], тем самым отличается от списка кандидатов на слияние mergeCandList матричным представлением.
Сначала в случае, когда availableFlagA является 1 (Да в этапе S4101), кандидат на слияние А регистрируется в начале списка кандидатов на слияние mergeCandList (этап S4102).
После этого, в случае, когда availableFlagB является 1 (Да в этапе S4103), кандидат на слияние В регистрируется в конце списка кандидатов на слияние mergeCandList (этап S4104).
После этого, в случае, когда availableFlagC является 1 (Да в этапе S4105), кандидат на слияние С регистрируется в конце списка кандидатов на слияние mergeCandList (этап S4106).
После этого, в случае, когда availableFlagD является 1 (Да в этапе S4107), кандидат на слияние D регистрируется в конце списка кандидатов на слияние mergeCandList (этап S4108).
После этого, в случае, когда availableFlagE является 1 (Да в этапе S4109), кандидат на слияние Ε регистрируется в конце списка кандидатов на слияние mergeCandList (этап S4110).
После этого, в случае, когда availableFlagCol является 1 (Да в этапе S4109), кандидат на слияние Col регистрируется в конце списка кандидатов на слияние mergeCandList (этап S4110).
Далее, в режиме слияния блок предсказания А, который примыкает слева, и блок предсказания В, который примыкает сверху, зачастую находятся так, что становятся одним целым с блоком предсказания, являющимся объектом кодирования или декодирования, поэтому в случае, когда может быть выведена информация межкадрового предсказания блоков предсказания А и В, кандидаты на слияние А и В регистрируются в списке кандидатов приоритетно, впереди других кандидатов на слияние С, D, Ε и Col.
На Фиг. 13 в блоке выбора информации кодирования 136 блока вывода информации межкадрового предсказания 104 устройства кодирования движущегося изображения выбирается кандидат на слияние из числа кандидатов на слияние, зарегистрированных в списке кандидатов на слияние, а индексы слияния и информация межкадрового предсказания кандидатов на слияние, соответствующая индексам слияния, предоставляется на блок предсказания компенсации движения 105.
При выборе кандидата на слияние может быть использован способ, аналогичный способу в блоке определения способа предсказания 107. Для каждого из кандидатов на слияние выводятся информация кодирования и искажения при кодировании между величиной кода информации кодирования и остаточного сигнала, и искажения при кодировании между сигналом кадра предсказания и сигналом кадра. Определяется кандидат на слияние, который имеет наименьшую величину сгенерированного кода и наименьшие искажения от кодирования. Для каждого кандидата на слияние проводится энтропийное кодирование синтаксического элемента merge_idx, который является информацией для кодирования режима слияния, и вычисляется величина кода информации кодирования. Далее, для каждого кандидата на слияние вычисляется величина кода кодированного остаточного сигнала предсказания способом, аналогичным способу в блоке предсказания компенсации движения 105. Остаточный сигнал предсказания является сигналом остатка между сигналом кадра предсказания, на котором проводится компенсация движения в соответствии с информацией межкадрового предсказания каждого кандидата на слияние, и сигналом кадра, который является объектом кодирования и который предоставляется из памяти кадров 101. Вычисляется и принимается в качестве значения оценки полная величина сгенерированного кода, к которой прибавляется величина кода информации для кодирования (то есть, индекс слияния) и величина кода остаточного сигнала предсказания.
Далее, после кодирования полученного таким образом остаточного сигнала предсказания проводится декодирование для оценивания величины искажений, и вычисляются искажения при кодировании, как коэффициент, представляющий ошибку сигнала исходного кадра, возникающую из-за кодирования. Сравнением полной величины сгенерированного кода и искажений при кодировании для каждого кандидата на слияние определяется информация кодирования, при которой величина сгенерированного кода и искажений при кодировании становятся наименьшими. Индекс слияния, соответствующий определенной при этом информации для кодирования, кодируется как флаг merg_idx, представленный второй синтаксической структурой блока предсказания. Предпочтительно, чтобы вычисленная здесь величина сгенерированного кода, являлась величиной, полученной имитацией процессов кодирования, однако для упрощения вычислений или грубого оценивания могут также быть применены аппроксимации.
С другой стороны, на Фиг. 14 в блоке выбора информации кодирования 236 блока вывода информации межкадрового предсказания 205 устройства кодирования движущегося изображения из кандидатов на слияние, зарегистрированных в списке кандидатов на слияние, выбирается кандидат на слияние, который соответствует полученному индексу слияния, а информация межкадрового предсказания кандидата на слияние предоставляется на блок предсказания компенсации движения 206, и сохраняется в памяти хранения информации кодирования 210.
Битовый поток движущихся изображений, выдаваемый из устройства кодирования движущегося изображения, в соответствии с примерами осуществления, описанными выше, имеет определенный формат данных, так что поток данных может быть декодирован в соответствии со способом кодирования, используемым в этих примерах осуществления. Устройство декодирования движущегося изображения, соответствующее устройству кодирования движущегося изображения, может декодировать битовый поток в этом определенном формате.
В случае, когда для обмена битовыми потоками между устройством кодирования движущегося изображения и устройством декодирования движущегося изображения используется проводная или беспроводная сеть, битовый поток может быть преобразован в формат данных, подходящий для способа передачи по каналу связи. В этом случае используются устройство передачи движущегося изображения и устройство приема движущегося изображения. Устройство передачи движущегося изображения преобразует битовый поток, выдаваемый из устройства кодирования движущегося изображения, в кодированные данные в формате данных, подходящем для способа передачи через канал связи, и предает кодированные данные в сеть. Устройство приема движущегося изображения принимает кодированные данные из сети, реконструирует битовый поток и предоставляет этот битовый поток устройству декодирования движущегося изображения.
Устройство передачи движущегося изображения содержит память, которая буферизирует битовый поток, выдаваемый из устройства кодирования движущегося изображения, блок обработки пакетов, который пакетирует битовый поток, блок передачи, который передает пакетированный битовый поток через сеть. Устройство приема движущегося изображения содержит приемный блок, который принимает пакетированный битовый поток через сеть, память, которая буферизирует принятый битовый поток, и блок обработки пакетов, который обрабатывает пакеты кодированных данных, генерирует битовый поток, и предоставляет этот битовый поток устройству декодирования движущегося изображения.
Необходимо упомянуть, что процессы, относящиеся к кодированию и декодированию, описанные выше, несомненно могут быть реализованы как устройства передачи, хранения и приема, использующие аппаратные средства. Процессы могут также быть реализованы встроенными программами, хранящимися в постоянном запоминающем устройстве (ПЗУ), флэш-памяти или программами компьютеров или прочими. Встроенная программа или программа, реализованная программно, могут храниться на носителе записи, считываемом компьютером, и предоставлены от него, могут быть получены от сервера через проводную или беспроводную сеть, или могут быть предоставлены средствами вещания данных, такими как наземное вещание или цифровое спутниковое вещание.
Приведенное выше является объяснением, базирующемся на примерах осуществления. Предполагается, что эти примеры осуществления являются только иллюстративными, и специалистам в этой области техники будет очевидно, что могут быть разработаны различные модификации составных элементов и процессов, и что такие модификации также находятся в объеме настоящего изобретения.
ОПИСАНИЕ ССЫЛОЧНЫХ ЦИФР
101 - память кадров, 102 - блок вычисления векторов движения, 103 - блок вычисления разности векторов движения, 104 - блок вывода информации межкадрового предсказания, 105 - блок предсказания компенсации движения, 106 - блок внутрикадрового предсказания, 107 - блок определения способа предсказания, 108 - блок генерирования остаточного сигнала, 109 - блок ортогонального преобразования/квантования, 110 - блок генерирования первого битового потока, 111 - блок генерирования второго битового потока, 112 - блок мультиплексирования, 130 - блок генерирования кандидатов на пространственное слияние, 131 - блок вывода индексов кандидатов на слияние по времени, 132 - блок генерирования кандидатов на слияние по времени, 133 - блок регистрации кандидатов на слияние, 134 - блок определения равенства кандидатов на слияние, 135 - блок пополнения кандидатов на слияние, 136 - блок выбора информации кодирования, 201 - блок разделения, 202 - блок декодирования первого битового потока, 203 - блок декодирования второго битового потока, 204 - блок вычисления векторов движения, 205 - блок вывода информации межкадрового предсказания, 206 - блок предсказания компенсации движения, 207 - блок внутрикадрового предсказания, 208 - блок деквантования/обратного ортогонального преобразования, 209 - блок свертки сигналов декодированных кадров, 210 - память хранения информации кодирования, 211 - память декодированных кадров, 230 - блок генерирования кандидатов на пространственное слияние, 231 - блок вывода ссылочных индексов кандидатов на слияние по времени, 232 - блок генерирования кандидатов на слияние по времени, 233 - блок регистрации кандидатов на слияние, 234 - блок определения равенства кандидатов на слияние, 235 - блок пополнения кандидатов на слияние и 236 - блок выбора информации кодирования.
ПРОМЫШЛЕННАЯ ПРИМЕНИМОСТЬ
Настоящее изобретение применимо к технологии кодирования движущихся изображений, используя предсказание компенсации движения.
Изобретение относится к технологиям кодирования и декодирования движущихся изображений. Техническим результатом является повышение точности предсказания для блока, являющегося объектом декодирования. Предложено устройство декодирования движущегося изображения, которое декодирует битовый поток, где первый блок, полученный разделением каждого кадра, разделяется на один или несколько вторых блоков и движущееся изображение кодируется с использованием межкадрового предсказания. Устройство содержит блоки вывода первой и второй информации предсказания, блок декодирования, блок построения списка кандидатов, блок выбора, блок вывода первой информации предсказания. Блок вывода первой информации предсказания проводит процесс вывода одного или нескольких кандидатов на первую информацию межкадрового предсказания из информации межкадрового предсказания одного или нескольких третьих блоков, примыкающих ко второму блоку, являющемуся объектом декодирования, внутри кадра, являющегося объектом декодирования. 2 н.п. ф-лы, 44 ил.
1. Устройство декодирования движущегося изображения, которое декодирует битовый поток, где первый блок, полученный разделением каждого кадра, разделяется на один или несколько вторых блоков и движущееся изображение кодируется с использованием межкадрового предсказания, содержащее:
блок вывода первой информации предсказания, который проводит процесс вывода одного или нескольких кандидатов на первую информацию межкадрового предсказания из информации межкадрового предсказания одного или нескольких третьих блоков, примыкающих ко второму блоку, являющемуся объектом декодирования, внутри кадра, являющегося объектом декодирования;
блок вывода второй информации предсказания, который проводит процесс вывода кандидата на вторую информацию межкадрового предсказания из информации межкадрового предсказания четвертого блока, который находится в положении, идентичном положению второго блока, являющегося объектом декодирования, или в его окрестности, внутри кадра, отличного от кадра, являющегося объектом декодирования;
блок декодирования, который декодирует индекс, указывающий на информацию межкадрового предсказания, используемую для межкадрового предсказания второго блока, являющегося объектом декодирования;
блок построения списка кандидатов, который формирует список кандидатов на информацию предсказания, содержащий кандидатов на информацию предсказания, к которому в случае, когда выводится кандидат на первую информацию межкадрового предсказания, добавляется этот выведенный кандидат на первую информацию межкадрового предсказания, а в случае, когда выводится кандидат на вторую информацию межкадрового предсказания, соответственно добавляется этот выведенный кандидат на вторую информацию межкадрового предсказания; и
блок выбора, который выбирает кандидата на информацию межкадрового предсказания, используемую для межкадрового предсказания второго блока, являющегося объектом декодирования, указанного индексом, из одного или нескольких кандидатов на информацию предсказания в списке кандидатов на информацию предсказания, при этом
блок вывода первой информации предсказания проводит процесс вывода кандидата на первую информацию межкадрового предсказания без обращения к информации кодирования пятого блока, содержащегося в блоке, идентичном первому блоку, содержащему второй блок, являющийся объектом декодирования, и при этом
в режиме разделения, где первый блок разделяется на верхний блок и нижний блок, расположенные вертикально, с соотношением 1:3, блок вывода второй информации предсказания проводит процесс вывода кандидата на вторую информацию межкадрового предсказания на базе ссылочного индекса присваиванием значению ссылочного индекса значение по умолчанию, без обращения к информации кодирования пятого блока, содержащегося в блоке, идентичном первому блоку, содержащему второй блок, являющийся объектом декодирования.
2. Способ декодирования движущегося изображения, который декодирует кодированный битовый поток, где первый блок, полученный разделением каждого кадра, разделяется на один или несколько вторых блоков и движущееся изображение кодируется с использованием межкадрового предсказания, содержащий:
этап, на котором проводится процесс вывода одного или нескольких кандидатов на первую информацию межкадрового предсказания из информации межкадрового предсказания одного или нескольких третьих блоков, примыкающих ко второму блоку, являющемуся объектом декодирования, внутри кадра, являющегося объектом декодирования;
этап, на котором проводится процесс вывода кандидата на вторую информацию межкадрового предсказания из информации межкадрового предсказания четвертого блока, который находится в положении, идентичном положению второго блока, являющегося объектом декодирования, или в его окрестности, внутри кадра, отличного от кадра, являющегося объектом декодирования;
этап, на котором декодируется индекс, указывающий на информацию межкадрового предсказания, используемую для межкадрового предсказания второго блока, являющегося объектом декодирования;
этап, на котором строится список кандидатов на информацию предсказания, содержащий кандидатов на информацию предсказания, к которому в случае, когда выводится кандидат на первую информацию межкадрового предсказания, добавляется этот выведенный кандидат на первую информацию межкадрового предсказания, а в случае, когда выводится кандидат на вторую информацию межкадрового предсказания, соответственно добавляется этот выведенный кандидат на вторую информацию межкадрового предсказания; и
этап, на котором выбирается кандидат на информацию межкадрового предсказания, используемую для межкадрового предсказания второго блока, являющегося объектом декодирования, указанный индексом, из одного или нескольких кандидатов на информацию предсказания в списке кандидатов на информацию предсказания, при этом
этап, на котором проводится процесс вывода одного или нескольких кандидатов на первую информацию межкадрового предсказания, проводит процесс вывода кандидата на первую информацию межкадрового предсказания без обращения к информации кодирования пятого блока, содержащегося в блоке, идентичном первому блоку, содержащему второй блок, являющийся объектом декодирования, и при этом
в режиме разделения, где первый блок разделяется на верхний блок и нижний блок, расположенные вертикально, с соотношением 1:3, этап, на котором проводится процесс вывода второй информации предсказания, проводит процесс вывода кандидата на вторую информацию межкадрового предсказания на базе ссылочного индекса присваиванием значению ссылочного индекса значение по умолчанию, без обращения к информации кодирования пятого блока, содержащегося в блоке, идентичном первому блоку, содержащему второй блок, являющийся объектом декодирования.
статья J | |||
Lin et al | |||
";Improve advanced motion vector prediction";, опубликованная 20.01.2011, 8 стр | |||
Токарный резец | 1924 |
|
SU2016A1 |
Способ приготовления лака | 1924 |
|
SU2011A1 |
Способ приготовления мыла | 1923 |
|
SU2004A1 |
Колосоуборка | 1923 |
|
SU2009A1 |
СПОСОБ ГЕНЕРАЦИИ ПРЕДСКАЗАННОЙ ОПОРНОЙ ИНФОРМАЦИИ, СПОСОБЫ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕО, УСТРОЙСТВА ДЛЯ ЭТОГО, ПРОГРАММЫ ДЛЯ ЭТОГО И НОСИТЕЛЬ ДАННЫХ, ХРАНЯЩИЙ ЭТИ ПРОГРАММЫ | 2007 |
|
RU2434361C2 |
УСТРОЙСТВО КОДИРОВАНИЯ ДВИЖУЩИХСЯ ИЗОБРАЖЕНИЙ, СПОСОБ И ПРОГРАММА УПРАВЛЕНИЯ ЭТИМ УСТРОЙСТВОМ | 2004 |
|
RU2335859C2 |
Авторы
Даты
2016-09-20—Публикация
2012-12-14—Подача