RU2708347C1 - Способ и устройство кодирования изображения и способ и устройство декодирования изображения - Google Patents

Способ и устройство кодирования изображения и способ и устройство декодирования изображения Download PDF

Info

Publication number
RU2708347C1
RU2708347C1 RU2018131317A RU2018131317A RU2708347C1 RU 2708347 C1 RU2708347 C1 RU 2708347C1 RU 2018131317 A RU2018131317 A RU 2018131317A RU 2018131317 A RU2018131317 A RU 2018131317A RU 2708347 C1 RU2708347 C1 RU 2708347C1
Authority
RU
Russia
Prior art keywords
block
decoded
motion vectors
motion
groups
Prior art date
Application number
RU2018131317A
Other languages
English (en)
Inventor
Хуаньбан ЧЭНЬ
Сисинь ЛИНЬ
Хайтао ЯН
Original Assignee
Хуавей Текнолоджиз Ко., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Хуавей Текнолоджиз Ко., Лтд. filed Critical Хуавей Текнолоджиз Ко., Лтд.
Application granted granted Critical
Publication of RU2708347C1 publication Critical patent/RU2708347C1/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Изобретение относится к вычислительной технике. Технический результат заключается в повышении точности декодирования изображения. Способ декодирования изображения, в котором определяют N декодированных блоков из соседних декодированных блоков блока, подлежащего декодированию, причем режим прогнозирования движения для указанных N декодированных блоков является таким же, как режим для блока, подлежащего декодированию; генерируют n-ую группу векторов движения на основе вектора движения для n-го декодированного блока, где n является любым положительным целым числом не больше N; декодируют поток битов данных, соответствующий блоку, подлежащему декодированию, для получения остатка прогнозирования для каждого блока выборки и идентификатора индекса для оптимальной группы векторов движения; определяют оптимальную группу векторов движения из N групп векторов движения на основе идентификатора индекса для оптимальной группы векторов движения; определяют прогнозируемую величину выборки для каждого блока выборки в блоке, подлежащем декодированию на основе оптимальной группы векторов движения; и определяют реконструированную величину выборки для каждого блока выборки на основе суммы прогнозируемой величины выборки для каждого блока выборки и остатка прогнозирования для каждого блока выборки. 3 н. и 16 з.п. ф-лы, 8 ил.

Description

Область техники, к которой относится изобретение
Варианты настоящего изобретения относятся к технологиям обработки изображения и, в частности к способу и устройству кодирования изображения и к способу и устройству декодирования изображения.
Уровень техники
В быту и в производственной деятельности широко применяются мультимедийные видео приложения, такие как видеоконференция, видеонаблюдение и интернет-телевидение. В связи с этим все более высокие требования предъявляются к качеству видеоизображения, передаче видеоизображения и хранению видеоизображения, так что соответственно необходимо развивать технологию кодирования видео. Применение технологии видео кодирования позволяет кодировать данные видеоизображения таким образом, чтобы уменьшить объем избыточной информации в составе этих данных видеоизображения, способствовать передаче и хранению видеоизображения и обеспечить качество видеоизображения.
В существующем способе кодирования изображения может быть использована схема кодирования на основе внутрикадрового прогнозирования (Intra-frame Prediction). Вектор движения блока, подлежащего кодированию, определяют на основе вектора движения кодированного блока, соседнего с блоком, подлежащим кодированию, и определяют прогнозируемую опорную величину для блока, подлежащего кодированию, на основе вектора движения этого блока, подлежащего кодированию. После этого кодируют остаток между исходной опорной величиной для блока, подлежащего кодированию, и найденной прогнозируемой опорной величиной для этого блока для получения потока битов данных для блока, подлежащего кодированию.
Корреляция движения между соседним кодированным блоком и блоком, подлежащим кодированию, также влияет на вектор движения блока, подлежащего кодированию. Поэтому, вектор движения блока, подлежащего кодированию, который может быть найден с применением существующего способа кодирования изображения, не обладает достаточной точностью, результатом чего является относительно низкая точность кодирования изображений.
Раскрытие сущности изобретения
Варианты настоящего изобретения предлагают способ и устройство кодирования изображения и способ и устройство декодирования изображения с целью повысить точность кодирования и декодирования изображения.
Один из вариантов настоящего изобретения предлагает способ кодирования изображения, содержащий этапы, на которых:
определяют N кодированных блоков из совокупности кодированных блоков, соседних с блоком, подлежащим кодированию, в соответствии с первым заданным правилом, где режим прогнозирования движения этих N кодированных блоков является таким же, как для блока, подлежащего кодированию, и N – положительное целое число;
генерируют n-группу векторов движения с использованием первого заданного алгоритма и на основе вектора движения n-го кодированного блока, где n представляет собой какое-либо положительное целое число не больше N;
определяют, на основе полученных N групп векторов движения в соответствии со вторым заданным правилом, одну группу векторов движения в качестве оптимальной группы векторов движения;
определяют прогнозируемую опорную величину каждого элемента выборки в блоке, подлежащем кодированию, с использованием второго заданного алгоритма и на основе оптимальной группы векторов движения;
определяют остаток прогнозирования для каждого элемента выборки на основе разности между исходной опорной величиной для каждого элемента выборки и прогнозируемой опорной величиной для каждого элемента выборки; и
кодируют остаток прогнозирования для каждого элемента выборки и идентификатор индекса для оптимальной группы векторов движения, для получения потока битов данных, соответствующего блоку, подлежащему кодированию, причем идентификатор индекса для оптимальной группы векторов движения используется в качестве команды устройству декодирования определить прогнозируемую опорную величину для каждого элемента выборки.
В качестве опции, процедура генерирования n-ой группы векторов движения с использованием первого заданного алгоритма и на основе вектора движения для n-го кодированного блока может содержать:
определение предсказателей векторов движения для M контрольных точек блока, подлежащего кодированию, с использованием первого заданного алгоритма и на основе вектора движения для n-го кодированного блока, выборочных координат n-го кодированного блока и выборочных координат указанных M контрольных точек; и
генерирование n-ой группы векторов движения на основе предсказателей векторов движения для M контрольных точек, где M – положительное целое число, определяемое на основе режима прогнозирования движения для блока, подлежащего кодированию.
В качестве опции, совокупность M контрольных точек содержит верхнюю левую вершину и верхнюю правую вершину блока, подлежащего кодированию; и
процедура определения предсказателей векторов движения для M контрольных точек блока, подлежащего кодированию, с использованием первого заданного алгоритма и на основе вектора движения для n-го кодированного блока, выборочных координат n-го кодированного блока и выборочных координат M контрольных точек содержит:
определение предсказателя вектора
Figure 00000001
движения для верхней левой вершины блока, подлежащего кодированию, с использованием следующей формулы (1) и на основе вектора
Figure 00000002
движения для верхней левой вершины n-го кодированного блока, вектора
Figure 00000003
движения для верхней правой вершины n-го кодированного блока, вектора
Figure 00000004
движения для нижней левой вершины n-го кодированного блока, выборочных координат
Figure 00000005
верхней левой вершины n-го кодированного блока, выборочных координат
Figure 00000006
верхней правой вершины n-го кодированного блока, выборочных координат
Figure 00000007
нижней левой вершины n-го кодированного блока и выборочных координат
Figure 00000008
верхней левой вершины блока, подлежащего кодированию:
Figure 00000009
формула (1); и
определение предсказателя вектора
Figure 00000010
движения для верхней правой вершины блока, подлежащего кодированию с использованием следующей формулы (2) и на основе вектора
Figure 00000002
движения для верхней левой вершины n-го кодированного блока, вектора
Figure 00000003
движения для верхней правой вершины n-гоh кодированного блока, выборочных координат
Figure 00000005
верхней левой вершины n-го кодированного блока, выборочных координат
Figure 00000006
верхней правой вершины n-го кодированного блока, предсказателя вектора
Figure 00000001
движения для верхней левой вершины блока, подлежащего кодированию, выборочных координат
Figure 00000008
верхней левой вершины блока, подлежащего кодированию, и выборочных координат
Figure 00000011
верхней левой вершины блока, подлежащего кодированию:
Figure 00000012
формула (2).
В качестве опции, процедура определения, на основе полученных N групп векторов движения в соответствии со вторым заданным правилом, одной группы векторов движения в качестве оптимальной группы векторов движения может содержать:
сортировку указанных N групп векторов движения в соответствии с заданным правилом сортировки для генерирования очереди векторов-кандидатов движения;
если N не меньше заданной величины, определение заданного числа групп векторов движения в передней части очереди векторов-кандидатов движения;
определение ошибки несовпадения между каждой из заданного числа групп векторов движения в передней части очереди и блоком, подлежащим кодированию; и
определение одной группы векторов движения, которой соответствует наименьшая ошибка несовпадения, в качестве оптимальной группы векторов движения.
В качестве опции, заданное правило сортировки содержит расположение N кодированных блоков в порядке убывания.
В качестве опции, процедура определения, на основе полученных N групп векторов движения в соответствии со вторым заданным правилом, одной группы векторов движения в качестве оптимальной группы векторов движения может содержать:
сортировку указанных N групп векторов движения в соответствии с заданным правилом сортировки;
если N не меньше заданной величины, генерирование Q групп векторов движения, где сумма N и Q не меньше заданной величины, и Q – положительное целое число;
добавление Q групп векторов движения к концу списка N групп векторов движения для генерирования очереди векторов-кандидатов движения;
определение заданного числа групп векторов движения в передней части очереди векторов-кандидатов движения;
определение ошибки несовпадения между каждой из заданного числа групп векторов движения в передней части очереди и блоком, подлежащим кодированию; и
определение одной группы векторов движения, которой соответствует наименьшая ошибка несовпадения, в качестве оптимальной группы векторов движения.
В качестве опции, процедура генерирования Q групп векторов движения может содержать:
определение, на основе соседних кодированных блоков, одного кодированного блока, соответствующего m-ой контрольной точке в блоке, подлежащем кодированию, где расстояние между кодированным блоком, соответствующим этой m-ой контрольной точке, и этой m-ой контрольной точкой не больше заданного расстояния, и m представляет собой какое-либо положительное целое число не больше M;
определение вектора движения для кодированного блока, соответствующего m-ой контрольной точке, в качестве предсказателя вектора движения для этой m-ой контрольной точки; и
генерирование Q групп векторов движения на основе предсказателей векторов движения для M контрольных точек.
В качестве альтернативы, процедура генерирования Q групп векторов движения может содержать:
определение, из совокупности соседних кодированных блоков, одного кодированного блока, соответствующего m-ой контрольной точке в блоке, подлежащем кодированию, где расстояние между кодированным блоком, соответствующим этой m-ой контрольной точке, и этой m-ой контрольной точкой не больше заданного расстояния, и m представляет собой какое-либо положительное целое число не больше M;
определение вектора движения для кодированного блока, соответствующего m-ой контрольной точке, в качестве первого предсказателя вектора движения для m-ой контрольной точки;
генерирование K первых групп векторов движения на основе первых предсказателей векторов движения для M контрольных точек;
определение вектора движения для j-го кодированного блока из совокупности соседних кодированных блоков в качестве второго предсказателя вектора движения для m-ой контрольной точки, где j представляет собой какое-либо одно из чисел 1, …, или J, где J представляет собой число соседних кодированных блоков, и J – положительное целое число;
генерирование L вторых групп векторов движения на основе вторых предсказателей векторов движения для M контрольных точек; и
добавление K первых групп векторов движения к концу последовательности L вторых групп векторов движения для генерирования Q групп векторов движения.
В качестве опции, процедура добавления Q групп векторов движения к концу последовательности N групп векторов движения для генерирования очереди векторов-кандидатов движения может содержать:
определение характеристического значения, соответствующего q-ой группе векторов движения, где q представляет собой какое-либо положительное целое число не больше Q;
сортировку Q групп векторов движения в порядке возрастания на основе характеристических значений, соответствующих Q группам векторов движения; и
добавление рассортированных Q групп векторов движения к концу рассортированной последовательности N групп векторов движения для генерирования очереди векторов-кандидатов движения.
В качестве опции, процедура определения характеристического значения, соответствующего q-ой группе векторов движения, содержит:
определение разности между компонентами предсказателей векторов движения в одном направлении прогнозирования в q-ой группе векторов движения, для соседних контрольных точек из совокупности M контрольных точек;
сравнение абсолютной величины разности с заданным компонентным порогом, где этот заданный компонентный порог представляет собой диапазон блока, подлежащего кодированию в направлении прогнозирования; и
если абсолютная величина разности не больше заданного компонентного порога, определение характеристического значения, соответствующего q-ой группе векторов движения.
В качестве опции, процедура определения характеристического значения, соответствующего q-ой группе векторов движения, может содержать:
определение, из совокупности соседних кодированных блоков, кодированного блока, соответствующего другой контрольной точке, где расстояние между кодированным блоком, соответствующим другой контрольной точке, и этой другой контрольной точкой не больше заданного расстояния, и эта другая контрольная точка представляет собой какую-либо контрольную точку, отличную от указанных M контрольных точек в блоке, подлежащем кодированию;
определение вектора движения для кодированного блока, соответствующего указанной другой контрольной точке, в качестве предсказателя вектора движения для рассматриваемой другой контрольной точки; и
определение характеристического значения, соответствующего q-ой группе векторов движения, с использованием третьего заданного алгоритма и на основе предсказателя векторов движения для указанной другой контрольной точки и предсказателей векторов движения в q-ой группе векторов движения, для M контрольных точек.
В качестве опции, режим прогнозирования движения для блока, подлежащего кодированию, может представлять собой трансляционный режим прогнозирования движения или аффинный режим прогнозирования движения.
Один из вариантов настоящего изобретения дополнительно предлагает способ декодирования изображения, содержащий:
определение N декодированных блоков из совокупности декодированных блоков, соседних с блоком, подлежащим декодированию, в соответствии с первым заданным правилом, где режим прогнозирования движения для N декодированных блоков является таким же, как для блока, подлежащего декодированию, и N – положительное целое число;
генерирование n-ой группы векторов движения с использованием первого заданного алгоритма и на основе вектора движения для n-го декодированного блока, где n представляет собой какое-либо положительное целое число не больше N;
декодирование потока битов данных, соответствующего блоку, подлежащему декодированию, для получения остатка прогнозирования для каждого элемента выборки и идентификатора индекса для оптимальной группы векторов движения;
определение оптимальной группы векторов движения из совокупности N групп векторов движения на основе идентификатора индекса для оптимальной группы векторов движения;
определение прогнозируемой опорной величины для каждого элемента выборки в блоке, подлежащем декодированию, с использованием второго заданного алгоритма и на основе оптимальной группы векторов движения; и
определение реконструированной опорной величины для каждого элемента выборки на основе суммы прогнозируемой опорной величины для каждого элемента выборки и остатка прогнозирования для каждого элемента выборки.
В качестве опции, процедура генерирования n-ой группы векторов движения с использованием первого заданного алгоритма и на основе вектора движения для n-го декодированного блока может содержать:
определение предсказателей векторов движения для M контрольных точек в блоке, подлежащем декодированию, с использованием первого заданного алгоритма и на основе вектора движения для n-го декодированного блока, выборочных координат для n-го декодированного блока и выборочных координат для M контрольных точек; и
генерирование n-ой группы векторов движения на основе предсказателей векторов движения для M контрольных точек, где M положительное целое число, определяемое на основе режима прогнозирования движения для блока, подлежащего декодированию.
В качестве опции, в указанную совокупность M контрольных точек входят верхняя левая вершина и верхняя правая вершина блока, подлежащего декодированию; и
процедура определения предсказателей векторов движения для M контрольных точек блока, подлежащего декодированию, с использованием первого заданного алгоритма и на основе вектора движения для n-го декодированного блока, выборочных координат для n-го декодированного блока и выборочных координат для M контрольных точек содержит:
определение предсказателя вектора
Figure 00000001
движения для верхней левой вершины блока, подлежащего декодированию, с использованием следующей формулы (1) и на основе вектора
Figure 00000002
движения для верхней левой вершины n-го декодированного блока, вектора
Figure 00000003
движения для верхней правой вершины n-го декодированного блока, вектора
Figure 00000004
движения для нижней левой вершины n-го декодированного блока, выборочных координат
Figure 00000005
верхней левой вершины n-го декодированного блока, выборочных координат
Figure 00000006
верхней правой вершины n-го декодированного блока, выборочных координат
Figure 00000007
нижней левой вершины n-го декодированного блока, и выборочных координат
Figure 00000008
верхней левой вершины блока, подлежащего декодированию:
Figure 00000009
формула (1); и
определение предсказателя вектора
Figure 00000010
движения для верхней правой вершины блока, подлежащего декодированию, с использованием следующей формулы (2) и на основе вектора
Figure 00000002
движения верхней левой вершины n-го декодированного блока, вектор
Figure 00000003
движения верхней правой вершины n-го декодированного блока, выборочных координат
Figure 00000005
верхней левой вершины n-го декодированного блока, выборочных координат
Figure 00000006
верхней правой вершины n-го декодированного блока, предсказателя вектора
Figure 00000001
движения для верхней левой вершины блока, подлежащего декодированию, выборочных координат
Figure 00000008
верхней левой вершины блока, подлежащего декодированию, и выборочных координат
Figure 00000011
верхней левой вершины блока, подлежащего декодированию:
Figure 00000012
формула (2).
В качестве опции, процедура определения оптимальной группы векторов движения из совокупности N групп векторов движения на основе идентификатора индекса для оптимальной группы векторов движения может содержать:
сортировку N групп векторов движения в соответствии с заданным правилом сортировки для генерирования очереди векторов-кандидатов движения;
если N не меньше заданной величины, определение заданного числа групп векторов движения в передней части очереди векторов-кандидатов движения; и
определение оптимальной группы векторов движения в заданном числе групп векторов движения в передней части очереди на основе идентификатора индекса для оптимальной группы векторов движения.
В качестве опции, заданное правило сортировки содержит расположение N декодированных блоков в порядке убывания.
В качестве опции, процедура определения оптимальной группы векторов движения из совокупности N групп векторов движения на основе идентификатора индекса для оптимальной группы векторов движения может содержать:
сортировку N групп векторов движения в соответствии с заданным правилом сортировки;
если N меньше заданной величины, генерирование Q групп векторов движения, где сумма N и Q не меньше заданной величины, и Q – положительное целое число;
добавление Q групп векторов движения в конце последовательности из N групп векторов движения, для генерирования очереди векторов-кандидатов движения;
определение заданного числа групп векторов движения в передней части очереди векторов-кандидатов движения; и
определение оптимальной группы векторов движения из совокупности заданного числа групп векторов движения в передней части очереди на основе идентификатора индекса для оптимальной группы векторов движения.
В качестве опции, процедура генерирования Q групп векторов движения содержит:
определение, из совокупности соседних декодированных блоков, декодированного блока, соответствующего m-ой контрольной точке в блоке, подлежащем декодированию, где расстояние между декодированным блоком, соответствующим m-ой контрольной точке и этой m-ой контрольной точкой не больше заданного расстояния, и m представляет собой какое-либо положительное целое число не больше M;
определение вектора движения для декодированного блока, соответствующего m-ой контрольной точке, в качестве предсказателя вектора движения для этой m-ой контрольной точки; и
генерирование Q групп векторов движения на основе предсказателей векторов движения для M контрольных точек.
В качестве альтернативы, процедура генерирования Q групп векторов движения содержит:
определение, из совокупности соседних декодированных блоков, декодированного блока, соответствующего m-ой контрольной точке в блоке, подлежащем декодированию, где расстояние между декодированным блоком, соответствующим m-ой контрольной точке и этой m-ой контрольной точкой не больше заданного расстояния, и m представляет собой какое-либо положительное целое число не больше M;
определение вектора движения для декодированного блока, соответствующего m-ой контрольной точке, в качестве первого предсказателя вектора движения для этой m-ой контрольной точки;
генерирование K первых групп векторов движения на основе первых предсказателей векторов движения для M контрольных точек;
определение вектора движения для j-го декодированного блока из совокупности соседних декодированных блоков в качестве второго предсказателя вектора движения для m-ой контрольной точки, где j представляет собой какое-либо одно из чисел 1, …, или J, где J представляет собой число соседних декодированных блоков, и J – положительное целое число;
генерируют L вторых групп векторов движения на основе вторых предсказателей векторов движения для M контрольных точек; и
добавление K первых групп векторов движения к концу последовательности L вторых групп векторов движения для генерирования Q групп векторов движения.
В качестве опции, процедура добавления Q групп векторов движения к концу последовательности N групп векторов движения для генерирования очереди векторов-кандидатов движения содержит:
определение характеристического значения, соответствующего q-ой группе векторов движения, где q представляет собой какое-либо положительное целое число не больше Q;
сортировку Q групп векторов движения в порядке возрастания на основе характеристических значений, соответствующих Q группам векторов движения; и
добавление рассортированных Q групп векторов движения к концу рассортированной последовательности N групп векторов движения для генерирования очереди векторов-кандидатов движения.
В качестве опции, процедура определения характеристического значения, соответствующего q-ой группе векторов движения, содержит:
определение разности между компонентами предсказателей векторов движения в одном направлении прогнозирования в q-ой группе векторов движения, для соседних контрольных точек из совокупности M контрольных точек;
сравнение абсолютной величины разности с заданным компонентным порогом, где этот заданный компонентный порог представляет собой диапазон блока, подлежащего кодированию в направлении прогнозирования; и
если абсолютная величина разности не больше заданного компонентного порога, определение характеристического значения, соответствующего q-ой группе векторов движения.
В качестве опции, процедура определения характеристического значения, соответствующего q-ой группе векторов движения, содержит:
определение, из совокупности соседних декодированных блоков, декодированного блока, соответствующего другой контрольной точке, где расстояние между декодированным блоком, соответствующим другой контрольной точке и этой другой контрольной точкой не больше заданного расстояния, и рассматриваемая другая контрольная точка представляет собой какую-либо контрольную точку, отличную от указанных M контрольных точек в блоке, подлежащем декодированию;
определение вектора движения для кодированного блока, соответствующего указанной другой контрольной точке, в качестве предсказателя вектора движения для рассматриваемой другой контрольной точки; и
определение характеристического значения, соответствующего q-ой группе векторов движения, с использованием третьего заданного алгоритма и на основе предсказателя векторов движения для указанной другой контрольной точки и предсказателей векторов движения в q-ой группе векторов движения, для M контрольных точек.
В качестве опции, режим прогнозирования движения для блока, подлежащего декодированию, может представлять собой трансляционный режим прогнозирования движения или аффинный режим прогнозирования движения.
Один из вариантов настоящего изобретения далее предлагает устройство кодирования изображения, содержащее:
решающий модуль, конфигурированный для определения N кодированных блоков из совокупности кодированных блоков, соседних с блоком, подлежащим кодированию, в соответствии с первым заданным правилом, где режим прогнозирования движения для этих N кодированных блоков является таким же, как для блока, подлежащего кодированию, и N – положительное целое число;
вычислительный модуль, конфигурированный для генерирования n-ой группы векторов движения с использованием первого заданного алгоритма и на основе вектора движения для n-го кодированного блока, найденного решающим модулем, где n представляет собой какое-либо положительное целое число не больше N, где
решающий модуль дополнительно конфигурирован для определения, на основе N групп векторов движения, полученных вычислительным модулем, и в соответствии со вторым заданным правилом, одной группы векторов движения в качестве оптимальной группы векторов движения; и
вычислительный модуль дополнительно конфигурирован для: определения прогнозируемой опорной величины каждого элемента выборки в блоке, подлежащем кодированию, с использованием второго заданного алгоритма и на основе оптимальной группы векторов движения, найденной решающим модулем, и для определения остатка прогнозирования для каждого элемента выборки на основе разности между исходной опорной величиной каждого элемента выборки и прогнозируемой опорной величиной этого элемента выборки; и
кодирующий модуль, конфигурированный для кодирования остатка прогнозирования для каждого элемента выборки и идентификатора индекса для оптимальной группы векторов движения, с целью получения потока битов данных, соответствующего блоку, подлежащему кодированию, где идентификатор индекса для оптимальной группы векторов движения используется в качестве команды устройству декодирования определить прогнозируемую опорную величину для каждого элемента выборки.
В качестве опции, вычислительный модуль, в частности, конфигурирован для: определения предсказателей векторов движения для M контрольных точек блока, подлежащего кодированию с использованием первого заданного алгоритма и на основе вектора движения для n-го кодированного блока, найденного решающим модулем, выборочных координат n-го кодированного блока и выборочных координат указанных M контрольных точек; и генерирования n-ой группы векторов движения на основе предсказателей векторов движения для этих M контрольных точек, где M положительное целое число, найденное на основе режима прогнозирования движения для блока, подлежащего кодированию.
В качестве опции, совокупность указанных M контрольных точек содержит верхнюю левую вершину и верхнюю правую вершину блока, подлежащего кодированию;
вычислительный модуль, в частности, конфигурирован для определения предсказателя вектора
Figure 00000001
движения для верхней левой вершины блока, подлежащего кодированию, с использованием следующей формулы (1) и на основе вектора
Figure 00000002
движения для верхней левой вершины n-го кодированного блока, найденного решающим модулем, вектора
Figure 00000003
движения для верхней правой вершины n-го кодированного блока, вектора
Figure 00000004
движения для нижней левой вершины n-го кодированного блока, выборочных координат
Figure 00000005
верхней левой вершины n-го кодированного блока, выборочных координат
Figure 00000006
верхней правой вершины n-го кодированного блока, выборочных координат
Figure 00000007
нижней левой вершины n-го кодированного блока и выборочных координат
Figure 00000008
верхней левой вершины блока, подлежащего кодированию:
Figure 00000009
формула (1); и
вычислительный модуль дополнительно конфигурирован для определения предсказателя вектора
Figure 00000010
движения для верхней правой вершины блока, подлежащего кодированию, с использованием следующей формулы (2) и на основе вектора
Figure 00000002
движения для верхней левой вершины n-го кодированного блока, найденного решающим модулем, вектора
Figure 00000003
движения для верхней правой вершины n-го кодированного блока, выборочных координат
Figure 00000005
верхней левой вершины n-го кодированного блока, выборочных координат
Figure 00000006
верхней правой вершины n-го кодированного блока, предсказателя вектора
Figure 00000001
движения для верхней левой вершины блока, подлежащего кодированию, выборочных координат
Figure 00000008
верхней левой вершины блока, подлежащего кодированию, выборочных координат
Figure 00000011
верхней левой вершины блока, подлежащего кодированию:
Figure 00000012
формула (2).
В качестве опции, решающий модуль, в частности, конфигурирован для: сортировки N групп векторов движения в соответствии с заданным правилом сортировки для генерирования очереди векторов-кандидатов движения; если N не меньше заданной величины, определения заданного числа групп векторов движения в передней части очереди векторов-кандидатов движения; определения ошибки несовпадения между каждой из заданного числа групп векторов движения в передней части и блоком, подлежащим кодированию; и определения одной группы векторов движения с наименьшей ошибкой несовпадения в качестве оптимальной группы векторов движения.
В качестве опции, заданное правило сортировки содержит расположение N кодированных блоков в порядке убывания.
В качестве опции, решающий модуль дополнительно конфигурирован для: сортировки N групп векторов движения в соответствии с заданным правилом сортировки; если N меньше заданной величины, генерирования Q групп векторов движения, где сумма N и Q не меньше заданной величины, и Q положительное целое число; добавление Q групп векторов движения к концу последовательности из N групп векторов движения для генерирования очереди векторов-кандидатов движения; определения заданного числа групп векторов движения в передней части очереди векторов-кандидатов движения; определения ошибки несовпадения между каждой из этого заданного числа групп векторов движения в передней части очереди и блоком, подлежащим кодированию; и определения одной группы векторов движения с наименьшей ошибкой несовпадения в качестве оптимальной группы векторов движения.
В качестве опции, решающий модуль дополнительно конфигурирован для: определения, из совокупности соседних кодированных блоков, кодированного блока, соответствующего m-ой контрольной точке в блоке, подлежащем кодированию, где расстояние между кодированным блоком, соответствующим этой m-ой контрольной точке, и этой m-ой контрольной точкой не больше заданного расстояния, и m представляет собой какое-либо положительное целое число не больше M; определения вектора движения для кодированного блока, соответствующего m-ой контрольной точке, в качестве предсказателя вектора движения для этой m-ой контрольной точки; и генерирования Q групп векторов движения на основе предсказателей векторов движения для M контрольных точек.
В качестве опции, решающий модуль дополнительно конфигурирован для: определения, из совокупности соседних кодированных блоков, кодированного блока, соответствующего m-ой контрольной точке в блоке, подлежащем кодированию, где расстояние между кодированным блоком, соответствующим этой m-ой контрольной точке, и этой m-ой контрольной точкой не больше заданного расстояния, и m представляет собой какое-либо положительное целое число не больше M; определения вектора движения для кодированного блока, соответствующего этой m-ой контрольной точки, в качестве первого предсказателя вектора движения для указанной m-ой контрольной точки; генерирования K первых групп векторов движения на основе первых предсказателей векторов движения для M контрольных точек; определения вектора движения для j-го кодированного блока из совокупности соседних кодированных блоков в качестве второго предсказателя вектора движения для m-ой контрольной точки, где j представляет собой какое-либо одно из чисел 1, …, или J, где J представляет собой число соседних кодированных блоков, и J – положительное целое число; генерирование L вторых групп векторов движения на основе вторых предсказателей векторов движения для M контрольных точек; и добавление K первых групп векторов движения к концу последовательности L вторых групп векторов движения для генерирования Q групп векторов движения.
В качестве опции, решающий модуль дополнительно конфигурирован для: определения характеристического значения, соответствующего q-ой группе векторов движения, где q представляет собой какое-либо положительное целое число не больше Q; сортировки Q групп векторов движения в порядке возрастания на основе характеристических значений, соответствующих Q группам векторов движения; и добавления рассортированных Q групп векторов движения к концу рассортированной последовательности N групп векторов движения для генерирования очереди векторов-кандидатов движения.
В качестве опции, решающий модуль дополнительно конфигурирован для: определения разности между компонентами предсказателей векторов движения в одном направлении прогнозирования в q-ой группе векторов движения, для соседних контрольных точек из совокупности M контрольных точек; сравнения абсолютной величины разности с заданным компонентным порогом, где этот заданный компонентный порог представляет собой диапазон блока, подлежащего кодированию в направлении прогнозирования; и если абсолютная величина разности не больше заданного компонентного порога, определения характеристического значения, соответствующего q-ой группе векторов движения.
В качестве опции, решающий модуль дополнительно конфигурирован для: определения, из совокупности соседних кодированных блоков, кодированного блока, соответствующего другой контрольной точке, где расстояние между кодированным блоком, соответствующим другой контрольной точке и этой другой контрольной точкой не больше заданного расстояния, и рассматриваемая другая контрольная точка представляет собой какую-либо контрольную точку, отличную от указанных M контрольных точек в блоке, подлежащем кодированию; определение вектора движения для кодированного блока, соответствующего указанной другой контрольной точке, в качестве предсказателя вектора движения для рассматриваемой другой контрольной точки; и определения характеристического значения, соответствующего q-ой группе векторов движения, с использованием третьего заданного алгоритма и на основе предсказателя вектора движения для указанной другой контрольной точки и предсказателей векторов движения в q-ой группе векторов движения, для M контрольных точек.
В качестве опции, режим прогнозирования движения для блока, подлежащего кодированию, может представлять собой трансляционный режим прогнозирования движения или аффинный режим прогнозирования движения.
В одном из вариантов настоящего изобретения далее предлагают устройство декодирования изображения, содержащее:
решающий модуль, конфигурированный для определения N декодированных блоков из совокупности декодированных блоков, соседних с блоком, подлежащим декодированию, в соответствии с первым заданным правилом, где режим прогнозирования движения для N декодированных блоков является таким же, как для блока, подлежащего декодированию, и N положительное целое число;
вычислительный модуль, конфигурированный для генерирования n-ой группы векторов движения с использованием первого заданного алгоритма и на основе вектора движения для n-го декодированного блока, найденного решающим модулем, где n представляет собой какое-либо положительное целое число не больше N; и
декодирующий модуль, конфигурированный для декодирования потока битов данных, соответствующего блоку, подлежащему декодированию, для получения остатка прогнозирования для каждого элемента выборки и идентификатора индекса для оптимальной группы векторов движения, где
решающий модуль дополнительно конфигурирован для определения оптимальной группы векторов движения из совокупности N групп векторов движения на основе идентификатора индекса для оптимальной группы векторов движения, найденной декодирующим модулем; и
вычислительный модуль дополнительно конфигурирован для: определения прогнозируемой опорной величины каждого элемента выборки в блоке, подлежащем декодированию, с использованием второго заданного алгоритма и на основе оптимальной группы векторов движения, найденной решающим модулем, и определения реконструированной опорной величины для каждого элемента выборки на основе суммы прогнозируемой опорной величины для каждого элемента выборки и остатка прогнозирования для каждого элемента выборки.
В качестве опции, вычислительный модуль, в частности, конфигурирован для: определения предсказателей векторов движения для M контрольных точек в блоке, подлежащем декодированию, с использованием первого заданного алгоритма и на основе вектора движения для n-го декодированного блока, найденного решающим модулем, выборочных координат n-го декодированного блока и выборочных координат M контрольных точек; и генерирования n-ой группы векторов движения на основе предсказателей векторов движения для M контрольных точек, где M – положительное целое число, найденное на основе режима прогнозирования движения для блока, подлежащего декодированию.
В качестве опции, совокупность M контрольных точек содержит верхнюю левую вершину и верхнюю правую вершину блока, подлежащего декодированию;
вычислительный модуль, в частности, конфигурирован для определения предсказателя вектора
Figure 00000001
движения для верхней левой вершины блока, подлежащего декодированию, с использованием следующей формулы (1) и на основе вектора
Figure 00000002
движения для верхней левой вершины n-го декодированного блока, найденного решающим модулем, вектора движения
Figure 00000003
для верхней правой вершины n-го декодированного блока, вектора
Figure 00000004
движения для нижней левой вершины n-го декодированного блока, выборочных координат
Figure 00000005
верхней левой вершины n-го декодированного блока, выборочных координат
Figure 00000006
верхней правой вершины n-го декодированного блока, выборочных координат
Figure 00000007
нижней левой вершины n-го декодированного блока и выборочных координат
Figure 00000008
верхней левой вершины блока, подлежащего декодированию:
Figure 00000009
формула (1); и
в частности, вычислительный модуль дополнительно конфигурирован для определения предсказателя вектора
Figure 00000010
движения для верхней правой вершины блока, подлежащего декодированию, с использованием следующей формулы (2) и на основе вектора
Figure 00000002
движения для верхней левой вершины n-го декодированного блока, найденного решающим модулем, вектора
Figure 00000003
движения для верхней правой вершины n-го декодированного блока, выборочных координат
Figure 00000005
верхней левой вершины n-го декодированного блока, выборочных координат
Figure 00000006
верхней правой вершины n-го декодированного блока, предсказателя вектора
Figure 00000001
движения для верхней левой вершины блока, подлежащего декодированию, выборочных координат
Figure 00000008
верхней левой вершины блока, подлежащего декодированию, выборочных координат
Figure 00000011
верхней левой вершины блока, подлежащего декодированию:
Figure 00000012
формула (2).
В качестве опции, решающий модуль, в частности, конфигурирован для: сортировки N групп векторов движения в соответствии с заданным правилом сортировки для генерирования очереди векторов-кандидатов движения; если N не меньше заданной величины, определения заданного числа групп векторов движения в передней части очереди векторов-кандидатов движения; и определения оптимальной группы векторов движения в совокупности заданного числа групп векторов движения в передней части очереди на основе идентификатора индекса для оптимальной группы векторов движения.
В качестве опции, заданное правило сортировки содержит расположение N декодированных блоков в порядке убывания.
В качестве опции, решающий модуль дополнительно конфигурирован для: сортировки N групп векторов движения в соответствии с заданным правилом сортировки; если N меньше заданной величины, генерирования Q групп векторов движения, где сумма N и Q не меньше заданной величины, и Q положительное целое число; добавления Q групп векторов движения к концу последовательности из N групп векторов движения для генерирования очереди векторов-кандидатов движения; определения заданного числа групп векторов движения в передней части очереди векторов-кандидатов движения; и определения оптимальной группы векторов движения в совокупности заданного числа групп векторов движения в передней части очереди на основе идентификатора индекса для оптимальной группы векторов движения.
В качестве опции, решающий модуль дополнительно конфигурирован для: определения, из совокупности соседних декодированных блоков, декодированного блока, соответствующего m-ой контрольной точке, где расстояние между декодированным блоком, соответствующим m-ой контрольной точке, и этой m-ой контрольной точкой не больше заданного расстояния, и m представляет собой какое-либо положительное целое число не больше M; определение вектора движения для декодированного блока, соответствующего указанной m-ой контрольной точке, в качестве предсказателя вектора движения для рассматриваемой m-ой контрольной точки; и генерирование Q групп векторов движения на основе предсказателей векторов движения для M контрольных точек.
В качестве опции, решающий модуль дополнительно конфигурирован для: определения, из совокупности соседних декодированных блоков, декодированного блока, соответствующего m-ой контрольной точке в блоке, подлежащем декодированию, где расстояние между декодированным блоком, соответствующим m-ой контрольной точке и этой m-ой контрольной точкой не больше заданного расстояния, и m представляет собой какое-либо положительное целое число не больше M; определение вектора движения для декодированного блока, соответствующего указанной m-ой контрольной точке, в качестве первого предсказателя вектора движения для рассматриваемой m-ой контрольной точки; генерирования K первых групп векторов движения на основе первых предсказателей векторов движения для M контрольных точек; определение вектора движения для j-го декодированного блока из совокупности соседних декодированных блоков в качестве второго предсказателя вектора движения для m-ой контрольной точки, где j представляет собой какое-либо одно из чисел 1, …, или J, где J представляет собой число соседних декодированных блоков, и J – положительное целое число; генерирование L вторых групп векторов движения на основе вторых предсказателей векторов движения для M контрольных точек; и добавление K первых групп векторов движения к концу последовательности L вторых групп векторов движения для генерирования Q групп векторов движения.
В качестве опции, решающий модуль дополнительно конфигурирован для: определения характеристического значения, соответствующего q-ой группе векторов движения, где q представляет собой какое-либо положительное целое число не больше Q; сортировки Q групп векторов движения в порядке возрастания на основе характеристических значений, соответствующих Q группам векторов движения; и добавления рассортированных Q групп векторов движения к концу рассортированной последовательности N групп векторов движения для генерирования очереди векторов-кандидатов движения.
В качестве опции, решающий модуль дополнительно конфигурирован для: определения разности между компонентами предсказателей векторов движения в одном направлении прогнозирования в q-ой группе векторов движения, для соседних контрольных точек из совокупности M контрольных точек; сравнения абсолютной величины разности с заданным компонентным порогом, где этот заданный компонентный порог представляет собой диапазон блока, подлежащего кодированию в направлении прогнозирования; и если абсолютная величина разности не больше заданного компонентного порога, определение характеристического значения, соответствующего q-ой группе векторов движения.
В качестве опции, решающий модуль дополнительно конфигурирован для: определения, из совокупности соседних декодированных блоков, декодированного блока, соответствующего другой контрольной точке, где расстояние между декодированным блоком, соответствующим другой контрольной точке и этой другой контрольной точкой не больше заданного расстояния, и рассматриваемая другая контрольная точка представляет собой какую-либо контрольную точку, отличную от указанных M контрольных точек в блоке, подлежащем декодированию; определение вектора движения для декодированного блока, соответствующего указанной другой контрольной точке, в качестве предсказателя вектора движения для рассматриваемой другой контрольной точки; и определения характеристического значения, соответствующего q-ой группе векторов движения, с использованием третьего заданного алгоритма и на основе предсказателя вектора движения для указанной другой контрольной точки и предсказателей векторов движения в q-ой группе векторов движения, для M контрольных точек.
В качестве опции, режим прогнозирования движения для блока, подлежащего декодированию, может представлять собой трансляционный режим прогнозирования движения или аффинный режим прогнозирования движения.
Один из вариантов настоящего изобретения далее предлагает устройство кодирования изображения, содержащее процессор, запоминающее устройство, интерфейс связи и шину, где процессор соединен с запоминающим устройством и интерфейсом связи с использованием шины;
запоминающее устройство конфигурировано для сохранения команд; и
процессор конфигурирован для выполнения этих команд, так что когда процессор выполняет команды, сохраняемые в запоминающем устройстве, этот процессор осуществляет какой-либо из приведенных выше способов кодирования изображения.
Один из вариантов настоящего изобретения далее предлагает устройство декодирования изображения, содержащее процессор, запоминающее устройство, интерфейс связи и шину, где процессор соединен с запоминающим устройством и интерфейсом связи с использованием шины;
запоминающее устройство конфигурировано для сохранения команд; и
процессор конфигурирован для выполнения этих команд, так что когда процессор выполняет команды, сохраняемые в запоминающем устройстве, этот процессор осуществляет какой-либо из приведенных выше способов декодирования изображения.
Согласно способу и устройству кодирования изображения и способу и устройству декодирования изображения, описываемым в вариантах настоящего изобретения, могут быть определены N кодированных блоков из совокупности кодированных блоков, соседних с блоком, подлежащим кодированию, в соответствии с первым заданным правилом, где режим прогнозирования движения для N кодированных блоков является таким же, как для блока, подлежащего кодированию, и N положительное целое число; n-ую группу векторов движения генерируют с использованием первого заданного алгоритма и на основе вектора движения для n-го кодированного блока, где n представляет собой какое-либо положительное целое число не больше N; определяют одну группу векторов движения в качестве оптимальной группы векторов движения из полученной совокупности N групп векторов движения в соответствии со вторым заданным правилом; определяют прогнозируемую опорную величину для каждого элемента выборки в составе блока, подлежащего кодированию, с использованием второго заданного алгоритма и на основе оптимальной группы векторов движения; определяют остаток прогнозирования для каждого элемента выборки на основе разности между исходной опорной величиной для каждого элемента выборки и прогнозируемой опорной величиной для каждого элемента выборки; и кодируют остаток прогнозирования для каждого элемента выборки и идентификатор индекса для оптимальной группы векторов движения с целью получения потока битов данных, соответствующего блоку, подлежащему кодированию, где идентификатор индекса для оптимальной группы векторов движения используется в качестве команды для устройства декодирования определить прогнозируемую опорную величину для каждого элемента выборки. Поскольку, режим прогнозирования движения для указанных N кодированных блоков является таким же, как для блока, подлежащего кодированию, корреляция движения между N кодированных блоков и блоком, подлежащим кодированию, является относительно высокой. В дополнение к этому, определяют оптимальную группу векторов движения из совокупности N групп векторов движения, построенной на основе векторов движения для указанных N кодированных блоков. Поэтому, прогнозируемая опорная величина, определяемая на основе оптимальной группы векторов движения, для каждого элемента выборки в блоке, подлежащем кодированию, является более точной, а точность кодирования более высокой.
Краткое описание чертежей
Для ясного и понятного описания технических решений вариантов настоящего изобретения далее кратко описаны прилагаемые чертежи, необходимые для описания вариантов изобретения. Очевидно, что прилагаемые чертежи в последующем описании показывают только некоторые варианты настоящего изобретения и что даже рядовые специалисты в рассматриваемой области все равно могут построить другие чертежи на основе прилагаемых чертежей без особых творческих усилий.
Фиг 1 представляет логическую схему способа кодирования изображения согласно Варианту 1 настоящего изобретения;
Фиг. 2 представляет упрощенную структурную схему блока, подлежащего кодированию, и соседних кодированных блоков для способа кодирования изображения согласно Варианту 1 настоящего изобретения;
Фиг. 3 представляет логическую схему способа кодирования изображения согласно Варианту 2 настоящего изобретения;
Фиг. 4 представляет логическую схему способа декодирования изображения согласно Варианту 3 настоящего изобретения;
Фиг. 5 представляет упрощенную структурную схему устройства кодирования изображения согласно Варианту 4 настоящего изобретения;
Фиг. 6 представляет упрощенную структурную схему устройства декодирования изображения согласно Варианту 5 настоящего изобретения;
Фиг. 7 представляет упрощенную структурную схему устройства кодирования изображения согласно Варианту 6 настоящего изобретения; и
Фиг. 8 представляет упрощенную структурную схему устройства декодирования изображения согласно Варианту 7 настоящего изобретения.
Описание вариантов
Для того, чтобы сделать цели, технические решения и преимущества вариантов настоящего изобретения более ясными, в последующем четко описаны технические решения вариантов настоящего изобретения со ссылками на прилагаемые чертежи этих вариантов. Очевидно, что описываемые здесь варианты являются лишь некоторыми, но не всеми, вариантами настоящего изобретения. Все другие варианты, которые могут быть получены даже рядовыми специалистами в рассматриваемой области без особых творческих усилий, попадут в объем защиты настоящего изобретения.
Способ и устройство кодирования изображения и способ и устройство декодирования изображения, предлагаемые в настоящем изобретении, могут быть применены в таких сценариях, как системы спутникового и наземного телевизионного вещания, видео конференции, системы видеонаблюдения, системы демонстрации в медицине, системы записи и вещания занятий в аудиториях и системы для судебных слушаний. Прогнозирование движения для подлежащего обработке блока видеоизображения осуществляется с использованием режима межкадрового прогнозирования, а видеоизображение кодируют или декодируют на основе результата этого прогнозирования движения. В соответствии со способом и устройством кодирования изображения прогнозируемая опорная величина для каждого элемента выборки в блоке, подлежащем кодированию, в составе видеоизображения может быть получена с использованием прогнозирования движения, а разницу между прогнозируемой опорной величиной для каждого элемента выборки и исходной опорной величиной для каждого элемента выборки кодируют для получения потока битов данных, соответствующего блоку, подлежащему кодированию, так что хранение или передача изображения, соответствующего блоку, подлежащему кодированию, осуществляется посредством хранения или передачи потока битов данных, соответствующего этому блоку, подлежащему кодированию. Соответственно, согласно способу и устройству декодирования изображения, прогнозируемая опорная величина для каждого элемента выборки в блоке, подлежащем декодированию, в составе видеоизображения может быть получена с применением прогнозирования движения, поток битов данных, соответствующий этому блоку, подлежащему декодированию, декодируют для получения разности между прогнозируемой опорной величиной для каждого элемента выборки из состава блока, подлежащего декодированию, и исходной опорной величиной для каждого элемента выборки, и далее, реконструированную опорную величину для каждого элемента выборки получают на основе указанных разности и прогнозируемой опорной величины, так что изображение, соответствующее блоку, подлежащему декодированию, может быть получено на основе реконструированной опорной величины для каждого элемента выборки. Например, поток битов данных, соответствующий блоку, подлежащему декодированию, может быть передан устройством кодирования изображения и принят устройством декодирования изображения, либо может быть получен устройством декодирования изображения от запоминающего устройства, где этот поток битов данных, находящийся в запоминающем устройстве, может быть сохранен в этом устройстве посредством устройства декодирования изображения.
Вариант 1 настоящего изобретения предлагает способ кодирования изображения. Этот способ кодирования изображения может быть осуществлен устройством кодирования изображения. Например, устройство кодирования изображения может быть интегрировано, в форме программного обеспечения и/или аппаратуры, в электронное устройство, обладающее функцией обработки изображения. Например, это электронное устройство может представлять собой интеллектуальный терминал, персональный компьютер, бытовую электронную аппаратуру или видео сервер. На Фиг. 1 представлена логическая схема способа кодирования изображения согласно Варианту 1 настоящего изобретения. Как показано на Фиг. 1, способ может содержать следующие этапы.
S101: Определение N кодированных блоков из совокупности кодированных блоков, соседних с блоком, подлежащим кодированию, в соответствии с первым заданным правилом, где режим прогнозирования движения для этих N кодированных блоков является таким же, как для блока, подлежащего кодированию.
В частности, блок, подлежащий кодированию, может представлять собой единицу кодирования (Coding unit (CU)) согласно стандарту высокоэффективного видео кодирования (High Efficiency Video Coding (HEVC)) и последующим стандартам кодирования. Согласно стандарту HEVC, максимальная единица кодирования может представлять собой единицу дерева кодирования (Coding tree unit (CTU)), и каждая единица CTU может быть разбита на уровни для получения единиц CU меньшего размера. Возможные размеры единиц CU могут составлять четыре уровня, такие как уровни 64x64, 32x32, 16x16 и 8x8. Единица CU на уровне 64x64 содержит 64x64 отсчетов, единица CU на уровне 32x32 содержит 32x32 отсчетов, единица CU на уровне 16x16 содержит 16x16 отсчетов и единица CU на уровне 8x8 содержит 8x8 отсчетов. Блок, подлежащий кодированию, может представлять собой кодовую единицу, соответствующую любому из этих четырех уровней – 64x64, 32x32, 16x16 или 8x8.
Различные единицы кодирования в кадре видеоизображения не зависят одна от другой. Эти разные единицы кодирования могут быть одинаковыми или могут быть различными. Устройство кодирования изображения может осуществлять прогнозирование движения для каждого элемента выборки в составе единицы кодирования с использованием режима прогнозирования движения для этой единицы кодирования, чтобы определить прогнозируемую опорную величину для каждого элемента выборки и далее осуществить кодирование. Режим прогнозирования движения может быть использован для определения вектора движения для контрольной точки в составе единицы кодирования и дальнейшего определения прогнозируемой опорной величины для каждого элемента выборки в составе этой единицы кодирования. Например, элемент выборки может содержать один отсчет или блок отсчетов, где блок отсчетов может содержать несколько отсчетов.
Указанные кодированные блоки, соседние с блоком, подлежащим кодированию, могут представлять собой кодированные блоки, находящиеся в позициях, соседних с границами блока, подлежащего кодированию.
Процедура определения N кодированных блоков из совокупности кодированных блоков, соседних с блоком, подлежащим кодированию, в соответствии с первым заданным правилом на этапе S101 может содержать: пересечение совокупности кодированных блоков, соседних с блоком, подлежащим кодированию, в заданной последовательности пересечения для определения N кодированных блоков из совокупности соседних кодированных блоков, режим прогнозирования движения для которых является таким же, как режим для блока, подлежащего кодированию. Процедура пересечения совокупности соседних кодированных блоков может представлять собой: определение, является ли режим прогнозирования движения для соседних кодированных блоков таким же, как для блока, подлежащего кодированию. Режим прогнозирования движения для любого кодированного блока определен, и поэтому режим прогнозирования движения для соседних кодированных блоков может представлять собой режим прогнозирования движения, использованный, когда происходило кодирование указанных кодированных блоков. Режим прогнозирования движения для блока, подлежащего кодированию, представляет собой режим прогнозирования движения, который может быть использован для прогнозирования.
После определения N кодированных блоков из совокупности кодированных блоков, соседних с блоком, подлежащим кодированию, в соответствии с первым заданным правилом на этапе S101, этот способ далее содержит:
определение индикаторной информации, соответствующей режиму прогнозирования движения.
Если режим прогнозирования движения представляет собой аффинный режим прогнозирования движения, индикаторная информация, соответствующая этому аффинному режиму прогнозирования движения может быть определена, например, синтаксическим элементом affine-merge-flag (флаг аффинного слияния), и этому флагу affine-merge-flag присвоено значение 1.
Если режим прогнозирования движения представляет собой аффинный режим прогнозирования движения, но ни один из соседних кодированных блоков не имеет такой же режим прогнозирования движения, как блок, подлежащий кодированию, тогда этому флагу affine-merge-flag может быть присвоено значение 0.
Например, если режим прогнозирования движения для блока, подлежащего кодированию, может представлять собой аффинный режим прогнозирования движения, устройство кодирования изображения может пересечь совокупность кодированных блоков, соседних с блоком, подлежащим кодированию, в соответствии с заданной последовательностью пересечения и определить N кодированных блоков из совокупности соседних кодированных блоков, для которых режим прогнозирования движения представляет собой аффинный режим прогнозирования движения. Аффинный режим прогнозирования движения может также называться режим прогнозирования движения с аффинной трансформацией. Заданная последовательность пересечения может представлять собой последовательность пересечения всей совокупности кодированных блоков, соседних с блоком, подлежащим кодированию. Например, каждый из N кодированных блоков может представлять собой блок 4x4.
На Фиг. 2 представлена упрощенная структурная схема блока, подлежащего кодированию, и соседних кодированных блоков в соответствии со способом кодирования изображения согласно Варианту 1 настоящего изобретения. Как показано на Фиг. 2, например, совокупность кодированных блоков, соседних с блоком, подлежащим кодированию, может содержать кодированный блок A, кодированный блок B, кодированный блок C, кодированный блок D и кодированный блок E. Если режим прогнозирования движения для блока, подлежащего кодированию, представляет собой аффинный режим прогнозирования движения, в блоке, подлежащем кодированию, может быть несколько контрольных точек, например, две контрольные точки. Например, эти две контрольные точки могут представлять собой верхнюю левую вершину блока, подлежащего кодированию, и верхнюю правую вершину блока, подлежащего кодированию. Верхняя левая вершина блока, подлежащего кодированию, может быть представлена в качестве элемента 0 выборки, а верхняя правая вершина блока, подлежащего кодированию, может быть представлена в качестве элемента 1 выборки.
Устройство кодирования изображения может последовательно пересечь кодированный блок A и кодированный блок B в первом направлении прогнозирования и найти в этом первом направлении прогнозирования первый кодированный блок, режим прогнозирования движения для которого является аффинным режимом прогнозирования движения, например, кодированный блок B; и последовательно пересечь кодированный блок C, кодированный блок D и кодированный блок E во втором направлении прогнозирования и найти первый кодированный блок, режим прогнозирования движения для которого является аффинным режимом прогнозирования движения, например, кодированный блок D.
В качестве альтернативы, устройство кодирования изображения может последовательно пересечь кодированный блок A, кодированный блок B, кодированный блок C, кодированный блок D и кодированный блок E и найти первый кодированный блок, режим прогнозирования движения для которого является аффинным режимом прогнозирования движения, например, кодированный блок B.
S102: Генерирование n-ой группы векторов движения с использованием первого заданного алгоритма и на основе вектора движения для n-го кодированного блока, где n представляет собой какое-либо положительное целое число не больше N.
В качестве опции, процедура генерирования n-ой группы векторов движения с использованием первого заданного алгоритма и на основе вектора движения для n-го кодированного блока на этапе S102 может содержать:
определение предсказателей векторов движения для M контрольных точек из состава блока, подлежащего кодированию, с использованием первого заданного алгоритма и на основе вектора движения для n-го кодированного блока, выборочных координат n-го кодированного блока и выборочных координат M контрольных точек, где M – положительное целое число, найденное на основе режима прогнозирования движения для блока, подлежащего кодированию; и
генерирование n-ой группы векторов движения на основе предсказателей векторов движения для M контрольных точек.
В частности, совокупность M контрольных точек может содержать элемент выборки, расположенный в одной из вершин блока, подлежащего кодированию. Если режим прогнозирования движения для блока, подлежащего кодированию, представляет собой аффинный режим прогнозирования движения, число M может быть больше 1, так что эта совокупность M контрольных точек может содержать M вершин блока, подлежащего кодированию.
Например, если режим прогнозирования движения для блока, подлежащего кодированию, представляет собой аффинный режим прогнозирования движения, число M может быть равно 2, и совокупность M контрольных точек может содержать верхнюю левую вершину блока, подлежащего кодированию, и верхнюю правую вершину блока, подлежащего кодированию. Верхняя левая вершина блока, подлежащего кодированию, может представлять собой элемент 0 выборки, показанный на Фиг. 2, и верхняя правая вершина блока, подлежащего кодированию, может представлять собой элемент 1 выборки, показанный на Фиг. 2. Например, n-ый кодированный блок из состава совокупности N кодированных блоков, найденной на этапе S101, может представлять собой кодированный блок B, показанный на Фиг. 2. Далее приведено описание с использованием кодированного блока B в качестве примера. Совокупность по меньшей мере двух элементов выборки в составе кодированного блока B, показанного на Фиг. 2, может содержать три элемента выборки: верхнюю левую вершину кодированного блока B, верхнюю правую вершину кодированного блока B и нижнюю левую вершину кодированного блока B. Верхняя левая вершина кодированного блока B может представлять собой элемент 2 выборки, верхняя правая вершина кодированного блока B может представлять собой элемент 3 выборки, и нижняя левая вершина кодированного блока B может представлять собой элемент 4 выборки.
Процедура определения предсказателей векторов движения для M контрольных точек блока, подлежащего кодированию, с использованием первого заданного алгоритма и на основе вектора движения для n-го кодированного блока, выборочных координат этого n-го кодированного блока и выборочных координат M контрольных точек может содержать:
определение предсказателя вектора
Figure 00000001
движения для верхней левой вершины блока, подлежащего кодированию, с использованием следующей формулы (1) и на основе вектора
Figure 00000002
движения для верхней левой вершины n-го кодированного блока, вектора
Figure 00000003
движения для верхней правой вершины n-го кодированного блока, вектора
Figure 00000004
движения для нижней левой вершины n-го кодированного блока, выборочных координат
Figure 00000005
верхней левой вершины n-го кодированного блока, выборочных координат
Figure 00000006
верхней правой вершины n-го кодированного блока, выборочных координат
Figure 00000007
нижней левой вершины n-го кодированного блока и выборочных координат
Figure 00000008
верхней левой вершины блока, подлежащего кодированию:
Figure 00000009
формула (1); и
определение предсказателя вектора
Figure 00000010
движения для верхней правой вершины блока, подлежащего кодированию, с использованием следующей формулы (2) и на основе вектора
Figure 00000002
движения для верхней левой вершины n-го кодированного блока, вектора
Figure 00000003
движения для верхней правой вершины n-го кодированного блока, выборочных координат
Figure 00000005
верхней левой вершины n-го кодированного блока, выборочных координат
Figure 00000006
верхней правой вершины n-го кодированного блока, предсказателя вектора
Figure 00000001
движения для верхней левой вершины блока, подлежащего кодированию, выборочных координат
Figure 00000008
верхней левой вершины блока, подлежащего кодированию, и выборочных координат
Figure 00000011
верхней левой вершины блока, подлежащего кодированию:
Figure 00000012
формула (2).
S103: Определение, на основе полученных N групп векторов движения в соответствии со вторым заданным правилом, одной группы векторов движения в качестве оптимальной группы векторов движения.
В качестве опции, процедура определения, на основе полученных N групп векторов движения в соответствии со вторым заданным правилом, одной группы векторов движения в качестве оптимальной группы векторов движения на этапе S103 может содержать:
сортировку указанных N групп векторов движения в соответствии с заданным правилом сортировки, для генерирования очереди векторов-кандидатов движения;
если N не меньше заданной величины, определение заданного числа групп векторов движения в передней части очереди векторов-кандидатов движения;
определение ошибки несовпадения между каждой из заданного числа групп векторов движения в передней части очереди и блоком, подлежащим кодированию; и
определение одной группы векторов движения, которой соответствует наименьшая ошибка несовпадения, в качестве оптимальной группы векторов движения.
В частности, заданное правило сортировки может содержать расположение N кодированных блоков в порядке убывания.
Например, размер каждого из N кодированных блоков может представлять собой произведение ширины по горизонтали на высоту по вертикали соответствующего кодированного блока. Например, размер каждого из N кодированных блоков может быть определен на основе следующей формулы (3):
Figure 00000013
формула (3)
где
Figure 00000014
– размер каждого кодированного блока,
Figure 00000015
– ширина каждого кодированного блока по горизонтали,
Figure 00000016
– высота каждого кодированного блока по вертикали и
Figure 00000017
– идентификатор каждого кодированного блока.
Например, если N равно 2, совокупность N кодированных блоков может содержать кодированный блок B и кодированный блок D, показанные на Фиг. 2.
Размер кодированного блока B может быть равен
Figure 00000018
. Здесь
Figure 00000018
равен произведению
Figure 00000019
и
Figure 00000020
.
Figure 00000019
представляет собой ширину кодированного блока B по горизонтали.
Figure 00000020
представляет собой высоту кодированного блока B по вертикали. Размер кодированного блока D может быть равен
Figure 00000021
. Здесь
Figure 00000022
равен произведению
Figure 00000023
и
Figure 00000024
.
Figure 00000025
представляет собой ширину кодированного блока D по горизонтали.
Figure 00000024
представляет собой высоту кодированного блока D по вертикали. Например, если кодированный блок B больше кодированного блока D, последовательность пересечения может быть представлена как B > D.
Например, идентификатор индекса, соответствующий группе векторов движения, в очереди векторов-кандидатов движения, сформированной на основе кодированного блока B, может быть равен 1. Например, идентификатор индекса, соответствующий группе векторов движения, в очереди векторов-кандидатов движения, сформированной на основе кодированного блока D, может быть равен 2.
Например, если N равно 10, другими словами, если очередь векторов-кандидатов движения содержит 10 групп векторов движения, заданное число групп векторов движения в передней части очереди векторов-кандидатов движения может представлять первые пять групп векторов движения из указанных 10 групп векторов движения.
В качестве опции, процедура выбора оптимальной группы векторов движения из заданного числа групп векторов движения в передней части очереди векторов-кандидатов движения может содержать: определение ошибки несовпадения между каждой из заданного числа групп векторов движения в передней части блока, подлежащего кодированию; и определение одной группы векторов движения, имеющей наименьшую ошибку несовпадения с блоком, подлежащим кодированию, в качестве оптимальной группы векторов движения.
Процедура определения ошибки несовпадения между каждой из заданного числа групп векторов движения в передней части очереди и блоком, подлежащим кодированию, может содержать: определение, на основе выбранной группы векторов движения, прогнозируемой опорной величины для соответствующего этой группе векторов движения элемента выборки, в блоке, подлежащем кодированию;
определение стоимости скорость-искажение (Rate distortion cost, сокращенно RD Cost), соответствующей группе векторов движения на основе сумме квадратов разностей (Sum of Squared Differences, сокращенно SSD) или суммы абсолютных величин разностей (Sum of Absolute Differences, сокращенно SAD) между прогнозируемой опорной величиной для элемента выборки, соответствующего рассматриваемой группе векторов движения, и исходной опорной величиной для этого элемента выборки; и
определение ошибки несовпадения между этой группой векторов движения и блоком, подлежащим кодированию, на основе стоимости скорость-искажение, соответствующей этой группе векторов движения.
В частности, процедура определения, на основе группы векторов движения, прогнозируемой опорной величины для соответствующего этой группе векторов движения на предшествующем этапе элемента выборки в блоке, подлежащем кодированию, может содержать: определение предсказателя вектора движения для этого элемента выборки на основе группы векторов движения, и далее определение стоимости скорость-искажение, соответствующей рассматриваемой группе векторов движения на основе предсказателя вектора движения для этого элемента выборки.
Например, с использованием суммы SAD в качестве примера, устройство кодирования изображения может определять стоимость скорость-искажение, соответствующую рассматриваемой группе векторов движения, с использованием следующей формулы (4) и на основе скорости передачи данных, соответствующей блоку, подлежащему кодированию, и сумме SAD разностей между прогнозируемой опорной величиной для элемента выборки, соответствующего рассматриваемой группе векторов движения, и исходной опорной величиной для этого элемента выборки:
Figure 00000026
формула (4)
где
Figure 00000027
обозначает стоимость скорость-искажение, соответствующую рассматриваемой группе векторов движения,
Figure 00000028
обозначает сумму абсолютных разностей (SAD) между прогнозируемой опорной величиной для элемента выборки, соответствующего рассматриваемой группе векторов движения, и исходной опорной величиной для этого элемента выборки,
Figure 00000029
обозначает скорость передачи данных, соответствующую блоку, подлежащему кодированию, и
Figure 00000030
обозначает множитель Лагранжа, представляющий собой заранее заданную константу.
S104: Определение прогнозируемой опорной величины каждого элемента выборки в блоке, подлежащем кодированию, с использованием второго заданного алгоритма и на основе оптимальной группы векторов движения.
В качестве опции, процедура определения прогнозируемой опорной величины каждого элемента выборки в блоке, подлежащем кодированию, с использованием второго заданного алгоритма и на основе оптимальной группы векторов движения на этапе S104 может содержать:
определение предсказателя вектора движения для каждого элемента выборки в блоке, подлежащем кодированию, с использованием второго заданного алгоритма и на основе предсказателей векторов движения, в оптимальной группе векторов движения для M контрольных точек и выборочных координат каждого элемента выборки; и
определение, в заданном опорном кадре, прогнозируемой опорной величины для каждого элемента выборки на основе предсказателя вектора движения для каждого элемент выборки.
Например, если режим прогнозирования движения для блока, подлежащего кодированию, представляет собой аффинный режим прогнозирования движения, как показано на Фиг. 2, в блоке, подлежащем кодированию, могут быть две контрольных точки: верхняя левая вершина блока, подлежащего кодированию, и верхняя правая вершина этого блока, подлежащего кодированию.
Например, устройство кодирования изображения может определять предсказатель вектора движения для каждого элемента выборки в блоке, подлежащем кодированию, с использованием следующей формулы (5) и на основе предсказателей векторов движения в оптимальной группе векторов движения, для этих двух контрольных точек и выборочных координат каждого элемента выборки:
Figure 00000031
формула (5)
где
Figure 00000032
обозначает предсказатель вектора движения для каждого элемента выборки, где
Figure 00000033
обозначает горизонтальную составляющую предсказателя вектора движения для каждого элемента выборки и
Figure 00000034
обозначает вертикальную составляющую предсказателя вектора движения для каждого элемента выборки;
Figure 00000035
обозначает выборочные координаты для каждого элемента выборки, где
Figure 00000036
обозначает горизонтальную выборочную координату для каждого элемента выборки и
Figure 00000037
обозначает вертикальную выборочную координату для каждого элемента выборки; и
Figure 00000038
обозначает ширину блока, подлежащего кодированию, по горизонтали.
S105: Определение остатка прогнозирования для каждого элемента выборки на основе разности между исходной опорной величиной для каждого элемента выборки и прогнозируемой опорной величиной для этого элемента выборки.
S106: Кодирование остатка прогнозирования для каждого элемент выборки и идентификатора индекса для оптимальной группы векторов движения для получения потока битов данных, соответствующего блоку, подлежащему кодированию, где этот идентификатор индекса для оптимальной группы векторов движения используется в качестве команды устройству декодирования определить прогнозируемую опорную величину для каждого элемента выборки.
В частности, на этапе S106, кодирование может быть осуществлено после последовательного выполнения преобразования (Transformtion) и квантования (Quantization) применительно к остатку прогнозирования для каждого элемента выборки и идентификатору индекса для оптимальной группы векторов движения, для получения потока битов данных, соответствующего блоку, подлежащему кодированию.
Преобразование может представлять собой преобразование Карунена-Лёва (Karhunen-Loève Transform, сокращенно KLT), дискретное преобразование Фурье (Discrete Fourier Transform), дискретное косинусное преобразование (Discrete Cosine Transform, сокращенно DCT) или другое подобное преобразование. Кодирование может представлять собой энтропийное (Entropy) кодирование.
В качестве опции, на этапе S106, остаток прогнозирования для каждого элемента выборки, идентификатор индекса для оптимальной группы векторов движения и идентификатор индекса для заданного опорного кадра могут быть кодированы для получения потока битов данных, соответствующего блоку, подлежащему кодированию.
В качестве опции, на этапе S106, остаток прогнозирования для каждого элемента выборки, идентификатор индекса для оптимальной группы векторов движения, идентификатор индекса для заданного опорного кадра и индикаторная информация, соответствующая режиму прогнозирования движения для блока, подлежащего кодированию, могут быть кодированы для получения потока битов данных, соответствующего блоку, подлежащему кодированию.
Поскольку указанные N кодированных блоков представляют собой кодированные блоки, из состава совокупности кодированных блоков, соседних с блоком, подлежащим кодированию, и имеющие такой же режим прогнозирования движения, корреляция движения между этими N кодированными блоками и блоком, подлежащим кодированию, является относительно сильной. Поскольку указанные N групп векторов движения определены на основе векторов движения для N кодированных блоков, предсказатели векторов движения, найденные на основе оптимальной группы векторов движения в составе N групп векторов движения, для каждого элемента выборки в блоке, подлежащем кодированию, являются более точными, так что точность кодирования выше.
В дополнение к этому оптимальная группа векторов движения может быть определена на основе заданного числа групп векторов движения в передней части очереди векторов-кандидатов движения, а эту очередь векторов-кандидатов движения генерируют на основе рассортированных N групп векторов движения. Поэтому идентификатор индекса для оптимальной группы векторов движения в очереди векторов-кандидатов движения является относительно небольшим, так что количество битов данных, использованных для кодирования идентификатора индекса для оптимальной группы векторов движения, относительно мало, и эффективность кодирования повышена.
В соответствии со способом кодирования изображения, предложенным в Варианте 1 настоящего изобретения, N кодированных блоков могут быть определены из совокупности кодированных блоков, соседних с блоком, подлежащим кодированию, с использованием первого заданного правила, где режим прогнозирования движения для этих N кодированных блоков является таким же, как режим для блока, подлежащего кодированию; n-ую группу векторов движения генерируют с использованием первого заданного алгоритма и на основе вектора движения для n-го кодированного блока, где n представляет собой какое-либо положительное целое число не больше N; одну из групп векторов движения определяют в качестве оптимальной группы векторов движения, на основе полученных N групп векторов движения в соответствии со вторым заданным правилом; прогнозируемую опорную величину для каждого элемента выборки в блоке, подлежащем кодированию, определяют с использованием второго заданного алгоритма и на основе оптимальной группы векторов движения; остаток прогнозирования для каждого элемента выборки определяют на основе разности между исходной опорной величиной для каждого элемента выборки и прогнозируемой опорной величиной для этого элемента выборки; и остаток прогнозирования для каждого элемента выборки и идентификатор индекса для оптимальной группы векторов движения кодируют для получения потока битов данных, соответствующего блоку, подлежащему кодированию. Поскольку режим прогнозирования движения для указанных N кодированных блоков является таким же, как режим для блока, подлежащего кодированию, корреляция движения между этими N кодированными блоками и блоком, подлежащим кодированию, является относительно сильной. В дополнение к этому, оптимальную группу векторов движения определяют на основе N групп векторов движения, найденных на основе векторов движения для указанных N кодированных блоков. Поэтому, прогнозируемая опорная величина, найденная на основе оптимальной группы векторов движения, для каждого элемента выборки в блоке, подлежащего кодированию, является более точной, так что точность кодирования изображения оказывается выше.
Вариант 2 согласно настоящему изобретению далее предлагает способ кодирования изображения. На Фиг. 3 представлена логическая схема этого способа кодирования изображения согласно этому Варианту 2 настоящего изобретения. Как показано на Фиг. 3, согласно этому способу, процедура определения, на основе полученных N групп векторов движения в соответствии со вторым заданным правилом, одной группы векторов движения в качестве оптимальной группы векторов движения на этапе S103 в описанном выше варианте может содержать следующие этапы.
S301: Сортировка N групп векторов движения в соответствии с заданным правилом сортировки.
Например, заданное правило сортировки может содержать расположение N кодированных блоков в порядке возрастания или убывания.
S302: Если N меньше заданной величины, генерирование Q групп векторов движения, где сумма N и Q не меньше заданной величины и Q положительное целое число.
Если N меньше заданной величины, необходимо дополнительно генерировать Q групп векторов движения для достижения такого числа групп векторов движения в очереди векторов-кандидатов движения, чтобы обеспечить точность выбранной оптимальной группы векторов движения.
В качестве опции, процедура генерирования Q групп векторов движения на этапе S302 может содержать:
определение, из совокупности соседних кодированных блоков, кодированного блока, соответствующего m-ой контрольной точке в блоке, подлежащем кодированию, где расстояние между кодированным блоком, соответствующим этой m-ой контрольной точке, и этой m-ой контрольной точкой не больше заданного расстояния, и m представляет собой какое-либо положительное целое число не больше M;
определение вектора движения для кодированного блока, соответствующего указанной m-ой контрольной точке, в качестве предсказателя вектора движения для этой m-ой контрольной точки; и
генерирование Q групп векторов движения на основе предсказателей векторов движения для M контрольных точек.
Например, как показано на Фиг. 2, если совокупность соседних кодированных блоков содержит кодированный блок A, кодированный блок B, кодированный блок C, кодированный блок D и кодированный блок E, а в блоке, подлежащем кодированию, имеются две контрольные точки, кодированный блок, в совокупности соседних кодированных блоков, соответствующий верхней левой вершине блока, подлежащего кодированию, может представлять собой кодированный блок C, а кодированный блок, в совокупности соседних кодированных блоков, соответствующий верхней правой вершине блока, подлежащего кодированию, может содержать кодированный блок D и кодированный блок E.
Например, если кодированный блок, соответствующий верхней левой вершине блока, подлежащего кодированию, может представлять собой кодированный блок C, тогда предсказатель вектора движения для верхней левой вершины может быть обозначен
Figure 00000039
. Здесь
Figure 00000039
может представлять собой предсказатель вектора движения для верхней левой вершины, найденный на основе вектора движения для кодированного блока C.
Например, если кодированный блок, соответствующий верхней правой вершине блока, подлежащего кодированию, может содержать кодированный блок D и кодированный блок E, тогда один предсказатель вектора движения для верхней правой вершины может быть обозначен
Figure 00000040
, а другой предсказатель вектора движения для верхней правой вершины может быть обозначен
Figure 00000041
. Здесь
Figure 00000040
может представлять собой предсказатель вектора движения для верхней правой вершины, найденный на основе вектора движения для кодированного блока D.
Figure 00000041
может представлять собой предсказатель вектора движения для верхней правой вершины, найденный на основе вектора движения для кодированного блока E.
Здесь совокупность Q групп векторов движения может содержать две группы векторов движения:
Figure 00000042
и
Figure 00000043
. Например, Q может быть равно 2.
В качестве альтернативы, процедура генерирования Q групп векторов движения на этапе S302 может содержать:
определение, из совокупности соседних кодированных блоков, кодированного блока, соответствующего m-ой контрольной точке в блоке, подлежащем кодированию, где расстояние между кодированным блоком, соответствующим этой m-ой контрольной точке, и этой m-ой контрольной точкой не больше заданного расстояния, и m представляет собой какое-либо положительное целое число не больше M;
определение вектора движения для кодированного блока, соответствующего m-ой контрольной точке, в качестве первого предсказателя вектора движения для этой m-ой контрольной точки;
генерирование K первых групп векторов движения на основе первых предсказателей векторов движения для M контрольных точек;
определение вектора движения для j-го кодированного блока из совокупности соседних кодированных блоков в качестве второго предсказателя вектора движения для m-ой контрольной точки, где j представляет собой какое-либо одно из чисел 1, …, или J, где J представляет собой число соседних кодированных блоков, и J – положительное целое число;
генерирование L вторых групп векторов движения на основе вторых предсказателей векторов движения для M контрольных точек; и
добавление K первых групп векторов движения к концу последовательности L вторых групп векторов движения для генерирования Q групп векторов движения.
В частности, совокупность Q групп векторов движения можно генерировать за несколько приемов. Например, сначала генерируют K первых групп векторов движения, а затем генерируют L вторых групп векторов движения.
S303: Добавление Q групп векторов движения к концу последовательности N групп векторов движения для генерирования очереди векторов-кандидатов движения.
S304: Определение заданного числа групп векторов движения в передней части очереди векторов-кандидатов движения.
Процедура определения заданного числа групп векторов движения в передней части очереди векторов-кандидатов движения на этапе S304 аналогична соответствующей процедуре согласно Варианту 1. Подробности здесь повторно описаны не будут.
S305: Определение ошибки несовпадения между каждой из заданного числа групп векторов движения в передней части очереди и блоком, подлежащим кодированию.
Конкретная процедура определения ошибки несовпадения между каждой из групп векторов движения и блоком, подлежащим кодированию, на этапе S305 аналогична соответствующей процедуре согласно Варианту 1. Подробности здесь повторно описаны не будут.
S306: Определение одной из групп векторов движения, обладающей наименьшей ошибкой несовпадения, в качестве оптимальной группы векторов движения.
В качестве опции, процедура добавления Q групп векторов движения к концу последовательности N групп векторов движения для генерирования очереди векторов-кандидатов движения на этапе S303 может содержать:
определение характеристического значения, соответствующего q-ой группе векторов движения, где q представляет собой какое-либо положительное целое число не больше Q;
сортировку Q групп векторов движения в порядке возрастания на основе характеристических значений, соответствующих Q группам векторов движения; и
добавление рассортированных Q групп векторов движения к концу рассортированной последовательности N групп векторов движения для генерирования очереди векторов-кандидатов движения.
В качестве опции, процедура определения характеристического значения, соответствующего q-ой группе векторов движения, может содержать:
определение разности между компонентами предсказателей векторов движения в одном направлении прогнозирования в q-ой группе векторов движения, для соседних контрольных точек из совокупности M контрольных точек;
сравнение абсолютной величины разности с заданным компонентным порогом, где этот заданный компонентный порог представляет собой диапазон блока, подлежащего кодированию в направлении прогнозирования; и
если абсолютная величина разности не больше заданного компонентного порога, определение характеристического значения, соответствующего q-ой группе векторов движения.
В частности, заданный компонентный порог может быть определен на основе ширины блока, подлежащего кодированию, в горизонтальном направлении прогнозирования, либо заданный компонентный порог может быть определен на основе высоты блока, подлежащего кодированию, в вертикальном направлении прогнозирования.
Например, если совокупность M контрольных точек блока, подлежащего кодированию, содержит верхнюю левую вершину этого блока, подлежащего кодированию, и верхнюю правую вершину, как показано на Фиг. 2, совокупность Q групп векторов движения может содержать две группы векторов движения:
Figure 00000044
и
Figure 00000045
, где
Figure 00000046
обозначает предсказатель вектора движения для верхней левой вершины блока, подлежащего кодированию, и оба –
Figure 00000047
и
Figure 00000048
, обозначают предсказатели векторов движения для верхней правой вершины этого блока, подлежащего кодированию.
Например, в этом варианте, разность между компонентами в одном направлении прогнозирования для предсказателей векторов движения для соседних контрольных точек из совокупности M контрольных точек можно сравнить с заданным компонентным порогом на основе следующей формулы (6):
Figure 00000049
формула (6)
где
Figure 00000050
представляет собой составляющую, в горизонтальном направлении прогнозирования, предсказателя вектора движения для верхней левой вершины;
Figure 00000051
представляет собой составляющую, в вертикальном направлении прогнозирования, предсказателя вектора движения для верхней левой вершины;
Figure 00000052
представляет собой составляющую, в горизонтальном направлении прогнозирования, предсказателя вектора движения для верхней правой вершины;
Figure 00000053
представляет собой составляющую, в вертикальном направлении прогнозирования, предсказателя вектора движения для верхней правой вершины;
Figure 00000054
может иметь значение
Figure 00000055
, и
Figure 00000056
может иметь значение
Figure 00000057
или
Figure 00000058
;
Figure 00000059
обозначает ширину блока, подлежащего кодированию, по горизонтали; и
Figure 00000060
обозначает высоту блока, подлежащего кодированию, по вертикали.
Если
Figure 00000054
имеет значение
Figure 00000055
,
Figure 00000056
имеет какое-либо значение
Figure 00000057
или
Figure 00000058
, абсолютная величина разности между
Figure 00000061
и
Figure 00000062
не больше
Figure 00000063
, и абсолютная величина разности между
Figure 00000064
и
Figure 00000065
не больше
Figure 00000066
, тогда группы векторов
Figure 00000067
и
Figure 00000068
движения являются рассортированными.
В качестве опции, процедура определения характеристического значения, соответствующего q-ой группе векторов движения, может содержать:
определение, из совокупности соседних кодированных блоков, кодированного блока, соответствующего другой контрольной точке, где расстояние между кодированным блоком, соответствующим другой контрольной точке и этой другой контрольной точкой не больше заданного расстояния, и рассматриваемая другая контрольная точка представляет собой какую-либо контрольную точку, отличную от указанных M контрольных точек в блоке, подлежащем кодированию;
определение вектора движения для кодированного блока, соответствующего указанной другой контрольной точке, в качестве предсказателя вектора движения для рассматриваемой другой контрольной точки; и
определение характеристического значения, соответствующего q-ой группе векторов движения, с использованием третьего заданного алгоритма и на основе предсказателя векторов движения для указанной другой контрольной точки и предсказателей векторов движения в q-ой группе векторов движения, для M контрольных точек.
Например, если совокупность M контрольных точек в блоке, подлежащем кодированию, может содержать верхнюю левую вершину и верхнюю правую вершину блока, подлежащего кодированию, указанная другая контрольная точка может быть нижней левой вершиной блока, подлежащего кодированию, например, элемент 5 выборки блока, подлежащего кодированию, на Фиг. 2.
Кодированный блок, соответствующий другой контрольной точке может содержать кодированный блок A и кодированный блок B. Поэтому, вектор движения для кодированного блока A может быть определен в качестве предсказателя вектора
Figure 00000069
движения для этой другой контрольной точки, и вектор движения для кодированного блока B может быть определен в качестве предсказателя вектора
Figure 00000070
движения для этой другой контрольной точки.
Например, в этом варианте характеристическое значение, соответствующее q-ой группе векторов движения, может быть определено с использованием следующей формулы (7) и на основе предсказателя вектора движения для рассматриваемой другой контрольной точки и предсказателей векторов движения, в q-ой группе векторов движения, для M контрольных точек:
Figure 00000071
формула (7)
где
Figure 00000072
представляет собой характеристическое значение, соответствующее q-ой группе векторов движения;
Figure 00000073
обозначает функцию взятия абсолютной величины;
Figure 00000074
представляет собой составляющую, в горизонтальном направлении прогнозирования, предсказателя вектора движения другой контрольной точки, такой как нижняя левая вершина;
Figure 00000075
представляет собой составляющую, в вертикальном направлении прогнозирования, предсказателя вектора движения другой контрольной точки, такой как нижняя левая вершина; и
Figure 00000076
может иметь значение
Figure 00000077
или
Figure 00000078
.
В качестве опции, режим прогнозирования движения для блока, подлежащего кодированию, может представлять собой трансляционный режим прогнозирования движения или аффинный режим прогнозирования движения.
Если режим прогнозирования движения для блока, подлежащего кодированию, представляет собой трансляционный режим прогнозирования движения, число контрольных точек, а именно, M, может быть равно 1. Если режим прогнозирования движения для блока, подлежащего кодированию, представляет собой аффинный режим прогнозирования движения, число контрольных точек, а именно, M, может быть больше 1.
Вариант 2 настоящего изобретения предлагает несколько процедур для определения очереди векторов-кандидатов движения. Поэтому можно лучше обеспечить, чтобы прогнозируемая опорная величина, найденная на основе оптимальной группы векторов движения, выбранной из очереди векторов-кандидатов движения, для каждого элемента выборки в блоке, подлежащем кодированию, была более точной, так что точность кодирования оказывается выше, число битов, используемых для кодирования идентификатора индекса для оптимальной группы векторов движения, относительно мало, а эффективность кодирования повышена.
Вариант 3 настоящего изобретения предлагает способ декодирования изображения. Этот способ декодирования изображения представляет собой способ декодирования, соответствующий изложенному выше способу кодирования изображения. Этот способ декодирования изображения может быть осуществлен устройством декодирования изображения. Например, такое устройство декодирования изображения может быть интегрировано, в форме программного обеспечения и/или аппаратуры, в электронное устройство, обладающее функцией обработки изображения. Например, это электронное устройство может представлять собой интеллектуальный терминал, персональный компьютер, бытовую электронную аппаратуру или видео сервер. На Фиг. 4 представлена логическая схема способа декодирования изображения согласно Варианту 3 настоящего изобретения. Как показано на Фиг. 4, способ может содержать следующие этапы.
S401: Определение N декодированных блоков из совокупности декодированных блоков, соседних с блоком, подлежащим декодированию, в соответствии с первым заданным правилом, где режим прогнозирования движения для N декодированных блоков является таким же, как режим для блока подлежащего декодированию.
Конкретная процедура реализации этапа S401 аналогична процедуре для этапа S101 в описанном выше варианте. Подробности здесь повторно описаны не будут.
Прежде определения N декодированных блоков из состава совокупности декодированных блоков, соседних с блоком, подлежащим декодированию, в соответствии с первым заданным правилом на этапе S401, способ может дополнительно содержать:
определение режима прогнозирования движения для блока, подлежащего декодированию.
В частности, процедура определения режима прогнозирования движения для блока, подлежащего декодированию, может содержать: анализ синтаксического элемента, соответствующего блоку, подлежащему декодированию, для получения режима прогнозирования движения для блока, подлежащего декодированию. Если флаг affine-merge-flag для этого синтаксического элемента, полученный после анализа, равен 1, режим прогнозирования движения для блока, подлежащего декодированию, представляет собой аффинный режим прогнозирования движения. Если флаг affine-merge-flag для этого синтаксического элемента, полученный после анализа, равен 0, режим прогнозирования движения для блока, подлежащего декодированию, представляет собой трансляционный режим прогнозирования движения.
S402: Генерирование n-ой группы векторов движения с использованием первого заданного алгоритма и на основе вектора движения для n-го декодированного блока, где n представляет собой какое-либо положительное целое число не больше N.
Конкретная процедура реализации этапа S402 аналогична процедуре для этапа S102 в описанном выше варианте. Подробности здесь повторно описаны не будут.
S403: Декодирование потока битов данных, соответствующего блоку, подлежащему декодированию, для получения остатка прогнозирования для каждого элемента выборки и идентификатора индекса для оптимальной группы векторов движения.
В частности, на этапе S403, поток битов данных, соответствующий блоку, подлежащему декодированию, может быть декодирован, а информацию, полученную после декодирования, последовательно подвергают деквантованию и затем обратному преобразованию, после чего получают остаток прогнозирования для каждого элемента выборки и идентификатор индекса для оптимальной группы векторов движения. Это обратное преобразование может представлять собой обратное преобразование, соответствующее преобразованию, выполняемому на этапе S106 в описанном выше варианте. Процедура деквантования может представлять собой деквантование, соответствующее квантованию, выполняемому на этапе S106 в описанном выше варианте. Процедура декодирования может представлять собой декодирование, соответствующее кодированию, выполняемому на этапе S106, например, декодирование, соответствующее энтропийному кодированию.
S404: Определение оптимальной группы векторов движения из состава совокупности N групп векторов движения на основе идентификатора индекса для этой оптимальной группы векторов движения.
Идентификатор индекса для оптимальной группы векторов движения может представлять собой числовой индекс оптимальной группы векторов движения в совокупности N групп векторов движения.
S405: Определение прогнозируемой опорной величины каждого элемента выборки в блоке, подлежащем декодированию, с использованием второго заданного алгоритма и на основе оптимальной группы векторов движения.
Процедура определения прогнозируемой опорной величины для каждого элемента выборки в блоке, подлежащем декодированию, на этапе S405 может быть аналогична процедуре, выполняемой на этапе S104 в описанном выше варианте. Подробности здесь повторно описаны не будут.
S406: Определение реконструированной опорной величины для каждого элемента выборки на основе суммы прогнозируемой опорной величины для каждого элемента выборки и остатка прогнозирования для этого элемента выборки.
В качестве опции, процедура генерирования n-ой группы векторов движения с использованием первого заданного алгоритма и на основе вектора движения для n-го декодированного блока на этапе S402 может содержать:
определение предсказателей векторов движения для M контрольных точек в блоке, подлежащем декодированию, с использованием первого заданного алгоритма и на основе вектора движения для n-го декодированного блока, выборочных координат этого n-го декодированного блока и выборочных координат M контрольных точек; и
генерирование n-ой группы векторов движения на основе предсказателей векторов движения для M контрольных точек, где M положительное целое число, найденное на основе режима прогнозирования движения для блока, подлежащего декодированию.
В качестве опции, совокупность M контрольных точек содержит верхнюю левую вершину и верхнюю правую вершину блока, подлежащего декодированию.
Процедура определения предсказателей векторов движения для M контрольных точек блока, подлежащего декодированию, с использованием первого заданного алгоритма и на основе вектора движения для n-го декодированного блока, выборочных координат n-го декодированного блока и выборочных координат M контрольных точек может содержать:
определение предсказателя вектора
Figure 00000001
движения для верхней левой вершины блока, подлежащего декодированию, с использованием следующей формулы (1) и на основе вектора
Figure 00000002
движения для верхней левой вершины n-го декодированного блока, вектора
Figure 00000003
движения для верхней правой вершины n-го декодированного блока, вектора
Figure 00000004
движения для нижней левой вершины n-го декодированного блока, выборочных координат
Figure 00000005
верхней левой вершины n-го декодированного блока, выборочных координат
Figure 00000006
верхней правой вершины n-го декодированного блока, выборочных координат
Figure 00000007
нижней левой вершины n-го декодированного блока и выборочных координат
Figure 00000008
верхней левой вершины блока, подлежащего декодированию:
Figure 00000009
формула (1); и
определение предсказателя вектора
Figure 00000010
движения для верхней правой вершины блока, подлежащего декодированию, с использованием следующей формулы (2) и на основе вектора
Figure 00000002
движения для верхней левой вершины n-го декодированного блока, вектора
Figure 00000003
движения для верхней правой вершины n-го декодированного блока, выборочных координат
Figure 00000005
верхней левой вершины n-го декодированного блока, выборочных координат
Figure 00000006
верхней правой вершины n-го декодированного блока, предсказателя вектора
Figure 00000001
движения для верхней левой вершины блока, подлежащего декодированию, выборочных координат
Figure 00000008
верхней левой вершины блока, подлежащего декодированию, и выборочных координат
Figure 00000011
верхней левой вершины блока, подлежащего декодированию:
Figure 00000012
формула (2).
В качестве опции, процедура определения оптимальной группы векторов движения из совокупности N групп векторов движения на основе идентификатора индекса для оптимальной группы векторов движения на этапе S404 может содержать:
сортировку N групп векторов движения в соответствии с заданным правилом сортировки для генерирования очереди векторов-кандидатов движения;
если N не меньше заданной величины, определение заданного числа групп векторов движения в передней части очереди векторов-кандидатов движения; и
определение оптимальной группы векторов движения из совокупности заданного числа групп векторов движения в передней части очереди на основе идентификатора индекса для оптимальной группы векторов движения.
В качестве опции, заданное правило сортировки содержит расположение N декодированных блоков в порядке убывания.
В качестве альтернативы, процедура определения оптимальной группы векторов движения из совокупности N групп векторов движения на основе идентификатора индекса для оптимальной группы векторов движения на этапе S404 может содержать:
сортировку N групп векторов движения в соответствии с заданным правилом сортировки;
если N меньше заданной величины, генерирование Q групп векторов движения, где сумма N и Q не меньше заданной величины, и Q положительное целое число;
добавление Q групп векторов движения к концу последовательности из N групп векторов движения для генерирования очереди векторов-кандидатов движения;
определение заданного числа групп векторов движения в передней части очереди векторов-кандидатов движения; и
определение оптимальной группы векторов движения в совокупности заданного числа групп векторов движения в передней части очереди на основе идентификатора индекса для оптимальной группы векторов движения.
В качестве опции, процедура генерирования Q групп векторов движения может содержать:
определение, из совокупности соседних декодированных блоков, декодированного блока, соответствующего m-ой контрольной точке в блоке, подлежащем декодированию, где расстояние между декодированным блоком, соответствующим m-ой контрольной точке и этой m-ой контрольной точкой не больше заданного расстояния, и m представляет собой какое-либо положительное целое число не больше M;
определение вектора движения декодированного блока, соответствующего m-ой контрольной точке, в качестве предсказателя вектора движения для этой m-ой контрольной точки; и
генерирование Q групп векторов движения на основе предсказателей векторов движения для M контрольных точек.
В качестве опции, процедура генерирования Q групп векторов движения может содержать:
определение, из совокупности соседних декодированных блоков, декодированного блока, соответствующего m-ой контрольной точке в блоке, подлежащем декодированию, где расстояние между декодированным блоком, соответствующим m-ой контрольной точке и этой m-ой контрольной точкой не больше заданного расстояния, и m представляет собой какое-либо положительное целое число не больше M;
определение вектора движения декодированного блока, соответствующего m-ой контрольной точке, в качестве первого предсказателя вектора движения для этой m-ой контрольной точки;
генерирование K первых групп векторов движения на основе первых предсказателей векторов движения для M контрольных точек;
определение вектора движения для j-го декодированного блока из совокупности соседних декодированных блоков в качестве второго предсказателя вектора движения для m-ой контрольной точки, где j представляет собой какое-либо одно из чисел 1, …, или J, где J представляет собой число соседних декодированных блоков, и J – положительное целое число;
генерирование L вторых групп векторов движения на основе вторых предсказателей векторов движения для M контрольных точек; и
добавление K первых групп векторов движения к концу последовательности L вторых групп векторов движения для генерирования Q групп векторов движения.
В качестве опции, процедура добавления Q групп векторов движения к концу последовательности N групп векторов движения для генерирования очереди векторов-кандидатов движения может содержать:
определение характеристического значения, соответствующего q-ой группе векторов движения, где q представляет собой какое-либо положительное целое число не больше Q;
сортировку Q групп векторов движения в порядке возрастания на основе характеристических значений, соответствующих Q группам векторов движения; и
добавление рассортированных Q групп векторов движения к концу рассортированной последовательности N групп векторов движения для генерирования очереди векторов-кандидатов движения.
В качестве опции, процедура определения характеристического значения, соответствующего q-ой группе векторов движения, содержит:
определение разности между компонентами предсказателей векторов движения в одном направлении прогнозирования в q-ой группе векторов движения, для соседних контрольных точек из совокупности M контрольных точек;
сравнение абсолютной величины разности с заданным компонентным порогом, где этот заданный компонентный порог представляет собой диапазон блока, подлежащего кодированию в направлении прогнозирования; и
если абсолютная величина разности не больше заданного компонентного порога, определение характеристического значения, соответствующего q-ой группе векторов движения.
В качестве опции, процедура определения характеристического значения, соответствующего q-ой группе векторов движения, может содержать:
определение, из совокупности соседних декодированных блоков, декодированного блока, соответствующего другой контрольной точке, где расстояние между декодированным блоком, соответствующим другой контрольной точке и этой другой контрольной точкой не больше заданного расстояния, и рассматриваемая другая контрольная точка представляет собой какую-либо контрольную точку, отличную от указанных M контрольных точек в блоке, подлежащем декодированию;
определение вектора движения для кодированного блока, соответствующего указанной другой контрольной точке, в качестве предсказателя вектора движения для рассматриваемой другой контрольной точки; и
определение характеристического значения, соответствующего q-ой группе векторов движения, с использованием третьего заданного алгоритма и на основе предсказателя векторов движения для указанной другой контрольной точки и предсказателей векторов движения в q-ой группе векторов движения, для M контрольных точек.
В качестве опции, режим прогнозирования движения для блока, подлежащего декодированию, может представлять собой трансляционный режим прогнозирования движения или аффинный режим прогнозирования движения. Если режим прогнозирования движения для блока, подлежащего декодированию, представляет собой трансляционный режим прогнозирования движения, число контрольных точек равно 1. Если режим прогнозирования движения для блока, подлежащего декодированию, содержит аффинный режим прогнозирования движения, число контрольных точек больше 1.
Способ декодирования изображения, предлагаемый в Варианте 3 настоящего изобретения, представляет собой способ декодирования, соответствующий способу кодирования изображения согласно Варианту 1 и Варианту 2. Положительный эффект способа декодирования изображения аналогичен тому, который описан применительно к рассмотренным выше вариантам. Подробности здесь повторно описаны не будут.
Вариант 4 настоящего изобретения предлагает устройство кодирования изображения. На Фиг. 5 представлена упрощенная структурная схема устройства кодирования изображения согласно Варианту 4 настоящего изобретения. Как показано на Фиг. 5, устройство 500 кодирования изображения содержит решающий модуль 501, вычислительный модуль 502 и кодирующий модуль 503.
Решающий модуль 501 конфигурирован для определения N кодированных блоков из совокупности кодированных блоков, соседних с блоком, подлежащим кодированию, в соответствии с первым заданным правилом, где режим прогнозирования движения для N кодированных блоков является таким же, как для блока, подлежащего кодированию, и N положительное целое число.
Вычислительный модуль 502 конфигурирован для генерирования n-ой группы векторов движения с использованием первого заданного алгоритма и на основе вектора движения для n-го кодированного блока, найденного решающим модулем 501, где n представляет собой какое-либо положительное целое число не больше N.
Решающий модуль 501 дополнительно конфигурирован для определения, из совокупности N групп векторов движения, полученных вычислительным модулем 502, и в соответствии со вторым заданным правилом, одной группы векторов движения в качестве оптимальной группы векторов движения.
Вычислительный модуль 502 дополнительно конфигурирован для: определения прогнозируемой опорной величины каждого элемента выборки в блоке, подлежащем кодированию, с использованием второго заданного алгоритма и на основе оптимальной группы векторов движения, найденной решающим модулем, и определения остатка прогнозирования для каждого элемента выборки на основе разности между исходной опорной величиной для каждого элемента выборки и прогнозируемой опорной величиной для каждого элемента выборки.
Кодирующий модуль 503 конфигурирован для кодирования остатка прогнозирования для каждого элемента выборки и идентификатора индекса для оптимальной группы векторов движения для получения потока битов данных, соответствующего блоку, подлежащему кодированию, где идентификатор индекса для оптимальной группы векторов движения используется в качестве команды устройству декодирования определить прогнозируемую опорную величину для каждого элемента выборки.
В качестве опции, вычислительный модуль 502, в частности, конфигурирован для: определения предсказателей векторов движения для M контрольных точек в блоке, подлежащем кодированию, с использованием первого заданного алгоритма и на основе вектора движения для n-го кодированного блока, найденного решающим модулем 501, выборочных координат n-го кодированного блока и выборочных координат M контрольных точек; и генерирования n-ой группы векторов движения на основе предсказателей векторов движения для M контрольных точек, где M – положительное целое число, найденное на основе режима прогнозирования движения для блока, подлежащего кодированию.
В качестве опции, совокупность M контрольных точек содержит верхнюю левую вершину и верхнюю правую вершину блока, подлежащего декодированию;
вычислительный модуль 502, в частности, конфигурирован для определения предсказателя вектора
Figure 00000001
движения для верхней левой вершины блока, подлежащего кодированию, с использованием следующей формулы (1) и на основе вектора
Figure 00000002
движения для верхней левой вершины n-го кодированного блока, найденного решающим модулем 501, вектора
Figure 00000003
движения для верхней правой вершины n-го кодированного блока, вектора
Figure 00000004
движения для нижней левой вершины n-го кодированного блока, выборочных координат
Figure 00000005
верхней левой вершины n-го кодированного блока, выборочных координат
Figure 00000006
верхней правой вершины n-го кодированного блока, выборочных координат
Figure 00000007
нижней левой вершины n-го кодированного блока и выборочных координат
Figure 00000008
верхней левой вершины блока, подлежащего кодированию:
Figure 00000009
формула (1); и
вычислительный модуль 502 дополнительно конфигурирован для определения предсказателя вектора
Figure 00000010
движения для верхней правой вершины блока, подлежащего кодированию, с использованием следующей формулы (2) и на основе вектора
Figure 00000002
движения для верхней левой вершины n-го кодированного блока, найденного решающим модулем 501, вектора
Figure 00000003
движения для верхней правой вершины n-го кодированного блока, выборочных координат
Figure 00000005
верхней левой вершины n-го кодированного блока, выборочных координат
Figure 00000006
верхней правой вершины n-го кодированного блока, предсказателя вектора
Figure 00000001
движения для верхней левой вершины блока, подлежащего кодированию, выборочных координат
Figure 00000008
верхней левой вершины блока, подлежащего кодированию, и выборочных координат
Figure 00000011
верхней левой вершины блока, подлежащего кодированию:
Figure 00000012
формула (2).
В качестве опции, решающий модуль 501, в частности, конфигурирован для: сортировки N групп векторов движения в соответствии с заданным правилом сортировки для генерирования очереди векторов-кандидатов движения; если N не меньше заданной величины, определения заданного числа групп векторов движения в передней части очереди векторов-кандидатов движения; определения ошибки несовпадения между каждой из совокупности заданного числа групп векторов движения в передней части очереди и блоком, подлежащим кодированию; и определение одной группы векторов движения с наименьшей ошибкой несовпадения в качестве оптимальной группы векторов движения.
В качестве опции, заданное правило сортировки содержит расположение N кодированных блоков в порядке убывания.
В качестве опции, решающий модуль 501 дополнительно конфигурирован для: сортировки N групп векторов движения в соответствии с заданным правилом сортировки; если N меньше заданной величины, генерирования Q групп векторов движения, где сумма N и Q не меньше заданной величины, и Q положительное целое число; добавление Q групп векторов движения к концу последовательности из N групп векторов движения для генерирования очереди векторов-кандидатов движения; определения заданного числа групп векторов движения в передней части очереди векторов-кандидатов движения; определения ошибки несовпадения между каждой из этого заданного числа групп векторов движения в передней части очереди и блоком, подлежащим кодированию; и определения одной группы векторов движения с наименьшей ошибкой несовпадения в качестве оптимальной группы векторов движения.
В качестве опции, решающий модуль 501 дополнительно конфигурирован для: определения, из совокупности соседних кодированных блоков, кодированного блока, соответствующего m-ой контрольной точке, где расстояние между кодированным блоком, соответствующим m-ой контрольной точке и этой m-ой контрольной точкой не больше заданного расстояния, и m представляет собой какое-либо положительное целое число не больше M; определения вектора движения для кодированного блока, соответствующего указанной m-ой контрольной точке, в качестве предсказателя вектора движения для рассматриваемой m-ой контрольной точки; и генерирования Q групп векторов движения на основе предсказателей векторов движения для M контрольных точек.
В качестве опции, решающий модуль 501 дополнительно конфигурирован для: определения, из совокупности соседних кодированных блоков, кодированного блока, соответствующего m-ой контрольной точке, в блоке, подлежащем кодированию, где расстояние между кодированным блоком, соответствующим m-ой контрольной точке и этой m-ой контрольной точкой не больше заданного расстояния, и m представляет собой какое-либо положительное целое число не больше M; определения вектора движения для кодированного блока, соответствующего указанной m-ой контрольной точке, в качестве первого предсказателя вектора движения для рассматриваемой m-ой контрольной точки; генерирования K первых групп векторов движения на основе первых предсказателей векторов движения для M контрольных точек; определения вектора движения для j-го кодированного блока из совокупности соседних кодированных блоков в качестве второго предсказателя вектора движения для m-ой контрольной точки, где j представляет собой какое-либо одно из чисел 1, …, или J, где J представляет собой число соседних кодированных блоков, и J – положительное целое число; генерирования L вторых групп векторов движения на основе вторых предсказателей векторов движения для M контрольных точек; и добавления K первых групп векторов движения к концу последовательности L вторых групп векторов движения для генерирования Q групп векторов движения.
В качестве опции, решающий модуль 501 дополнительно конфигурирован для: определения характеристического значения, соответствующего q-ой группе векторов движения, где q представляет собой какое-либо положительное целое число не больше Q; осуществления сортировки Q групп векторов движения в порядке возрастания на основе характеристических значений, соответствующих этим Q группам векторов движения; и добавления рассортированных Q групп векторов движения к концу рассортированной последовательности N групп векторов движения для генерирования очереди векторов-кандидатов движения.
В качестве опции, решающий модуль 501 дополнительно конфигурирован для: определения разности между компонентами предсказателей векторов движения в одном направлении прогнозирования в q-ой группе векторов движения, для соседних контрольных точек из совокупности M контрольных точек; сравнения абсолютной величины разности с заданным компонентным порогом, где этот заданный компонентный порог представляет собой диапазон блока, подлежащего кодированию в направлении прогнозирования; и если абсолютная величина разности не больше заданного компонентного порога, определение характеристического значения, соответствующего q-ой группе векторов движения.
В качестве опции, решающий модуль 501 дополнительно конфигурирован для: определения, из совокупности соседних кодированных блоков, кодированного блока, соответствующего другой контрольной точке, где расстояние между кодированным блоком, соответствующим другой контрольной точке и этой другой контрольной точкой не больше заданного расстояния, и рассматриваемая другая контрольная точка представляет собой какую-либо контрольную точку, отличную от указанных M контрольных точек в блоке, подлежащем кодированию; определение вектора движения для кодированного блока, соответствующего указанной другой контрольной точке, в качестве предсказателя вектора движения для рассматриваемой другой контрольной точки; и определения характеристического значения, соответствующего q-ой группе векторов движения, с использованием третьего заданного алгоритма и на основе предсказателя вектора движения для указанной другой контрольной точки и предсказателей векторов движения в q-ой группе векторов движения, для M контрольных точек.
В качестве опции, режим прогнозирования движения для блока, подлежащего кодированию, может представлять собой трансляционный режим прогнозирования движения или аффинный режим прогнозирования движения.
Устройство кодирования изображения, предлагаемое в Варианте 4 настоящего изобретения, может быть конфигурировано для осуществления способа кодирования изображения согласно Варианту 1 или Варианту 2. Конкретная процедура осуществления и благоприятный эффект аналогичны тем, которые описаны применительно к рассмотренным выше вариантам. Подробности здесь повторно описаны не будут.
Вариант 5 настоящего изобретения далее предлагает устройство декодирования изображения. На Фиг. 6 представлена упрощенная структурная схема устройства декодирования изображения согласно Варианту 5 настоящего изобретения. Как показано на Фиг. 6, устройство 600 декодирования изображения может содержать решающий модуль 601, вычислительный модуль 602 и декодирующий модуль 603.
Решающий модуль 601 конфигурирован для определения N декодированных блоков из совокупности декодированных блоков, соседних с блоком, подлежащим декодированию, в соответствии с первым заданным правилом, где режим прогнозирования движения для N декодированных блоков является таким же, как для блока, подлежащего декодированию, and N положительное целое число.
Вычислительный модуль 602 конфигурирован для генерирования n-ой группы векторов движения с использованием первого заданного алгоритма и на основе вектора движения для n-го декодированного блока, найденного решающим модулем 601, где n представляет собой какое-либо положительное целое число не больше N.
Декодирующий модуль 603 конфигурирован для декодирования потока битов данных, соответствующего блоку, подлежащему декодированию, для получения остатка прогнозирования для каждого элемента выборки и идентификатора индекса для оптимальной группы векторов движения.
Решающий модуль 601 дополнительно конфигурирован для определения оптимальной группы векторов движения из совокупности N групп векторов движения на основе идентификатора индекса для оптимальной группы векторов движения, найденной декодирующим модулем 603.
Вычислительный модуль 602 дополнительно конфигурирован для: определения прогнозируемой опорной величины каждого элемента выборки в блоке, подлежащем декодированию, с использованием второго заданного алгоритма и на основе оптимальной группы векторов движения, найденной решающим модулем 601, и определения реконструированной опорной величины для каждого элемента выборки на основе суммы прогнозируемой опорной величины для каждого элемента выборки и остатка прогнозирования для каждого элемента выборки.
В качестве опции, вычислительный модуль 602, в частности, конфигурирован для: определения предсказателей векторов движения для M контрольных точек в блоке, подлежащем декодированию, с использованием первого заданного алгоритма и на основе вектора движения для n-го декодированного блока, найденного решающим модулем 601, выборочных координат n-го декодированного блока и выборочных координат M контрольных точек; и генерирования n-ой группы векторов движения на основе предсказателей векторов движения для M контрольных точек, где M – положительное целое число, найденное на основе режима прогнозирования движения для блока, подлежащего декодированию.
В качестве опции, совокупность M контрольных точек содержит верхнюю левую вершину и верхнюю правую вершину блока, подлежащего декодированию;
вычислительный модуль 602, в частности, конфигурирован для определения предсказателя вектора
Figure 00000001
движения для верхней левой вершины блока, подлежащего декодированию, с использованием следующей формулы (1) и на основе вектора
Figure 00000002
движения для верхней левой вершины n-го декодированного блока, найденного решающим модулем 601, вектора
Figure 00000003
движения для верхней правой вершины n-го декодированного блока, вектора
Figure 00000004
движения для нижней левой вершины n-го декодированного блока, выборочных координат
Figure 00000005
верхней левой вершины n-го декодированного блока, выборочных координат
Figure 00000006
верхней правой вершины n-го декодированного блока, выборочных координат
Figure 00000007
нижней левой вершины n-го декодированного блока и выборочных координат
Figure 00000008
верхней левой вершины блока, подлежащего декодированию:
Figure 00000009
формула (1); и
в частности, вычислительный модуль 602 дополнительно конфигурирован для определения предсказателя вектора
Figure 00000010
движения для верхней правой вершины блока, подлежащего декодированию, с использованием следующей формулы (2) и на основе вектора
Figure 00000002
движения для верхней левой вершины n-го декодированного блока, найденного решающим модулем 601, вектора
Figure 00000003
движения для верхней правой вершины n-го декодированного блока, выборочных координат
Figure 00000005
верхней левой вершины n-го декодированного блока, выборочных координат
Figure 00000006
верхней правой вершины n-го декодированного блока, предсказателя вектора
Figure 00000001
движения для верхней левой вершины блока, подлежащего декодированию, выборочных координат
Figure 00000008
верхней левой вершины блока, подлежащего декодированию, и выборочных координат
Figure 00000011
верхней левой вершины блока, подлежащего декодированию:
Figure 00000012
формула (2).
В качестве опции, решающий модуль 601 дополнительно конфигурирован для: сортировки N групп векторов движения в соответствии с заданным правилом сортировки для генерирования очереди векторов-кандидатов движения; если N не меньше заданной величины, определения заданного числа групп векторов движения в передней части очереди векторов-кандидатов движения; и определения оптимальной группы векторов движения в совокупности заданного числа групп векторов движения в передней части очереди на основе идентификатора индекса для оптимальной группы векторов движения.
В качестве опции, заданное правило сортировки содержит расположение N декодированных блоков в порядке убывания.
В качестве опции, решающий модуль 601 дополнительно конфигурирован для: сортировки N групп векторов движения в соответствии с заданным правилом сортировки; если N меньше заданной величины, генерирования Q групп векторов движения, где сумма N и Q не меньше заданной величины, и Q положительное целое число; добавления Q групп векторов движения к концу последовательности из N групп векторов движения для генерирования очереди векторов-кандидатов движения; определения заданного числа групп векторов движения в передней части очереди векторов-кандидатов движения; определения заданного числа групп векторов движения в передней части очереди векторов-кандидатов движения; и определения оптимальной группы векторов движения в совокупности из заданного числа групп векторов движения в передней части очереди на основе идентификатора индекса оптимальной группы векторов движения.
В качестве опции, решающий модуль 601 дополнительно конфигурирован для: определения, из совокупности соседних декодированных блоков, декодированного блока, соответствующего m-ой контрольной точке, в блоке, подлежащем декодированию, где расстояние между декодированным блоком, соответствующим m-ой контрольной точке и этой m-ой контрольной точкой не больше заданного расстояния, и m представляет собой какое-либо положительное целое число не больше M; определение вектора движения для декодированного блока, соответствующего указанной m-ой контрольной точке, в качестве предсказателя вектора движения для рассматриваемой m-ой контрольной точки; и генерирования Q групп векторов движения на основе предсказателей векторов движения для M контрольных точек.
В качестве опции, решающий модуль 601 дополнительно конфигурирован для: определения, из совокупности соседних декодированных блоков, декодированного блока, соответствующего m-ой контрольной точке, в блоке, подлежащем декодированию, где расстояние между декодированным блоком, соответствующим m-ой контрольной точке и этой m-ой контрольной точкой не больше заданного расстояния, и m представляет собой какое-либо положительное целое число не больше M; определения вектора движения для декодированного блока, соответствующего указанной m-ой контрольной точке, в качестве первого предсказателя вектора движения для рассматриваемой m-ой контрольной точки; генерирования K первых групп векторов движения на основе первых предсказателей векторов движения для M контрольных точек; определения вектора движения для j-го декодированного блока из совокупности соседних декодированных блоков в качестве второго предсказателя вектора движения для m-ой контрольной точки, где j представляет собой какое-либо одно из чисел 1, …, или J, где J представляет собой число соседних декодированных блоков, и J – положительное целое число; генерирования L вторых групп векторов движения на основе вторых предсказателей векторов движения для M контрольных точек; и добавление K первых групп векторов движения к концу последовательности L вторых групп векторов движения для генерирования Q групп векторов движения.
В качестве опции, решающий модуль 601 дополнительно конфигурирован для: определения характеристического значения, соответствующего q-ой группе векторов движения, где q представляет собой какое-либо положительное целое число не больше Q; сортировки Q групп векторов движения в порядке возрастания на основе характеристических значений, соответствующих Q группам векторов движения; и добавления рассортированных Q групп векторов движения к концу рассортированной последовательности N групп векторов движения для генерирования очереди векторов-кандидатов движения.
В качестве опции, решающий модуль 601 дополнительно конфигурирован для: определения разности между компонентами предсказателей векторов движения в одном направлении прогнозирования в q-ой группе векторов движения, для соседних контрольных точек из совокупности M контрольных точек; сравнения абсолютной величины разности с заданным компонентным порогом, где этот заданный компонентный порог представляет собой диапазон блока, подлежащего кодированию в направлении прогнозирования; и если абсолютная величина разности не больше заданного компонентного порога, определение характеристического значения, соответствующего q-ой группе векторов движения.
В качестве опции, решающий модуль 601 дополнительно конфигурирован для: определения, из совокупности соседних декодированных блоков, декодированного блока, соответствующего другой контрольной точке, где расстояние между декодированным блоком, соответствующим другой контрольной точке и этой другой контрольной точкой не больше заданного расстояния, и рассматриваемая другая контрольная точка представляет собой какую-либо контрольную точку, отличную от указанных M контрольных точек в блоке, подлежащем декодированию; определение вектора движения для декодированного блока, соответствующего указанной другой контрольной точке, в качестве предсказателя вектора движения для рассматриваемой другой контрольной точки; и определения характеристического значения, соответствующего q-ой группе векторов движения, с использованием третьего заданного алгоритма и на основе предсказателя вектора движения для указанной другой контрольной точки и предсказателей векторов движения в q-ой группе векторов движения, для M контрольных точек.
В качестве опции, режим прогнозирования движения для блока, подлежащего декодированию, может представлять собой трансляционный режим прогнозирования движения или аффинный режим прогнозирования движения.
Устройство декодирования изображения, предлагаемое в Варианте 5 настоящего изобретения может осуществлять способ декодирования изображения, предлагаемый в Варианте 3. Конкретная процедура осуществления и благоприятный эффект аналогичны тем, которые описаны применительно к рассмотренным выше вариантам. Подробности здесь повторно описаны не будут.
Вариант 6 настоящего изобретения предлагает устройство кодирования изображения. На Фиг. 7 представлена упрощенная структурная схема устройства кодирования изображения согласно Варианту 6 настоящего изобретения. Как показано на Фиг. 7, устройство 700 кодирования изображения содержит процессор 701, запоминающее устройство 702, интерфейс 703 связи и шину 704. Процессор 701 соединен с запоминающим устройством 702 и интерфейсом 703 связи с использованием шины 704.
Запоминающее устройство 702 конфигурировано для сохранения команд.
Процессор 701 конфигурирован для выполнения этих команд. Когда процессор 701 выполняет команды, сохраняемые в запоминающем устройстве 702, этот процессор 701 осуществляет способ кодирования изображения согласно Варианту 1 или Варианту 2.
Устройство кодирования изображения, предлагаемое в Варианте 6 настоящего изобретения может осуществлять способ кодирования изображения, предлагаемый Вариантом 1 или Вариантом 2. Конкретная процедура осуществления и благоприятный эффект аналогичны тем, которые описаны применительно к рассмотренным выше вариантам. Подробности здесь повторно описаны не будут.
Вариант 7 настоящего изобретения предлагает устройство декодирования изображения. На Фиг. 8 представлена упрощенная структурная схема устройства декодирования изображения согласно Варианту 7 настоящего изобретения. Как показано на Фиг. 8, устройство 800 декодирования изображения может содержать процессор 801, запоминающее устройство 802, интерфейс 803 связи и шину 804. Процессор 801 соединен с запоминающим устройством 802 и интерфейсом 803 связи с использованием шины 804.
Запоминающее устройство 802 конфигурировано для хранения команд.
Процессор 801 конфигурирован для выполнения этих команд. Когда процессор 801 выполняет команды, сохраняемые в запоминающем устройстве 802, этот процессор 801 осуществляет способ декодирования изображения согласно Варианту 3.
Устройство декодирования изображения, предлагаемое в Варианте 7 настоящего изобретения, может осуществлять способ декодирования изображения, предлагаемый Вариантом 3. Конкретная процедура осуществления и благоприятный эффект аналогичны тем, которые описаны применительно к рассмотренным выше вариантам. Подробности здесь повторно описаны не будут.
Даже рядовые специалисты в рассматриваемой области могут понимать, что все или некоторые из этапов вариантов способов могут быть осуществлены с использованием программы, управляющей соответствующей аппаратурой. Эта программа может быть сохранена на читаемом компьютером носителе информации. Когда программа работает, она осуществляет этапы вариантов способов. Упомянутый выше носитель информации представляет собой какой-либо носитель, способный сохранять программный код, такой как ПЗУ (ROM), ЗУПВ (RAM), магнитный диск или оптический диск.
Наконец, следует отметить, что описанные выше варианты предназначены просто для описания технических решений настоящего изобретения, но не для ограничений этого изобретения. Хотя настоящее изобретение описано подробно со ссылками на приведенные выше варианты, даже рядовые специалисты в рассматриваемой области должны понимать, что они еще смогут вносить модификации в технические решения, приведенные выше, или делать эквивалентные замены некоторых или всех технических признаков, не отклоняясь от объема технических решений вариантов настоящего изобретения.

Claims (60)

1. Способ декодирования изображения, содержащий этапы, на которых:
определяют N декодированных блоков из соседних декодированных блоков блока, подлежащего декодированию, в соответствии с первым заданным правилом, причем режим прогнозирования движения для указанных N декодированных блоков является таким же, как режим для блока, подлежащего декодированию, а N положительное целое число;
генерируют n-ую группу векторов движения с использованием первого заданного алгоритма и на основе вектора движения для n-го декодированного блока, где n является любым положительным целым числом не больше N;
декодируют поток битов данных, соответствующий блоку, подлежащему декодированию, для получения остатка прогнозирования для каждого блока выборки и идентификатора индекса для оптимальной группы векторов движения;
определяют оптимальную группу векторов движения из N групп векторов движения на основе идентификатора индекса для оптимальной группы векторов движения;
определяют прогнозируемую величину выборки для каждого блока выборки в блоке, подлежащем декодированию, с использованием второго заданного алгоритма и на основе оптимальной группы векторов движения; и
определяют реконструированную величину выборки для каждого блока выборки на основе суммы прогнозируемой величины выборки для каждого блока выборки и остатка прогнозирования для каждого блока выборки.
2. Способ по п. 1, в котором этап генерирования n-ой группы векторов движения с использованием первого заданного алгоритма и на основе вектора движения для n-го декодированного блока содержит подэтапы, на которых:
определяют предсказатели векторов движения для M контрольных точек в блоке, подлежащем декодированию, с использованием первого заданного алгоритма и на основе вектора движения для n-го декодированного блока, выборочных координат n-го декодированного блока и выборочных координат M контрольных точек, где M положительное целое число, определенное на основе режима прогнозирования движения для блока, подлежащего декодированию; и
генерируют n-ую группу векторов движения на основе предсказателей векторов движения для M контрольных точек.
3. Способ по п. 2, в котором совокупность M контрольных точек содержит верхнюю левую вершину и верхнюю правую вершину блока, подлежащего декодированию; а
этап определения предсказателей векторов движения для M контрольных точек блока, подлежащего декодированию, с использованием первого заданного алгоритма и на основе вектора движения для n-го декодированного блока, выборочных координат n-го декодированного блока и выборочных координат M контрольных точек содержит подэтапы, на которых:
определяют предсказатель вектора
Figure 00000079
движения для верхней левой вершины блока, подлежащего декодированию, с использованием формулы (1) и на основе вектора
Figure 00000080
движения для верхней левой вершины n-го декодированного блока, вектора
Figure 00000081
движения для верхней правой вершины n-го декодированного блока, вектора
Figure 00000082
движения для нижней левой вершины n-го декодированного блока, выборочных координат
Figure 00000083
верхней левой вершины n-го декодированного блока, выборочных координат
Figure 00000084
верхней правой вершины n-го декодированного блока, выборочных координат
Figure 00000085
нижней левой вершины n-го декодированного блока и выборочных координат
Figure 00000086
верхней левой вершины блока, подлежащего декодированию:
Figure 00000087
формула (1); и
определяют предсказатель вектора
Figure 00000088
движения для верхней правой вершины блока, подлежащего декодированию, с использованием формулы (2) и на основе вектора
Figure 00000080
движения для верхней левой вершины n-го декодированного блока, вектора
Figure 00000081
движения для верхней правой вершины n-го декодированного блока, выборочных координат
Figure 00000083
верхней левой вершины n-го декодированного блока, выборочных координат
Figure 00000084
верхней правой вершины n-го декодированного блока, предсказателя вектора
Figure 00000079
движения для верхней левой вершины блока, подлежащего декодированию, выборочных координат
Figure 00000086
верхней левой вершины блока, подлежащего декодированию, и выборочных координат
Figure 00000089
верхней левой вершины блока, подлежащего декодированию:
Figure 00000090
формула (2).
4. Способ по п.1, в котором этап определения оптимальной группы векторов движения из совокупности N групп векторов движения на основе идентификатора индекса для оптимальной группы векторов движения содержит подэтапы, на которых:
осуществляют сортировку N групп векторов движения в соответствии с заданным правилом сортировки для генерирования очереди векторов-кандидатов движения;
определяют, если N больше или равно заданной величине, заданное числа групп векторов движения в передней части очереди векторов-кандидатов движения; и
определяют оптимальную группу векторов движения из совокупности заданного числа групп векторов движения в передней части очереди на основе идентификатора индекса для оптимальной группы векторов движения.
5. Способ по п. 4, в котором заданное правило сортировки содержит расположение N декодированных блоков в порядке убывания.
6. Способ по п. 1, в котором этап определения оптимальной группы векторов движения из N групп векторов движения на основе идентификатора индекса для оптимальной группы векторов движения содержит подэтапы, на которых:
осуществляют сортировку N групп векторов движения в соответствии с заданным правилом сортировки;
генерируют, если N меньше заданной величины, Q групп векторов движения, где сумма N и Q больше или равна заданной величине, а Q положительное целое число;
добавляют Q групп векторов движения к концу последовательности N групп векторов движения для генерирования очереди векторов-кандидатов движения;
определяют заданное число групп векторов движения в передней части очереди векторов-кандидатов движения; и
определяют оптимальную группу векторов движения из совокупности заданного числа групп векторов движения в передней части очереди на основе идентификатора индекса для оптимальной группы векторов движения.
7. Способ по п. 6, в котором этап генерирования Q групп векторов движения содержит подэтапы, на которых:
определяют, из совокупности соседних декодированных блоков, декодированный блок, соответствующий m-ой контрольной точке в блоке, подлежащем декодированию, при этом расстояние между декодированным блоком, соответствующим m-ой контрольной точке, и m-ой контрольной точкой меньше или равно заданному расстоянию, а m является любым положительным целым числом меньшим или равным M;
определяют вектор движения декодированного блока, соответствующего m-ой контрольной точке, в качестве предсказателя вектора движения для этой m-ой контрольной точки; и
генерируют Q групп векторов движения на основе предсказателей векторов движения для M контрольных точек.
8. Способ по п. 6, в котором этап генерирования Q групп векторов движения содержит подэтапы, на которых:
определяют из соседних декодированных блоков декодированный блок, соответствующий m-ой контрольной точке в блоке, подлежащем декодированию, причем расстояние между декодированным блоком, соответствующим m-ой контрольной точке, и m-ой контрольной точкой меньше или равно заданному расстоянию, а m является любым положительным целым числом меньшим или равным M;
определяют вектор движения декодированного блока, соответствующего m-ой контрольной точке, в качестве первого предсказателя вектора движения для m-ой контрольной точки;
генерируют K первых групп векторов движения на основе первых предсказателей векторов движения для M контрольных точек;
определяют вектор движения для j-го декодированного блока из соседних декодированных блоков в качестве второго предсказателя вектора движения для m-ой контрольной точки, где j является любым числом из чисел 1, …, или J, а J представляет собой число соседних декодированных блоков, и J – положительное целое число;
генерируют L вторых групп векторов движения на основе вторых предсказателей векторов движения для M контрольных точек; и
добавляют K первых групп векторов движения к концу последовательности L вторых групп векторов движения для генерирования Q групп векторов движения.
9. Способ по п. 1, в котором режим прогнозирования движения для блока, подлежащего декодированию, может представлять собой трансляционный режим прогнозирования движения или аффинный режим прогнозирования движения.
10. Устройство декодирования изображения, содержащее:
решающий модуль для определения N декодированных блоков из соседних декодированных блоков для блока, подлежащего декодированию, в соответствии с первым заданным правилом, причем режим прогнозирования движения для N декодированных блоков является таким же, как для блока, подлежащего декодированию, и N положительное целое число;
вычислительный модуль для генерирования n-ой группы векторов движения с использованием первого заданного алгоритма и на основе вектора движения для n-го декодированного блока, определенного решающим модулем, где n является любым положительным целым числом не больше N; и
декодирующий модуль для декодирования потока битов данных, соответствующего блоку, подлежащему декодированию, для получения остатка прогнозирования для каждого блока выборки и идентификатора индекса для оптимальной группы векторов движения, при этом
решающий модуль дополнительно выполнен с возможностью определения оптимальной группы векторов движения из совокупности N групп векторов движения на основе идентификатора индекса для оптимальной группы векторов движения, определенного декодирующим модулем; а
вычислительный модуль дополнительно выполнен с возможностью: определения прогнозируемой величины выборки каждого блока выборки в блоке, подлежащем декодированию, с использованием второго заданного алгоритма и на основе оптимальной группы векторов движения, определенной решающим модулем; и определения реконструированной величины выборки для каждого блока выборки на основе суммы прогнозируемой величины выборки для каждого блока выборки и остатка прогнозирования для каждого блока выборки.
11. Устройство декодирования изображения по п. 10, в котором вычислительный модуль дополнительно выполнен с возможностью: определения предсказателей векторов движения для M контрольных точек в блоке, подлежащем декодированию, с использованием первого заданного алгоритма и на основе вектора движения для n-го декодированного блока, определенного решающим модулем, выборочных координат n-го декодированного блока и выборочных координат M контрольных точек; и генерирования n-ой группы векторов движения на основе предсказателей векторов движения для M контрольных точек, где M – положительное целое число, определенное на основе режима прогнозирования движения для блока, подлежащего декодированию.
12. Устройство декодирования изображения по п. 11, в котором совокупность M контрольных точек содержит верхнюю левую вершину и верхнюю правую вершину блока, подлежащего декодированию; а
вычислительный модуль дополнительно выполнен с возможностью определения предсказателя вектора
Figure 00000079
движения для верхней левой вершины блока, подлежащего декодированию с использованием формулы (1) и на основе вектора
Figure 00000080
движения для верхней левой вершины n-го декодированного блока, найденного решающим модулем, вектора
Figure 00000081
движения для верхней правой вершины n-го декодированного блока, вектора
Figure 00000082
движения для нижней левой вершины n-го декодированного блока, выборочных координат
Figure 00000083
верхней левой вершины n-го декодированного блока, выборочных координат
Figure 00000084
верхней правой вершины n-го декодированного блока, выборочных координат
Figure 00000085
нижней левой вершины n-го декодированного блока и выборочных координат
Figure 00000086
верхней левой вершины блока, подлежащего декодированию:
Figure 00000087
формула (1); при этом
вычислительный модуль дополнительно выполнен с возможностью определения предсказателя вектора
Figure 00000088
движения для верхней правой вершины блока, подлежащего декодированию с использованием формулы (2) и на основе вектора
Figure 00000080
движения для верхней левой вершины n-го декодированного блока, найденного решающим модулем, вектора
Figure 00000081
движения для верхней правой вершины n-го декодированного блока, выборочных координат
Figure 00000083
верхней левой вершины n-го декодированного блока, выборочных координат
Figure 00000084
верхней правой вершины n-го декодированного блока, предсказателя вектора
Figure 00000079
движения для верхней левой вершины блока, подлежащего декодированию, выборочных координат
Figure 00000086
верхней левой вершины блока, подлежащего декодированию, и выборочных координат
Figure 00000089
верхней левой вершины блока, подлежащего декодированию:
Figure 00000090
формула (2).
13. Устройство декодирования изображения по п. 10, в котором решающий модуль дополнительно выполнен с возможностью: сортировки N групп векторов движения в соответствии с заданным правилом сортировки для генерирования очереди векторов-кандидатов движения; если N больше или равно заданной величине, определения заданного числа групп векторов движения в передней части очереди векторов-кандидатов движения; и определения оптимальной группы векторов движения из заданного числа групп векторов движения в передней части очереди на основе идентификатора индекса для оптимальной группы векторов движения.
14. Устройство декодирования изображения по п. 13, в котором заданное правило сортировки содержит расположение N декодированных блоков в порядке убывания.
15. Устройство декодирования изображения по п. 10, в котором решающий модуль дополнительно выполнен с возможностью: сортировки N групп векторов движения в соответствии с заданным правилом сортировки; если N меньше заданной величины, генерирования Q групп векторов движения, где сумма N и Q больше или равна заданной величине, и Q положительное целое число; добавления Q групп векторов движения к концу последовательности из N групп векторов движения для генерирования очереди векторов-кандидатов движения; определения заданного числа групп векторов движения в передней части очереди векторов-кандидатов движения; и определения оптимальной группы векторов движения в заданном числе групп векторов движения в передней части очереди на основе идентификатора индекса для оптимальной группы векторов движения.
16. Устройство декодирования изображения по п. 15, в котором решающий модуль дополнительно выполнен с возможностью: определения, из совокупности соседних декодированных блоков, декодированного блока, соответствующего m-ой контрольной точке в блоке, подлежащем декодированию, при этом расстояние между декодированным блоком, соответствующим m-ой контрольной точке, и m-ой контрольной точкой меньше или равно заданному расстоянию, и m является любым положительным целым числом меньшим или равным M; определения вектора движения для декодированного блока, соответствующего указанной m-ой контрольной точке, в качестве предсказателя вектора движения для рассматриваемой m-ой контрольной точки; и генерирования Q групп векторов движения на основе предсказателей векторов движения для M контрольных точек.
17. Устройство декодирования изображения по п. 15, в котором решающий модуль дополнительно выполнен с возможностью: определения, из совокупности соседних декодированных блоков, декодированного блока, соответствующего m-ой контрольной точке, в блоке, подлежащем декодированию, причем расстояние между декодированным блоком, соответствующим m-ой контрольной точке, и m-ой контрольной точкой меньше или равно заданному расстоянию, и m является любым положительным целым числом меньшим или равным M; определения вектора движения для декодированного блока, соответствующего указанной m-ой контрольной точке, в качестве первого предсказателя вектора движения для m-ой контрольной точки; генерирования K первых групп векторов движения на основе первых предсказателей векторов движения для M контрольных точек; определения вектора движения для j-го декодированного блока из соседних декодированных блоков в качестве второго предсказателя вектора движения для m-ой контрольной точки, где j является любым числом из чисел 1, …, или J, где J представляет собой число соседних декодированных блоков, и J – положительное целое число; генерирования L вторых групп векторов движения на основе вторых предсказателей векторов движения для M контрольных точек; и добавления K первых групп векторов движения к концу последовательности L вторых групп векторов движения для генерирования Q групп векторов движения.
18. Устройство декодирования изображения по п. 10, в котором режим прогнозирования движения для блока, подлежащего декодированию, может представлять собой трансляционный режим прогнозирования движения или аффинный режим прогнозирования движения.
19. Устройство декодирования изображения, содержащее процессор, запоминающее устройство, интерфейс связи, и шину, причем процессор соединен с запоминающим устройством и интерфейсом связи с использованием шины;
запоминающее устройство выполнено с возможностью хранения команд; а
процессор выполнен с возможностью исполнения указанных команд, так что при выполнении команд, хранящихся в запоминающем устройстве, процессор реализует способ декодирования изображения по п. 1.
RU2018131317A 2016-02-06 2016-09-08 Способ и устройство кодирования изображения и способ и устройство декодирования изображения RU2708347C1 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201610081070.3A CN107046645B9 (zh) 2016-02-06 2016-02-06 图像编解码方法及装置
CN201610081070.3 2016-02-06
PCT/CN2016/098403 WO2017133243A1 (zh) 2016-02-06 2016-09-08 图像编解码方法及装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2019137993A Division RU2722389C2 (ru) 2016-02-06 2016-09-08 Способ и устройство кодирования изображения и способ и устройство декодирования изображения

Publications (1)

Publication Number Publication Date
RU2708347C1 true RU2708347C1 (ru) 2019-12-05

Family

ID=59499362

Family Applications (4)

Application Number Title Priority Date Filing Date
RU2018131317A RU2708347C1 (ru) 2016-02-06 2016-09-08 Способ и устройство кодирования изображения и способ и устройство декодирования изображения
RU2019137993A RU2722389C2 (ru) 2016-02-06 2016-09-08 Способ и устройство кодирования изображения и способ и устройство декодирования изображения
RU2020117128A RU2737315C1 (ru) 2016-02-06 2020-05-25 Способ и устройство кодирования изображения и способ и устройство декодирования изображения
RU2020138084A RU2748360C1 (ru) 2016-02-06 2020-11-20 Способ и устройство кодирования изображения и способ и устройство декодирования изображения

Family Applications After (3)

Application Number Title Priority Date Filing Date
RU2019137993A RU2722389C2 (ru) 2016-02-06 2016-09-08 Способ и устройство кодирования изображения и способ и устройство декодирования изображения
RU2020117128A RU2737315C1 (ru) 2016-02-06 2020-05-25 Способ и устройство кодирования изображения и способ и устройство декодирования изображения
RU2020138084A RU2748360C1 (ru) 2016-02-06 2020-11-20 Способ и устройство кодирования изображения и способ и устройство декодирования изображения

Country Status (10)

Country Link
US (5) US10798405B2 (ru)
EP (2) EP4099699A1 (ru)
JP (3) JP7069022B2 (ru)
KR (4) KR102247383B1 (ru)
CN (4) CN111556323B (ru)
AU (3) AU2016390979B2 (ru)
CA (1) CA3013655C (ru)
HK (1) HK1256107A1 (ru)
RU (4) RU2708347C1 (ru)
WO (1) WO2017133243A1 (ru)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111556323B (zh) 2016-02-06 2022-05-13 华为技术有限公司 图像编解码方法及装置
JP7261750B2 (ja) * 2017-06-26 2023-04-20 インターデジタル ヴイシー ホールディングス, インコーポレイテッド 動き補償のための複数の予測子候補
US10856003B2 (en) 2017-10-03 2020-12-01 Qualcomm Incorporated Coding affine prediction motion information for video coding
US10582212B2 (en) * 2017-10-07 2020-03-03 Google Llc Warped reference motion vectors for video compression
CN112055205B (zh) 2017-12-12 2021-08-03 华为技术有限公司 视频数据的帧间预测方法和装置、视频编解码器、存储介质
CN110035287B (zh) * 2018-01-12 2023-05-09 富士通株式会社 对统一转换单元模式进行分组标识的方法、装置和电子设备
CN108449599B (zh) * 2018-03-23 2021-05-18 安徽大学 一种基于面透射变换的视频编码与解码方法
CN116684590A (zh) * 2018-04-01 2023-09-01 Lg电子株式会社 图像编码/解码方法、视频数据发送方法和存储介质
CN117294837A (zh) 2018-04-02 2023-12-26 深圳市大疆创新科技有限公司 用于图像处理的方法和图像处理装置
CN110971899B (zh) * 2018-10-01 2021-06-01 华为技术有限公司 一种确定运动信息的方法、帧间预测方法及装置
US11528484B2 (en) 2018-12-06 2022-12-13 Lg Electronics Inc. Method and apparatus for processing video signal on basis of inter prediction
CN116546218A (zh) 2019-01-02 2023-08-04 Oppo广东移动通信有限公司 解码预测方法、装置及计算机存储介质
CN113597767A (zh) * 2019-03-08 2021-11-02 Oppo广东移动通信有限公司 预测方法、编码器、解码器及计算机存储介质
CN113824960B (zh) * 2019-11-13 2024-02-23 腾讯科技(深圳)有限公司 视频编码方法、装置、计算机可读介质及电子设备
CN111698502A (zh) * 2020-06-19 2020-09-22 中南大学 基于vvc编码的仿射运动估计加速方法、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2355126C2 (ru) * 2006-01-12 2009-05-10 Самсунг Электроникс Ко., Лтд. Основывающиеся на множестве слоев способ кодирования/декодирования и видеокодер/декодер, в которых используется сглаживающее предсказание
EP2252067A2 (en) * 1997-03-17 2010-11-17 Mitsubishi Denki Kabushiki Kaisha Video decoder and video decoding method
US20120213288A1 (en) * 2009-10-20 2012-08-23 Yoshihiro Kitaura Video encoding device, video decoding device, and data structure
US20140301446A1 (en) * 2011-11-07 2014-10-09 Canon Kabushiki Kaisha Motion vector coding apparatus, method and program for coding motion vector, motion vector decoding apparatus, and method and program for decoding motion vector

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100215451B1 (ko) * 1996-05-29 1999-08-16 윤종용 임의형태 물체를 포함한 동화상의 부호화 및 복호화시스템
US8488668B2 (en) * 2007-06-15 2013-07-16 Qualcomm Incorporated Adaptive coefficient scanning for video coding
WO2009123248A1 (en) * 2008-04-01 2009-10-08 Canon Kabushiki Kaisha Moving image encoding apparatus and moving image encoding method
JP5401071B2 (ja) * 2008-10-09 2014-01-29 株式会社Nttドコモ 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法、動画像符号化プログラム、動画像復号プログラム、動画像処理システムおよび動画像処理方法
KR101590511B1 (ko) 2009-01-23 2016-02-02 에스케이텔레콤 주식회사 움직임 벡터 부호화/복호화 장치 및 방법과 그를 이용한 영상 부호화/복호화 장치 및 방법
JP4760923B2 (ja) * 2009-02-03 2011-08-31 ソニー株式会社 画像処理装置、画像処理方法および撮像装置
KR101452859B1 (ko) 2009-08-13 2014-10-23 삼성전자주식회사 움직임 벡터를 부호화 및 복호화하는 방법 및 장치
KR101459714B1 (ko) * 2009-10-28 2014-11-13 에스케이텔레콤 주식회사 공간 분할을 이용한 움직임 벡터 부호화/복호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
WO2011083439A1 (en) * 2010-01-08 2011-07-14 Nokia Corporation An apparatus, a method and a computer program for video coding
CN101771878B (zh) * 2010-01-14 2011-05-25 广西大学 面向全景视频编码的自适应选择全局运动估计方法
CN102884793B (zh) * 2010-02-09 2016-03-23 日本电信电话株式会社 运动向量预测编码方法、运动向量预测解码方法、活动图像编码装置及活动图像解码装置
CN103039075B (zh) * 2010-05-21 2015-11-25 Jvc建伍株式会社 图像编码装置、图像编码方法、以及图像解码装置、图像解码方法
GB2487200A (en) 2011-01-12 2012-07-18 Canon Kk Video encoding and decoding with improved error resilience
JP5716438B2 (ja) 2011-02-08 2015-05-13 株式会社Jvcケンウッド 画像復号装置、画像復号方法および画像復号プログラム
FI4164224T3 (fi) * 2011-06-28 2024-05-07 Lg Electronics Inc Videodekoodauslaitteisto ja videokoodauslaitteisto
KR101943049B1 (ko) 2011-06-30 2019-01-29 에스케이텔레콤 주식회사 영상 부호화/복호화 방법 및 장치
EP2683165B1 (en) * 2012-07-04 2015-10-14 Thomson Licensing Method for coding and decoding a block of pixels from a motion model
WO2014190468A1 (en) * 2013-05-27 2014-12-04 Microsoft Corporation Video encoder for images
US9774879B2 (en) * 2013-08-16 2017-09-26 Sony Corporation Intra-block copying enhancements for HEVC in-range-extension (RExt)
CN104717555B (zh) 2013-12-11 2018-01-02 华为技术有限公司 视频码流的获取方法及装置
EP3144870A4 (en) 2014-05-14 2017-11-15 National Institute of Advanced Industrial Science and Technology Device and method for exchanging trade information
WO2016008157A1 (en) * 2014-07-18 2016-01-21 Mediatek Singapore Pte. Ltd. Methods for motion compensation using high order motion model
CN112087630B (zh) * 2014-09-30 2022-04-08 华为技术有限公司 图像预测方法、装置、解码器及存储介质
EP3023904B1 (en) 2014-11-24 2021-01-27 IDEMIA France Implicit File creation in APDU scripts
CN104661031B (zh) * 2015-02-16 2017-12-22 华为技术有限公司 用于视频图像编码和解码的方法、编码设备和解码设备
CN105163116B (zh) 2015-08-29 2018-07-31 华为技术有限公司 图像预测的方法及设备
GB2561507B (en) * 2016-01-07 2021-12-22 Mediatek Inc Method and apparatus for affine merge mode prediction for video coding system
WO2017130696A1 (ja) * 2016-01-29 2017-08-03 シャープ株式会社 予測画像生成装置、動画像復号装置、および動画像符号化装置
CN111556323B (zh) * 2016-02-06 2022-05-13 华为技术有限公司 图像编解码方法及装置
CN109729352B (zh) * 2017-10-27 2020-07-21 华为技术有限公司 确定仿射编码块的运动矢量的方法和装置
CN112055205B (zh) * 2017-12-12 2021-08-03 华为技术有限公司 视频数据的帧间预测方法和装置、视频编解码器、存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2252067A2 (en) * 1997-03-17 2010-11-17 Mitsubishi Denki Kabushiki Kaisha Video decoder and video decoding method
RU2355126C2 (ru) * 2006-01-12 2009-05-10 Самсунг Электроникс Ко., Лтд. Основывающиеся на множестве слоев способ кодирования/декодирования и видеокодер/декодер, в которых используется сглаживающее предсказание
US20120213288A1 (en) * 2009-10-20 2012-08-23 Yoshihiro Kitaura Video encoding device, video decoding device, and data structure
US20140301446A1 (en) * 2011-11-07 2014-10-09 Canon Kabushiki Kaisha Motion vector coding apparatus, method and program for coding motion vector, motion vector decoding apparatus, and method and program for decoding motion vector

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
INTERNATIONAL ORGANIZATION FOR STANDARDIZATION "Algorithm Description of Joint Exploration Test Model 1 (JEM 1)", N15790, опубл. 31.10.2015 на 27 страницах [найдено 15.05.2019], размещено в Интернет по адресу URL:https://mpeg.chiariglione.org/standards/exploration/future-video-coding/n15790-algorithm-description-joint-exploration-test-model. *

Also Published As

Publication number Publication date
JP7351463B2 (ja) 2023-09-27
RU2748360C1 (ru) 2021-05-24
CN111556323A (zh) 2020-08-18
AU2016390979B2 (en) 2020-04-23
HK1256107A1 (zh) 2019-09-13
KR20210095745A (ko) 2021-08-02
JP7069022B2 (ja) 2022-05-17
RU2019137993A (ru) 2019-12-20
RU2722389C2 (ru) 2020-05-29
KR102284099B1 (ko) 2021-07-29
CN107046645A (zh) 2017-08-15
EP3402205A4 (en) 2018-11-14
KR102247383B1 (ko) 2021-04-30
CN111526361B (zh) 2022-05-13
JP7351485B2 (ja) 2023-09-27
JP2020205610A (ja) 2020-12-24
AU2020207860B2 (en) 2022-02-03
US20180376161A1 (en) 2018-12-27
EP3402205A1 (en) 2018-11-14
JP2020205611A (ja) 2020-12-24
AU2020207857A1 (en) 2020-08-13
US20220329845A1 (en) 2022-10-13
CN111526360A (zh) 2020-08-11
KR20200122416A (ko) 2020-10-27
CA3013655A1 (en) 2017-08-10
EP4099699A1 (en) 2022-12-07
CN107046645B9 (zh) 2020-08-14
CN107046645B (zh) 2020-04-21
RU2737315C1 (ru) 2020-11-27
CN111556323B (zh) 2022-05-13
AU2020207860A1 (en) 2020-08-13
CA3013655C (en) 2023-10-03
US20200413087A1 (en) 2020-12-31
KR20200121925A (ko) 2020-10-26
AU2020207857B2 (en) 2022-02-03
AU2016390979A1 (en) 2018-09-06
KR20180107783A (ko) 2018-10-02
JP2019506089A (ja) 2019-02-28
KR102283725B1 (ko) 2021-07-29
WO2017133243A1 (zh) 2017-08-10
US11412248B2 (en) 2022-08-09
US10798405B2 (en) 2020-10-06
US11394994B2 (en) 2022-07-19
EP3402205B1 (en) 2022-06-15
US20220353525A1 (en) 2022-11-03
US20200413088A1 (en) 2020-12-31
RU2019137993A3 (ru) 2020-03-26
CN111526361A (zh) 2020-08-11
KR102447241B1 (ko) 2022-09-23

Similar Documents

Publication Publication Date Title
RU2708347C1 (ru) Способ и устройство кодирования изображения и способ и устройство декодирования изображения
CN110149512A (zh) 帧间预测加速方法、控制装置、电子装置、计算机存储介质及设备
Mercat et al. Machine learning based choice of characteristics for the one-shot determination of the HEVC intra coding tree
CN112565789B (zh) 视频解码及编码方法、装置、计算机可读介质及电子设备
CN114422803A (zh) 一种视频处理方法、装置及设备
TH1301007142B (th) การทำให้สิ่งเข้าร่วมการผสานขนานกันอย่างเป็นมิตรสำหรับการลงรหัสวิดีโอ