СПОСОБ, АППАРАТ И УСТРОЙСТВО КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ
METHOD, APPARATUS AND DEVICE FOR CODING AND DECODING

Область техники, к которой относится изобретение
Настоящее изобретение относится к области кодирования и декодирования, конкретнее, к способу, аппарату и устройству кодирования и декодирования.
Уровень техники
Для экономии ресурсов видеоизображения передают кодированными. В целом способ кодирования видеоинформации может содержать такие операции, как, например предсказание, преобразование, квантование, энтропийное кодирование, фильтрация. При этом кодирование с предсказанием может содержать внутрикадровое кодирование и межкадровое кодирование. В случае внутрикадрового кодирования для эффективного устранения избыточности видеоданных во временной области пользуются тем, что видеоданные во временной области коррелированы, и для предсказания пикселов текущего изображения используют пикселы соседнего кодированного изображения.
В операции межкадрового кодирования для представления относительного смещения между текущим блоком видеоизображения текущего сегмента и опорным блоком видеоизображения опорного кадра может использоваться вектор перемещения (англ. Motion Vector, MV). Например, если видеоизображение А текущего сегмента и видеоизображение В опорного кадра сильно коррелированы во временной области, то при необходимости передачи блока А1 изображения (текущего блока) видеоизображения А можно в видеоизображении В выполнять поиск движения с целью отыскания блока В1 изображения (т.е. опорного блока), который наилучшим образом соответствует блоку изображения А1, и определять относительное смещение между блоком А1 изображения и блоком В1 изображения; это относительное смещение представляет собой вектор перемещения блока А1 изображения.
Кодирующая сторона вместо блока А1 изображения может передавать декодирующей стороне вектор перемещения. На основании вектора перемещения и блока В1 изображения декодирующая сторона может получать блок А1 изображения. Очевидно, что вышеописанный подход дает возможность сократить объем передаваемой информации, поскольку количество битов, занимаемое вектором перемещения, значительно меньше количества битов, занимаемых блоком А1 изображения.
В традиционно используемом способе, когда текущий блок является однонаправленным блоком, после получения информации о перемещении текущего блока можно выполнять кодирование и декодирование на основании этой информации о перемещении, повышая тем самым производительность кодирования. Если же текущий блок является двунаправленным блоком, то после получения информации о двунаправленном перемещении текущего блока предсказанные изображения по двум различным направлениям можно получать на основании этой информации о двунаправленном перемещении. Обычно между предсказанными изображениями по двум различным направлениям имеет место зеркально-симметричная взаимосвязь. В применяемой сейчас системе кодирования эта особенность, позволяющая дополнительно устранять избыточность, используется не в полной мере. Иными словами, сейчас использованию двунаправленных блоков присущи недостатки, например, невысокая производительность кодирования.
Раскрытие сущности изобретения
Настоящее изобретение предусматривает способ, аппарат и устройство кодирования и декодирования, с использованием которых производительность кодирования может быть повышена.
В варианте реализации настоящего изобретения предусмотрен способ декодирования, содержащий:
когда определяют использование режима двунаправленного визуально плавного перемещения для текущего блока, выполняют компенсацию перемещения на основании режима двунаправленного визуально плавного перемещения в отношении текущего блока, причем при использовании режима двунаправленного визуально плавного перемещения для текущего блока, условия, которым одновременно удовлетворяет текущий блок включают в себя по меньшей мере следующее: информация управления переключением указывает на то, что разрешено использование режима двунаправленного визуально плавного перемещения для текущего блока; режим информации о перемещении субблока не используется для текущего блока, режим комбинированного слияния между разными изображениями и предсказания внутри одного изображения (CIIP) не используется для текущего блока, и режим симметричной разности векторов перемещения (SMVD) не используется для текущего блока; двунаправленное предсказание используется для текущего блока, и два опорных кадра, соответствующих текущему блоку, получены с разных направлений, и два опорных кадра, соответствующих текущему блоку, находятся на одинаковом расстоянии от текущего сегмента; двунаправленное предсказание используется для текущего блока, и два опорных кадра, соответствующих текущему блоку, имеют одинаковый вес; значение ширины, значение высоты и значение площади текущего блока лежат в ограниченном диапазоне;
причем текущий блок содержит один или более субблоков, выполнение компенсации перемещения на основании режима двунаправленного визуально плавного перемещения в отношении текущего блока содержит:
для каждого субблока из одного или более субблоков, включенных в текущий блок, определяют искомое значение предсказания субблока; и определяют значение предсказания текущего блока на основании искомых значений предсказания всех субблоков, включенных в текущий блок;
причем определение искомого значения предсказания субблока содержит: определение первого исходного значения предсказания и второго исходного значения предсказания субблока; определение горизонтальной скорости субблока на основании первого исходного значения предсказания и второго исходного значения предсказания; определение вертикальной скорости субблока на основании первого исходного значения предсказания и второго исходного значения предсказания; получение значения компенсации предсказания субблока на основании горизонтальной скорости и вертикальной скорости; получение искомого значения предсказания субблока на основании первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания.
Опционально, определение искомого значения предсказания субблока содержит:
определение первого исходного значения предсказания и второго исходного значения предсказания субблока; определение искомого значения предсказания каждого блока 4×4 в субблоке на основании первого исходного значения предсказания и второго исходного значения предсказания субблока; определение искомого значения предсказания субблока на основании искомого значения предсказания каждого блока 4×4 в субблоке.
Опционально, определение искомого значения предсказания блока 4×4 на основании первого исходного значения предсказания и второго исходного значения предсказания субблока содержит:
для каждого блока 4×4 в субблоке определение горизонтальной скорости блока 4×4 на основании первого исходного значения предсказания и второго исходного значения предсказания; определение вертикальной скорости блока 4×4 на основании первого исходного значения предсказания и второго исходного значения предсказания; получение значения компенсации предсказания блока 4×4 на основании горизонтальной скорости и вертикальной скорости блока 4×4; получение искомого значения предсказания блока 4×4 на основании первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания блока 4×4.
Опционально, информация о перемещении текущего блока содержит первый вектор перемещения и первый индекс опорного кадра, второй вектор перемещения и второй индекс опорного кадра; определение первого исходного значения предсказания и второго исходного значения предсказания субблока содержит: определение первого исходного значения предсказания субблока на основании первого вектора перемещения и первого индекса опорного кадра, определение второго исходного значения предсказания субблока на основании второго вектора перемещения и второго индекса опорного кадра.
Опционально, определение первого исходного значения предсказания субблока на основании первого вектора перемещения и первого индекса опорного кадра, определение второго исходного значения предсказания субблока на основании второго вектора перемещения и второго индекса опорного кадра содержит: определение первого опорного блока по первому опорному кадру, соответствующему первому индексу опорного кадра, на основании первого вектора перемещения, и определение первого исходного значения предсказания на основании значения предсказания первого опорного блока; определение второго опорного блока по второму опорному кадру, соответствующему второму индексу опорного кадра, на основании второго вектора перемещения, и определение второго исходного значения предсказания на основании значения предсказания второго опорного блока;
причем значение предсказания первого опорного блока содержит значение предсказания центральной области первого опорного блока и значение предсказания краевой области первого опорного блока, значение предсказания центральной области первого опорного блока получают путем выполнения интерполяции в отношении значения пиксела в первом опорном кадре, и значение предсказания краевой области первого опорного блока получают путем копирования значения пиксела в первом опорном кадре; значение предсказания второго опорного блока содержит значение предсказания центральной области второго опорного блока и значение предсказания краевой области второго опорного блока, значение предсказания центральной области второго опорного блока получают путем выполнения интерполяции в отношении значения пиксела во втором опорном кадре, и значение предсказания краевой области второго опорного блока получают путем копирования значения пиксела во втором опорном кадре.
Опционально, краевая область первого опорного блока представляет собой область, образованную одной строкой и одним столбцом соответственно в верхней, нижней, левой и правой частях, не включающую в себя центральную область, причем значение предсказания краевой области первого опорного блока получают путем копирования значения пиксела с целочисленным базисом, смежного с краевой областью первого опорного блока в первом опорном кадре; причем краевая область второго опорного блока представляет собой область, образованную одной строкой и одним столбцом соответственно в верхней, нижней, левой и правой частях, не включающую в себя центральную область, причем значение предсказания краевой области второго опорного блока получают путем копирования значения пиксела с целочисленным базисом, смежного с краевой областью второго опорного блока во втором опорном кадре.
Опционально, когда текущий блок содержит один субблок, указанный субблок и является текущим блоком; когда текущий блок содержит множество субблоков, информация о перемещении множества субблоков идентична информации о перемещении текущего блока.
Опционально, определение горизонтальной скорости блока 4×4 на основании первого исходного значения предсказания и второго исходного значения предсказания содержит:
определение первого значения предсказания и второго значения предсказания блока 4×4 на основании первого исходного значения предсказания и второго исходного значения предсказания, определение горизонтальной скорости блока 4×4 на основании первого значения предсказания и второго значения предсказания блока 4×4;
определение вертикальной скорости блока 4×4 на основании первого исходного значения предсказания и второго исходного значения предсказания содержит: определение вертикальной скорости блока 4×4 на основании первого значения предсказания и второго значения предсказания блока 4×4;
получение искомого значения предсказания блока 4×4 на основании первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания блока 4×4 содержит: получение искомого значения предсказания блока 4×4 на основании первого значения предсказания блока 4×4, второго значения предсказания блока 4×4 и значения компенсации предсказания блока 4×4.
Опционально, определение первого значения предсказания и второго значения предсказания блока 4×4 на основании первого исходного значения предсказания и второго исходного значения предсказания содержит:
определение блока 6×6, соответствующего блоку 4×4 в первом опорном блоке, получение значения предсказания блока 6×6 на основании первого исходного значения предсказания первого опорного блока и определение значения предсказания блока 6×6 в качестве первого значения предсказания блока 4×4;
определение блока 6×6, соответствующего блоку 4×4 во втором опорном блоке, получение значения предсказания блока 6×6 на основании второго исходного значения предсказания второго опорного блока и определение значения предсказания блока 6×6 в качестве второго значения предсказания блока 4×4.
Опционально, определение горизонтальной скорости и вертикальной скорости блока 4×4 на основании первого исходного значения предсказания и второго исходного значения предсказания содержит:
определение коэффициента S1 автокорреляции суммы горизонтального градиента блока 4×4, коэффициента S2 взаимной корреляции между суммой горизонтального градиента и суммой вертикального градиента блока 4×4, коэффициента S3 взаимной корреляции между разностью значений предсказания во временной области и суммой горизонтального градиента блока 4×4, коэффициента S5 автокорреляции суммы вертикального градиента блока 4×4, коэффициента S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента блока 4×4 на основании первого исходного значения предсказания и второго исходного значения предсказания;
определение горизонтальной скорости и вертикальной скорости блока 4×4 на основании S1, S2, S3, S5 и S6;
причем определение S1, S2, S3, S5 и S6 блока 4×4 на основании первого исходного значения предсказания и второго исходного значения предсказания содержит:
определение суммы горизонтального градиента блока 4×4, суммы вертикального градиента блока 4×4, разности значений предсказания во временной области блока 4×4 на основании первого исходного значения предсказания и второго исходного значения предсказания;
определение S1, S2, S3, S5 и S6 блока 4×4 на основании суммы горизонтального градиента, суммы вертикального градиента, разности значений предсказания во временной области.
Опционально, определение горизонтальной скорости блока 4×4 на основании первого исходного значения предсказания и второго исходного значения предсказания содержит:
определение коэффициента S1 автокорреляции суммы горизонтального градиента блока 4×4, коэффициента S3 взаимной корреляции между разностью значений предсказания во временной области и суммой горизонтального градиента блока 4×4 на основании первого исходного значения предсказания и второго исходного значения предсказания; определение горизонтальной скорости блока 4×4 на основании S1, порогового значения скорости, S3; причем пороговое значение скорости равно 2 в степени М, где М представляет собой положительное целое число;
определение вертикальной скорости блока 4×4 на основании первого исходного значения предсказания и второго исходного значения предсказания содержит:
определение коэффициента S2 взаимной корреляции между суммой горизонтального градиента и суммой вертикального градиента блока 4×4, коэффициента S5 автокорреляции суммы вертикального градиента блока 4×4, коэффициента S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента блока 4×4 на основании первого исходного значения предсказания и второго исходного значения предсказания; определение вертикальной скорости блока 4×4 на основании S2, S5, S6, порогового значения скорости и горизонтальной скорости блока 4×4; причем пороговое значения скорости равно 2 в степени М, где М представляет собой положительное целое число;
причем получение значения компенсации предсказания блока 4×4 на основании горизонтальной скорости и вертикальной скорости блока 4×4 содержит:
определение горизонтального градиента блока 4×4 и вертикального градиента блока 4×4 на основании первого исходного значения предсказания, второго исходного значения предсказания и количества сдвигов вправо градиента; и получение значения компенсации предсказания блока 4×4 на основании горизонтальной скорости блока 4×4, вертикальной скорости блока 4×4, горизонтального градиента блока 4×4 и вертикального градиента блока 4×4.
Опционально, способ дополнительно содержит:
для каждого субблока из одного или более субблоков, включенных в текущий блок, определение того, удовлетворяет ли текущий субблок конкретному условию, причем, если текущий субблок удовлетворяет конкретному условию, выходят из процесса выполнения компенсации предсказания для субблока на основании двунаправленного визуально плавного перемещения, причем процесс выполнения компенсации предсказания для субблока на основании двунаправленного визуально плавного перемещения содержит: для указанного субблока, определение первого исходного значения предсказания и второго исходного значения предсказания субблока; определение искомого значения предсказания каждого блока 4×4 в субблоке на основании первого исходного значения предсказания и второго исходного значения предсказания субблока, определение искомого значения предсказания субблока на основании искомого значения предсказания каждого блока 4×4 в субблоке.
Опционально, определение того, следует ли выйти из процесса выполнения компенсации предсказания для субблока на основании двунаправленного визуально плавного перемещения согласно взаимосвязи между значением SAD субблока и пороговым значением субблока; причем значение SAD субблока представляет собой сумму абсолютных значений разностей двукратно огрубленного по вертикали значения предсказания первого блока предсказания и двукратно огрубленного по вертикали значения предсказания второго блока предсказания; причем первый блок предсказания представляет собой блок предсказания, соответствующий субблоку, полученному по первому опорному кадру согласно первому вектору перемещения текущего блока, а второй блок предсказания представляет собой блок предсказания, соответствующий субблоку, полученному по второму опорному кадру согласно второму вектору перемещения текущего блока.
Опционально, для условий, состоящих в том, что для текущего блока используют двунаправленное предсказание, два опорных кадра, соответствующих текущему блоку, получены с разных направлений, и два опорных кадра, соответствующих текущему блоку, находятся на одинаковом расстоянии от текущего сегмента, если номер текущего сегмента в последовательности отображения равен РОС, а номера двух опорных кадров, соответствующих текущему блоку, в последовательности отображения равны, соответственно, РОС0 и РОС1, то, когда (РОС-РОС0)* (РОС-РОС1)<0, считают, что два опорных кадра получены с разных направлений, и, когда значение (РОС-РОС0) равно значению (РОС1-РОС), считают, что расстояния между двумя опорными кадрами и текущим сегментом равны;
причем, если два опорных кадра, соответствующих текущему блоку, имеют одинаковый вес, то разрешено использование способа взвешенного предсказания на уровне кадра для текущего сегмента, а два веса текущего сегмента точно равны; и разрешено использование способа взвешенного предсказания на уровне блока, Bi-предсказания со взвешиванием на основе CU (block-level weighted prediction method Bi-prediction with CU based weighting), для текущего блока, а два веса текущего блока точно равны;
причем, если режим информации о перемещении субблока не используется для текущего блока, то аффинный режим не используется для текущего блока, и режим временного предсказания вектора перемещения на основе субблока не используется для текущего блока; причем аффинный режим представляет собой режим с использованием модели аффинного перемещения, а режим временного предсказания вектора перемещения на основе субблока представляет собой режим с получением информации о перемещении всего блока во временной области;
причем, если значение ширины, значение высоты и значение площади текущего блока лежат в ограниченном диапазоне, то значение ширины текущего блока больше или равно 8, значение высоты текущего блока больше или равно 8, и произведение значения ширины и значения высоты текущего блока больше или равно 128.
В варианте реализации настоящего изобретения предусмотрен декодирующий аппарат, выполненный с возможностью реализации вышеприведенного способа декодирования.
В варианте реализации настоящего изобретения предусмотрено устройство декодирования видеоданных, содержащее процессор и машиночитаемый носитель информации, причем машиночитаемый носитель информации выполнен с возможностью хранения машиноисполняемых инструкций, которые могут быть исполнены процессором;
процессор выполнен с возможностью исполнения машиноисполняемых инструкций для реализации вышеприведенного способа декодирования.
В варианте реализации настоящего изобретения предусмотрено электронное устройство, содержащее процессор; и память для хранения инструкций, которые могут быть исполнены процессором. Причем процессор выполнен с возможностью реализации вышеприведенного способа декодирования.
В варианте реализации настоящего изобретения предусмотрен долговременный носитель информации, выполненный с возможностью хранения инструкций, которые, при исполнении их процессором, обеспечивают реализацию процессором вышеприведенного способа декодирования.
В варианте реализации настоящего изобретения предусмотрен способ декодирования, содержащий:
когда определяют использование режима двунаправленного визуально плавного перемещения для текущего блока, выполняют компенсацию перемещения на основании режима двунаправленного визуально плавного перемещения в отношении текущего блока, причем при использовании режима двунаправленного визуально плавного перемещения для текущего блока, условия, которым удовлетворяет текущий блок включают в себя по меньшей мере следующее: режим CIIP запрещено использовать для текущего блока, а режим SMVD запрещено использовать для текущего блока;
причем текущий блок содержит один или более субблоков, выполнение компенсации перемещения на основании режима двунаправленного визуально плавного перемещения в отношении текущего блока содержит:
для каждого субблока из одного или более субблоков, включенных в текущий блок, определяют искомое значение предсказания субблока; и определяют значение предсказания текущего блока на основании искомых значений предсказания всех субблоков, включенных в текущий блок;
причем определение искомого значения предсказания субблока содержит: определение первого исходного значения предсказания и второго исходного значения предсказания субблока; определение горизонтальной скорости субблока на основании первого исходного значения предсказания и второго исходного значения предсказания; определение вертикальной скорости субблока на основании первого исходного значения предсказания и второго исходного значения предсказания; получение значения компенсации предсказания субблока на основании горизонтальной скорости и вертикальной скорости; получение искомого значения предсказания субблока на основании первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания.
В варианте реализации настоящего изобретения предусмотрен способ декодирования, содержащий:
когда определяют использование режима двунаправленного визуально плавного перемещения для текущего блока, выполняют компенсацию перемещения на основании режима двунаправленного визуально плавного перемещения в отношении текущего блока, причем при использовании режима двунаправленного визуально плавного перемещения для текущего блока, условия, которым удовлетворяет текущий блок включают в себя по меньшей мере следующее: значение ширины текущего блока больше или равно 8, значение высоты текущего блока больше или равно 8, и произведение значения ширины и значения высоты текущего блока больше или равно 128;
причем текущий блок содержит один или более субблоков, выполнение компенсации перемещения на основании режима двунаправленного визуально плавного перемещения в отношении текущего блока содержит:
для каждого субблока из одного или более субблоков, включенных в текущий блок, определяют искомое значение предсказания субблока; и определяют значение предсказания текущего блока на основании искомых значений предсказания всех субблоков, включенных в текущий блок;
причем определение искомого значения предсказания субблока содержит: определение первого исходного значения предсказания и второго исходного значения предсказания субблока; определение горизонтальной скорости субблока на основании первого исходного значения предсказания и второго исходного значения предсказания; определение вертикальной скорости субблока на основании первого исходного значения предсказания и второго исходного значения предсказания; получение значения компенсации предсказания субблока на основании горизонтальной скорости и вертикальной скорости; получение искомого значения предсказания субблока на основании первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания.
В варианте реализации настоящего изобретения предусмотрен способ декодирования, содержащий:
когда определяют использование режима двунаправленного визуально плавного перемещения для текущего блока, выполняют компенсацию перемещения на основании режима двунаправленного визуально плавного перемещения в отношении текущего блока, причем при использовании режима двунаправленного визуально плавного перемещения для текущего блока, условия, которым одновременно удовлетворяет текущий блок включают в себя по меньшей мере следующее: значение ширины текущего блока больше или равно 8, значение высоты текущего блока больше или равно 8, и произведение значения ширины и значения высоты текущего блока больше или равно 128, режим CIIP запрещено использовать для текущего блока, а режим SMVD запрещено использовать для текущего блока;
причем текущий блок содержит один или более субблоков, выполнение компенсации перемещения на основании режима двунаправленного визуально плавного перемещения в отношении текущего блока содержит:
для каждого субблока из одного или более субблоков, включенных в текущий блок, определяют искомое значение предсказания субблока; и определяют значение предсказания текущего блока на основании искомых значений предсказания всех субблоков, включенных в текущий блок;
причем определение искомого значения предсказания субблока содержит: определение первого исходного значения предсказания и второго исходного значения предсказания субблока; определение горизонтальной скорости субблока на основании первого исходного значения предсказания и второго исходного значения предсказания; определение вертикальной скорости субблока на основании первого исходного значения предсказания и второго исходного значения предсказания; получение значения компенсации предсказания субблока на основании горизонтальной скорости и вертикальной скорости; получение искомого значения предсказания субблока на основании первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания.
В варианте реализации настоящего изобретения предусмотрен способ декодирования, содержащий:
когда определяют использование режима двунаправленного визуально плавного перемещения для текущего блока, выполняют компенсацию перемещения на основании режима двунаправленного визуально плавного перемещения в отношении текущего блока, причем при использовании режима двунаправленного визуально плавного перемещения для текущего блока, условия, которым удовлетворяет текущий блок включают в себя следующее: двунаправленное предсказание используется для текущего блока, и два опорных кадра, соответствующих текущему блоку, получены с разных направлений, и два опорных кадра, соответствующих текущему блоку, находятся на одинаковом расстоянии от текущего сегмента;
причем текущий блок содержит один или более субблоков, выполнение компенсации перемещения на основании режима двунаправленного визуально плавного перемещения в отношении текущего блока содержит:
для каждого субблока из одного или более субблоков, включенных в текущий блок, определяют искомое значение предсказания субблока; и определяют значение предсказания текущего блока на основании искомых значений предсказания всех субблоков, включенных в текущий блок;
причем определение искомого значения предсказания субблока содержит: определение первого исходного значения предсказания и второго исходного значения предсказания субблока; определение горизонтальной скорости субблока на основании первого исходного значения предсказания и второго исходного значения предсказания; определение вертикальной скорости субблока на основании первого исходного значения предсказания и второго исходного значения предсказания; получение значения компенсации предсказания субблока на основании горизонтальной скорости и вертикальной скорости; получение искомого значения предсказания субблока на основании первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания.
В варианте реализации настоящего изобретения предусмотрен способ декодирования, содержащий:
когда определяют использование режима двунаправленного визуально плавного перемещения для текущего блока, выполняют компенсацию перемещения на основании режима двунаправленного визуально плавного перемещения в отношении текущего блока, причем, когда режим двунаправленного визуально плавного перемещения не используется для текущего блока, текущий блок не удовлетворяет по меньшей мере одному из следующих условий: информация управления переключением указывает на то, что разрешено использование режима двунаправленного визуально плавного перемещения для текущего блока; режим информации о перемещении субблока не используется для текущего блока, режим CIIP не используется для текущего блока, и режим SMVD не используется для текущего блока; двунаправленное предсказание используется для текущего блока, и два опорных кадра, соответствующих текущему блоку, получены с разных направлений, и два опорных кадра, соответствующих текущему блоку, находятся на одинаковом расстоянии от текущего сегмента; двунаправленное предсказание используется для текущего блока, и два опорных кадра, соответствующих текущему блоку, имеют одинаковый вес; значение ширины, значение высоты и значение площади текущего блока лежат в ограниченном диапазоне; причем информация о перемещении субблока, не используемая для текущего блока, содержит то, что аффинный режим не используется для текущего блока, и режим временного предсказания вектора перемещения на основе субблока не используется для текущего блока;
причем текущий блок содержит один или более субблоков, выполнение компенсации перемещения на основании режима двунаправленного визуально плавного перемещения в отношении текущего блока содержит:
для каждого субблока из одного или более субблоков, включенных в текущий блок, определяют искомое значение предсказания субблока; и определяют значение предсказания текущего блока на основании искомых значений предсказания всех субблоков, включенных в текущий блок;
причем определение искомого значения предсказания субблока содержит: определение первого исходного значения предсказания и второго исходного значения предсказания субблока; определение горизонтальной скорости субблока на основании первого исходного значения предсказания и второго исходного значения предсказания; определение вертикальной скорости субблока на основании первого исходного значения предсказания и второго исходного значения предсказания; получение значения компенсации предсказания субблока на основании горизонтальной скорости и вертикальной скорости; получение искомого значения предсказания субблока на основании первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания.
В варианте реализации настоящего изобретения предусмотрен декодирующий аппарат, выполненный с возможностью реализации вышеприведенного способа декодирования.
В варианте реализации настоящего изобретения предусмотрен видеодекодер, содержащий процессор и машиночитаемый носитель информации, причем машиночитаемый носитель информации выполнен с возможностью хранения машиноисполняемых инструкций, которые могут быть исполнены процессором. Причем процессор выполнен с возможностью исполнения машиноисполняемых инструкций для реализации вышеприведенного способа декодирования.
В варианте реализации настоящего изобретения предусмотрено устройство декодирования видеоданных, содержащее процессор и машиночитаемый носитель информации, причем машиночитаемый носитель информации выполнен с возможностью хранения машиноисполняемых инструкций, которые могут быть исполнены процессором. Причем процессор выполнен с возможностью исполнения машиноисполняемых инструкций для реализации вышеприведенного способа декодирования.
В варианте реализации настоящего изобретения предусмотрен долговременный носитель информации, выполненный с возможностью хранения инструкций, которые, при исполнении их процессором, обеспечивают реализацию процессором вышеприведенного способа декодирования.
Настоящее изобретение предусматривает способ кодирования и декодирования. Указанный способ содержит выполнение для получения искомого значения предсказания текущего блока или субблока указанного текущего блока, если характеристическая информация указанного текущего блока удовлетворяет конкретному условию, следующих этапов:
определение первого исходного значения предсказания на основании первой информации об однонаправленном перемещении текущего блока, определение второго исходного значения предсказания на основании второй информации об однонаправленном перемещении текущего блока; и определение горизонтальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания; определение вертикальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания;
получение значения компенсации предсказания на основании указанных горизонтальной скорости и вертикальной скорости;
получение искомого значения предсказания на основании указанных первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания.
Настоящее изобретение предусматривает кодирующий и декодирующий аппарат, выполненный с возможностью получения искомого значения предсказания текущего блока или субблока указанного текущего блока, если характеристическая информация указанного текущего блока удовлетворяет конкретному условию. Указанный аппарат содержит:
первый модуль определения, выполненный с возможностью, если характеристическая информация текущего блока удовлетворяет конкретному условию, определения первого исходного значения предсказания на основании первой информации об однонаправленном перемещении текущего блока, и определения второго исходного значения предсказания на основании второй информации об однонаправленном перемещении текущего блока;
второй модуль определения, выполненный с возможностью определения горизонтальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания и с возможностью определения вертикальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания;
первый модуль получения, выполненный с возможностью получения значения компенсации предсказания на основании указанных горизонтальной скорости и вертикальной скорости;
второй модуль получения, выполненный с возможностью получения искомого значения предсказания на основании указанных первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания.
Настоящее изобретение предусматривает кодирующее устройство, содержащее процессор и машиночитаемый носитель информации, выполненный с возможностью хранения машиноисполняемых инструкций, которые могут быть исполнены указанным процессором, причем указанный процессор выполнен с возможностью исполнения машиноисполняемых инструкций, посредством которых для получения искомого значения предсказания текущего блока или субблока указанного текущего блока, если характеристическая информация указанного текущего блока удовлетворяет конкретному условию, выполняются следующие этапы: определение первого исходного значения предсказания на основании первой информации об однонаправленном перемещении текущего блока и определение второго исходного значения предсказания на основании второй информации об однонаправленном перемещении текущего блока; определение горизонтальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания; определение вертикальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания; получение значения компенсации предсказания на основании указанных горизонтальной скорости и вертикальной скорости; получение искомого значения предсказания на основании указанных первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания.
Настоящее изобретение предусматривает декодирующее устройство, содержащее процессор и машиночитаемый носитель информации, выполненный с возможностью хранения машиноисполняемых инструкций, которые могут быть исполнены указанным процессором, причем указанный процессор выполнен с возможностью исполнения машиноисполняемых инструкций, посредством которых для получения искомого значения предсказания текущего блока или субблока текущего блока, если характеристическая информация указанного текущего блока удовлетворяет конкретному условию, выполняются следующие этапы: определение первого исходного значения предсказания на основании первой информации об однонаправленном перемещении текущего блока и определение второго исходного значения предсказания на основании второй информации об однонаправленном перемещении текущего блока; определение горизонтальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания; определение вертикальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания; получение значения компенсации предсказания на основании указанных горизонтальной скорости и вертикальной скорости; получение искомого значения предсказания на основании указанных первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания.
Как можно видеть из вышеприведенных технических решений, в вариантах реализации настоящего изобретения на основании первой информации об однонаправленном перемещении текущего блока определяют первое исходное значение предсказания, на основании второй информации об однонаправленном перемещении текущего блока определяют второе исходное значение предсказания, на основании первого исходного значения предсказания и второго исходного значения предсказания определяют горизонтальную скорость и вертикальную скорость, на основании указанных горизонтальной скорости и вертикальной скорости получают значение компенсации предсказания, и на основании указанного значения компенсации предсказания получают искомое значение предсказания. Вышеописанным способом искомое значение предсказания текущего блока или субблока текущего блока можно получать на основе способа визуально плавного перемещения (англ. optical flow method), что делает более удобной аппаратную реализацию и улучшает производительность кодирования.
Краткое описание чертежей
Далее кратко описываются чертежи, необходимые для более ясного изложения технических решений, содержащихся в вариантах реализации настоящего изобретения или в известном уровне техники. Должно быть понятно, что представленные ниже чертежи относятся только к некоторым вариантам реализации настоящего изобретения. На основании этих чертежей специалисты без каких-либо изобретательских усилий смогут получить и другие чертежи.
Фиг. 1А представляет схему интерполяции согласно варианту реализации настоящего изобретения.
Фиг. 1В представляет схему системы кодирования видеоданных согласно варианту реализации настоящего изобретения.
Фиг. 2 представляет блок-схему способа кодирования и декодирования согласно варианту реализации настоящего изобретения.
Фиг. 3 представляет блок-схему способа кодирования и декодирования согласно варианту реализации настоящего изобретения.
Фиг. 4 представляет схему опорного блока, соответствующего субблоку текущего блока согласно варианту реализации настоящего изобретения.
Фиг. 5 представляет структурную схему кодирующего и декодирующего устройства согласно варианту реализации настоящего изобретения.
Фиг. 6 представляет структурную схему аппаратуры декодирующего устройства согласно варианту реализации настоящего изобретения.
Фиг. 7 представляет структурную схему аппаратуры кодирующего устройства согласно варианту реализации настоящего изобретения.
Осуществление изобретения
Термины в вариантах реализации настоящего изобретения используются только для описания конкретных вариантов варианте реализации, но не для ограничения настоящего изобретения. Формы единственного числа имен существительных, используемых в вариантах реализации и в формуленастоящего изобретения, следует понимать содержащими и формы множественного числа, если контекст явным образом не указывает другие значения. Также следует понимать, что термин «и/или» в настоящем документе следует понимать включающим любую или все возможные комбинации из одного или более элементов соответствующего перечня. Следует понимать, что в вариантах реализации настоящего изобретения для описания различной информации могут использоваться термины «первый», «второй», «третий» и т.п., но эта информация указанными терминами не ограничивается. Указанные термины используются только для того, чтобы различать информацию одного типа. Например, без выхода за пределы объема настоящего изобретения первая информация также может называться второй информацией, и, аналогично, вторая информация может называться первой информацией. Кроме того, в зависимости от контекста используемое здесь слово «если» может интерпретироваться как «в случае…», «когда…» или «в ответ на определение…».
В вариантах реализации настоящего изобретения предлагаются способ кодирования и декодирования, аппарат и устройство, в которых могут использоваться следующие концепции.
Технология внутри кадрового предсказания и межкадрового предсказания. Под внутрикадровым предсказанием понимается устранение избыточности видеоданных во временной области посредством предсказания текущих пикселов на основе пикселов кодируемого блока текущего изображения, при котором используется тот факт, что видеоданные коррелированы в пространственной области. Под межкадровым предсказанием понимается эффективное устранение избыточности видеоданных во временной области посредством предсказания пикселов текущего изображения на основе пикселов соседнего кодируемого изображения, при этом используется тот факт, что из-за корреляции видеоданных во временной области видеопоследовательность также сильно коррелирована во временной области. В межкадровом предсказании, являющемся частью стандарта кодирования видеоданных, в основном используется технология компенсации движения на основе блоков. Ее принцип состоит в поиске оптимально соответствующего блока в ранее кодированном изображении для каждого пиксельного блока текущего изображения. Эта операция называется измерением перемещения (англ. Motion Estimation, ME).
Вектор перемещения (англ. Motion Vector, MV). При межкадровом кодировании для представления относительного смещения между текущим кодируемым блоком и оптимально соответствующим блоком в опорном изображении может использоваться вектор перемещения. Каждый выделенный блок имеет соответствующий вектор перемещения, который должен быть передан декодирующей стороне. При независимом кодировании и передаче вектора перемещения каждого блока, особенно когда деление выполняется на блоки небольшого размера, требуется значительное количество битов. Чтобы снизить количество битов, необходимое для кодирования вектора перемещения, можно использовать пространственную корреляцию между соседними блоками изображения и предсказывать вектор перемещения текущего блока с кодированием на основании вектора перемещения соседнего кодированного блока, а затем можно кодировать разность для этого предсказания. Указанным образом можно эффективно снизить количество битов, которые требуются для представления вектора перемещения. В операции кодирования вектора перемещения текущего блока вектор перемещения текущего блока вначале предсказывают с использованием вектора перемещения соседних кодированных блоков, а затем кодируют разность (англ. Motion Vector Difference, MVD) между предсказанным вектором перемещения (Motion Vector Prediction, MVP) и фактически измеренным значением вектора перемещения, что позволяет эффективно снижать количество битов для кодирования вектора перемещения.
Информация о перемещении. Вектор перемещения представляет позиционный сдвиг между текущим блоком изображения и опорным блоком изображения, и для получения точной информации, относящийся к блоку изображения, кроме вектора перемещения также необходима информация об индексе изображения опорного кадра, указывающая, какое изображение опорного кадра используется. В технологии кодирования видеоданных для текущего сегмента изображения обычно создается список изображений опорного кадра, и информация об индексе изображения опорного кадра указывает в списке изображений опорного кадра то изображение опорного кадра, которое используется текущим блоком изображения. Во многих технологиях кодирования поддерживается множество списков опорных изображений. В связи с этим для указания используемого списка опорных изображений также может использоваться значение индекса, которое может называться опорным направлением. В технологии кодирования видеоданных информация, относящаяся к перемещению, например, вектор перемещения, индекс опорного кадра, опорное направление, может обобщенно называться информацией о перемещении.
1/2
a
k
Интерполяция. Если текущий вектор перемещения не является вектором в пиксельной сетке с целочисленным базисом, то получить значение пиксела непосредственным копированием из соответствующего опорного кадра невозможно, и значение пиксела необходимо получать путем интерполяции. Как показано на фиг. 1А, если требуется значение Y пиксела, сдвинутого на 1/2 пиксела, то его получают путем интерполирования известных значений соседних пикселов X. Если используется интерполирующий фильтр с N отводами, то указанное значение получают путем интерполирования N соседних пикселов из пиксельной сетки с целочисленным базисом. Если количество N отводов равно 8, то  где  представляет собой коэффициент фильтра, т.е. весовой коэффициент.
Компенсация движения. Операция компенсации движения представляет собой получение значений всех предсказываемых пикселов текущего блока посредством интерполяции или копирования.
Система кодирования видеоданных. На фиг. 1В показано, что на кодирующей стороне последовательность операций обработки, основанная на варианте реализации настоящего изобретения, может осуществляться с использованием системы кодирования видеоданных. Система декодирования видеоданных аналогична представленной на фиг. 1В и здесь не повторяется. На декодирующей стороне последовательность операций обработки, основанная на варианте реализации настоящего изобретения, может осуществляться с использованием системы декодирования видеоданных. Конкретнее, система кодирования видеоданных и система декодирования видеоданных содержат, например, модули для внутрикадрового предсказания, измерения перемещения/компенсации движения, буфера опорного изображения, фильтрации внутри контура, восстановления, преобразования, квантования, обратного преобразования, деквантования, энтропийного кодирования. На кодирующей стороне последовательность операций обработки может быть реализована посредством совместного действия указанных модулей. На декодирующей стороне последовательность операций обработки может быть реализована посредством совместного действия указанных модулей.
В известном способе, когда текущий блок является двунаправленным блоком (т.е. когда текущий блок представляет собой блок, в котором используется двунаправленное предсказание), между предсказанными изображениями по двум различным направлениям обычно имеет место зеркально-симметричная взаимосвязь. В используемой сейчас системе кодирования эта особенность не в полной мере используется для дополнительного устранения избыточности, результатом чего могут стать, например, такие недостатки, как низкая производительность кодирования. Исходя из вышеприведенных выводов, в варианте реализации настоящего изобретения предлагается, когда текущий блок является двунаправленным блоком, использовать способ коррекции сигнала предсказания, основанный на способе визуально плавного перемещения, при этом исходное значение предсказания может быть получено на основании исходной информации о перемещении, а значение компенсации предсказания может быть получено посредством формулы для визуально плавного перемещения. На основании значения компенсации предсказания и исходного значения предсказания получают искомое значение предсказания текущего блока. Вышеописанный способ дает возможность получать искомое значение предсказания текущего блока с использованием способа визуально плавного перемещения, что делает более удобной аппаратную реализацию и приводит к улучшению производительности кодирования, т.е. производительность кодирования и эффективность кодирования могут быть повышены.
Далее предлагаемый настоящим изобретением способ кодирования и декодирования описывается подробно на примере нескольких конкретных вариантов варианте реализации.
Вариант реализации 1. Фиг. 2 представляет блок-схему способа кодирования и декодирования, который может использоваться декодирующей стороной или кодирующей стороной. В этом способе текущий блок или искомое значение предсказания субблока текущего блока получают, выполняя описываемые далее этапы. Получить искомое значение предсказания текущего блока можно, выполнив приведенные далее этапы для текущего блока. Если текущий блок разделен на по меньшей мере один субблок, то получить искомое значение предсказания субблока текущего блока можно, выполнив приведенные далее этапы для каждого субблока текущего блока. Указанный способ содержит следующие этапы.
На этапе 201, если характеристическая информация текущего блока удовлетворяет конкретному условию, на основании первой информации об однонаправленном перемещении текущего блока определяют первое исходное значение предсказания и на основании второй информации об однонаправленном перемещении текущего блока определяют второе исходное значение предсказания.
Текущий блок может быть, например, двунаправленным блоком, т.е. блоком, использующим двунаправленное предсказание. Иными словами, информация о перемещении для текущего блока представляет собой информацию о двунаправленном перемещении, которая может содержать информацию о перемещении по двум различным направлениям. Такая информация о перемещении по двум различным направлениям называется первой информацией об однонаправленном перемещении и второй информацией об однонаправленном перемещении. Первая информация об однонаправленном перемещении может соответствовать первому опорному кадру, находящемуся перед текущим сегментом, в котором находится текущий блок. Вторая информация об однонаправленном перемещении может соответствовать второму опорному кадру, находящемуся за текущим сегментом, в котором находится текущий блок.
Например, указанная характеристическая информация может содержать, без ограничения приведенным перечнем, одно или более из атрибута информации о перемещении; атрибута режима предсказания; информации о размере; информации управления переключением на уровне последовательности. Разумеется, этими несколькими вышеприведенными примерами настоящее изобретение не ограничивается.
Если характеристическая информация содержит атрибут информации о перемещении, то определяют, что указанный атрибут информации о перемещении удовлетворяет указанному конкретному условию, если удовлетворяет по меньшей мере одному из следующих условий: 1. для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, получены с разных направлений; 2. текущий блок содержит множество субблоков, и у всех субблоков этого множества информация о перемещении одинаковая; 3. для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, имеют одинаковый вес; 4. для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, находятся на одинаковом расстоянии от текущего сегмента; 5. для текущего блока используется двунаправленное предсказание, и разность между значениями предсказания указанных двух опорных кадров, соответствующих текущему блоку, меньше заранее заданного порогового значения. Разумеется, этими несколькими вышеприведенными примерами настоящее изобретение не ограничивается.
Для случая 5 также необходимо получать разность между значениями предсказания двух опорных кадров, соответствующих текущему блоку. Для получения указанной разности может использоваться способ, в котором получают первый блок предсказания по первому опорному кадру на основании первой информации об однонаправленном перемещении текущего блока, и получают второй блок предсказания по второму опорному кадру на основании второй информации об однонаправленном перемещении текущего блока; получают разность между значениями предсказания первого опорного кадра и значением предсказания второго опорного кадра на основании суммы абсолютных значений разностей (англ. Sum of Absolute Difference, SAD) огрубленного значения предсказания первого блока предсказания и огрубленного значения предсказания второго блока предсказания; как вариант, может использоваться способ, в котором получают первый блок предсказания по первому опорному кадру на основании первой информации об однонаправленном перемещении текущего блока, и получают второй блок предсказания по второму опорному кадру на основании второй информации об однонаправленном перемещении текущего блока; получают разность между значениями предсказания первого опорного кадра и значением предсказания второго опорного кадра на основании SAD значения предсказания первого блока предсказания и значения предсказания второго блока предсказания.
Если характеристическая информация содержит атрибут режима предсказания, то определяют, что указанный атрибут режима предсказания удовлетворяет указанному конкретному условию, если он указывает на то, что режим слияния на основании комбинированного межкадрового и внутрикадрового предсказания не используется и/или на то, что режим симметричной разности векторов перемещения не используется.
Если характеристическая информация содержит информацию управления переключением на уровне последовательности, то определяют, что указанная информация управления переключением на уровне последовательности удовлетворяет указанному конкретному условию, если она указывает на то, что для текущего блока разрешено использовать способ двунаправленного визуально плавного перемещения.
Если характеристическая информация содержит информацию о размере, содержащую по меньшей мере одно из значения ширины, значения высоты и значения площади, то определяют, что указанная информация о размере удовлетворяет указанному конкретному условию, если по меньшей мере одно из значения ширины, значения высоты и значения площади в информации о размере удовлетворяет соответствующему условию на пороговое значение. Например, может определяют, что информация о размере удовлетворяет указанному конкретному условию, если указанная информация о размере удовлетворяет по меньшей мере одному из нижеперечисленных условий: значение ширины текущего блока больше или равно первому пороговому значению и меньше или равно второму пороговому значению; значение высоты текущего блока больше или равно третьему пороговому значению и меньше или равно четвертому пороговому значению; значение площади текущего блока больше или равно пятому пороговому значению и меньше или равно шестому пороговому значению. Разумеется, этими несколькими вышеприведенными примерами настоящее изобретение не ограничивается.
Например, первое пороговое значение может быть меньше второго порогового значения, а как первое пороговое значение, так и второе пороговое значение могут быть равны числу 2 в целой положительной степени. Как первое пороговое значение, так и второе пороговое значение не ограничены. Например, первое пороговое значение может быть равно 8, а второе пороговое значение может быть равно 128. Третье пороговое значение может быть меньше четвертого порогового значения, и как третье пороговое значение, так и четвертое пороговое значение могут быть равны числу 2 в целой положительной степени. Как третье пороговое значение, так и четвертое пороговое значение не ограничены. Например, третье пороговое значение может быть равно 8, а четвертое пороговое значение может быть равно 128. Пятое пороговое значение может быть меньше шестого порогового значения, и как пятое пороговое значение, так и шестое пороговое значение могут быть равны числу 2 в целой положительной степени. Как пятое пороговое значение, так и шестое пороговое значение не ограничены. Например, пятое пороговое значение может быть равно 64 (т.е. 8*8), а шестое пороговое значение может быть равно 16384 (т.е. 128*128). Разумеется, вышеприведенные пороговые значения представляют собой лишь примеры и ограничений на эти пороговые значения нет.
Характеристическая информация может содержать, например, одно или более из атрибута информации о перемещении, атрибута режима предсказания, информации о размере и информации управления переключением на уровне последовательности. Если указанная характеристическая информация содержит атрибут информации о перемещении, то признаком того, что характеристическая информация удовлетворяет конкретному условию, может быть то, что указанный атрибут информации о перемещении удовлетворяет конкретному условию. Если характеристическая информация содержит атрибут режима предсказания, то признаком того, что характеристическая информация удовлетворяет конкретному условию, может быть то, что указанный атрибут режима предсказания удовлетворяет конкретному условию. Если характеристическая информация содержит информацию о размере, то признаком того, что характеристическая информация удовлетворяет конкретному условию, может быть то, что указанная информация о размере удовлетворяет конкретному условию. Если характеристическая информация содержит информацию управления переключением на уровне последовательности, то признаком того, что характеристическая информация удовлетворяет конкретному условию, может быть то, что указанная информация управления переключением на уровне последовательности удовлетворяет конкретному условию.
Если характеристическая информация содержит по меньшей мере два элемента из атрибута информации о перемещении, атрибута режима предсказания, информации о размере и информации управления переключением на уровне последовательности. Например, если характеристическая информация содержит атрибут информации о перемещении и атрибут режима предсказания, то признаком того, что характеристическая информация удовлетворяет конкретному условию, может быть то, что и атрибут информации о перемещении удовлетворяет конкретному условию, и атрибут режима предсказания удовлетворяет конкретному условию. В еще одном примере, если характеристическая информация содержит атрибут информации о перемещении, информацию о размере и информацию управления переключением на уровне последовательности, то признаком того, что характеристическая информация удовлетворяет конкретному условию, может быть то, что, соответственно, атрибут информации о перемещении удовлетворяет конкретному условию, информация о размере удовлетворяет конкретному условию и информация управления переключением на уровне последовательности удовлетворяет конкретному условию. Разумеется, вышеприведенные варианты функционирования представляют собой лишь несколько примеров, которыми настоящее изобретение не ограничивается.
Определение первого исходного значения предсказания на основании первой информации об однонаправленном перемещении текущего блока и определение второго исходного значения предсказания на основании второй информации об однонаправленном перемещении текущего блока может, без ограничения, содержать, например: определение первого опорного блока по первому опорному кадру и определение первого исходного значения предсказания первого опорного блока на основании первой информации об однонаправленном перемещении текущего блока, при этом первое исходное значение предсказания центральной области первого опорного блока получают путем интерполирования значения пиксела в первом опорном кадре, а первое исходное значение предсказания краевой области первого опорного блока получают путем копирования значения пиксела в первом опорном кадре; определение второго опорного блока по второму опорному кадру на основании второй информации об однонаправленном перемещении текущего блока и определение второго исходного значения предсказания второго опорного блока, при этом второе исходное значение предсказания центральной области второго опорного блока получают путем интерполирования значения пиксела во втором опорном кадре, а второе исходное значение предсказания краевой области второго опорного блока получают путем копирования значения пиксела во втором опорном кадре.
Например, первый опорный блок, соответствующий текущему блоку, может определяться по первому опорному кадру на основании первой информации об однонаправленном перемещении текущего блока. Если предположить, что размер текущего блока равен М*М, а размер первого опорного блока равен N*N, то N может быть больше М, например, М может быть равно 4, а N может быть равно 6. Первый опорный блок может быть разделен на центральную область и краевую область. Центральной областью первого опорного блока называется область размером М*М с центром в центральной точке первого опорного блока; краевой областью первого опорного блока называется область в первом опорном блоке, отличная от указанной центральной области. Для центральной области первого опорного блока первое исходное значение предсказания центральной области первого опорного блока получают путем интерполирования значения пиксела в первом опорном кадре. Для краевой области первого опорного блока первое исходное значение предсказания краевой области первого опорного блока получают путем копирования значения пиксела в первом опорном кадре.
Второй опорный блок, соответствующий текущему блоку, может определяться по второму опорному кадру на основании второй информации об однонаправленном перемещении текущего блока. Если предположить, что размер текущего блока равен М*М, а размер второго опорного блока равен N*N, то N может быть больше М, например, М может быть равно 4 и N может быть равно 6. Второй опорный блок может быть разделен на центральную область и краевую область. Центральной областью второго опорного блока называется область размером М*М с центром в центральной точке второго опорного блока, а краевой областью второго опорного блока называется область во втором опорном блоке, отличная от указанной центральной области. Для центральной области второго опорного блока второе исходное значение предсказания центральной области второго опорного блока получают путем интерполирования значения пиксела во втором опорном кадре. Для краевой области второго опорного блока второе исходное значение предсказания краевой области второго опорного блока получают путем копирования значения пиксела во втором опорном кадре.
Определение первого исходного значения предсказания на основании первой информации об однонаправленном перемещении текущего блока и определение второго исходного значения предсказания на основании второй информации об однонаправленном перемещении текущего блока может без ограничения, содержать, например: определение первого опорного блока по первому опорному кадру на основании первой информации об однонаправленном перемещении текущего блока и определение первого исходного значения предсказания первого опорного блока, при этом указанное первое исходное значение предсказания получают путем интерполирования значения пиксела в первом опорном кадре; определение второго опорного блока по второму опорному кадру на основании второй информации об однонаправленном перемещении текущего блока и определение второго исходного значения предсказания второго опорного блока. Указанное второе исходное значение предсказания получают путем интерполирования значения пиксела во втором опорном кадре. Например, первый опорный блок, соответствующий текущему блоку, может определяться по первому опорному кадру на основании первой информации об однонаправленном перемещении текущего блока. Если предположить, что размер текущего блока равен М*М, то размер первого опорного блока может быть равен М*М. Второй опорный блок, соответствующий текущему блоку, может определяться по второму опорному кадру на основании второй информации об однонаправленном перемещении текущего блока. Если предположить, что размер текущего блока равен М*М, то размер второго опорного блока может быть равен М*М.
На этапе 202 на основании первого исходного значения предсказания и второго исходного значения предсказания определяют горизонтальную скорость.
Горизонтальной скоростью, например, называется скорость в горизонтальном направлении (т.е. в направлении X) субблока, соответствующего текущему блоку, в опорном кадре (т.е. субблока, находящегося в опорном кадре, соответствующего текущему блоку). Как вариант, горизонтальной скоростью называется скорость в горизонтальном направлении (т.е. в направлении X) субблока, соответствующего субблоку текущего блока, в опорном кадре (т.е. субблока, находящегося в опорном кадре, соответствующего субблоку текущего блока).
Определение горизонтальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания может, без ограничения, содержать, например, следующие варианты.
Вариант 1: определение коэффициента S1 автокорреляции суммы горизонтального градиента и коэффициента S3 взаимной корреляции между разностью значений предсказания во временной области и суммой горизонтального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания; и затем определение горизонтальной скорости на основании коэффициента S1 автокорреляции, порогового значения скорости, коэффициента S3 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения.
Вариант 2: если первое заранее заданное условие выполнено, определение коэффициента S2 взаимной корреляции между суммой горизонтального градиента и суммой вертикального градиента, коэффициента S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания; и затем определение горизонтальной скорости на основании коэффициента S2 взаимной корреляции, порогового значения скорости, коэффициента S6 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения; если же первое заранее заданное условие не выполнено, определение коэффициента S1 автокорреляции суммы горизонтального градиента и коэффициента S3 взаимной корреляции между разностью значений предсказания во временной области и суммой горизонтального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания; и определение горизонтальной скорости на основании коэффициента S1 автокорреляции, порогового значения скорости, коэффициента S3 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения.
Первое заранее заданное условие может определяться, например, на основании коэффициента S2 взаимной корреляции и коэффициента S5 автокорреляции суммы вертикального градиента.
Вариант 3: если второе заранее заданное условие выполнено, определение коэффициента S1 автокорреляции суммы горизонтального градиента, коэффициента S2 взаимной корреляции между суммой горизонтального градиента и суммой вертикального градиента, коэффициента S3 взаимной корреляции между разностью значений предсказания во временной области и суммой горизонтального градиента, коэффициента S5 автокорреляции суммы вертикального градиента, коэффициента S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания; определение горизонтальной скорости на основании коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, первого коэффициента увеличения и второго коэффициента увеличения; если же второе заранее заданное условие не выполнено, определение коэффициента S1 автокорреляции суммы горизонтального градиента и коэффициента S3 взаимной корреляции между разностью значений предсказания во временной области и суммой горизонтального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания; и определение горизонтальной скорости на основании коэффициента S1 автокорреляции, порогового значения скорости, коэффициента S3 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения.
Второе заранее заданное условие может определяться, например, на основании коэффициента S2 взаимной корреляции и коэффициента S5 автокорреляции.
На этапе 203 на основании первого исходного значения предсказания и второго исходного значения предсказания определяют вертикальную скорость.
Вертикальной скоростью, например, называется скорость в вертикальном направлении (т.е. в направлении Y) субблока, соответствующего текущему блоку в опорном кадре (т.е. субблока, находящегося в опорном кадре, соответствующего текущему блоку). Как вариант, вертикальной скоростью называется скорость в вертикальном направлении (т.е. в направлении Y) субблока, соответствующего субблоку текущего блока, в опорном кадре (т.е. субблока, находящегося в опорном кадре, соответствующего субблоку текущего блока).
Определение вертикальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания может, без ограничения, содержать, например, следующие варианты.
Вариант 1: определение коэффициента S2 взаимной корреляции между суммой горизонтального градиента и суммой вертикального градиента, коэффициента S5 автокорреляции суммы вертикального градиента, коэффициента S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания; и затем определение вертикальной скорости на основании коэффициента S2 взаимной корреляции, коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, горизонтальной скорости, первого коэффициента увеличения и второго коэффициента увеличения.
Вариант 2: получение, без ограничивающей обработки, неограниченной горизонтальной скорости на основании первого исходного значения предсказания и второго исходного значения предсказания, и определение вертикальной скорости на основании указанной неограниченной горизонтальной скорости.
Например, на основании первого исходного значения предсказания и второго исходного значения предсказания могут определяться коэффициент S1 автокорреляции суммы горизонтального градиента, коэффициент S2 взаимной корреляции между суммой горизонтального градиента и суммой вертикального градиента, коэффициент S3 взаимной корреляции между разностью значений предсказания во временной области и суммой горизонтального градиента, коэффициент S5 автокорреляции суммы вертикального градиента, коэффициент S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента. Затем на основании коэффициента S1 автокорреляции, коэффициента S3 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения может определяться неограниченная горизонтальная скорость, и на основании коэффициента S2 взаимной корреляции, коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, неограниченной горизонтальной скорости, первого коэффициента увеличения и второго коэффициента увеличения может определяться вертикальная скорость.
Вариант 3: если выполнено третье заранее заданное условие, определение коэффициента S5 автокорреляции суммы вертикального градиента, коэффициента S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания, и затем определение вертикальной скорости на основании коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, первого коэффициента увеличения и второго коэффициента увеличения; если же третье заранее заданное условие не выполнено, определение коэффициента S2 взаимной корреляции между суммой горизонтального градиента и суммой вертикального градиента, коэффициента S5 автокорреляции суммы вертикального градиента, коэффициента S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания, и затем определение вертикальной скорости на основании коэффициента S2 взаимной корреляции, коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, горизонтальной скорости, первого коэффициента увеличения и второго коэффициента увеличения.
Указанное третье заранее заданное условие может определяться, например, на основании горизонтальной скорости.
Сумма горизонтального градиента, сумма вертикального градиента и разность значений предсказания во временной области на этапе 202 и этапе 203 могут определяться на основании первого исходного значения предсказания, второго исходного значения предсказания, первого коэффициента увеличения и второго коэффициента увеличения. Коэффициент S1 автокорреляции суммы горизонтального градиента, коэффициент S2 взаимной корреляции между суммой горизонтального градиента и суммой вертикального градиента, коэффициент S3 взаимной корреляции между разностью значений предсказания во временной области и суммой горизонтального градиента, коэффициент S5 автокорреляции суммы вертикального градиента, коэффициент S6 взаимной корреляции между разностью значений предсказания во временной области исуммой вертикального градиента могут определяться на основании суммы горизонтального градиента, суммы вертикального градиента и разности значений предсказания во временной области.
Например, значение коэффициента S2 взаимной корреляции может лежать между первым пороговым значением коэффициента взаимной корреляции и вторым пороговым значением коэффициента взаимной корреляции, а значение коэффициента S6 взаимной корреляции может лежать между третьим пороговым значением коэффициента взаимной корреляции и четвертым пороговым значением коэффициента взаимной корреляции.
Например, если коэффициент S2 взаимной корреляции, полученный на основании первого исходного значения предсказания, второго исходного значения предсказания, первого коэффициента увеличения и второго коэффициента увеличения меньше первого порогового значения коэффициента взаимной корреляции, то коэффициент S2 взаимной корреляции делают равным первому пороговому значению коэффициента взаимной корреляции. Если коэффициент S2 взаимной корреляции, полученный на основании первого исходного значения предсказания, второго исходного значения предсказания, первого коэффициента увеличения и второго коэффициента увеличения больше второго порогового значения коэффициента взаимной корреляции, то коэффициент S2 взаимной корреляции делают равным второму пороговому значению коэффициента взаимной корреляции. Если коэффициент S2 взаимной корреляции, полученный на основании первого исходного значения предсказания, второго исходного значения предсказания, первого коэффициента увеличения и второго коэффициента увеличения больше или равен первому пороговому значению коэффициента взаимной корреляции и меньше или равен второму пороговому значению коэффициента взаимной корреляции, то коэффициент S2 взаимной корреляции оставляют неизменным.
Если коэффициент S6 взаимной корреляции, полученный на основании первого исходного значения предсказания, второго исходного значения предсказания, первого коэффициента увеличения и второго коэффициента увеличения, меньше третьего порогового значения коэффициента взаимной корреляции, то коэффициент S6 взаимной корреляции делают равным третьему пороговому значению коэффициента взаимной корреляции. Если коэффициент S6 взаимной корреляции, полученный на основании первого исходного значения предсказания, второго исходного значения предсказания, первого коэффициента увеличения и второго коэффициента увеличения больше четвертого порогового значения коэффициента взаимной корреляции, то коэффициент S6 взаимной корреляции делают равным четвертому пороговому значению коэффициента взаимной корреляции. Если коэффициент S6 взаимной корреляции, полученный на основании первого исходного значения предсказания, второго исходного значения предсказания, первого коэффициента увеличения и второго коэффициента увеличения больше или равен третьему пороговому значению коэффициента взаимной корреляции и меньше или равен четвертому пороговому значению коэффициента взаимной корреляции, то коэффициент S6 взаимной корреляции оставляют неизменным.
Например, первый коэффициент увеличения может быть равным меньшему из 5 и (BD-7) или большему из 1 и (BD-11). Разумеется, выше приведен лишь пример первого коэффициента увеличения, которым настоящее изобретение не ограничивается и который может задаваться в соответствии с опытом.
Например, второй коэффициент увеличения может быть равным меньшему из 8 и (BD-4) или большему из 4 и (BD-8). Разумеется, выше приведен лишь пример второго коэффициента увеличения, которым настоящее изобретение не ограничивается и который может задаваться в соответствии с опытом.
Например, пороговое значение скорости может быть равным 2 в степени М, где М представляет собой разность между 13 и BD, или может быть равным большему из 5 и (BD-7). Разумеется, выше приведен лишь пример порогового значения скорости, которым настоящее изобретение не ограничивается и который может задаваться в соответствии с опытом.
Битовая глубина (англ. Bit Depth, BD) представляет собой битовую ширину, необходимую для представления каждого из значений цветности или яркости пиксела.
На этапе 204 на основании горизонтальной скорости и вертикальной скорости получают значение компенсации предсказания.
Получение значения компенсации предсказания на основании горизонтальной скорости и вертикальной скорости может, без ограничения, содержать, например, определение горизонтального градиента и вертикального градиента на основании первого исходного значения предсказания, второго исходного значения предсказания и количества битов сдвига градиента вправо и получение значения компенсации предсказания на основании горизонтальнойскорости, вертикальной скорости, горизонтального градиента и вертикального градиента.
Например, количество битов сдвига градиента вправо может быть равным большему из 2 и (14-BD) или большему из 6 и (BD-6). Разумеется, выше приведен лишь пример количества битов сдвига градиента вправо, которым настоящее изобретение не ограничивается и который может задаваться в соответствии с опытом.
На этапе 205 на основании первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания получают искомое значение предсказания.
Например, когда вышеописанный способ используется для получения искомого значения предсказания текущего блока, если характеристическая информация текущего блока удовлетворяет конкретному условию, на основании первой информации об однонаправленном перемещении текущего блока определяют первое исходное значение предсказания для текущего блока и на основании второй информации об однонаправленном перемещении текущего блока определяют второе исходное значение предсказания для текущего блока. На основании первого исходного значения предсказания и второго исходного значения предсказания определяют горизонтальную скорость для текущего блока и на основании первого исходного значения предсказания и второго исходного значения предсказания определяют вертикальную скорость для текущего блока. Затем на основании горизонтальной скорости и вертикальной скорости получают значение компенсации предсказания для текущего блока и на основании первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания получают искомое значение предсказания для текущего блока. К этому моменту искомое значение предсказания для текущего блока успешно получено.
Когда текущий блок разделен на по меньшей мере один субблок и для получения искомого значения предсказания каждого субблока текущего блока используется, например, вышеописанный способ, если характеристическая информация текущего блока удовлетворяет конкретному условию, то для каждого субблока текущего блока на основании первой информации об однонаправленном перемещении указанного субблока (которая та же, что и первая информация об однонаправленном перемещении текущего блока) определяют первое исходное значение предсказания для субблока и на основании второй информации об однонаправленном перемещении указанного субблока (которая та же, что и вторая информация об однонаправленном перемещении текущего блока) определяют второе исходное значение предсказания для субблока, на основании первого исходного значения предсказания и второго исходного значения предсказания определяют горизонтальную скорость для указанного субблока и на основании первого исходного значения предсказания и второго исходного значения предсказания определяют вертикальную скорость для указанного субблока. Затем на основании горизонтальной скорости и вертикальной скорости получают значение компенсации предсказания для указанного субблока и на основании первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания получают искомое значение предсказания для указанного субблока.
К этому моменту искомое значение предсказания для субблока успешно получено. По сути, искомое значение предсказания текущего блока получают после получения искомого значения предсказания каждого субблока текущего блока.
Как можно видеть в вышеприведенных технических решениях, в вариантах реализации настоящего изобретения на основании первой информации об однонаправленном перемещении текущего блока можно определить первое исходное значение предсказания, на основании второй информации об однонаправленном перемещении текущего блока можно определить второе исходное значение предсказания, на основании первого исходного значения предсказания и второго исходного значения предсказания можно определить горизонтальную скорость и вертикальную скорость, на основании горизонтальной скорости и вертикальной скорости можно получить значение компенсации предсказания, и на основании значения компенсации предсказания можно получить искомое значение предсказания. Используя вышеописанный способ, текущий блок или искомое значение предсказания субблока текущего блока можно получать на основе способа визуально плавного перемещения, что делает более удобной аппаратную реализацию и улучшает производительность кодирования.
Вариант реализации 2. В варианте реализации настоящего изобретения предлагается способ кодирования и декодирования, который может использоваться декодирующей стороной или кодирующей стороной. На фиг. 3 представлена блок-схема этого способа кодирования и декодирования. Например, если характеристическая информация текущего блока удовлетворяет конкретному условию, то для получения искомого значения предсказания каждого субблока текущего блока для каждого субблока текущего блока могут выполняться следующие этапы.
На этапе 301, если характеристическая информация текущего блока удовлетворяет конкретному условию, на основании первой информации об однонаправленном перемещении текущего блока (т.е. первой информации об однонаправленном перемещении субблока текущего блока) определяют первое исходное значение предсказания указанного субблока и на основании второй информации об однонаправленном перемещении текущего блока (т.е. второй информации об однонаправленном перемещении субблока текущего блока) определяют второе исходное значение предсказания указанного субблока.
Например, если текущий блок является двунаправленным блоком (т.е. текущий блок представляет собой блок, использующий двунаправленное предсказание), может быть получена информация о двунаправленном перемещении текущего блока, без ограничений на способ получения. Эта информация о двунаправленном перемещении содержит информацию о перемещении в двух различных направлениях. Две информации о перемещении в двух различных направлениях называются первой информацией об однонаправленном перемещении (например, первый вектор перемещения и первый индекс опорного кадра) и второй информацией об однонаправленном перемещении (например, второй вектор перемещения и второй индекс опорного кадра). Первый опорный кадр (например, опорный кадр 0) может определяться на основании первой информации об однонаправленном перемещении и находиться перед текущим сегментом, в котором находится текущий блок. Второй опорный кадр (например, опорный кадр 1) может определяться на основании второй информации об однонаправленном перемещении и находиться за текущим сегментом, в котором находится текущий блок.
Например, для каждого субблока текущего блока первая информация об однонаправленном перемещении указанного субблока та же, что и первая информация об однонаправленном перемещении текущего блока, а вторая информация об однонаправленном перемещении указанного субблока та же, что и вторая информация об однонаправленном перемещении текущего блока.
Указанная характеристическая информация может содержать, например, одно или более из атрибута информации о перемещении, атрибута режима предсказания, информации о размере и информации управления переключением на уровне последовательности. Информация о конкретном условии, которому должна удовлетворять характеристическая информация, приведена при описании этапа 201 и здесь не повторяется.
Определение первого исходного значения предсказания указанного субблока на основании первой информации об однонаправленном перемещении текущего блока и определение второго исходного значения предсказания субблока на основании второй информации об однонаправленном перемещении текущего блока может, например, содержать: определение первого опорного блока, соответствующего субблоку текущего блока, по первому опорному кадру на основании первой информации об однонаправленном перемещении текущего
(0)
блока, и определение первого исходного значения I(x,у) предсказания первого
(1)
опорного блока; определение второго опорного блока, соответствующего субблоку текущего блока, по второму опорному кадру на основании второй информации об однонаправленном перемещении текущего блока, и определение второго исходного значения I(x,у) предсказания второго опорного блока.
Информация о способе определения первого исходного значения предсказания и второго исходного значения предсказания приведена при описании этапа 201 и здесь не повторяется.
На этапе 302 на основании первого исходного значения предсказания и второго исходного значения предсказания указанного субблока определяют сумму горизонтального градиента, сумму вертикального градиента и разность значений предсказания во временной области. Например, сумма горизонтального градиента, сумма вертикального градиента и разность значений предсказания во временной области определяется на основании первого исходного значения предсказания субблока, второго исходного значения предсказания субблока, первого коэффициента увеличения и второго коэффициента увеличения.
На этапе 303 на основании суммы горизонтального градиента, суммы вертикального градиента и разности значений предсказания во временной области определяют коэффициент S1 автокорреляции суммы горизонтального градиента (далее называемый коэффициентом S1 автокорреляции), коэффициент S2 взаимной корреляции между суммой горизонтального градиента и суммой вертикального градиента (далее называемый коэффициентом S2 взаимной корреляции), коэффициент S3 взаимной корреляции между разностью значений предсказания во временной области и суммой горизонтального градиента (далее называемый коэффициентом S3 взаимной корреляции), коэффициент S5 автокорреляции суммы вертикального градиента (далее называемый коэффициентом S5 автокорреляции) и коэффициент S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента (далее называемый коэффициентом S6 взаимной корреляции).
На этапе 304 на основании одного или более из коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции определяют горизонтальную скорость субблока, соответствующего субблоку текущего блока в опорном кадре.
На этапе 305 на основании одного или более из коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции определяют вертикальную скорость субблока, соответствующего субблоку текущего блока в опорном кадре.
На этапе 306 на основании горизонтальной скорости и вертикальной скорости получают значение компенсации предсказания субблока текущего блока.
На этапе 307 на основании первого исходного значения предсказания субблока текущего блока, второго исходного значения предсказания субблока текущего блока и значения компенсации предсказания субблока текущего блока получают искомое значение предсказания субблока текущего блока.
Информация о этапах 301-307 приведена при описании варианта реализации 1 и здесь не повторяется.
Вариант реализации 3. Кодирующая/декодирующая сторона должна проверять, удовлетворяет ли характеристическая информация текущего блока конкретному условию. Если характеристическая информация текущего блока конкретному условию удовлетворяет, то для получения искомого значения предсказания текущего блока или субблока текущего блока используется техническое решение, приведенное в варианте реализации настоящего изобретения. Это техническое решение также может называться способом двунаправленного визуально плавного перемещения. Если характеристическая информация текущего блока конкретному условию не удовлетворяет, то способ получения искомого значения предсказания, предлагаемый в настоящем изобретении, использоваться не должен.
Характеристическую информацию текущего блока считают удовлетворяющей конкретному условию, если указанная характеристическая информация одновременно удовлетворяет по меньшей мере следующим условиям:
для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, получены с различных направлений, т.е. один опорный кадр, соответствующий текущему блоку, находится перед текущим сегментом, а другой опорный кадр, соответствующий текущему блоку, находится за текущим сегментом;
информация о размере (например значение ширины, значение высоты, значение площади и т.д.) текущего блока лежит в ограниченном диапазоне.
Вариант реализации 4. Характеристическую информацию текущего блока считают удовлетворяющей конкретному условию, если указанная характеристическая информация одновременно удовлетворяет по меньшей мере следующим условиям:
для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, получены с различных направлений, т.е. один опорный кадр, соответствующий текущему блоку, находится перед текущим сегментом, а другой опорный кадр, соответствующий текущему блоку, находится за текущим сегментом.
информация о размере (например, значение ширины, значение высоты, значение площади) текущего блока лежит в ограниченном диапазоне;
текущий блок содержит множество субблоков, и у всех субблоков этого множества информация о перемещении одинаковая, т.е. информация о перемещении каждого субблока текущего блока может быть точно одинаковой, т.е. режим информации о перемещении субблока не используется для текущего блока.
Неиспользование режима информации о перемещении субблока для текущего блока может содержать, например, неиспользование для текущего блока аффинного режима и режима SBTMVP. Аффинный режим представляет собой режим с использованием модели аффинного перемещения, а режим SBTMVP (англ. Sub-Block-Based Temporal Motion Vector Prediction, временное предсказание вектора перемещения на основе субблока) представляет собой режим с получением информации о перемещении всего блока во временной области. Если для текущего блока используется аффинный режим или режим SBTMVP, то информация о перемещении каждого субблока в текущем блоке, будет, скорее всего, разной. Поэтому аффинный режим или режим SBTMVP не могут использоваться для текущего блока.
Вариант реализации 5. Характеристическую информацию текущего блока считают удовлетворяющей конкретному условию, если указанная характеристическая информация одновременно удовлетворяет по меньшей мере следующим условиям:
для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, получены с различных направлений, т.е. один опорный кадр, соответствующий текущему блоку, находится перед текущим сегментом, а другой опорный кадр, соответствующий текущему блоку, находится за текущим сегментом;
информация о размере (например, значение ширины, значение высоты, значение площади) текущего блока лежит в ограниченном диапазоне;
текущий блок содержит множество субблоков, и информация о перемещении субблоков во всем этом множестве субблоков одинакова, т.е. информация о перемещении каждого субблока текущего блока может быть точно одинаковой, т.е. режим информации о перемещении субблока не используется для текущего блока;
для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, имеют одинаковый вес.
Вариант реализации 6. Характеристическую информацию текущего блока считают удовлетворяющей конкретному условию, если указанная характеристическая информация одновременно удовлетворяет по меньшей мере следующим условиям:
для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, получены с различных направлений, т.е. один опорный кадр, соответствующий текущему блоку, находится перед текущим сегментом, а другой опорный кадр, соответствующий текущему блоку, находится за текущим сегментом;
информация о размере (например, значение ширины, значение высоты, значение площади) текущего блока лежит в ограниченном диапазоне;
текущий блок содержит множество субблоков, и информация о перемещении субблоков во всем этом множестве субблоков одинакова, т.е. информация о перемещении каждого субблока текущего блока может быть точно одинаковой, т.е. режим информации о перемещении субблока не используется для текущего блока;
для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, имеют одинаковый вес;
для текущего блока не используется режим CIIP (англ. Combined Inter-Picture Merge and Intra-picture prediction, комбинированное слияние между разными изображениями и предсказание внутри одного изображения).
Вариант реализации 7. Характеристическую информацию текущего блока считают удовлетворяющей конкретному условию, если указанная характеристическая информация одновременно удовлетворяет по меньшей мере следующим условиям:
для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, получены с различных направлений, т.е. один опорный кадр, соответствующий текущему блоку, находится перед текущим сегментом, а другой опорный кадр, соответствующий текущему блоку, находится за текущим сегментом;
информация о размере (например, значение ширины, значение высоты, значение площади) текущего блока лежит в ограниченном диапазоне;
текущий блок содержит множество субблоков, и информация о перемещении субблоков во всем этом множестве субблоков одинакова, т.е. информация о перемещении каждого субблока текущего блока может быть точно одинаковой, т.е. режим информации о перемещении субблока не используется для текущего блока;
для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, имеют одинаковый вес;
для текущего блока не используется режим SMVD (англ. Symmetric Motion Vector Difference, симметричная разность векторов перемещения). В информации о двунаправленном перемещении в режиме SMVD указанные две разности MVD симметричны, т.е. кодировать необходимо только одну разность MVD векторов перемещения, а другая разность равна -MVD.
Вариант реализации 8. Характеристическую информацию текущего блока считают удовлетворяющей конкретному условию, если указанная характеристическая информация одновременно удовлетворяет по меньшей мере следующим условиям:
информация управления переключением на уровне последовательности указывает, что для текущего блока разрешено использовать способ двунаправленного визуально плавного перемещения, иными словами, управление на уровне последовательности разрешает использование способа двунаправленного визуально плавного перемещения, т.е. переключатель управления на уровне последовательности включен, что означает, что для текущего блока разрешено использовать способ двунаправленного визуально плавного перемещения;
для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, получены с различных направлений, т.е. один опорный кадр, соответствующий текущему блоку, находится перед текущим сегментом, а другой опорный кадр, соответствующий текущему блоку, находится за текущим сегментом;
информация о размере текущего блока (например значение ширины, значение высоты, значение площади) лежит в ограниченном диапазоне;
текущий блок содержит множество субблоков, и информация о перемещении субблоков во всем этом множестве субблоков одинакова, т.е. информация о перемещении каждого субблока текущего блока может быть точно одинаковой, т.е. режим информации о перемещении субблока не используется для текущего блока;
для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, имеют одинаковый вес.
Вариант реализации 9. Условие «для текущего блока используется двунаправленное предсказание, и указанные два опорных кадра, соответствующих текущему блоку, получены с различных направлений» в любой из вышеприведенных вариантов реализации 3-8 модифицировано следующим образом: «для текущего блока используется двунаправленное предсказание, и указанные два опорных кадра, соответствующих текущему блоку, получены с различных направлений, и указанные два опорных кадра, соответствующих текущему блоку, находятся на одинаковом расстоянии от текущего сегмента».
Например, если номер текущего сегмента в последовательности отображения равен РОС, а номера двух опорных кадров, соответствующих текущему блоку, в последовательности отображения равны, соответственно, РОС0 и РОС1, то условие того, что два опорных кадра получены с различных направлений, эквивалентно выражению (РОС-РОС0)* (РОС-РОС1)<0, а условие того, что расстояния между двумя опорными кадрами и текущим сегментом одинаковы, эквивалентно тому, что значение (РОС-РОС0) равно значению (РОС1-РОС).
Вариант реализации 10. Характеристическую информацию текущего блока считают удовлетворяющей конкретному условию, если указанная характеристическая информация удовлетворяет по меньшей мере следующим условиям:
информация управления переключением на уровне последовательности указывает, что для текущего блока разрешено использовать способ двунаправленного визуально плавного перемещения, иными словами, управление на уровне последовательности разрешает использование способа двунаправленного визуально плавного перемещения, т.е. переключатель управления на уровне последовательности включен, что означает, что для текущего блока разрешено использовать способ двунаправленного визуально плавного перемещения.
Вариант реализации 11. Характеристическую информацию текущего блока считают удовлетворяющей конкретному условию, если указанная характеристическая информация удовлетворяет по меньшей мере следующим условиям.
Для текущего блока используется двунаправленное предсказание, и разность между значениями предсказания двух опорных кадров, соответствующих текущему блоку, может быть меньше заранее заданного порогового значения TH_SAD. Для получения разности между значениями предсказания двух опорных кадров, соответствующих текущему блоку, может использоваться, например, следующий способ.
Вариант 1. Первый блок предсказания, соответствующий субблоку текущего блока из первого опорного кадра, получают на основании первой информации об однонаправленном перемещении текущего блока, второй блок предсказания, соответствующий субблоку текущего блока из второго опорного кадра, получают на основании второй информации об однонаправленном перемещении текущего блока, и разность между значениями предсказания первого опорного кадра и второго опорного кадра получают на основании суммы абсолютных значений разностей (англ. Sum of Absolute Difference, SAD) значения предсказания первого блока предсказания и значения предсказания второго блока предсказания.
В варианте 1 разность между значениями предсказания равна SAD значения предсказания (далее pred0) первого блока предсказания и значения предсказания (далее pred1) второго блока предсказания, т.е. SAD значений pred0 и pred1 для всех пикселов. Разность между значениями предсказания первого опорного кадра и второго опорного кадра может определяться, например, по следующей формуле:
0
1
В этой формуле pred(i,j) представляет собой значение в i-м столбце и j-й строке pred0, pred(i,j) представляет собой значение в i-м столбце и j-й строке pred1, n представляет собой полное количество пикселов, abs(x) обозначает абсолютное значение х, Н представляет собой значение высоты и W представляет собой значение ширины.
Вариант 2. Первый блок предсказания, соответствующий субблоку текущего блока из первого опорного кадра, получают на основании первой информации об однонаправленном перемещении текущего блока, а второй блок предсказания, соответствующий субблоку текущего блока из второго опорного кадра, получают на основании второй информации об однонаправленном перемещении текущего блока. Разность между значениями предсказания первого опорного кадра и второго опорного кадра получают на основании SAD для огрубленного значения предсказания первого блока предсказания (т.е. значения предсказания, полученного огрублением значения предсказания первого блока предсказания) и огрубленного значения предсказания второго блока предсказания (т.е. значения предсказания, полученного огрублением значения предсказания второго блока предсказания).
В варианте 2 разность между значениями предсказания равна SAD для значения предсказания (далее pred0) первого блока предсказания после N-кратного огрубления и значения предсказания (далее pred1) второго блока предсказания после N-кратного огрубления. Например, разность между значениями предсказания первого опорного кадра и второго опорного кадра может определяться по следующей формуле:
0
1
В этой формуле pred(i,j) представляет собой значение в i-м столбце и j-й строке pred0 pred(i,j) представляет собой значение в i-м столбце и j-й строке pred1, n представляет собой полное количество пикселов, abs(x) обозначает абсолютное значение х, Н представляет собой значение высоты и W представляет собой значение ширины, N представляет собой положительное целое число, предпочтительно 2.
Вариант реализации 12. В вышеприведенном варианте реализации информация о размере текущего блока лежит в ограниченном диапазоне, что может быть представлено одним из следующих случаев.
Случай 1: значение ширины текущего блока лежит внутри первого интервала [Wmin, Wmax]; значение высоты текущего блока лежит внутри второго интервала [Hmin, Hmax]; каждое из значений Wmin, Wmax, Hmin, Hmax представляет собой число 2 в целой положительной степени, например, Wmin равно 8, Wmax равно 128, Hmin равно 8, Hmax равно 128.
Значение площади текущего блока лежит внутри третьего интервала [Smin, Smax]; каждое из значений Smin и Smax представляет собой число 2 в целой положительной степени, например, Smin равно 64 и Smax равно 128*128=16384.
Здесь [а, b] обозначает интервал значений, больших или равных а и меньших или равных b.
Случай 2: значение ширины текущего блока лежит внутри первого интервала [Wmin, Wmax]; каждое из значений Wmin и Wmax представляет собой число 2 в целой положительной степени, например, Wmin равно 8, Wmax равно 128.
Случай 3: значение высоты текущего блока лежит внутри второго интервала [Hmin, Hmax]; каждое из значений Hmin и Hmax представляет собой число 2 в целой положительной степени, например, Hmin равно 8, Hmax равно 128.
Веса двух опорных кадров, соответствующих текущему блоку, одинаковы, если выполнено, например, любое из следующих условий.
Условие 1: для текущего блока не используется способ, допускающий различные веса.
Условие 2: для текущего блока разрешен способ с различными весами, что, например, делает возможным использование способа взвешенного предсказания на уровне блока (англ. Bi-prediction with CU based weighting, BCW), но два веса текущего блока точно равны.
Условие 3: для текущего сегмента, в котором находится текущий блок, не используется способ с различными весами.
Условие 4: для текущего сегмента, в котором находится текущий блок, разрешен способ с различными весами, что, например, делает возможным использование способа взвешенного предсказания на уровне кадра, но два веса текущего сегмента точно равны.
(0)
(1)
Вариант реализации 13. Кодирующая/декодирующая сторона должна на основании первой информации об однонаправленном перемещении текущего блока определять первое исходное значение предсказания субблока, а на основании второй информации об однонаправленном перемещении текущего блока определять второе исходное значение предсказания субблока. Например, на основании первой информации об однонаправленном перемещении текущего блока по первому опорному кадру определяют первый опорный блок, соответствующий субблоку текущего блока, и определяют первое исходное значение предсказания I(x,у) первого опорного блока. На основании второй информации об однонаправленном перемещении текущего блока по второму опорному кадру определяют второй опорный блок, соответствующий субблоку текущего блока, и определяют второе исходное значение предсказания I (x,у) второго опорного блока.
(0)
(1)
(0)
(1)
(1)
(1)
Например, на основании первой информации об однонаправленном перемещении текущего блока по первому опорному кадру определяют первый опорный блок, и определяют первое исходное значение предсказания I(x,у) первого опорного блока. Первое исходное значение предсказания I(x,у) центральной области первого опорного блока получают путем интерполирования значения пиксела в первом опорном кадре. Первое исходное значение предсказания I(x,у)  краевой области первого опорного блока получают путем копирования значения пиксела в первом опорном кадре. На основании второй информации об однонаправленном перемещении текущего блока по второму опорному кадру определяют второй опорный блок, и определяют второе исходное значение предсказания I(x,у) второго опорного блока. Второе исходное значение предсказания I(x,у) центральной области второго опорного блока получают путем интерполирования значения пиксела во втором опорном кадре. Второе исходное значение предсказания I(x,у) краевой области второго опорного блока получают путем копирования значения пиксела во втором опорном кадре.
Если, обратившись к фиг. 4, предположить, что размер субблока равен 44, а размер первого опорного блока равен 6*6, то центральной областью первого опорного блока является область размера 4*4 с центром в центральной точке первого опорного блока, и первое исходное значение предсказания центральной области первого опорного блока получают путем интерполирования значения пиксела в первом опорном кадре, что здесь не повторяется. Краевой областью первого опорного блока является область в первом опорном блоке, отличная от центральной области (т.е. область, образованная одной строкой и одним столбцом, соответственно, в верхней, нижней, левой и правой частях этого блока, не включающая в себя центральную область). Первое исходное значение предсказания краевой области первого опорного блока получают путем копирования значения пиксела в первом опорном кадре. Как показано на фиг. 4, в краевую область первого опорного блока копируют значения пикселов в первом опорном кадре. Должно быть понятно, что фиг. 4 представляет собой лишь пример, и для копирования также могут использоваться значения других пикселов.
Должно быть понятно, что в вышеописанном способе для краевой области первого опорного блока значение может быть получено путем копирования значения ближайшего в пиксельной сетке с целочисленным базисом пиксела в первом опорном кадре, что позволяет избежать дополнительной операции интерполяции и опосредованно избежать обращения к дополнительным опорным пикселам.
В качестве операции получения второго исходного значения предсказания для второго исходного значения предсказания центральной области второго опорного блока и второго исходного значения предсказания краевой области второго опорного блока можно использовать операцию получения первого исходного значения предсказания, которая здесь не повторяется.
Например, на основании первой информации об однонаправленном перемещении текущего блока по первому опорному кадру определяют первый опорный блок, и определяют первое исходное значение предсказания первого опорного блока. Первое исходное значение предсказания первого опорного блока полностью получают путем интерполирования значения пиксела в первом опорном кадре. На основании второй информации об однонаправленном перемещении текущего блока по второму опорному кадру определяют второй опорный блок, и определяют второе исходное значение предсказания второго опорного блока. Второе исходное значение предсказания второго опорного блока получают путем интерполирования значения пиксела во втором опорном кадре. Например, можно предположить, что размер субблока равен 4*4, размер первого опорного блока равен 4*4 и размер второго опорного блока равен 4*4. Первое исходное значение предсказания всех областей первого опорного блока получают путем интерполирования значения пиксела в первом опорном кадре. Первое исходное значение предсказания всех областей второго опорного блока получают путем интерполирования значения пиксела в первом опорном кадре.
Вариант реализации 14. После получения первого исходного значения предсказания субблока и второго исходного значения предсказания субблока кодирующая/декодирующая сторона на основании первого исходного значения предсказания и второго исходного значения предсказания указанного субблока определяет сумму горизонтального градиента, сумму вертикального градиента и разность значений предсказания во временной области. Сумма горизонтального градиента, сумма вертикального градиента и разность значений предсказания во временной области определяются, например, на основании первого исходного значения предсказания субблока, второго исходного значения предсказания субблока, первого коэффициента увеличения и второго коэффициента увеличения. Например, сумма горизонтального градиента определяется по формуле (1), сумма вертикального градиента определяется по формуле (2), а разность значения предсказания во временной области определяется по формуле (3).
В этих формулах  представляет собой горизонтальный градиент,  представляет собой вертикальный градиент. Параметры  и  в формулах (1)-(3) могут определяться по формулам (4) и (5):
x
y
ψ(i,j) представляет собой сумму горизонтального градиента, ψ(i,j) представляет собой сумму вертикального градиента, a θ(i,j) представляет собой разность значений предсказания во временной области.
(0)
(1)
(0)
(1)
(0)
(1)
(k)
(0)
(1)
I(x,у) представляет собой первое исходное значение предсказания блока, а I(x,у) представляет собой второе исходное значение предсказания указанного субблока. Если предположить, что размер субблока равен 4*4 (см. вариант реализации 13), то I(x,y) представляет собой первое исходное значение предсказания первого опорного блока с размером 4*4 или первое исходное значение предсказания первого опорного блока с размером 6*6; I(x,y) представляет собой второе исходное значение предсказания второго опорного блока с размером 4*4 или второе исходное значение предсказания второго опорного блока с размером 6*6. Например, I(x,у) представляет собой первое исходное значение предсказания первого опорного блока с размером 4*4, I(х,у) представляет собой второе исходное значение предсказания второго опорного блока с размером 4*4 I(i,f) представляет собой значение пиксела с координатами (i,j). Например, I(i,j) представляет собой значение пиксела с координатами (i,j) в первом опорном блоке, которое соответствует первому исходному значению предсказания субблока; I(i,j) представляет собой значение пиксела с координатами (i,j) во втором опорном блоке, которое соответствует второму исходному значению предсказания субблока.
a
b
n представляет собой первый коэффициент увеличения, который может быть равным меньшему из 5 и (BD-7) или большему из 1 и (BD-11). n представляет собой второй коэффициент увеличения, который может быть равным меньшему из 8 и (BD-4) или большему из 4 и (BD-8). shift1 представляет собой количество битов сдвига градиента вправо, которое может быть равным большему из 2 и (14-BD) или большему из 6 и (BD-6).
a
a
b
b
n
Символом  обозначен сдвиг вправо. Например,  обозначает сдвиг вправо n раз, т.е. деление на 2 в степени . обозначает сдвиг вправо на n, т.е. деление на 2 в степени n обозначает сдвиг вправо на shift1, т.е. деление на 2 в степени shift1.
BD может представлять собой битовую глубину, т.е. количество битов, необходимую для представления каждого из значений цветности или яркости пиксела. Например, BD может быть равна 10 или 8. Обычно значение BD известно.
Вариант реализации 15. После получения суммы горизонтального градиента, суммы вертикального градиента и разности значений предсказания во временной области кодирующая/декодирующая сторона также может на основании суммы горизонтального градиента, суммы вертикального градиента и разности значений предсказания во временной области определять коэффициент S1 автокорреляции суммы горизонтального градиента (далее называемый коэффициентом S1 автокорреляции), коэффициент S2 взаимной корреляции между суммой горизонтального градиента и суммой вертикального градиента (далее называемый коэффициентом S2 взаимной корреляции), коэффициент S3 взаимной корреляции между разностью значений предсказания во временной области и суммой горизонтального градиента (далее называемый коэффициентом S3 взаимной корреляции), коэффициент S5 автокорреляции суммы вертикального градиента (далее называемый коэффициентом S5 автокорреляции) и коэффициент S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента (далее называемый коэффициентом S6 взаимной корреляции). Коэффициент S1 автокорреляции, коэффициент S2 взаимной корреляции, коэффициент S3 взаимной корреляции, коэффициент S5 автокорреляции и коэффициент S6 взаимной корреляции могут определяться, например, по следующим формулам:
x
y
ψ(i,j) представляет собой сумму горизонтального градиента, ψ(i,j) представляет собой сумму вертикального градиента, a θ(i,j) представляет собой разность значений предсказания во временной области.
x
y
x
y
Если предположить, что размер субблока равен 4*4, то Ω представляет собой окно, соответствующее субблоку 4*4, или окно 6*6 вокруг субблока 4*4. Для каждой точки с координатами (i,j) в Ω можно вначале по вышеприведенным формулам определять ψ(i,j), ψ(i,j) и θ(i,j), а затем на основании ψ(i,j), ψ(i,j) и θ(i,j) могут определяться коэффициенты S1, S2, S3, S5, S6.
Вариант реализации 16. Получив коэффициент S2 взаимной корреляции и коэффициент S6 взаимной корреляции, можно ограничивать коэффициент S2 взаимной корреляции между первым пороговым значением коэффициента взаимной корреляции и вторым пороговым значением коэффициента взаимной корреляции. Например, коэффициент S2 взаимной корреляции, если он меньше первого порогового значения коэффициента взаимной корреляции, могут делать равным первому пороговому значению коэффициента взаимной корреляции. Коэффициент S2 взаимной корреляции, если он больше второго порогового значения коэффициента взаимной корреляции, могут делать равным второму пороговому значению коэффициента взаимной корреляции. Коэффициент S6 взаимной корреляции могут ограничивать между третьим пороговым значением коэффициента взаимной корреляции и четвертым пороговым значением коэффициента взаимной корреляции. Например, коэффициент S6 взаимной корреляции, если он меньше третьего порогового значения коэффициента взаимной корреляции, могут делать равным третьему пороговому значению коэффициента взаимной корреляции. Коэффициент S6 взаимной корреляции,если он больше четвертого порогового значения коэффициента взаимной корреляции, могут делать равным четвертому пороговому значению коэффициента взаимной корреляции. Первое пороговое значение коэффициента взаимной корреляции может быть меньше второго порогового значения коэффициента взаимной корреляции, а третье пороговое значение коэффициента взаимной корреляции может быть меньше четвертого порогового значения коэффициента взаимной корреляции.
Например, чтобы избежать переполнения при получении промежуточных результатов, т.е. для того, чтобы битовая ширина не превосходила определенный диапазон, коэффициент S2 взаимной корреляции и коэффициент S6 взаимной корреляции могут подвергаться размерным ограничениям в соответствии с нижеприведенными формулами. В них -(1THS2) представляет собой первое пороговое значение коэффициента взаимной корреляции, 1THS2 представляет собой второе пороговое значение коэффициента взаимной корреляции, -(1THS6) представляет собой третье пороговое значение коэффициента взаимной корреляции и 1THS6 представляет собой четвертое пороговое значение коэффициента взаимной корреляции. Например, чтобы количество битов не превосходило 32, THS2 может быть задано равным 25, а THS6 равным 27. Разумеется, вышеуказанные значения представляют собой лишь несколько примеров, которыми настоящее изобретение не ограничивается.
2
2
2
2
2
В этих формулах при х меньше a Clip3(a, b, х)=а; при х больше b Clip3(a, b, x)=b; при x большем или равном а и меньшем или равном b Clip3(a, b, х)=х. Таким образом, формула (11) означает, что если S, меньше -(THS2), то для S задают значение -(1THS2); если S больше (1THS2), то для S задают значение (1THS2), а в остальных случаях S оставляют неизменным.
6
6
6
6
6
Аналогично, формула (12) означает, что если S меньше -(1THS6), то для S задают значение -(THS6); если S больше (1THS6), то для S задают значение (1THS6), а в остальных случаях S оставляют неизменным. Символ  обозначает сдвиг влево.
Вариант реализации 17. После получения коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции можно на основании одного или более из этих коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции определить горизонтальную скорость субблока текущего блока в опорном кадре. Вертикальную скорость субблока, соответствующего субблоку текущего блока в опорном кадре, можно определять на основании одного или более из этих коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции.
Например, горизонтальная скорость может определяться на основании коэффициента S1 автокорреляции, порогового значения скорости, коэффициента S3 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения. Пример определения горизонтальной скорости на основании вышеприведенных параметров представляет следующая формула:
1
x
x
x
x
Согласно этой формуле, если S>0, то  в противном случае v=0. v представляет собой горизонтальную скорость,  представляет собой пороговое значение скорости, задаваемое для ограничения горизонтальной скорости v между  т.е. горизонтальная скорость v больше или равна  и меньше или равна  Пороговое значение  скорости может быть равным 2 в степени М, где М представляет собой разность между 13 и BD, или может быть равным большему из 5 и (BD-7), например,  или  где BD представляет собой битовую глубину.
a
b
n представляет собой первый коэффициент увеличения, который может быть равным меньшему из 5 и (BD-7) или большему из 1 и (BD-11). n представляет собой второй коэффициент увеличения, который может быть равным меньшему из 8 и (BD-4) или большему из 4 и (BD-8). Символ  обозначает сдвиг вправо, ⎣⋅⎦ обозначает округление вниз.
a
b
b
a
a
b
x
b
a
x
b
a
x
Как первый коэффициент n увеличения, так и второй коэффициент n увеличения могут задаваться в соответствии с опытом, и второй коэффициент n увеличения может быть больше первого коэффициента n увеличения. Первый коэффициент n увеличения и второй коэффициент n увеличения задаются с целью увеличения интервала значений горизонтальной скорости v. Например, если n-n равно 3, то  равно 8 и интервал значений горизонтальной скорости v может быть увеличен в 8 раз; а если n-n равно 4, то  равно 6 и интервал значений горизонтальной скорости v может быть увеличен в 16 раз, и т.п.
x
В формуле (13) при х меньше a Clip3(a, b, х)=а; при х больше b Clip3(a, b, x)=b; при x большем или равном а и меньшем или равном b Clip3(a, b, х)=х.  в вышеприведенной формуле представляет собой а,  представляет собой  представляет собой х. Таким образом, если  больше  и меньше  то горизонтальная скорость v равна
Например, вертикальная скорость может определяться на основании коэффициента S2 взаимной корреляции, коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, горизонтальной скорости, первого коэффициента увеличения и второго коэффициента увеличения по следующей формуле:
5
y
Из вышеприведенной формулы можно видеть, что если S>0, то  в противном случае v=0.
y
x
v представляет собой вертикальную скорость, v представляет собой горизонтальную скорость,  представляет собой пороговое значение скорости, задаваемое для ограничения вертикальной скорости между  и  т.е. вертикальная скорость больше или равна  и меньше или равна  Пороговое значение  скорости может быть равным 2 в степени М, где М представляет собой разность между 13 и BD, или может быть равным большему из 5 и (BD-7), Например,  или  где BD представляет собой битовую глубину.
a
b
n представляет собой первый коэффициент увеличения, который может быть равным меньшему из 5 и (BD-7) или большему из 1 и (BD-11). n представляет собой второй коэффициент увеличения, который может быть равным меньшему из 8 и (BD-4) или большему из 4 и (BD-8). Символ  обозначает сдвиг вправо, ⎣⋅⎦ обозначает округление вниз.
a
b
b
a
a
b
y
b
a
y
b
a
y
Как первый коэффициент n увеличения, так и второй коэффициент n увеличения могут задаваться в соответствии с опытом, и второй коэффициент n увеличения может быть больше первого коэффициента n увеличения. Первый коэффициент n увеличения и второй коэффициент n увеличения задаются с целью увеличения интервала значений вертикальной скорости v. Например, если n-n равно 3, то  равно 8 и интервал значений вертикальной скорости v может быть увеличен в 8 раз; а если n-n равно 4, то  равно 16 и интервал значений вертикальной скорости v может быть увеличен в 16 раз, и т.п.
y
В формуле (14) при х меньше a Clip3(a, b, х)=а; при х больше b Clip3(a, b, x)=b; при x большем или равном а и меньшем или равном b Clip3(a, b, х)=х.  в вышеприведенной формуле представляет собой a,  представляет собой  представляет собой х. Таким образом, если  больше  и меньше то вертикальная скорость v равна
Например, в вышеприведенной формуле
Вариант реализации 18. После получения коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции можно на основании одного или более из этих коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции определить горизонтальную скорость субблока, соответствующего субблоку текущего блока в опорном кадре. Вертикальную скорость субблока, соответствующего субблоку текущего блока в опорном кадре, можно определять на основании одного или более из этих коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции.
Например, горизонтальная скорость может определяться на основании коэффициента S1 автокорреляции, порогового значения скорости, коэффициента S3 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения. Пример определения горизонтальной скорости на основании вышеприведенных параметров представляет следующая формула:
По сравнению с формулой (13), в формуле (15) убран минус перед  а остальное ее содержание и смысл каждого параметра такие же, как в формуле (13), и их описание здесь не повторяется.
Например, вертикальная скорость может определяться на основании коэффициента S2 взаимной корреляции, коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, горизонтальной скорости, первого коэффициента увеличения и второго коэффициента увеличения по следующей формуле:
По сравнению с формулой (14), в формуле (16) убран минус перед  а остальное ее содержание и смысл каждого параметра такие же, как в формуле (14), и их описание здесь не повторяется.
Вариант реализации 19. После получения коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции можно на основании одного или более из этих коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции определить горизонтальную скорость субблока, соответствующего субблоку текущего блока в опорном кадре.
Например, если первое заранее заданное условие выполнено, то горизонтальная скорость может определяться на основании коэффициента S2 взаимной корреляции, порогового значения скорости, коэффициента S6 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения. Если же первое заранее заданное условие не выполнено, то горизонтальная скорость может определяться на основании коэффициента S1 автокорреляции, порогового значения скорости, коэффициента S3 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения. Первое заранее заданное условие определяют на основании коэффициента S2 взаимной корреляции и коэффициента S5 автокорреляции, как показано в нижеприведенной формуле.
Если первое заранее заданное условие выполнено, то
если же первое заранее заданное условие не выполнено, то
2
5
2
2
Вышеупомянутое первое заранее заданное условие может содержать условие |S|>k|S|, где |⋅| обозначает абсолютное значение, k представляет собой пороговое значение, которое может задаваться произвольно, например, равным 8: S= =0? в формуле (17) означает проверку равенства S нулю.
2
2
x
x
a
b
Когда выполнено первое заранее заданное условие, если S= =0, то  если же S= =0 ложно, то v=0 v представляет собой горизонтальную скорость,  представляет собой пороговое значение скорости, n представляет собой первый коэффициент увеличения, n представляет собой второй коэффициент увеличения,  обозначает сдвиг вправо, ⎣⋅⎦ обозначает округление вниз.
x
В этих формулах при х меньше a Clip3(a, b, х)=а; при х больше b Clip3(a, b, x)=b; при x большем или равном а и меньшем или равном b Clip3(a, b, х)=х.  в вышеприведенной формуле представляет собой a,  представляет собой  представляет собой х. Таким образом, если  больше  и меньше  то горизонтальная скорость v равна
Если первое заранее заданное условие не выполнено, то формула (18) совпадает с формулой (13) и описание здесь не повторяется.
Вариант реализации 20. После получения коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции можно на основании одного или более из этих коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции определить горизонтальную скорость субблока, соответствующего субблоку текущего блока в опорном кадре.
tmp
1
5
2
2
Например, если второе заранее заданное условие выполнено, то горизонтальная скорость может определяться на основании коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, первого коэффициента увеличения и второго коэффициента увеличения. Если же второе заранее заданное условие не выполнено, то горизонтальная скорость может определяться на основании коэффициента S1 автокорреляции, порогового значения скорости, коэффициента S3 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения. Второе заранее заданное условие определяется на основании коэффициента S2 взаимной корреляции и коэффициента S5 автокорреляции, как показано в нижеприведенной формуле: если второе заранее заданное условие выполнено, то S=- S ⋅ S - S ⋅ S,
Если же второе заранее заданное условие не выполнено, то
l
2
5
tmp
tmp
tmp
x
x
a
b
Если второе заранее заданное условие выполнено, то сначала на основании S, S и S определяют S. Конкретный способ определения представлен в вышеприведенной формуле. Затем, если выполнено S= =0, то  если же S= =0 ложно, то v=0.v представляет собой горизонтальную скорость,  представляет собой пороговое значение скорости, n представляет собой первый коэффициент увеличения, n представляет собой второй коэффициент увеличения,  обозначает сдвиг вправо, ⎣⋅⎦ обозначает округление вниз.
x
В вышеприведенной формуле при х меньше a Clip3(a, b, х)=а; при х больше b Clip3(a, b, x)=b; при x большем или равном а и меньшем или равном b Clip3(a, b, х)=х.  в вышеприведенной формуле представляет собой а,  представляет собой b,  представляет собой х. Таким образом, если  больше  и меньше  то горизонтальная скорость v может быть равна
Если второе заранее заданное условие не выполнено, то формула (20) совпадает с формулой (13) и здесь не повторяется.
2
5
Вышеупомянутое второе заранее заданное условие может содержать следующее условие, но не ограничивается им: |S|>k|S|, где |⋅| обозначает абсолютное значение, k представляет собой пороговое значение, которое может задаваться произвольно, например, равным 8. Должно быть понятно, что это второе заранее заданное условие представляет собой лишь пример, которым настоящее изобретение не ограничивается.
Вариант реализации 21. Если первое заранее заданное условие не выполнено, то в варианте реализации 19 формула для определения горизонтальной скорости меняется на формулу (15); если второе заранее заданное условие не выполнено, то в варианте реализации 20 формула для определения горизонтальной скорости меняется на формулу (15).
Вариант реализации 22. После получения коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции можно на основании одного или более из этих коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции определить вертикальную скорость субблока, соответствующего субблоку текущего блока в опорном кадре.
Неограниченная горизонтальная скорость может определяться, например, на основании коэффициента S1 автокорреляции, коэффициента S3 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения, а вертикальная скорость может определяться на основании коэффициента S2 взаимной корреляции, коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, неограниченной горизонтальной скорости, первого коэффициента увеличения и второго коэффициента увеличения.
См. следующую формулу:
1
x
Из вышеприведенной формулы можно видеть, что если S>0, то  в противном случае  По сравнению с определением v в вышеприведенном варианте реализации, в этом варианте реализации не используется ограничение горизонтальной скорости между  и  с использованием порогового значения скорости  Поэтому ограничение не выполняется и  называется неограниченной горизонтальной скоростью. Иными словами, неограниченная горизонтальная скорость  не ограничена между -  и
l
Из вышеприведенной формулы можно видеть, что если S>0, то
y
; в противном случае v=0.
y
a
b
y
v представляет собой вертикальную скорость,  представляет собой неограниченную горизонтальную скорость,  представляет собой пороговое значение скорости, n представляет собой первый коэффициент увеличения, n представляет собой второй коэффициент увеличения,  обозначает сдвиг вправо, a ⎣⋅⎦ обозначает округление вниз. При х меньше a Clip3(a, b, х)=а; при х больше b Clip3(a, b, x)=b; при x большем или равном а и меньшем или равном b Clip3(a, b, х)=х.  в вышеприведенной формуле представляет собой a,  представляет собой b,  представляет собой х. Таким образом, если  больше  и меньше  то вертикальная скорость v равна
Например, в вышеприведенной формуле ,
Вариант реализации 23. После получения коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции можно на основании одного или более из этих коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции и коэффициента S6 взаимной корреляции определить вертикальную скорость субблока, соответствующего субблоку текущего блока в опорном кадре.
Например, если третье заранее заданное условие выполнено, то вертикальную скорость определяют на основании коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, первого коэффициента увеличения и второго коэффициента увеличения. Если же третье заранее заданное условие не выполнено, то вертикальную скорость определяют на основании коэффициента S2 взаимной корреляции, коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, горизонтальной скорости, первого коэффициента увеличения и второго коэффициента увеличения. Третье заранее заданное условие может определяться, например, на основании горизонтальной скорости.
См. следующую формулу: если третье заранее заданное условие выполнено, то:
Если же третье заранее заданное условие не выполнено, то
x
x
Третьим заранее заданным условием может быть, например, следующее условие: v равно  или  т.е. v имеет наименьшее или наибольшее значение.
5
y
Когда выполнено третье заранее заданное условие, если S>0, то  в противном случае v=0.
y
a
b
y
Например, v представляет собой вертикальную скорость,  представляет собой пороговое значение скорости, n представляет собой первый коэффициент увеличения, n представляет собой второй коэффициент увеличения,  обозначает сдвиг вправо, a ⎣⋅⎦ обозначает округление вниз. При х меньше а Clip3(a, b, x)=a; при x больше b Clip3(a, b, x)=b; при x большем или равном а и меньшем или равном b Clip3(a, b, х)=х.  в вышеприведенной формуле представляет собой а,  представляет собой b,  представляет собой х. Таким образом, если  больше  и меньше  то вертикальная скорость v равна
Если третье заранее заданное условие не выполнено, то формула (24) совпадает с формулой (14) и здесь не повторяется.
Вариант реализации 24. В варианте реализации 23 формула для определения вертикальной скорости при невыполнении третьего заранее заданного условия меняется на формулу (16).
a
a
a
Вариант реализации 25. В вышеприведенном варианте реализации первый коэффициент n увеличения может быть равным меньшему из 5 и (BD-7), т.е. n=min(5, BD-7), либо большему из 1 и (BD-11), т.е. n=Max(1, BD-11).
b
b
b
Разумеется, выше приведен лишь пример первого коэффициента увеличения, которым настоящее изобретение не ограничивается и который может задаваться в соответствии с опытом. Второй коэффициент n увеличения может быть равным меньшему из 8 и (BD-4), т.е. n=min(8, BD-4), либо большему из 4 и (BD-8), т.е. n=Мах(4, BD-8). Разумеется, выше приведен лишь пример второго коэффициента увеличения, которым настоящее изобретение не ограничивается и который может задаваться в соответствии с опытом. Пороговое значение  скорости может быть равным 2 в степени М, где М представляет собой разность между 13 и BD, или может быть равным большему из 5 и (BD-7). Например,  или  Разумеется, выше приведен лишь пример порогового значения скорости, которым настоящее изобретение не ограничивается и которое может задаваться в соответствии с опытом.
a
b
x
y
max(5.BD_7)
Количество битов сдвига вправо коэффициента автокорреляции и коэффициента взаимной корреляции градиента может быть снижено, итребуемая битовая ширина (сохраняемая точность) коэффициента автокорреляции и коэффициента взаимной корреляции может быть увеличена путем задания первого коэффициента n увеличения равным большему из 1 и (BD-11). Количество битов сдвига вправо коэффициента автокорреляции и коэффициента взаимной корреляции градиента может быть снижено, и требуемая битовая ширина (сохраняемая точность) коэффициента автокорреляции и коэффициента взаимной корреляции может быть увеличена путем задания второго коэффициента n увеличения равным большему из 4 и (BD-8). Требуемая битовая ширина (сохраняемая точность) горизонтальной скорости v и вертикальной скорости v может быть увеличена путем задания порогового значения скорости  равным 2.
x
y
x
y
x
y
Вариант реализации 26. После получения горизонтальной скорости v и вертикальной скорости v кодирующая/декодирующая сторона может на основании горизонтальной скорости v и вертикальной скорости v, получать значение компенсации предсказания субблока текущего блока. Например, на основании первого исходного значения предсказания субблока, второго исходного значения предсказания субблока и количества битов сдвига градиента вправо определяют горизонтальный градиент и вертикальный градиент. На основании горизонтальной скорости v, вертикальной скорости v, горизонтального градиента и вертикального градиента получают значение компенсации предсказания.
Например, кодирующая/декодирующая сторона может получать значение b(х,у) компенсации предсказания субблока текущего блока по следующей формуле.
В этой формуле  представляет собой горизонтальный градиент,  представляет собой вертикальный градиент. Параметры  и  в вышеприведенной формуле могут определяться по следующим формулам.
(k)
(0)
(l)
(0)
(1)
(0)
(1)
I(i,j) представляет собой значение пиксела с координатами (i,j). Например, I(i,j) представляет собой значение пиксела с координатами (i,j) в первом опорном блоке, который соответствует первому исходному значению предсказания указанного субблока; I(i,j) представляет собой значение пиксела с координатой (i,j) во втором опорном блоке, которое соответствует второму исходному значению предсказания указанного субблока. Например, представляет собой первое исходное значение предсказания субблока, а I(х,у) представляет собой второе исходное значение предсказания указанного субблока. Если предположить, что размер субблока равен 4*4, то представляет собой первое исходное значение предсказания первого опорного блока с размером 4*4 или первое исходное значение предсказания первого опорного блока с размером 6*6; I(x,y) представляет собой второе исходное значение предсказания второго опорного блока с размером 4*4 или второе исходное значение предсказания второго опорного блока с размером 6*6. Например, I(x,y) представляет собой первое исходное значение предсказания первого опорного блока с размером 4*4, а I(х,у) представляет собой второе исходное значение предсказания второго опорного блока с размером 4*4.
x
y
v представляет собой горизонтальную скорость, v представляет собой вертикальную скорость,  обозначает сдвиг вправо, rnd обозначает операцию округления, shift1 представляет количество битов сдвига градиента вправо, shift1 представляет сдвиг вправо на shift1. Количество shift1 битов сдвига градиента вправо может быть равным большему из 2 и (14-BD), т.е. shift1=max(2, 14-BD), или shift1 может быть равным большему из 6 и (BD-6), т.е. shift1=max(6, BD-6). Разумеется, выше приведен лишь пример количества битов сдвига градиента вправо, которым настоящее изобретение не ограничивается и который может задаваться в соответствии с опытом. Количество битов сдвига градиента вправо может быть увеличено, т.е. битовая ширина (сохраняемая точность), требуемая для градиента, может быть снижена путем задания shift1 равным большему из 6 и (BD-6). BD представляет собой битовую глубину, т.е. битовую ширину, необходимую для значения яркости, которая обычно равна 10 или 8.
EDOF
Вариант реализации 27. Кодирующая/декодирующая сторона может получать искомое значение предсказания субблока текущего блока на основании первого исходного значения предсказания субблока текущего блока, второго исходного значения предсказания субблока текущего блока и значения компенсации предсказания субблока текущего блока. Например, кодирующая/декодирующая сторона может получать искомое значение предсказания pred(x,у) субблока текущего блока по следующей формуле.
(0)
(1)
В вышеприведенной формуле I(x,y) представляет собой первое исходное значение предсказания субблока, а I(х,у) представляет собой второе исходное значение предсказания указанного субблока, b(х,у) представляет собой значение компенсации предсказания субблока,  обозначает сдвиг вправо, a  shift обозначает сдвиг вправо на shift.
Например,  BD представляет собой битовую глубину.
Разумеется, вышеописанный способ представляет собой лишь пример получения искомого значения предсказания субблока, которым настоящее изобретение не ограничивается.
Вариант реализации 28. Если текущий блок разделен на множество субблоков, то вышеупомянутая вариант реализации может использоваться для определения искомого значения предсказания каждого субблока, т.е. сигнал предсказания корректируют для каждого субблока текущего блока (например, субблока с размером 4*4), чтобы таким образом получить искомое значение предсказания каждого субблока. В этом варианте реализации, если целевое условие выполнено, операцию коррекции сигнала определенного субблока можно останавливать раньше, т.е. прекращать использование способа из вышеописанного варианта реализации для определения искомого значения предсказания субблока.
Пусть, например, текущий блок разделен на субблок 1, субблок 2, субблок 3 и субблок 4. Кодирующая/декодирующая сторона вначале с использованием вышеописанного варианта реализации определяет искомое значение предсказания субблока 1, а затем с использованием вышеописанного варианта реализации определяет искомое значение предсказания субблока 2. Когда целевое условие выполнено, кодирующая/декодирующая сторона прекращает определение искомого значения предсказания субблока 3 и искомого значения предсказания субблока 4 с использованием вышеописанного варианта реализации, т.е. операция коррекции сигнала субблока 3 и субблока 4 не выполняется.
Целевое условие может считаться выполненным и операция коррекции сигнала для остальных субблоков может прекращаться раньше, если, например, разность между значениями предсказания указанных двух субблоков текущего блока меньше определенного порогового значения TH_SUB_SAD. Например, определяют, что целевое условие выполнено, и операция коррекции сигнала для остальных субблоков (т.е. субблока 3 и субблока 4) не выполняется, если разность между значениями предсказания субблока 1 меньше порогового значения TH_SUB_SAD и разность между значениями предсказания субблока 2 меньше порогового значения TH_SUB_SAD.
Пусть, в качестве еще одного примера, текущий блок разделен на множество субблоков и для каждого субблока кодирующая/декодирующая сторона перед определением искомого значения предсказания субблока с использованием вышеописанного варианта реализации проверяет, выполнено ли целевое условие. Если целевое условие выполнено, то использование способа из вышеописанного варианта реализации для определения искомого значения предсказания субблока прекращается раньше, т.е. операция коррекции сигнала для субблока останавливается. Если целевое условие не выполнено, то для определения искомого значения предсказания субблока может использоваться способ из вышеописанного варианта реализации.
Например, если разность между значениями предсказания субблока меньше определенного порогового значения TH_SUB_SAD, то может считаться, что целевое условие выполнено и операция коррекции сигнала для субблока может прекращаться раньше. Например, если разность между значениями предсказания субблока 1 меньше порогового значения TH_SUB_SAD, то может считаться, что целевое условие выполнено и операция коррекции сигнала для субблока 1 может прекращаться раньше.
Для определения разности между значениями предсказания субблока может использоваться, например, следующий способ.
Вариант 1. Разность между значениями предсказания может вычисляться как SAD значения предсказания (далее pred0) первого блока предсказания (т.е. первого блока предсказания, соответствующего субблоку, полученному по первому опорному кадру на основании первой информации об однонаправленном перемещении текущего блока) и значения предсказания (далее pred1) второго блока предсказания (т.е. второго блока предсказания, соответствующего субблоку, полученному по второму опорному кадру на основании второй информации об однонаправленном перемещении текущего блока), т.е. SAD значений pred0 и pred1 для всех пикселов. Разность между значениями предсказания первого опорного кадра и второго опорного кадра может определяться, например, по следующей формуле:
0
1
В этой формуле pred(i,j) представляет собой значение в i-м столбце и j-й строке pred0, pred(i,j) представляет собой значение в i-м столбце и j-й строке pred1, n представляет собой полное количество пикселов, abs(x) обозначает абсолютное значение х, Н представляет собой значение высоты и W представляет собой значение ширины.
Вариант 2. Разность между значениями предсказания также может вычисляться как SAD N-кратно огрубленного значения предсказания первого блока предсказания (обозначаемого как pred0 и представляющего собой значение предсказания, полученное огрублением значения предсказания первого блока предсказания) и N-кратно огрубленного значения предсказания второго блока предсказания (обозначаемого как pred1 и представляющего собой значение предсказания, полученное огрублением значения предсказания второго блока предсказания). Например, разность между значениями предсказания первого опорного кадра и второго опорного кадра может определяться по следующей формуле:
0
1
В этой формуле prea(i,j) представляет собой значение в i-м столбце и j-й строке pred0, pred(i,j) представляет собой значение в i-м столбце и j-й строке pred1, n представляет собой полное количество пикселов, abs(x) обозначает абсолютное значение х, Н представляет собой значение высоты и W представляет собой значение ширины, N представляет собой положительное целое число, предпочтительно 2.
Вариант реализации 29
На основе той же идеи, которая в настоящем изобретении использована в вышеописанном способе, посредством варианта реализации настоящего изобретения также предлагается кодирующий и декодирующий аппарат для использования на кодирующей стороне или на декодирующей стороне. Этот аппарат выполнен с возможностью получения искомого значения предсказания текущего блока или субблока текущего блока в случае, когда характеристическая информация текущего блока удовлетворяет конкретному условию. На фиг. 5 представлена структурная схема указанного аппарата, содержащая:
первый модуль 51 определения, выполненный с возможностью определения первого исходного значения предсказания на основании первой информации об однонаправленном перемещении текущего блока и определения второго исходного значения предсказания на основании второй информации об однонаправленном перемещении текущего блока, если характеристическая информация текущего блока удовлетворяет конкретному условию;
второй модуль 52 определения, выполненный с возможностью определения горизонтальной скорости на основании первого исходного значения предсказания и второго исходного значения предсказания и с возможностью определения вертикальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания;
первый модуль 53 получения, выполненный с возможностью получения значения компенсации предсказания на основании указанных горизонтальной скорости и вертикальной скорости;
второй модуль 54 получения, выполненный с возможностью получения искомого значения предсказания на основании указанных первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания.
Указанная характеристическая информация может, например, но без ограничения, содержать одно или более из атрибута информации о перемещении, атрибута режима предсказания, информации о размере и информации управления переключением на уровне последовательности.
Первый модуль 51 определения также выполнен с возможностью, когда характеристическая информация содержит атрибут информации о перемещении, удовлетворяющий по меньшей мере одному из нижеперечисленных условий, проверки выполнения конкретного условия для указанного атрибута информации о перемещении:
для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, получены с различных направлений;
текущий блок содержит множество субблоков, и у всех субблоков этого множества информация о перемещении одинаковая;
для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, имеют одинаковый вес;
для текущего блока используется двунаправленное предсказание, и два опорных кадра, соответствующих текущему блоку, находятся на одинаковом расстоянии от текущего сегмента;
для текущего блока используется двунаправленное предсказание, и разность между значениями предсказания указанных двух опорных кадров, соответствующих текущему блоку, меньше заранее заданного порогового значения.
Первый модуль 51 определения также выполнен с возможностью получения первого блока предсказания по первому опорному кадру на основании первой информации об однонаправленном перемещении текущего блока и получения второго блока предсказания по второму опорному кадру на основании второй информации об однонаправленном перемещении текущего блока;
получения разности между значениями предсказания первого опорного кадра и второго опорного кадра на основании SAD огрубленного значения предсказания первого блока предсказания и огрубленного значения предсказания второго блока предсказания.
Первый модуль 51 определения также выполнен с возможностью, если характеристическая информация содержит атрибут режима предсказания, указывающий, что режим слияния на основании комбинированного межкадрового и внутрикадрового предсказания не используется и/или режим симметричной разности векторов перемещения не используется, проверки выполнения для указанного атрибута режима предсказания конкретного условия.
Первый модуль 51 определения также выполнен с возможностью, если характеристическая информация содержит информацию управления переключением на уровне последовательности, указывающую, что для текущего блока разрешено использовать способ двунаправленного визуально плавного перемещения, проверки выполнения для указанной информации управления переключением на уровне последовательности конкретного условия.
Первый модуль 51 определения также выполнен с возможностью, если характеристическая информация содержит информацию о размере, удовлетворяющую по меньшей мере одному из нижеперечисленных условий, проверки выполнения для указанной информации о размере конкретного условия: значение ширины текущего блока больше или равно первому пороговому значению и меньше или равно второму пороговому значению; значение высоты текущего блока больше или равно третьему пороговому значению и меньше или равно четвертому пороговому значению; значение площади текущего блока больше или равно пятому пороговому значению и меньше или равно шестому пороговому значению.
Первый модуль 51 определения выполнен с возможностью при определении первого исходного значения предсказания на основании первой информации об однонаправленном перемещении текущего блока и второго исходного значения предсказания на основании второй информации об однонаправленном перемещении текущего блока:
определять первый опорный блок по первому опорному кадру на основании первой информации об однонаправленном перемещении текущего блока, и определять первое исходное значение предсказания первого опорного блока, при этом первое исходное значение предсказания центральной области первого опорного блока получается путем интерполирования значение пиксела в первом опорном кадре, а первое исходное значение предсказания краевой области первого опорного блока получается путем копирования значение пиксела в первом опорном кадре; определять второй опорный блок по второму опорному кадру на основании второй информации об однонаправленном перемещении текущего блока, и определять второе исходного значения предсказания второго опорного блока; при этом второе исходное значение предсказания центральной области второго опорного блока получается путем интерполирования значения пиксела во втором опорном кадре, а второе исходное значение предсказания краевой области второго опорного блока получается путем копирования значения пиксела во втором опорном кадре.
Второй модуль 52 определения выполнен с возможностью при определении горизонтальной скорости на основании первого исходного значения предсказания и второго исходного значения предсказания, если выполнено первое заранее заданное условие, определять коэффициент S2 взаимной корреляции между суммой горизонтального градиента и суммой вертикального градиента, коэффициент S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания; определять горизонтальную скорость на основании коэффициента S2 взаимной корреляции, порогового значения скорости, коэффициента S6 взаимной корреляции, первого коэффициента увеличения и второго коэффициента увеличения; при этом первое заранее заданное условие определяется на основании коэффициента S2 взаимной корреляции и коэффициента S5 автокорреляции суммы вертикального градиента.
Второй модуль 52 определения выполнен с возможностью при определении горизонтальной скорости на основании первого исходного значения предсказания и второго исходного значения предсказания, если выполнено второе заранее заданное условие, определять коэффициент S1 автокорреляции суммы горизонтального градиента, коэффициент S2 взаимной корреляции между суммой горизонтального градиента и суммой вертикального градиента, коэффициент S3 взаимной корреляции между разностью значений предсказания во временной области и суммой горизонтального градиента, коэффициент S5 автокорреляции суммы вертикального градиента, коэффициент S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания; определять горизонтальную скорость на основании коэффициента S1 автокорреляции, коэффициента S2 взаимной корреляции, коэффициента S3 взаимной корреляции, коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, первого коэффициента увеличения и второго коэффициента увеличения, причем второе заранее заданное условие определяется на основании коэффициента S2 взаимной корреляции и коэффициента S5 автокорреляции.
Второй модуль 52 определения выполнен с возможностью при определении вертикальной скорости на основании первого исходного значения предсказания и второго исходного значения предсказания получать, без выполнения ограничивающей обработки, неограниченную горизонтальную скорость на основании первого исходного значения предсказания и второго исходного значения предсказания и определять вертикальную скорость на основании указанной неограниченной горизонтальной скорости.
Второй модуль 52 определения выполнен с возможностью при определении вертикальной скорости на основании первого исходного значения предсказания и второго исходного значения предсказания, если выполнено третье заранее заданное условие, определять коэффициент S5 автокорреляции суммы вертикального градиента, коэффициент S6 взаимной корреляции между разностью значений предсказания во временной области и суммой вертикального градиента на основании первого исходного значения предсказания и второго исходного значения предсказания; определять вертикальную скорость на основании коэффициента S5 автокорреляции, коэффициента S6 взаимной корреляции, порогового значения скорости, первого коэффициента увеличения и второго коэффициента увеличения, причем третье заранее заданное условие определяется на основании горизонтальной скорости.
Значение коэффициента S2 взаимной корреляции лежит между первым пороговым значением коэффициента взаимной корреляции и вторым пороговым значением коэффициента взаимной корреляции.
Значение коэффициента S6 взаимной корреляции лежит между третьим пороговым значением коэффициента взаимной корреляции и четвертым пороговым значением коэффициента взаимной корреляции.
Первый коэффициент увеличения равен меньшему из 5 и (BD-7) или большему из 1 и (BD-11); второй коэффициент увеличения равен меньшему из 8 и (BD-4) или большему из 4 и (BD-8); пороговое значение скорости равно 2 в степени М, где М равно разности между 13 и BD или большему из 5 и (BD-7); BD представляет собой битовую глубину.
Первый модуль 53 выполнен с возможностью при получении значения компенсации предсказания на основании горизонтальной скорости и вертикальной скорости определять горизонтальный градиент и вертикальный градиент на основании первого исходного значения предсказания, второго исходного значения предсказания и количества битов сдвига градиента вправо, и получать значение компенсации предсказания на основании горизонтальной скорости, вертикальной скорости, горизонтального градиента и вертикального градиента, при этом количество битов сдвига градиента вправо равно большему из 2 и (14-BD) или большему из 6 и (BD-6), a BD представляет собой битовую глубину.
С точки зрения воплощения в аппаратуре, архитектура декодирующего устройства, предусматриваемого вариантом реализации настоящего изобретения, может быть такой, как показано на фиг. 6. Декодирующее устройство содержит процессор 61 и машиночитаемый носитель информации 62, выполненный с возможностью хранения машиноисполняемых инструкций, которые могут быть исполнены процессором 61. Процессор 61 выполнен с возможностью исполнения машиноисполняемых инструкций для реализации способа, раскрытого в вышеприведенных примерах настоящего изобретения. Например, указанный процессор выполнен с возможностью исполнения машиноисполняемых инструкций для
выполнения для получения искомого значения предсказания текущего блока или субблока указанного текущего блока, если характеристическая информация указанного текущего блока удовлетворяет конкретному условию, следующих этапов: определение первого исходного значения предсказания на основании первой информации об однонаправленном перемещении текущего блока, и определение второго исходного значения предсказания на основании второй информации об однонаправленном перемещении текущего блока; определение горизонтальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания; определение вертикальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания; получение значения компенсации предсказания на основании указанных горизонтальной скорости и вертикальной скорости; получение искомого значения предсказания на основании указанных первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания.
С точки зрения воплощения в аппаратуре, архитектура кодирующего устройства, предусматриваемого вариантам реализации настоящего изобретения, может быть такой, как показано на фиг. 7. Декодирующее устройство содержит процессор 71 и машиночитаемый носитель информации 72, выполненный с возможностью хранения машиноисполняемых инструкций, которые могут быть исполнены процессором 71. Процессор 71 выполнен с возможностью исполнения машиноисполняемых инструкций для реализации способа, раскрытого в вышеприведенных примерах настоящего изобретения. Например, указанный процессор выполнен с возможностью исполнения машиноисполняемых инструкций для
получения искомого значения предсказания текущего блока или субблока текущего блока, если характеристическая информация указанного текущего блока удовлетворяет конкретному условию, посредством выполнения следующих этапов: определение первого исходного значения предсказания на основании первой информации об однонаправленном перемещении текущего блока и определение второго исходного значения предсказания на основании второй информации об однонаправленном перемещении текущего блока; определение горизонтальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания; определение вертикальной скорости на основании указанных первого исходного значения предсказания и второго исходного значения предсказания; получение значения компенсации предсказания на основании указанных горизонтальной скорости и вертикальной скорости; получение искомого значения предсказания на основании указанных первого исходного значения предсказания, второго исходного значения предсказания и значения компенсации предсказания.
На основе той же идеи, которая в настоящем изобретении использована в вышеописанном способе, посредством варианта реализации настоящего изобретения также предлагается машиночитаемый носитель информации, содержащий множество компьютерных инструкций, которые при исполнении процессором  могут вызывать выполнение указанным процессором способов кодирования и декодирования, раскрытых в вышеприведенных примерах настоящего изобретения. Указанным машиночитаемым носителем информации может быть произвольное электронное, магнитное, оптическое или иное физическое запоминающее устройство, выполненное с возможностью содержания или сохранения информации, например, исполнимых инструкций, данных и т.п. Указанным машиночитаемым носителем информации может быть, например, память с произвольным доступом (англ. Random Access Memory, RAM), недолговременная память, долговременная память, флэш-память, дисковый накопитель (к примеру, жесткий диск), твердотельный накопитель, дисковое хранилище произвольного типа (к примеру, компакт-диск, диск DVD и т.д.) или аналогичный носитель информации или их комбинация.
Системы, аппараты, модули или элементы, описанные в вышеприведенных вариантах реализации, могут быть осуществлены посредством компьютерной интегральной схемы или структуры, или посредством изделия с определенными функциями. Обычно эти системы и др. осуществляют в виде компьютера, который может быть в форме персонального компьютера, портативного компьютера, сотового телефона, камерофона, смартфона, персонального цифрового помощника, медиаплейера, навигационного устройства, устройства для обмена сообщениями электронной почты, планшетного компьютера, надеваемого устройства или комбинации любых из этих устройств.
Для упрощения описания вышеназванные устройства представлены в виде отдельных элементов, выделенных на основании их функций. Разумеется, при осуществлении настоящего изобретения функции каждого элемента могут быть реализованы в одном или более программных и/или аппаратных средств.
Специалистам должно быть понятно, что варианты реализации настоящего изобретения могут быть раскрыты посредством способов, систем или компьютерных программных продуктов. Настоящее изобретение может иметь форму полностью аппаратной реализации, полностью программной реализации или реализации, в которой совместно используются программные и аппаратные аспекты. Кроме того, варианты реализации настоящего изобретения могут иметь форму компьютерного программного продукта, воплощенного на одном или более носителей информации с возможностью использования компьютером (например, без ограничения, на дисковом носителе, компакт-диске CD-ROM, оптическом носителе и т.п.), содержащих программный код, который может быть использован компьютером.
Настоящее изобретение описано со ссылкой на блок-схемы и/или функциональные схемы способов, устройств (системы) и компьютерных программных продуктов согласно вариантам реализации настоящего изобретения. Должно быть понятно, что каждая последовательность действий и/или блок в блок-схемах и/или функциональных схемах, и комбинации последовательностей действий и/или блоков, представленные на блок-схемах и/или функциональных схемах, могут быть реализованы посредством компьютерных программных инструкций. Эти компьютерные программные инструкции могут передаваться в процессор компьютера общего назначения, специализированного компьютера, во встроенный процессор или в другое программируемое устройство для обработки данных с целью реализации устройства, в котором указанные инструкции при их исполнении процессором компьютера или другого программируемого устройства для обработки данных реализуют функции, показанные последовательностью или последовательностями действий на блок-схеме и/или блоком или блоками на функциональной схеме. Кроме того, эти компьютерные программные инструкции также могут сохраняться в машиночитаемой памяти, которая может управлять компьютером или другим программируемым устройством для обработки данных так, чтобы он функционировал определенным образом; таким образом, посредством инструкций, сохраненных в машиночитаемой памяти, реализуется изделие, содержащее программируемый аппарат, который выполняет функции, показанные последовательностью или последовательностями действий на блок-схеме и/или блоком или блоками на функциональной схеме.
Эти компьютерные программные инструкции также могут загружаться в компьютер или в другое программируемое устройство для обработки данных с целью вызвать выполнение указанным компьютером или программируемым устройством ряда функциональных этапов для выполнения реализуемой компьютером операции так, что инструкции, которые исполняются на указанном компьютере или программируемом устройстве, соотносятся с этапами для реализации функций, указанных в одной или более последовательностях действий на блок-схеме и/или одним или более блоками на функциональной схеме. Вышеприведенное описание представляет собой лишь один из вариантов реализации настоящего изобретения и не имеет целью ограничение настоящего изобретения. Специалист в области техники, к которой относится настоящее изобретение, может найти разнообразные модификации и изменения. Любая модификация, эквивалентная замена, усовершенствование или т.п., выполненные в соответствии с идеей и принципами настоящего изобретения, входят в объем формулы настоящего изобретения.