RU2679195C1 - Способ кодирования видеоизображения, способ декодирования видеоизображения, устройство кодирования и устройство декодирования - Google Patents
Способ кодирования видеоизображения, способ декодирования видеоизображения, устройство кодирования и устройство декодирования Download PDFInfo
- Publication number
- RU2679195C1 RU2679195C1 RU2017132279A RU2017132279A RU2679195C1 RU 2679195 C1 RU2679195 C1 RU 2679195C1 RU 2017132279 A RU2017132279 A RU 2017132279A RU 2017132279 A RU2017132279 A RU 2017132279A RU 2679195 C1 RU2679195 C1 RU 2679195C1
- Authority
- RU
- Russia
- Prior art keywords
- motion
- vector
- motion model
- group
- block
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 86
- 230000033001 locomotion Effects 0.000 claims abstract description 1541
- 239000013598 vector Substances 0.000 claims abstract description 1356
- 238000005457 optimization Methods 0.000 claims abstract description 196
- 238000013139 quantization Methods 0.000 claims abstract description 130
- 230000005540 biological transmission Effects 0.000 claims abstract description 118
- 230000000694 effects Effects 0.000 abstract description 5
- 239000000126 substance Substances 0.000 abstract 1
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 47
- 238000012545 processing Methods 0.000 description 23
- 238000004364 calculation method Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 3
- 230000001788 irregular Effects 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000011282 treatment Methods 0.000 description 2
- 241001481833 Coryphaena hippurus Species 0.000 description 1
- 241000382509 Vania Species 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/56—Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Изобретение относится к вычислительной технике. Технический результат заключается в сокращении объема данных и количества занятых битов при кодировании и декодировании. Способ декодирования видеоизображения, в котором определяют группу векторов движения и вектор передачи модели движения текущего блока декодирования согласно битовому потоку; определяют значения предсказания первого набора компонент вектора инициализации модели движения текущего блока декодирования; и определяют вектор оптимизации модели движения текущего блока декодирования; при этом дополнительно определяют точность квантования модели движения текущего блока декодирования, квантуют вектор оптимизации модели движения согласно точности квантования модели движения, и декодируют текущий блок декодирования согласно квантованному вектору оптимизации модели движения, а также определяют точность квантования модели движения согласно размеру текущего блока декодирования и информации точности, причем размер текущего блока декодирования представляет собой ширину текущего блока декодирования и высоту текущего блока декодирования и информация точности содержит точность квантования группы векторов движения. 2 н. и 12 з.п. ф-лы, 8 ил., 1 табл.
Description
Область техники, к которой относится изобретение
[0001] настоящее изобретение относится к области обработки видеоизображения, и, в частности, к способу кодирования видеоизображения, способу декодирования видеоизображения, устройству кодирования, и устройству декодирования.
Уровень техники
[0002] в различных видеокодеках, оценка движения/компенсация движения является ключевой технологией, которая оказывает влияние на производительность кодирования. В существующих различных видеокодеках, при предположении, что объект всегда имеет поступательное движение, и что все части всего объекта перемещаются в одном и том же направлении и при одной и той же скорости, используется способ основанной на блоках компенсации движения. Однако все эти способы основываются на модели поступательного движения (translational motion model), и улучшения делаются на основе способа основанной на блоках компенсации движения. В реальном мире, движения являются разнообразными. Нерегулярные движения, такие как аффинное движение, масштабирование, вращение, и сдвиговая деформация являются универсальными. Существование этих движений портит эффекты предсказания движения основанной на блоках компенсации движения. С 1990-ых, эксперты по кодированию видео осознали, что нерегулярные движения являются универсальными, и ввели модель нерегулярного движения, такую как модель аффинного движения, чтобы улучшить эффективность кодирования видео.
[0003] в предшествующем уровне техники, для кодирования используется модель аффинного движения. Согласно принципу оптимизации отношения вносимых искажений к скорости потока, лагранжевы стоимости в использовании аффинной параметрической модели для кодирования текущего блока могут сравниваться со стоимостями в использовании другой модели в кодере. Если стоимости в кодировании посредством использования аффинной параметрической модели меньше, чем стоимости в другой модели кодирования, аффинная параметрическая модель в конечном счете выбирается для кодирования текущего блока. Квантованный параметр аффинной модели кодируется в битовый поток, чтобы декодер мог использовать параметр, чтобы восстанавливать текущий блок. Однако в предшествующем уровне техники, должна использоваться параметрическая модель аффинного движения с шестью параметрами, то есть, в каждом блоке требуются дополнительные биты, чтобы кодировать шесть параметров модели аффинного движения. Это ограничивает дальнейшие улучшения эффективности кодирования.
Сущность изобретения
[0004] настоящее изобретение обеспечивает способ кодирования видеоизображения, способ декодирования видеоизображения, устройство кодирования, и устройство декодирования, чтобы улучшать эффективность кодирования и декодирования.
[0005] согласно первому аспекту, обеспечивается способ кодирования видеоизображения, где способ включает в себя этапы, на которых: определяют группу векторов движения текущего блока кодирования, где группа векторов движения включает в себя, по меньшей мере, один вектор движения текущего блока кодирования; определяют значения предсказания первого набора компонент вектора инициализации модели движения текущего блока кодирования согласно упомянутому, по меньшей мере, одному вектору движения из группы векторов движения, где вектор инициализации модели движения включает в себя, по меньшей мере, четыре компоненты; определяют подлежащие передаче значения первого набора компонент согласно значениям предсказания первого набора компонент; и кодируют подлежащие передаче значения первого набора компонент, и передают кодированные подлежащие передаче значения первого набора компонент стороне декодера.
[0006] со ссылкой на первый аспект, в одном варианте осуществления первого аспекта, этап определения подлежащих передаче значений первого набора компонент согласно значениям предсказания первого набора компонент включает в себя этапы, на которых: определяют вектор оптимизации модели движения текущего блока кодирования; и определяют подлежащие передаче значения первого набора компонент согласно значениям предсказания первого набора компонент и вектору оптимизации модели движения.
[0007] со ссылкой на первый аспект и вышеизложенный вариант осуществления, в другом варианте осуществления первого аспекта, способ дополнительно включает в себя этап, на котором: определяют точность квантования модели движения согласно размеру текущего блока кодирования и информации точности; и соответственно, этап определения подлежащих передаче значений первого набора компонент согласно значениям предсказания первого набора компонент и вектору оптимизации модели движения включает в себя этапы, на которых: квантуют вектор оптимизации модели движения согласно точности квантования модели движения; и определяют подлежащие передаче значения первого набора компонент согласно значениям предсказания первого набора компонент и квантованному вектору оптимизации модели движения.
[0008] со ссылкой на первый аспект и вышеизложенные варианты осуществления, в другом варианте осуществления первого аспекта, размер текущего блока кодирования включает в себя ширину текущего блока кодирования и высоту текущего блока кодирования, и информация точности включает в себя точность квантования группы векторов движения; и соответственно, этап определения точности квантования модели движения согласно размеру текущего блока кодирования и информации точности включает в себя этап, на котором: определяют точность квантования модели движения q согласно следующей формуле:
Где p является точностью квантования группы векторов движения, w является шириной текущего блока кодирования, и h является высотой текущего блока кодирования.
[0009] со ссылкой на первый аспект и вышеизложенные варианты осуществления, в другом варианте осуществления первого аспекта, каждый из вектора инициализации модели движения и вектора оптимизации модели движения включает в себя шесть компонент, где упомянутые шесть компонент вектора инициализации модели движения находятся во взаимно-однозначном соответствии с упомянутыми шестью компонентами вектора оптимизации модели движения, группа векторов движения включает в себя три вектора движения, и упомянутые три вектора движения соответствуют трем пикселям в текущем блоке кодирования.
[0010] со ссылкой на первый аспект и вышеизложенные варианты осуществления, в другом варианте осуществления первого аспекта, первый набор компонент включает в себя, по меньшей мере, одну компоненту из упомянутых шести компонент вектора инициализации модели движения, и упомянутые шесть компонент вектора инициализации модели движения определены согласно следующим формулам:
Где i=0, 1, 2, 3, 4, 5, w является шириной текущего блока кодирования, h является высотой текущего блока кодирования, является x-направленной компонентой вектора движения , является y-направленной компонентой вектора движения , и j=0, 1, 2.
[0011] со ссылкой на первый аспект и вышеизложенные варианты осуществления, в другом варианте осуществления первого аспекта, первый набор компонент включает в себя две компоненты вектора инициализации модели движения; и этап определения подлежащих передаче значений первого набора компонент согласно значениям предсказания первого набора компонент и квантованному вектору оптимизации модели движения включает в себя этап, на котором: определяют подлежащие передаче значения первого набора компонент, где подлежащие передаче значения первого набора компонент включают в себя и , , , и являются квантованными векторами оптимизации модели движения, соответствующими первому набору компонент, и и являются числовыми значениями, полученными после квантования значений предсказания и первого набора компонент.
[0012] со ссылкой на первый аспект и вышеизложенные варианты осуществления, в другом варианте осуществления первого аспекта, первый набор компонент включает в себя упомянутые шесть компонент вектора инициализации модели движения; и этап определения подлежащих передаче значений первого набора компонент согласно значениям предсказания первого набора компонент и квантованному вектору оптимизации модели движения включает в себя этап, на котором: определяют подлежащие передаче значения первого набора компонент, где подлежащие передаче значения первого набора компонент включают в себя , где i=0, 1, 2, 3, 4, 5, , является квантованным вектором оптимизации модели движения, и является значением предсказания первого набора компонент.
[0013] со ссылкой на первый аспект и вышеизложенные варианты осуществления, в другом варианте осуществления первого аспекта, этап определения группы векторов движения текущего блока кодирования включает в себя этапы, на которых: определяют множество подходящих блоков текущего блока кодирования, где каждый подходящий блок из множества подходящих блоков является кодированным блоком, смежным с текущим блоком кодирования; определяют значение ошибки согласованности между блоком предсказания, соответствующим вектору движения каждого подходящего блока из множества подходящих блоков, и текущим блоком кодирования; определяют, в качестве целевого подходящего блока текущего блока кодирования, подходящий блок, соответствующий наименьшему значению ошибки согласованности в множестве значений ошибки согласованности, соответствующих множеству подходящих блоков; получают номер порядка вывода опорного кадра текущего блока кодирования и номер порядка вывода опорного кадра целевого подходящего блока; определяют первый вектор движения в группе векторов движения согласно отношению номера порядка вывода опорного кадра текущего блока кодирования к номеру порядка вывода опорного кадра целевого подходящего блока, где отношение первого вектора движения к вектору движения целевого подходящего блока является таким же, как отношение номера порядка вывода опорного кадра текущего блока кодирования к номеру порядка вывода опорного кадра целевого подходящего блока; и определяют группу векторов движения согласно первому вектору движения.
[0014] со ссылкой на первый аспект и вышеизложенные варианты осуществления, в другом варианте осуществления первого аспекта, этап определения группы векторов движения текущего блока кодирования включает в себя этапы, на которых: определяют множество подходящих блоков, соответствующих одному и тому же пикселю в текущем блоке кодирования, где каждый подходящий блок из множества подходящих блоков является кодированным блоком, смежным с текущим блоком кодирования; определяют значение ошибки согласованности между блоком предсказания, соответствующим вектору движения каждого подходящего блока из множества подходящих блоков, и текущим блоком кодирования; определяют, в качестве целевого подходящего блока текущего блока кодирования, подходящий блок, соответствующий наименьшему значению ошибки согласованности в множестве значений ошибки согласованности, соответствующих множеству подходящих блоков; определяют вектор движения целевого подходящего блока в качестве первого вектора движения в группе векторов движения; определяют второй вектор движения в группе векторов движения согласно первому вектору движения; и определяют группу векторов движения согласно первому вектору движения и второму вектору движения.
[0015] со ссылкой на первый аспект и вышеизложенные варианты осуществления, в другом варианте осуществления первого аспекта, этап определения группы векторов движения текущего блока кодирования включает в себя этапы, на которых: определяют множество групп подходящих векторов движения текущего блока кодирования, где каждая группа подходящих векторов движения из множества групп подходящих векторов движения включает в себя три подходящих вектора движения; определяют подходящий опорный кадр, соответствующий каждой группе подходящих векторов движения из множества групп подходящих векторов движения; для каждой группы подходящих векторов движения, определяют координатные значения каждого пикселя, в соответствующей точке предсказания в подходящем опорном кадре, в текущем блоке кодирования; для каждой группы подходящих векторов движения, определяют значение ошибки согласованности текущего блока кодирования согласно координатным значениям каждого пикселя в текущем блоке кодирования и координатным значениям каждого пикселя, в соответствующей точке предсказания в подходящем опорном кадре, в текущем блоке кодирования; и определяют, в качестве группы векторов движения текущего блока кодирования, группу подходящих векторов движения, соответствующую наименьшему значению ошибки согласованности текущего блока кодирования.
[0016] со ссылкой на первый аспект и вышеизложенные варианты осуществления, в другом варианте осуществления первого аспекта, этап определения вектора оптимизации модели движения текущего блока кодирования включает в себя этапы, на которых: определяют первый блок предсказания текущего блока кодирования согласно вектору инициализации модели движения; определяют первое значение ошибки согласованности между текущим блоком кодирования и первым блоком предсказания; определяют, из множества блоков предсказания, включенных в опорный кадр текущего блока кодирования, второй блок предсказания с наименьшим значением ошибки согласованности относительно текущего блока кодирования; определяют второе значение ошибки согласованности между текущим блоком кодирования и вторым блоком предсказания; и определяют вектор оптимизации модели движения текущего блока кодирования согласно первому значению ошибки согласованности и второму значению ошибки согласованности.
[0017] со ссылкой на первый аспект и вышеизложенные варианты осуществления, в другом варианте осуществления первого аспекта, этап определения вектора оптимизации модели движения текущего блока кодирования согласно первому значению ошибки согласованности и второму значению ошибки согласованности включает в себя этапы, на которых: когда первое значение ошибки согласованности меньше второго значения ошибки согласованности, определяют вектор инициализации модели движения в качестве вектора оптимизации модели движения; или когда первое значение ошибки согласованности больше второго значения ошибки согласованности, определяют вектор оптимизации модели движения согласно пикселю второго блока предсказания и пикселю текущего блока кодирования.
[0018] согласно второму аспекту, обеспечивается способ декодирования видеоизображения, где способ включает в себя этапы, на которых: определяют группу векторов движения и вектор передачи модели движения текущего блока декодирования согласно битовому потоку, где группа векторов движения включает в себя, по меньшей мере, один вектор движения текущего блока декодирования, и вектор передачи модели движения включает в себя, по меньшей мере, четыре компоненты; определяют значения предсказания первого набора компонент вектора инициализации модели движения текущего блока декодирования согласно упомянутому, по меньшей мере, одному вектору движения из группы векторов движения, где вектор инициализации модели движения включает в себя, по меньшей мере, четыре компоненты; и определяют вектор оптимизации модели движения текущего блока декодирования согласно значениям предсказания первого набора компонент и вектору передачи модели движения, чтобы декодировать текущий блок декодирования согласно вектору оптимизации модели движения.
[0019] со ссылкой на второй аспект, в одном варианте осуществления второго аспекта, способ дополнительно включает в себя этапы, на которых: определяют точность квантования модели движения текущего блока декодирования; квантуют вектор оптимизации модели движения согласно точности квантования модели движения; и декодируют текущий блок декодирования согласно квантованному вектору оптимизации модели движения.
[0020] со ссылкой на второй аспект и вышеизложенный вариант осуществления, в другом варианте осуществления второго аспекта, этап определения точности квантования модели движения текущего блока декодирования включает в себя этап, на котором: определяют точность квантования модели движения согласно размеру текущего блока декодирования и информации точности.
[0021] со ссылкой на второй аспект и вышеизложенные варианты осуществления, в другом варианте осуществления второго аспекта, размер текущего блока декодирования включает в себя ширину текущего блока декодирования и высоту текущего блока декодирования, и информация точности включает в себя точность квантования группы векторов движения; и соответственно, этап определения точности квантования модели движения согласно размеру текущего блока декодирования и информации точности включает в себя этап, на котором: определяют точность квантования модели движения q согласно следующей формуле:
Где p является точностью квантования группы векторов движения, w является шириной текущего блока декодирования, и h является высотой текущего блока декодирования.
[0022] со ссылкой на второй аспект и вышеизложенные варианты осуществления, в другом варианте осуществления второго аспекта, каждый из вектора инициализации модели движения, вектора передачи модели движения и вектора оптимизации модели движения включает в себя шесть компонент, группа векторов движения включает в себя три вектора движения, и упомянутые три вектора движения находятся во взаимно-однозначном соответствии с тремя пикселями в текущем блоке декодирования.
[0023] со ссылкой на второй аспект и вышеизложенные варианты осуществления, в другом варианте осуществления второго аспекта, первый набор компонент включает в себя, по меньшей мере, одну компоненту из упомянутых шести компонент вектора инициализации модели движения, и упомянутые шесть компонент вектора инициализации модели движения определены согласно следующим формулам:
Где i=0, 1, 2, 3, 4, 5, w является шириной текущего блока декодирования, h является высотой текущего блока декодирования, является x-направленной компонентой вектора движения , является y-направленной компонентой вектора движения , и j=0, 1, 2.
[0024] со ссылкой на второй аспект и вышеизложенные варианты осуществления, в другом варианте осуществления второго аспекта, первый набор компонент включает в себя две компоненты вектора инициализации модели движения; и этап определения вектора оптимизации модели движения текущего блока декодирования согласно значениям предсказания первого набора компонент и вектору передачи модели движения включает в себя этап, на котором: определяют, что вектор оптимизации модели движения текущего блока декодирования является , где , , является вектором передачи модели движения, и и являются числовыми значениями, полученными после квантования значений предсказания и первого набора компонент.
[0025] со ссылкой на второй аспект и вышеизложенные варианты осуществления, в другом варианте осуществления второго аспекта, первый набор компонент включает в себя упомянутые шесть компонент вектора инициализации модели движения; и этап определения оптимального параметра модели движения текущего блока декодирования согласно параметру предсказания модели движения и параметру декодирования модели движения включает в себя этап, на котором: определяют, что вектор оптимизации модели движения текущего блока декодирования является , где , является вектором передачи модели движения, является значением предсказания первого набора компонент, и i=0, 1, 2, 3, 4, 5.
[0026] со ссылкой на второй аспект и вышеизложенные варианты осуществления, в другом варианте осуществления второго аспекта, этап определения группы векторов движения и вектора передачи модели движения текущего блока декодирования включает в себя этапы, на которых: определяют целевой подходящий блок текущего блока декодирования и вектор движения целевого подходящего блока согласно битовому потоку; получают номер порядка вывода опорного кадра текущего блока декодирования и номер порядка вывода опорного кадра целевого подходящего блока; определяют первый вектор движения в группе векторов движения согласно отношению номера порядка вывода опорного кадра текущего блока декодирования к номеру порядка вывода опорного кадра целевого подходящего блока, где отношение первого вектора движения к вектору движения целевого подходящего блока является таким же как отношение номера порядка вывода опорного кадра текущего блока декодирования к номеру порядка вывода опорного кадра целевого подходящего блока; и определяют группу векторов движения согласно первому вектору движения.
[0027] со ссылкой на второй аспект и вышеизложенные варианты осуществления, в другом варианте осуществления второго аспекта, этап определения группы векторов движения и вектора передачи модели движения текущего блока декодирования согласно битовому потоку включает в себя этапы, на которых: определяют вектор движения целевого подходящего блока текущего блока декодирования согласно битовому потоку; определяют вектор движения целевого подходящего блока текущего блока декодирования в качестве первого вектора движения в группе векторов движения; определяют второй вектор движения в группе векторов движения согласно первому вектору движения; и определяют группу векторов движения согласно первому вектору движения и второму вектору движения.
[0028] согласно третьему аспекту, обеспечивается устройство кодирования, где устройство кодирования включает в себя: первый модуль определения, сконфигурированный с возможностью определения группы векторов движения текущего блока кодирования, где группа векторов движения включает в себя, по меньшей мере, один вектор движения текущего блока кодирования; второй модуль определения, сконфигурированный с возможностью определения значений предсказания первого набора компонент вектора инициализации модели движения текущего блока кодирования согласно упомянутому, по меньшей мере, одному вектору движения из группы векторов движения, где вектор инициализации модели движения включает в себя, по меньшей мере, четыре компоненты; третий модуль определения, сконфигурированный с возможностью определения подлежащих передаче значений первого набора компонент согласно значениям предсказания первого набора компонент; и модуль кодирования, сконфигурированный с возможностью кодирования подлежащих передаче значений первого набора компонент, и передачи кодированных подлежащих передаче значений первого набора компонент стороне декодера.
[0029] со ссылкой на третий аспект, в одном варианте осуществления третьего аспекта, третий модуль определения специально сконфигурирован с возможностью: определять вектор оптимизации модели движения текущего блока кодирования; и определять подлежащие передаче значения первого набора компонент согласно значениям предсказания первого набора компонент и вектору оптимизации модели движения.
[0030] со ссылкой на третий аспект и вышеизложенный вариант осуществления, в другом варианте осуществления третьего аспекта, третий модуль определения специально сконфигурирован с возможностью: определять точность квантования модели движения согласно размеру текущего блока кодирования и информации точности; квантовать вектор оптимизации модели движения согласно точности квантования модели движения; и определять подлежащие передаче значения первого набора компонент согласно значениям предсказания первого набора компонент и квантованному вектору оптимизации модели движения.
[0031] со ссылкой на третий аспект и вышеизложенные варианты осуществления, в другом варианте осуществления третьего аспекта, размер текущего блока кодирования включает в себя ширину текущего блока кодирования и высоту текущего блока кодирования, и информация точности включает в себя точность квантования группы векторов движения; и третий модуль определения специально сконфигурирован с возможностью: определять точность квантования модели движения q согласно следующей формуле:
Где p является точностью квантования группы векторов движения, w является шириной текущего блока кодирования, и h является высотой текущего блока кодирования.
[0032] со ссылкой на третий аспект и вышеизложенные варианты осуществления, в другом варианте осуществления третьего аспекта, каждый из вектора инициализации модели движения и вектора оптимизации модели движения включает в себя шесть компонент, где упомянутые шесть компонент вектора инициализации модели движения находятся во взаимно-однозначном соответствии с упомянутыми шестью компонентами вектора оптимизации модели движения, группа векторов движения включает в себя три вектора движения, и упомянутые три вектора движения соответствуют трем пикселям в текущем блоке кодирования.
[0033] со ссылкой на третий аспект и вышеизложенные варианты осуществления, в другом варианте осуществления третьего аспекта, первый набор компонент включает в себя, по меньшей мере, одну компоненту из упомянутых шести компонент вектора инициализации модели движения, и второй модуль определения специально сконфигурирован с возможностью: определять упомянутые шесть компонент вектора инициализации модели движения согласно следующим формулам:
Где i=0, 1, 2, 3, 4, 5, w является шириной текущего блока кодирования, h является высотой текущего блока кодирования, является x-направленной компонентой вектора движения , является y-направленной компонентой вектора движения , и j=0, 1, 2.
[0034] со ссылкой на третий аспект и вышеизложенные варианты осуществления, в другом варианте осуществления третьего аспекта, первый набор компонент включает в себя две компоненты вектора инициализации модели движения, и второй модуль определения специально сконфигурирован с возможностью: определять подлежащие передаче значения первого набора компонент, где подлежащие передаче значения первого набора компонент включают в себя и , , , и являются квантованными векторами оптимизации модели движения, соответствующими первому набору компонент, и и являются числовыми значениями, полученными после квантования значений предсказания и первого набора компонент.
[0035] со ссылкой на третий аспект и вышеизложенные варианты осуществления, в другом варианте осуществления третьего аспекта, первый набор компонент включает в себя упомянутые шесть компонент вектора инициализации модели движения, и второй модуль определения специально сконфигурирован с возможностью: определять подлежащие передаче значения первого набора компонент, где подлежащие передаче значения первого набора компонент включают в себя , где i=0, 1, 2, 3, 4, 5, , является квантованным вектором оптимизации модели движения, и является значением предсказания первого набора компонент.
[0036] со ссылкой на третий аспект и вышеизложенные варианты осуществления, в другом варианте осуществления третьего аспекта, первый модуль определения специально сконфигурирован с возможностью: определять множество подходящих блоков текущего блока кодирования, где каждый подходящий блок из множества подходящих блоков является кодированным блоком, смежным с текущим блоком кодирования; определять значение ошибки согласованности между блоком предсказания, соответствующим вектору движения каждого подходящего блока из множества подходящих блоков, и текущим блоком кодирования; определять, в качестве целевого подходящего блока текущего блока кодирования, подходящий блок, соответствующий наименьшему значению ошибки согласованности в множестве значений ошибки согласованности, соответствующих множеству подходящих блоков; получать номер порядка вывода опорного кадра текущего блока кодирования и номер порядка вывода опорного кадра целевого подходящего блока; определять первый вектор движения в группе векторов движения согласно отношению номера порядка вывода опорного кадра текущего блока кодирования к номеру порядка вывода опорного кадра целевого подходящего блока, где отношение первого вектора движения к вектору движения целевого подходящего блока является таким же как отношение номера порядка вывода опорного кадра текущего блока кодирования к номеру порядка вывода опорного кадра целевого подходящего блока; и определять группу векторов движения согласно первому вектору движения.
[0037] со ссылкой на третий аспект и вышеизложенные варианты осуществления, в другом варианте осуществления третьего аспекта, первый модуль определения специально сконфигурирован с возможностью: определения множества подходящих блоков, соответствующих одному и тому же пикселю в текущем блоке кодирования, где каждый подходящий блок из множества подходящих блоков является кодированным блоком, смежным с текущим блоком кодирования; определения значения ошибки согласованности между блоком предсказания, соответствующим вектору движения каждого подходящего блока из множества подходящих блоков, и текущим блоком кодирования; определения, в качестве целевого подходящего блока текущего блока кодирования, подходящего блока, соответствующего наименьшему значению ошибки согласованности в множестве значений ошибки согласованности, соответствующих множеству подходящих блоков; определения вектора движения целевого подходящего блока в качестве первого вектора движения в группе векторов движения; определения второго вектора движения в группе векторов движения согласно первому вектору движения; и определения группы векторов движения согласно первому вектору движения и второму вектору движения.
[0038] со ссылкой на третий аспект и вышеизложенные варианты осуществления, в другом варианте осуществления третьего аспекта, первый модуль определения специально сконфигурирован с возможностью: определения множества групп подходящих векторов движения текущего блока кодирования, где каждая группа подходящих векторов движения из множества групп подходящих векторов движения включает в себя три подходящих вектора движения; определения подходящего опорного кадра, соответствующего каждой группе подходящих векторов движения из множества групп подходящих векторов движения; для каждой группы подходящих векторов движения, определения координатных значений каждого пикселя, в соответствующей точке предсказания в подходящем опорном кадре, в текущем блоке кодирования; для каждой группы подходящих векторов движения, определения значения ошибки согласованности текущего блока кодирования согласно координатным значениям каждого пикселя в текущем блоке кодирования и координатным значениям каждого пикселя, в соответствующей точке предсказания в подходящем опорном кадре, в текущем блоке кодирования; и определения, в качестве группы векторов движения текущего блока кодирования, группы подходящих векторов движения, соответствующей наименьшему значению ошибки согласованности текущего блока кодирования.
[0039] со ссылкой на третий аспект и вышеизложенные варианты осуществления, в другом варианте осуществления третьего аспекта, третий модуль определения специально сконфигурирован с возможностью: определения первого блока предсказания текущего блока кодирования согласно вектору инициализации модели движения; определения первого значения ошибки согласованности между текущим блоком кодирования и первым блоком предсказания; определения, из множества блоков предсказания, включенных в опорный кадр текущего блока кодирования, второго блока предсказания с наименьшим значением ошибки согласованности относительно текущего блока кодирования; определения второго значения ошибки согласованности между текущим блоком кодирования и вторым блоком предсказания; и определения вектора оптимизации модели движения текущего блока кодирования согласно первому значению ошибки согласованности и второму значению ошибки согласованности.
[0040] со ссылкой на третий аспект и вышеизложенные варианты осуществления, в другом варианте осуществления третьего аспекта, третий модуль определения специально сконфигурирован с возможностью: когда первое значение ошибки согласованности меньше второго значения ошибки согласованности, определения вектора инициализации модели движения в качестве вектора оптимизации модели движения; или когда первое значение ошибки согласованности больше второго значения ошибки согласованности, определения вектора оптимизации модели движения согласно пикселю второго блока предсказания и пикселю текущего блока кодирования.
[0041] согласно четвертому аспекту, обеспечивается устройство декодирования для декодирования видеоизображения, где устройство декодирования включает в себя: первый модуль определения, сконфигурированный с возможностью определения группы векторов движения и вектора передачи модели движения текущего блока декодирования согласно битовому потоку, где группа векторов движения включает в себя, по меньшей мере, один вектор движения текущего блока декодирования, и вектор передачи модели движения включает в себя, по меньшей мере, четыре компоненты; второй модуль определения, сконфигурированный с возможностью определения значений предсказания первого набора компонент вектора инициализации модели движения текущего блока декодирования согласно упомянутому, по меньшей мере, одному вектору движения из группы векторов движения, где вектор инициализации модели движения включает в себя, по меньшей мере, четыре компоненты; и третий модуль определения, сконфигурированный с возможностью определения вектора оптимизации модели движения текущего блока декодирования согласно значениям предсказания первого набора компонент и вектору передачи модели движения для декодирования текущего блока декодирования согласно вектору оптимизации модели движения.
[0042] со ссылкой на четвертый аспект, в одном варианте осуществления четвертого аспекта, третий модуль определения специально сконфигурирован с возможностью: определения точности квантования модели движения текущего блока декодирования; квантования вектора оптимизации модели движения согласно точности квантования модели движения; и декодирования текущего блока декодирования согласно квантованному вектору оптимизации модели движения.
[0043] со ссылкой на четвертый аспект и вышеизложенный вариант осуществления, в другом варианте осуществления четвертого аспекта, третий модуль определения специально сконфигурирован с возможностью: определения точности квантования модели движения согласно размеру текущего блока декодирования и информации точности.
[0044] со ссылкой на четвертый аспект и вышеизложенные варианты осуществления, в другом варианте осуществления четвертого аспекта, размер текущего блока декодирования включает в себя ширину текущего блока декодирования и высоту текущего блока декодирования, и информация точности включает в себя точность квантования группы векторов движения; и третий модуль определения специально сконфигурирован с возможностью: определения точности квантования модели движения q согласно следующей формуле:
Где p является точностью квантования группы векторов движения, w является шириной текущего блока декодирования, и h является высотой текущего блока декодирования.
[0045] со ссылкой на четвертый аспект и вышеизложенные варианты осуществления, в другом варианте осуществления четвертого аспекта, каждый из вектора инициализации модели движения, вектора передачи модели движения, и вектора оптимизации модели движения включает в себя шесть компонент, группа векторов движения включает в себя три вектора движения, и упомянутые три вектора движения находятся во взаимно-однозначном соответствии с тремя пикселями в текущем блоке декодирования.
[0046] со ссылкой на четвертый аспект и вышеизложенные варианты осуществления, в другом варианте осуществления четвертого аспекта, первый набор компонент включает в себя, по меньшей мере, одну компоненту из упомянутых шести компонент вектора инициализации модели движения, и второй модуль определения специально сконфигурирован с возможностью: определения упомянутых шести компонент вектора инициализации модели движения согласно следующим формулам:
Где i=0, 1, 2, 3, 4, 5, w является шириной текущего блока декодирования, h является высотой текущего блока декодирования, является x-направленной компонентой вектора движения , является y-направленной компонентой вектора движения , и j=0, 1, 2.
[0047] со ссылкой на четвертый аспект и вышеизложенные варианты осуществления, в другом варианте осуществления четвертого аспекта, первый набор компонент включает в себя две компоненты вектора инициализации модели движения; и второй модуль определения специально сконфигурирован с возможностью: определения того, что вектор оптимизации модели движения текущего блока декодирования является , где , , является вектором передачи модели движения, и и являются числовыми значениями, полученными после квантования значений предсказания и первого набора компонент.
[0048] со ссылкой на четвертый аспект и вышеизложенные варианты осуществления, в другом варианте осуществления четвертого аспекта, первый набор компонент включает в себя упомянутые шесть компонент вектора инициализации модели движения; и второй модуль определения специально сконфигурирован с возможностью: определения того, что вектор оптимизации модели движения текущего блока декодирования является , где , является вектором передачи модели движения, является значением предсказания первого набора компонент, и i=0, 1, 2, 3, 4, 5.
[0049] со ссылкой на четвертый аспект и вышеизложенные варианты осуществления, в другом варианте осуществления четвертого аспекта, первый модуль определения специально сконфигурирован с возможностью: определения целевого подходящего блока текущего блока декодирования и вектора движения целевого подходящего блока согласно битовому потоку; получения номера порядка вывода опорного кадра текущего блока декодирования и номера порядка вывода опорного кадра целевого подходящего блока; определения первого вектора движения в группе векторов движения согласно отношению номера порядка вывода опорного кадра текущего блока декодирования к номеру порядка вывода опорного кадра целевого подходящего блока, где отношение первого вектора движения к вектору движения целевого подходящего блока является таким же как отношение номера порядка вывода опорного кадра текущего блока декодирования к номеру порядка вывода опорного кадра целевого подходящего блока; и определения группы векторов движения согласно первому вектору движения.
[0050] со ссылкой на четвертый аспект и вышеизложенные варианты осуществления, в другом варианте осуществления четвертого аспекта, первый модуль определения специально сконфигурирован с возможностью: определения вектора движения целевого подходящего блока текущего блока декодирования согласно битовому потоку; определения вектора движения целевого подходящего блока текущего блока декодирования в качестве первого вектора движения в группе векторов движения; определения второго вектора движения в группе векторов движения согласно первому вектору движения; и определения группы векторов движения согласно первому вектору движения и второму вектору движения.
[0051] на основе вышеизложенных технических решений, согласно способу кодирования видеоизображения, способу декодирования видеоизображения, устройству кодирования, и устройству декодирования в этом варианте осуществления настоящего изобретения, определяется группа векторов движения текущего блока кодирования; вектор инициализации модели движения текущего блока кодирования определяется согласно группе векторов движения; подлежащие передаче значения модели движения определяются согласно вектору инициализации модели движения; и подлежащие передаче значения модели движения кодируются для передачи, чтобы сторона декодера выполняла декодирование согласно подлежащим передаче значениям модели движения. По такому принципу, объем данных и количество занятых бит в передаче кодирования и декодирования могут уменьшаться.
Краткое описание чертежей
[0052] чтобы описывать технические решения в вариантах осуществления настоящего изобретения более ясно, далее кратко описаны сопровождающие чертежи, требуемые для описания вариантов осуществления настоящего изобретения. Должно быть ясно, что сопровождающие чертежи в последующем описании показывают всего лишь некоторые варианты осуществления настоящего изобретения, и специалист в данной области техники может все еще выводить другие чертежи из этих сопровождающих чертежей без творческих усилий.
[0053] фиг. 1 является схематической блок-схемой последовательности операций способа кодирования видеоизображения согласно одному варианту осуществления настоящего изобретения;
[0054] фиг. 2 является схематической диаграммой текущего блока кодирования или текущего блока декодирования и подходящего блока согласно одному варианту осуществления настоящего изобретения;
[0055] фиг. 3 является схематической блок-схемой последовательности операций способа декодирования видеоизображения согласно другому варианту осуществления настоящего изобретения;
[0056] фиг. 4 является другой схематической блок-схемой последовательности операций способа декодирования видеоизображения согласно другому варианту осуществления настоящего изобретения;
[0057] фиг. 5 является схематической блок-схемой устройства кодирования согласно одному варианту осуществления настоящего изобретения;
[0058] фиг. 6 является схематической блок-схемой устройства декодирования согласно одному варианту осуществления настоящего изобретения;
[0059] фиг. 7 является другой схематической блок-схемой устройства кодирования согласно одному варианту осуществления настоящего изобретения; и
[0060] фиг. 8 является другой схематической блок-схемой устройства декодирования согласно одному варианту осуществления настоящего изобретения.
Описание вариантов осуществления
[0061] последующее явным образом и полностью описывает технические решения в вариантах осуществления настоящего изобретения со ссылкой на сопровождающие чертежи в вариантах осуществления настоящего изобретения. Должно быть ясно, что описанные варианты осуществления являются частью, нежели всеми из вариантов осуществления настоящего изобретения. Все другие варианты осуществления, полученные специалистом в данной области техники на основе вариантов осуществления настоящего изобретения без творческих усилий, должны попадать в пределы объема защиты настоящего изобретения.
[0062] фиг. 1 является схематической блок-схемой последовательности операций способа кодирования видеоизображения согласно одному варианту осуществления настоящего изобретения. Способ, показанный на фиг. 1, может исполняться посредством устройства кодирования, такого как кодер. В частности, как показано на фиг. 1, способ 100 включает в себя следующие этапы:
[0063] s110. Определение группы векторов движения текущего блока кодирования, где группа векторов движения включает в себя, по меньшей мере, один вектор движения текущего блока кодирования.
[0064] s120. Определение значений предсказания первого набора компонент вектора инициализации модели движения текущего блока кодирования согласно упомянутому, по меньшей мере, одному вектору движения из группы векторов движения, где вектор инициализации модели движения включает в себя, по меньшей мере, четыре компоненты.
[0065] s130. Определение подлежащих передаче значений первого набора компонент согласно значениям предсказания первого набора компонент.
[0066] s140. Кодирование подлежащих передаче значений первого набора компонент, и передача кодированных подлежащих передаче значений первого набора компонент стороне декодера.
[0067] в частности, определяется группа векторов движения текущего блока кодирования, где группа векторов движения включает в себя, по меньшей мере, один вектор движения, соответствующий пикселю в текущем блоке кодирования. Значения предсказания первого набора компонент вектора инициализации модели движения текущего блока кодирования определяются согласно упомянутому, по меньшей мере, одному вектору движения из группы векторов движения, где вектор инициализации модели движения включает в себя, по меньшей мере, четыре компоненты, и первый набор компонент включает в себя, по меньшей мере, одну компоненту вектора инициализации модели движения. Затем, точность квантования модели движения и вектор оптимизации модели движения определяются согласно текущему блоку кодирования, и вектор оптимизации модели движения квантуется согласно точности квантования. Подлежащие передаче значения первого набора компонент могут определяться согласно значениям предсказания первого набора компонент вектора инициализации модели движения и квантованному вектору оптимизации модели движения, и подлежащие передаче значения первого набора компонент кодируются и передается стороне декодера, чтобы сторона декодера выполняла операцию декодирования. Дополнительно, выборка предсказания текущего блока кодирования может определяться согласно квантованному вектору оптимизации модели движения, и согласно выборке предсказания, текущий блок кодирования кодируется и передается.
[0068] поэтому, согласно способу кодирования видеоизображения в этом варианте осуществления настоящего изобретения, определяется группа векторов движения текущего блока кодирования; вектор инициализации модели движения текущего блока кодирования определяется согласно группе векторов движения; подлежащие передаче значения модели движения определяются согласно вектору инициализации модели движения; и подлежащие передаче значения модели движения кодируются для передачи, чтобы сторона декодера выполняла декодирование согласно подлежащим передаче значениям модели движения. По такому принципу, объем данных и количество занятых бит в передаче кодирования и декодирования могут уменьшаться.
[0069] в этом варианте осуществления настоящего изобретения, для обработки кодирования видеоизображения во всех стандартах кодирования, по отношению к интер-предсказанию, множество моделей движения может использоваться в обработке вычисления компенсации движения, как, например, модель аффинного движения, модель полного движения, или модель перспективы. Здесь, модель аффинного движения используется в качестве примера для описания, но настоящее изобретение не ограничено этим.
[0070] на этапе s110, определяется группа векторов движения текущего блока кодирования. Группа векторов движения включает в себя, по меньшей мере, один вектор движения текущего блока кодирования, и каждый вектор движения может соответствовать пикселю в текущем блоке кодирования. Количество параметров, требуемых для описания модели движения, изменяется между моделями движения. Для модели движения, имеющей 2n параметров, группа векторов движения текущего блока кодирования может, в общем, включать в себя n векторов движения. Например, для аффинного движения, когда все пиксели в текущем блоке кодирования представляются посредством использования модели аффинного движения, в общем, модель аффинного движения может быть выражена как . То есть, модель аффинного движения имеет шесть параметров, и группа векторов движения включает в себя, по меньшей мере, три вектора движения. Для модели полного движения, в общем, используются 12 параметров, и группа векторов движения включает в себя, по меньшей мере, шесть векторов движения. Необязательно, определение, по меньшей мере, одного вектора движения из группы векторов движения может быть определением одного вектора движения из группы векторов движения, или определением n векторов движения или всех векторов движения из группы векторов движения. Например, для аффинного движения, группа векторов движения может включать в себя, по меньшей мере, три вектора движения, и определение группы векторов движения текущего блока кодирования может быть определением одного вектора движения, трех векторов движения, или всех векторов движения из группы векторов вычисления. Настоящее изобретение не ограничено этим.
[0071] в необязательном порядке, в одном варианте осуществления, аффинное движение используется в качестве примера. Группа векторов движения включает в себя три вектора движения, и определение группы векторов движения текущего блока кодирования может быть определением, по меньшей мере, одного вектора движения из группы векторов вычисления. Для стандарта hevc (высокоэффективного кодирования видео), первый вектор движения в группе векторов движения текущего блока кодирования может определяться посредством использования технологии amvp (усовершенствованного предсказания векторов движения). В частности, сначала, множество подходящих блоков текущего блока кодирования определяются из кодированных блоков, соседних вокруг текущего блока кодирования. Множество подходящих блоков может определяться согласно координатным местоположениям, и множество подходящих блоков являются смежными с текущим блоком кодирования. Например, как показано на фиг. 2, для текущего блока кодирования, в общем, a по g могут определяться в качестве множества подходящих блоков текущего блока кодирования. Затем, определяется значение ошибки согласованности между блоком предсказания, соответствующим вектору движения каждого подходящего блока, и текущим блоком кодирования. В частности, блок предсказания, соответствующий вектору движения подходящего блока, определяется в опорном кадре согласно вектору движения подходящего блока и текущему блоку кодирования; и затем, вычисляется значение ошибки согласованности между блоком предсказания и текущим блоком кодирования, и подходящий блок, соответствующий наименьшему значению ошибки согласованности, определяется в качестве целевого подходящего блока текущего блока кодирования. Далее, отдельно определяются номер порядка вывода (poc) опорного кадра текущего блока кодирования и номер порядка вывода (poc) опорного кадра целевого подходящего блока. Над вектором движения целевого подходящего блока выполняется масштабирование согласно отношению номера порядка вывода (poc) опорного кадра текущего блока кодирования к номеру порядка вывода (poc) опорного кадра целевого подходящего блока. Масштабированный вектор движения целевого подходящего блока определяется в качестве первого вектора движения в группе векторов движения текущего блока кодирования. Отношение первого вектора движения к вектору движения целевого подходящего блока является таким же как отношение номера порядка вывода опорного кадра текущего блока кодирования к номеру порядка вывода опорного кадра целевого подходящего блока.
[0072] в этом варианте осуществления настоящего изобретения, определенный вектор движения целевого подходящего блока может определяться в качестве точки начала поиска в последующей оценке движения. Устройство кодирования может кодировать значение индекса, соответствующее целевому подходящему блоку, и передавать кодированное значение индекса стороне декодера, чтобы сторона декодера выполняла декодирование и определяла целевой подходящий блок и вектор движения целевого подходящего блока.
[0073] в этом варианте осуществления настоящего изобретения, значение ошибки согласованности между блоком предсказания, соответствующим вектору движения каждого подходящего блока, и текущим блоком кодирования может определяться согласно следующему способу. В частности, для каждого пикселя в текущем блоке кодирования, значение ошибки согласованности каждого пикселя может определяться согласно следующим формулам (1) по (4):
Где является исходным значением пикселя для пикселя, является значением пикселя предсказания для пикселя в кадре, на который указывает подходящий блок, и являются координатными значениями пикселя, является горизонтальным градиентом местоположения пикселя, и является вертикальным градиентом местоположения пикселя. Эти градиенты могут получаться посредством вычисления посредством использования оператора собеля (sobel).
[0075] в этом варианте осуществления настоящего изобретения, согласно вышеизложенным формулам, может определяться значение ошибки согласованности каждого пикселя в текущем блоке кодирования по отношению к блоку предсказания, соответствующему вектору движения подходящего блока. Абсолютные значения для значений ошибки согласованности всех пикселей в текущем блоке кодирования складываются, и может получаться значение ошибки согласованности между текущим блоком кодирования и блоком предсказания, соответствующим подходящему блоку. Однако настоящее изобретение не ограничено этим. Согласно вышеизложенному способу, последовательно определяется значение ошибки согласованности между текущим блоком кодирования и блоком предсказания, соответствующим каждому подходящему блоку. Подходящий блок, соответствующий наименьшему значению ошибки согласованности, используется в качестве целевого подходящего блока текущего блока кодирования.
[0075] в необязательном порядке, в одном варианте осуществления, аффинное движение используется в качестве примера. Определяется группа векторов движения текущего блока кодирования. Группа векторов движения включает в себя три вектора движения. После того, как один вектор движения, именно, первый вектор движения, из группы векторов движения определяется согласно вышеизложенному способу, как показано на фиг. 2, первый вектор движения может быть вектором движения, соответствующим вершине текущего блока кодирования. Необязательно, векторы движения двух вершин, смежных с вершиной текущего блока кодирования, могут выбираться в качестве других векторов движения в группе векторов движения. Группа векторов движения может быть выражена как , и координаты векторов движения в группе векторов движения являются (0, 0), (w, 0), и (0, h), где w является шириной текущего блока кодирования, и h является высотой текущего блока кодирования.
[0076] в необязательном порядке, в одном варианте осуществления, аффинное движение используется в качестве примера. Группа векторов движения включает в себя три вектора движения, и определение группы векторов движения текущего блока кодирования может быть определением каждого вектора движения из группы векторов движения. В частности, сначала, множество кодированных блоков, соседних вокруг текущего блока кодирования, могут определяться в качестве множества подходящих блоков. Множество подходящих блоков соответствуют одному и тому же пикселю в текущем блоке кодирования. Необязательно, пиксель может быть вершиной текущего блока кодирования. Например, как показано на фиг. 2, a, b и c могут определяться в качестве множества подходящих блоков текущего блока кодирования. Согласно формулам (1) по (4), отдельно определяется значение ошибки согласованности каждого пикселя в текущем блоке кодирования по отношению к блоку предсказания, соответствующему вектору движения каждого подходящего блока. Затем, абсолютные значения для значений ошибки согласованности всех пикселей складываются. Определяется значение ошибки согласованности каждого подходящего блока по отношению к текущему блоку кодирования. Подходящий блок, соответствующий наименьшему значению ошибки согласованности, выбирается в качестве целевого подходящего блока текущего блока кодирования. Вектор движения целевого подходящего блока определяется в качестве первого вектора движения в группе векторов движения текущего блока кодирования. Опорный кадр целевого подходящего блока определяется в качестве опорного кадра текущего блока кодирования. Вектор движения целевого подходящего блока используется в качестве первого вектора движения текущего блока кодирования. Дополнительно, первый вектор движения может использоваться в качестве точки начала поиска в последующей оценке движения. Устройство кодирования может кодировать значение индекса, соответствующее целевому подходящему блоку, и передавать кодированное значение индекса стороне декодера, чтобы сторона декодера выполняла декодирование и определяла целевой подходящий блок и вектор движения целевого подходящего блока.
[0077] в этом варианте осуществления настоящего изобретения, после того, как определяется первый вектор движения в группе векторов движения текущего блока кодирования, второй вектор движения в группе векторов движения текущего блока кодирования определяется согласно первому вектору движения. Второй вектор движения является вектором движения в группе векторов движения, отличающимся от первого вектора движения. В частности, сначала, множество подходящих блоков текущего блока кодирования определяются из кодированных блоков, соседних вокруг текущего блока кодирования. Множество блоков кодирования соответствуют одному и тому же пикселю в текущем блоке кодирования. Необязательно, пиксель может быть вершиной текущего блока кодирования. Пиксель отличается от пикселей, соответствующих множеству подходящих блоков в определении первого вектора движения. Например, как показано на фиг. 2, подходящие блоки могут включать в себя d и e, и множество подходящих блоков не включают в себя подходящий блок в определении первого вектора движения. Затем, определяется опорный кадр каждого подходящего блока. Если опорный кадр подходящего блока не является таким же кадром как опорный кадр целевого подходящего блока, соответствующего первому вектору движения, то есть, опорным кадром текущего блока кодирования, над вектором движения подходящего блока выполняется масштабирование согласно отношению номера порядка вывода poc опорного кадра целевого подходящего блока текущего блока кодирования к номеру порядка вывода poc опорного кадра подходящего блока, чтобы отношение номера порядка вывода опорного кадра текущего блока к номеру порядка вывода опорного кадра подходящего блока было таким же как отношение между векторами движения. Масштабированный вектор движения каждого подходящего блока отдельно сравнивается с первым вектором движения. Когда масштабированный вектор движения подходящего блока отличается от первого вектора движения, и различие является наименьшим, этот подходящий блок определяется в качестве второго целевого подходящего блока текущего блока кодирования, и масштабированный вектор движения, соответствующий этому целевому подходящему блоку, определяется в качестве второго вектора движения в группе векторов движения текущего блока кодирования.
[0078] в этом варианте осуществления настоящего изобретения, множество вторых векторов движения может определяться согласно вышеизложенному способу. Например, когда группа векторов движения текущего блока кодирования включает в себя три вектора движения, после того, как определяется один первый вектор движения из группы векторов движения, другие два вторых вектора движения могут определяться согласно вышеизложенному способу. Однако настоящее изобретение не ограничено этим.
[0079] в необязательном порядке, в одном варианте осуществления, аффинное движение используется в качестве примера. Определяется группа векторов движения текущего блока кодирования. Группа векторов движения включает в себя три вектора движения, и каждый вектор движения из группы векторов движения может дополнительно определяться согласно следующему способу. В частности, определяются множество подходящих блоков текущего блока кодирования. Все из множества подходящих блоков являются кодированными блоками, смежными с текущим блоком кодирования. Например, как показано на фиг. 2, a по f являются множеством подходящих блоков текущего блока кодирования. Затем, множество групп подходящих векторов движения текущего блока кодирования определяются согласно множеству подходящих блоков. Каждая группа подходящих векторов движения включает в себя три вектора движения, и упомянутые три вектора движения соответствуют трем пикселям в текущем блоке кодирования. Необязательно, векторы движения нескольких подходящих блоков, которые выбираются из множества подходящих блоков, могут использоваться в качестве группы подходящих векторов движения. Например, как показано на фиг. 2, для множества подходящих блоков a по f, три вектора движения, включающие в себя вектор движения блока, произвольно выбираемого из подходящих блоков a, b, и c, которые соответствуют одному и тому же пикселю, вектор движения блока, произвольно выбираемого из d и e, которые соответствуют другому пикселю, и вектор движения блока, произвольно выбираемого из f и g, которые соответствуют другому пикселю, могут составлять группу подходящих векторов движения. Так как имеются разные выборы, эти подходящие блоки могут составлять 12 групп подходящих векторов движения. Определяется опорный кадр каждого вектора движения из первой группы подходящих векторов движения. Первая группа подходящих векторов движения является любой группой подходящих векторов движения из множества групп подходящих векторов движения. Пропорциональное масштабирование выполняется над индексным номером и номером порядка вывода опорного кадра подходящего блока, соответствующего каждому вектору движения из первой группы подходящих векторов движения, чтобы упомянутые три вектора движения из первой группы подходящих векторов движения соответствовали одному и тому же номеру порядка вывода и индексному номеру опорного кадра.
[0080] в этом варианте осуществления настоящего изобретения, местоположение предсказания, в опорном кадре первой группы подходящих векторов движения, каждого пикселя в текущем блоке кодирования может определяться согласно следующим формулам (5) и (6):
Где w является шириной текущего блока кодирования, h является высотой текущего блока кодирования, является x-направленной компонентой j-ого подходящего вектора движения в первой группе подходящих векторов движения, является y-направленной компонентой j-ого подходящего вектора движения в первой группе подходящих векторов движения, j=0, 1, 2, x и y являются координатными значениями каждого пикселя в текущем блоке кодирования, и и являются координатными значениями, в точке предсказания, соответствующей опорному кадру в первой группе подходящих векторов движения, пикселя.
[0081] согласно координатным значениям каждого пикселя в текущем блоке кодирования и координатным значениям пикселя, в точке предсказания, соответствующей опорному кадру, в текущем блоке кодирования, для первой группы подходящих векторов движения, значение ошибки согласованности между каждым пикселем в текущем блоке кодирования и точкой предсказания, соответствующей опорному кадру первой группы подходящих векторов движения, определяется согласно формуле (1), где . Вычисляется абсолютное значение значения ошибки согласованности каждого пикселя по отношению к первой группе подходящих векторов движения, и абсолютные значения складываются, чтобы определять значение ошибки согласованности текущего блока кодирования по отношению к первой группе подходящих векторов движения. Аналогично, определяется значение ошибки согласованности текущего блока кодирования по отношению к каждой группе подходящих векторов движения, и группа подходящих векторов движения, соответствующая наименьшему значению в множестве значений ошибки согласованности, соответствующих множеству групп подходящих векторов движения, определяется в качестве группы векторов движения текущего блока кодирования. Значение индекса вектора движения, включенного в группу векторов движения, кодируется и передается стороне декодера, чтобы сторона декодера определяла группу векторов движения согласно значению индекса.
[0082] в этом варианте осуществления настоящего изобретения, для определенной группы векторов движения, любой вектор движения из группы векторов движения может использоваться в качестве точки начала поиска в последующей оценке движения. Необязательно, как показано на фиг. 2, местоположение предсказания вершины в верхнем левом угле текущего блока кодирования может использоваться в качестве точки начала поиска в последующей оценке движения. Настоящее изобретение не ограничено этим.
[0083] на этапе s120, значения предсказания первого набора компонент вектора инициализации модели движения текущего блока кодирования определяются согласно упомянутому, по меньшей мере, одному вектору движения из группы векторов движения. Вектор инициализации модели движения включает в себя упомянутые, по меньшей мере, четыре компоненты. Первый набор компонент включает в себя, по меньшей мере, одну компоненту вектора инициализации модели движения. В частности, модель аффинного движения используется в качестве примера. Аффинная модель может представляться посредством использования шести параметров, и упомянутые шесть параметров могут быть выражены как . Местоположение, в опорном кадре, каждого пикселя в текущем блоке кодирования может определяться согласно следующей формуле (7):
Где x и y являются координатными значениями любого пикселя в текущем блоке кодирования, и являются координатными значениями, в соответствующей точке предсказания в опорном кадре, пикселя, и и являются векторами движения любого пикселя в текущем блоке кодирования. Может получаться следующая формула (8):
[0084] согласно группе векторов движения, определенной на этапе s110, группа векторов движения может быть выражена как . Целевые подходящие блоки, соответствующие группе векторов движения, являются блоками a по g, показанными на фиг. 2. Поэтому, координаты векторов движения в группе векторов движения могут быть выражены как (0, 0), (w, 0), и (0, h), где w является шириной текущего блока кодирования, и h является высотой текущего блока кодирования. Может получаться следующая формула (9) посредством подстановки группы векторов движения и координат в формулу (8):
Где является x-направленной компонентой j-ого подходящего вектора движения в первой группе подходящих векторов движения, является y-направленной компонентой j-ого подходящего вектора движения в первой группе подходящих векторов движения, и j=0, 1, 2. Соответственно, могут получаться все параметры в модели аффинного движения . Как показано в формуле (6), группа векторов движения текущего блока кодирования подставляется в формулу (6), и может определяться вектор инициализации модели движения текущего блока кодирования. Вектор инициализации модели движения является шестимерным вектором. Необязательно, для другой модели движения, вектор инициализации является вектором, включающим в себя, по меньшей мере, четыре размерности. Значения предсказания первого набора компонент могут определяться согласно вектору инициализации модели движения. Значения предсказания первого набора компонент могут включать в себя, по меньшей мере, одну компоненту вектора инициализации модели движения.
[0085] на этапе s130, подлежащие передаче значения первого набора компонент определяются согласно значениям предсказания первого набора компонент. В частности, точность квантования модели движения и вектор оптимизации модели движения могут определяться согласно текущему блоку кодирования. Вектор оптимизации модели движения квантуется согласно точности квантования модели движения. Подлежащие передаче значения первого набора компонент определяются согласно значениям предсказания первого набора компонент модели движения и квантованному вектору оптимизации модели движения.
[0086] в этом варианте осуществления настоящего изобретения, может сначала определяться вектор оптимизации модели движения. Необязательно, вектор оптимизации модели движения может определяться согласно предшествующему уровню техники. В частности, значение ошибки согласованности текущего блока кодирования может определяться согласно формулам (1) по (4). Подходящий блок текущего блока кодирования ищется градиентным итеративным способом внутри конкретного диапазона опорного кадра текущего блока кодирования. Подходящий блок, соответствующий наименьшему значению ошибки согласованности, определяется в качестве целевого подходящего блока текущего блока кодирования, и соответствующий параметр модели движения в этом случае определяется в качестве вектора оптимизации текущего блока кодирования согласно формуле (4).
[0087] в необязательном порядке, вектор инициализации модели движения текущего блока кодирования может дополнительно определяться согласно формуле (6), и вектор инициализации модели движения определяется в качестве вектора оптимизации модели движения.
[0088] в необязательном порядке, вектор инициализации модели движения текущего блока кодирования может дополнительно определяться согласно формуле (6). Соответствующее местоположение, в опорном кадре, каждого пикселя в текущем блоке кодирования получается посредством вычисления согласно формуле (7). Значение ошибки согласованности текущего блока кодирования вычисляется согласно формуле (1) и (6). Это значение ошибки согласованности сравнивается со значением ошибки согласованности, которое соответствует параметру модели движения и которое определяется согласно формулам (1) по (4) и предшествующему уровню техники. Параметр модели движения , соответствующий наименьшему значению ошибки согласованности, выбирается в качестве вектора оптимизации текущего блока кодирования. Настоящее изобретение не ограничено этим.
[0089] в этом варианте осуществления настоящего изобретения, должна дополнительно определяться точность квантования модели движения, чтобы квантовать вектор оптимизации модели движения. В частности, вектор оптимизации модели движения включает в себя два параметра поступательного движения и . Точность квантования упомянутых двух параметров поступательного движения может быть 1/16 или 1/4. Настоящее изобретение не ограничено этим. Точность квантования других параметров в векторе оптимизации модели движения может быть 1/512. Альтернативно, точность квантования может определяться согласно размеру текущего блока кодирования и информации точности. Размер текущего блока кодирования включает в себя ширину текущего блока кодирования и высоту текущего блока кодирования, и информация точности может включать в себя точность квантования группы векторов движения текущего блока кодирования. В частности, можно узнать, согласно формуле (6), что последние четыре параметра в модели движения относятся к ширине и высоте текущего блока кодирования. Поэтому, точность квантования может определяться согласно следующей формуле (10):
[0090] p может определяться согласно информации точности текущего блока кодирования. В частности, 1/p является точностью квантования группы векторов движения текущего блока кодирования. Необязательно, точность квантования группы векторов движения равняется, в общем, 1/4, таким образом, p=4. W является шириной текущего блока кодирования. H является высотой текущего блока кодирования. Например, если ширина текущего блока кодирования равняется 16 и высота равняется 32, точность квантования группы векторов движения равняется 1/(32×4)=1/128; если ширина блока кодирования равняется 16 и высота равняется 8, точность квантования равняется 1/(16×4)=1/64.
[0091] в этом варианте осуществления настоящего изобретения, вектор оптимизации модели движения квантуется согласно определенной точности квантования, чтобы получать квантованный вектор оптимизации модели движения .
[0092] в этом варианте осуществления настоящего изобретения, подлежащие передаче значения первого набора компонент определяются согласно значениям предсказания первого набора компонент и квантованному вектору оптимизации модели движения. В частности, определение может выполняться посредством использования следующего способа. Здесь, аффинное движение используется в качестве примера. Вектор инициализации модели движения определяется согласно формуле (6). В векторе инициализации модели движения, и являются параметрами поступательного движения, и относятся к первому вектору движения в группе векторов движения. Необязательно, и могут определяться в качестве первого набора компонент, и значения и , которые определяются согласно формуле (6), являются значениями предсказания первого набора компонент. Необязательно, точность квантования упомянутых двух параметров может быть 1/16 или 1/4. 1/16 используется в качестве примера. Сначала, масштабируется четырехкратно, чтобы точность увеличивалась с 1/4 на 1/16. Затем, квантованные и , чья точность также равняется 1/16, вычисляются посредством использования , чья точность равняется 1/16, чтобы получать и , то есть, и являются квантованными значениями предсказания первого набора компонент.
[0093] в этом варианте осуществления настоящего изобретения, подлежащие передаче значения первого набора компонент текущего блока кодирования определяются согласно квантованным значениям предсказания и первого набора компонент и определенному вектору оптимизации модели движения. Значения передачи модели движения текущего блока кодирования могут быть . Первый набор компонент может включать в себя две компоненты. Значения передачи первого набора компонент могут быть и , , и . Другие значения передачи являются , является квантованным вектором оптимизации модели движения, и и являются квантованными значениями значений предсказания и первого набора компонент. В этом случае, два параметра в параметрах передачи кодирования являются разностями между квантованным первым набором компонент и вектором оптимизации модели движения. Разности меньше, чем количество бит, занимаемых квантованным вектором оптимизации модели движения в прямой передаче кодирования. Это уменьшает объем передаваемых данных.
[0094] в необязательном порядке, в одном варианте осуществления, подлежащие передаче значения первого набора компонент определяются согласно значениям предсказания первого набора компонент и квантованному вектору оптимизации модели движения. В частности, определение может дополнительно выполняться посредством использования следующего способа. Согласно формуле (6), определяются шесть компонент вектора инициализации модели движения, где i=0, 1, 2, 3, 4, 5. Затем, определяется, что первый набор компонент также включает в себя шесть параметров, и могут определяться значения передачи модели движения текущего блока кодирования, то есть, значения передачи первого набора компонент являются , где , является квантованным вектором оптимизации модели движения, и является значением предсказания первого набора компонент.
[0095] на этапе s140, определенные подлежащие передаче значения первого набора компонент кодируются, и кодированные подлежащие передаче значения первого набора компонент передаются стороне декодера. В частности, определенный подлежащий передаче вектор модели движения текущего блока кодирования может кодироваться и передаваться стороне декодера. В дополнение, вектор оптимизации модели движения может дополнительно квантоваться согласно точности квантования модели движения, чтобы определять выборку пикселя предсказания каждой выборки пикселя текущего блока кодирования, дополнительно определяется остаток предсказания текущего блока кодирования, и остаток предсказания кодируется и передается стороне декодера. В частности, для вектора оптимизации модели движения , каждый параметр квантуется согласно точности квантования модели движения, определенной согласно формуле (10), чтобы получать квантованный вектор оптимизации модели движения . Квантованный вектор оптимизации модели движения подставляется в формулу (7), и может получаться опорное местоположение смещения каждого пикселя с точностью q в текущем блоке кодирования. Выборка пикселя предсказания каждой выборки пикселя в текущем блоке кодирования получается посредством вычисления в опорном местоположении смещения. Дополнительно, определяется остаток предсказания текущего блока кодирования, и остаток предсказания кодируется и передается стороне декодера. Необязательно, выборка пикселя может быть одним пикселем или малым блоком пикселей, включающим в себя множество пикселей. Настоящее изобретение не ограничено этим.
[0096] следует понимать, что последовательные номера вышеизложенных обработок не означают последовательность исполнения в различных вариантах осуществления настоящего изобретения. Последовательность исполнения обработок должна определяться согласно функциям и внутренней логике обработок, и не должна толковаться как какое-либо ограничение на обработки реализации вариантов осуществления настоящего изобретения.
[0097] поэтому, согласно способу кодирования видеоизображения в этом варианте осуществления настоящего изобретения, определяется группа векторов движения текущего блока кодирования; вектор инициализации модели движения текущего блока кодирования определяется согласно группе векторов движения; подлежащие передаче значения модели движения определяются согласно вектору инициализации модели движения; и подлежащие передаче значения модели движения кодируются для передачи, чтобы сторона декодера выполняла декодирование согласно подлежащим передаче значениям модели движения. По такому принципу, объем данных и количество занятых бит в передаче кодирования и декодирования могут уменьшаться. В дополнение, когда вектор оптимизации модели движения определяется и вектор оптимизации квантуется, определенная точность квантования определяется согласно размеру текущего блока кодирования и точности квантования вектора движения текущего блока кодирования. Это также может уменьшать количество бит, требуемое для параметра кодирования.
[0098] фиг. 3 является схематической блок-схемой последовательности операций способа 200 декодирования видеоизображения согласно одному варианту осуществления настоящего изобретения. Способ, показанный на фиг. 3, может использоваться в обработке декодирования изображений или видео, и исполняется посредством устройства декодирования. Как показано на фиг. 3, способ включает в себя следующие этапы:
[0099] s210. Определение группы векторов движения и вектора передачи модели движения текущего блока декодирования согласно битовому потоку, где группа векторов движения включает в себя, по меньшей мере, один вектор движения текущего блока декодирования, и вектор передачи модели движения включает в себя, по меньшей мере, четыре компоненты.
[0100] s220. Определение значений предсказания первого набора компонент вектора инициализации модели движения текущего блока декодирования согласно упомянутому, по меньшей мере, одному вектору движения из группы векторов движения, где вектор инициализации модели движения включает в себя, по меньшей мере, четыре компоненты.
[0101] s230. Определение вектора оптимизации модели движения текущего блока декодирования согласно значениям предсказания первого набора компонент и вектору передачи модели движения для декодирования текущего блока декодирования согласно вектору оптимизации модели движения.
[0102] в частности, сторона декодера принимает битовый поток, передаваемый стороной кодера, выполняет декодирование согласно битовому потоку, и определяет группу векторов движения и вектор передачи модели движения текущего блока декодирования, где группа векторов движения включает в себя, по меньшей мере, один вектор движения, соответствующий пикселю в текущем блоке декодирования. Сторона декодера определяет значения предсказания первого набора компонент вектора инициализации модели движения текущего блока декодирования согласно упомянутому, по меньшей мере, одному вектору движения из группы векторов движения, где вектор инициализации модели движения включает в себя упомянутые, по меньшей мере, четыре компоненты, и первый набор компонент включает в себя, по меньшей мере, одну компоненту вектора инициализации модели движения. Сторона декодера определяет вектор оптимизации модели движения текущего блока декодирования согласно значениям предсказания первого набора компонент и вектору передачи модели движения. Затем, сторона декодера определяет выборку предсказания текущего блока декодирования согласно квантованному вектору оптимизации модели движения, и выполняет декодирование и восстановление над текущим блоком декодирования согласно выборке предсказания.
[0103] поэтому, согласно способу декодирования видеоизображения в этом варианте осуществления настоящего изобретения, группа векторов движения и вектор передачи модели движения текущего блока декодирования определяются согласно принятому битовому потоку; вектор инициализации модели движения текущего блока декодирования определяется согласно группе векторов движения; вектор оптимизации модели движения определяется согласно вектору инициализации модели движения и вектору передачи модели движения; и декодирование и восстановление выполняются над вектором оптимизации модели движения. По такому принципу, объем данных и количество занятых бит в передаче кодирования и декодирования могут уменьшаться.
[0104] на этапе s210, устройство декодирования определяет группу векторов движения и вектор передачи модели движения текущего блока декодирования согласно битовому потоку. Группа векторов движения включает в себя, по меньшей мере, один вектор движения текущего блока декодирования, и каждый вектор движения соответствует одному пикселю в текущем блоке декодирования. Необязательно, количество параметров, требуемых для описания модели движения, изменяется между моделями движения. Для модели движения, имеющей 2n параметров, вектор передачи модели движения, определяемый стороной декодера, является 2n-мерным вектором, и группа векторов движения текущего блока декодирования может, в общем, включать в себя n векторов движения. Например, для аффинного движения, когда все пиксели в текущем блоке декодирования представляются посредством использования модели аффинного движения, в общем, модель аффинного движения может быть выражена как . То есть, модель аффинного движения имеет шесть параметров, и группа векторов движения может включать в себя три вектора движения. Для модели полного движения, в общем, используются 12 параметров, и группа векторов движения может включать в себя шесть векторов движения. Необязательно, определение группы векторов движения может быть определением, по меньшей мере, одного вектора движения из группы векторов движения, или определением одного вектора движения из группы векторов движения, или определением n векторов движения или всех векторов движения из группы векторов движения. Например, для аффинного движения, группа векторов движения может включать в себя, по меньшей мере, три вектора движения, и определение группы векторов движения текущего блока декодирования может быть определением одного вектора движения, трех векторов движения, или всех векторов движения из группы векторов вычисления. Согласно количеству векторов движения, определенных стороной кодера, сторона декодера также соответственно определяет соответствующее количество векторов движения. Настоящее изобретение не ограничено этим.
[0105] в этом варианте осуществления настоящего изобретения, сторона декодера может определять вектор передачи модели движения и группу векторов движения текущего блока декодирования согласно принятому битовому потоку. В частности, сторона декодера может сначала определять вектор передачи модели движения текущего блока декодирования согласно принятому битовому потоку. Все компоненты вектора передачи модели движения могут быть разностями между вектором инициализации модели движения и вектором оптимизации модели движения. Альтернативно, некоторые компоненты вектора передачи модели движения являются разностями между вектором инициализации модели движения и вектором оптимизации модели движения, и некоторые компоненты являются компонентами в соответствующих местоположениях вектора оптимизации модели движения. Настоящее изобретение не ограничено этим.
[0106] в необязательном порядке, в одном варианте осуществления, аффинное движение используется в качестве примера. Когда определяется группа векторов движения текущего блока декодирования, и группа векторов движения включает в себя три вектора движения, по меньшей мере, один вектор движения из группы векторов вычисления может сначала определяться согласно битовому потоку. В частности, когда сторона декодера определяет, что некоторые компоненты вектора передачи модели движения являются разностями между вектором инициализации модели движения и вектором оптимизации модели движения, и что некоторые компоненты являются компонентами в соответствующих местоположениях вектора оптимизации модели движения, сторона декодера может определять упомянутый, по меньшей мере, один вектор движения из группы векторов вычисления согласно битовому потоку. Сторона декодера декодирует битовый поток видео, определяет целевой подходящий блок текущего блока декодирования, и определяет вектор движения целевого подходящего блока и опорный кадр целевого подходящего блока. Сторона декодера отдельно получает номер порядка вывода poc опорного кадра целевого подходящего блока и номер порядка вывода poc опорного кадра текущего блока декодирования, выполняет масштабирование над вектором движения целевого подходящего блока согласно отношению номера порядка вывода poc опорного кадра текущего блока декодирования к номеру порядка вывода poc опорного кадра целевого подходящего блока, и определяет масштабированный вектор движения в качестве первого вектора движения в группе векторов движения текущего блока декодирования. Отношение первого вектора движения к вектору движения целевого подходящего блока является таким же как отношение номера порядка вывода опорного кадра текущего блока декодирования к номеру порядка вывода опорного кадра целевого подходящего блока.
[0107] в необязательном порядке, в одном варианте осуществления, аффинное движение используется в качестве примера. Группа векторов движения включает в себя три вектора движения, и определение группы векторов движения текущего блока декодирования может быть определением каждого вектора движения из группы векторов движения согласно битовому потоку. В частности, при определении, что все компоненты вектора передачи модели движения могут быть разностями между вектором инициализации модели движения и вектором оптимизации модели движения, сторона декодера может определять каждый вектор движения из группы векторов движения согласно битовому потоку. Сторона декодера может сначала определять целевой подходящий блок текущего блока декодирования согласно значению индекса в битовом потоке, определять опорный кадр целевого подходящего блока в качестве опорного кадра текущего блока декодирования, и использовать вектор движения целевого подходящего блока в качестве первого вектора движения в группе векторов движения текущего блока декодирования.
[0108] в этом варианте осуществления настоящего изобретения, после того, как определяется первый вектор движения в группе векторов движения текущего блока декодирования, второй вектор движения в группе векторов движения текущего блока декодирования определяется согласно первому вектору движения. Второй вектор движения является вектором движения в группе векторов движения, отличающимся от первого вектора движения. В частности, множество подходящих блоков текущего блока декодирования сначала определяются из декодированных блоков, соседних вокруг текущего блока декодирования. Множество подходящих блоков соответствуют одному и тому же пикселю. Необязательно, пиксель может быть вершиной текущего блока декодирования. Например, как показано на фиг. 2, для текущего блока декодирования, подходящие блоки могут включать в себя d и e, и множество подходящих блоков не включают в себя целевой подходящий блок, соответствующий определенному первому вектору движения, текущего блока декодирования. Затем, определяется опорный кадр каждого подходящего блока. Если опорный кадр подходящего блока не является таким же кадром как опорный кадр целевого подходящего блока, соответствующего первому вектору движения, то есть, опорным кадром текущего блока декодирования, над вектором движения подходящего блока выполняется масштабирование согласно отношению номера порядка вывода poc опорного кадра целевого подходящего блока к номеру порядка вывода poc опорного кадра подходящего блока, чтобы отношение номера порядка вывода опорного кадра текущего блока к номеру порядка вывода опорного кадра подходящего блока было таким же как отношение между векторами движения. Масштабированный вектор движения каждого подходящего блока отдельно сравнивается с первым вектором движения. Когда масштабированный вектор движения подходящего блока отличается от первого вектора движения, и различие является наименьшим, этот подходящий блок определяется в качестве целевого подходящего блока текущего блока декодирования, и масштабированный вектор движения, соответствующий этому целевому подходящему блоку, определяется в качестве второго вектора движения в группе векторов движения текущего блока декодирования.
[0109] в этом варианте осуществления настоящего изобретения, согласно вышеизложенному способу, может определяться множество вторых векторов движения. Например, когда группа векторов движения текущего блока декодирования включает в себя три вектора движения, после того, как определяется первый вектор движения в группе векторов движения, другие два вторых вектора движения могут определяться согласно вышеизложенному способу, и дополнительно определяется каждый вектор движения из группы векторов движения. Однако настоящее изобретение не ограничено этим.
[0110] в необязательном порядке, в одном варианте осуществления, аффинное движение используется в качестве примера. Определяется группа векторов движения текущего блока декодирования. Группа векторов движения включает в себя три вектора движения, и каждый вектор движения из группы векторов движения может определяться посредством декодирования битового потока. В частности, при определении, что все компоненты вектора передачи модели движения могут быть разностями между вектором инициализации модели движения и вектором оптимизации модели движения, сторона декодера может определять каждый вектор движения из группы векторов движения согласно битовому потоку, и напрямую получать значение каждого вектора движения из группы векторов движения текущего блока декодирования согласно битовому потоку. В дополнение, целевые подходящие блоки, текущего блока декодирования, соответствующие всем векторам движения в группе векторов движения, имеют один и тот же опорный кадр, и опорный кадр является опорным кадром текущего блока декодирования.
[0111] на этапе s220, значения предсказания первого набора компонент вектора инициализации модели движения текущего блока декодирования определяются согласно упомянутому, по меньшей мере, одному вектору движения из группы векторов движения. Вектор инициализации модели движения включает в себя упомянутые, по меньшей мере, четыре компоненты. Первый набор компонент включает в себя, по меньшей мере, одну компоненту вектора инициализации модели движения. В частности, модель аффинного движения используется в качестве примера. Аффинная модель может представляться посредством использования шести параметров, и упомянутые шесть параметров могут быть выражены как . Местоположение, в опорном кадре, каждого пикселя в текущем блоке декодирования может определяться согласно формуле (7), где x и y являются координатными значениями любого пикселя в текущем блоке декодирования, и являются координатными значениями, в соответствующей точке предсказания в опорном кадре, пикселя, и и являются векторами движения любого пикселя в текущем блоке декодирования. Может получаться формула (8). Согласно группе векторов движения, определенной на этапе s210, группа векторов движения может быть выражена как , и координаты векторов движения в группе векторов движения могут быть (0, 0), (w, 0), и (0, h), где w является шириной текущего блока декодирования, и h является высотой текущего блока декодирования. Формула (9) может получаться посредством подстановки группы векторов движения и координат в формулу (8), где является x-направленной компонентой j-ого подходящего вектора движения в первой группе подходящих векторов движения, является y-направленной компонентой j-ого подходящего вектора движения в первой группе подходящих векторов движения, и j=0, 1, 2. Соответственно, могут получаться все параметры в модели аффинного движения . Как показано в формуле (6), группа векторов движения текущего блока декодирования подставляется в формулу (6), и может определяться вектор инициализации модели движения текущего блока декодирования. Вектор инициализации модели движения является шестимерным вектором. Необязательно, для другой модели движения, вектор инициализации является вектором, включающим в себя, по меньшей мере, четыре размерности. Значения предсказания первого набора компонент могут определяться согласно вектору инициализации модели движения. Значения предсказания первого набора компонент могут включать в себя, по меньшей мере, одну компоненту вектора инициализации модели движения.
[0112] на этапе s230, вектор оптимизации модели движения текущего блока декодирования определяется согласно значениям предсказания первого набора компонент и вектору передачи модели движения, чтобы сторона декодера выполняла декодирование согласно вектору оптимизации модели движения. В частности, вектор передачи модели движения текущего блока декодирования может быть выражен как . Значения передачи первого набора компонент могут представляться посредством и , , и , где и являются числовыми значениями, полученными после квантования значений предсказания и первого набора компонент. Другие значения передачи параметров текущего блока декодирования могут быть выражены как , и может определяться , где является вектором оптимизации модели движения текущего блока декодирования.
[0113] в этом варианте осуществления настоящего изобретения, значения предсказания и первого набора компонент могут квантоваться, чтобы определять квантованные значения предсказания и первого набора компонент. В частности, аффинное движение используется в качестве примера. Вектор инициализации модели движения определяется согласно формуле (6). В векторе инициализации модели движения, и являются параметрами поступательного движения, и относятся к первому вектору движения в группе векторов движения. и могут определяться в качестве первого набора компонент. Необязательно, точность квантования упомянутых двух параметров может быть 1/16 или 1/4. 1/16 используется в качестве примера. Сначала, масштабируется четырехкратно, чтобы точность увеличивалась с 1/4 на 1/16; и затем, квантованные и , чья точность также равняется 1/16, вычисляются посредством использования , чья точность равняется 1/16, чтобы получать и , то есть, и являются квантованными значениями предсказания первого набора компонент.
[0114] в необязательном порядке, в одном варианте осуществления, значение предсказания первого набора компонент вектора инициализации модели движения может определяться согласно формуле (6). Первый набор компонент включает в себя все компоненты вектора инициализации модели движения, то есть, первый набор компонент включает в себя шесть параметров, так что определяются значения передачи модели движения текущего блока декодирования, то есть, значения передачи первого набора компонент являются , где , и является вектором оптимизации модели движения текущего блока декодирования.
[0115] в одном варианте осуществления настоящего изобретения, фиг. 4 является другой схематической блок-схемой последовательности операций способа декодирования видеоизображения согласно этому варианту осуществления настоящего изобретения. Способ, показанный на фиг. 4, может исполняться посредством устройства декодирования, такого как декодер. В частности, как показано на фиг. 4, способ 200 дополнительно включает в себя следующие этапы:
[0116] s240. Определение точности квантования модели движения текущего блока декодирования.
[0117] s250. Квантование вектора оптимизации модели движения согласно точности квантования модели движения.
[0118] s260. Декодирование текущего блока декодирования согласно квантованному вектору оптимизации модели движения.
[0119] в частности, точность квантования модели движения может определяться согласно текущему блоку декодирования; вектор оптимизации модели движения квантуется согласно точности квантования модели движения; и синтаксический разбор, декодирование, и восстановление выполняются над текущим блоком декодирования согласно квантованному вектору оптимизации модели движения.
[0120] на этапе s240, определяется точность квантования модели движения текущего блока декодирования. В частности, точность квантования может определяться согласно размеру текущего блока декодирования и информации точности. Размер текущего блока декодирования включает в себя ширину текущего блока декодирования и высоту текущего блока декодирования, и информация точности включает в себя точность квантования группы векторов движения. В частности, можно узнать, согласно формуле (6), что параметры модели движения относятся к ширине и высоте текущего блока декодирования. Поэтому, точность квантования может определяться согласно формуле (10). 1/p является точностью квантования группы векторов движения текущего блока декодирования. Необязательно, точность квантования группы векторов движения равняется, в общем, 1/4, таким образом, p=4. W является шириной текущего блока декодирования, и h является высотой текущего блока декодирования. Например, если ширина текущего блока декодирования равняется 16 и высота равняется 32, точность квантования группы векторов движения равняется 1/(32×4)=1/128; если ширина текущего блока декодирования равняется 16 и высота равняется 8, точность квантования равняется 1/(16×4)=1/64.
[0121] на этапе s250, определенный вектор оптимизации модели движения квантуется согласно определенной точности квантования, чтобы получать квантованный вектор оптимизации модели движения .
[0122] на этапе s260, текущий блок декодирования декодируется согласно квантованному вектору оптимизации модели движения. В частности, вектор оптимизации модели движения подставляется в формулу (7), и затем может получаться опорное местоположение смещения каждого пикселя с точностью q в текущем блоке декодирования. Выборка пикселя предсказания каждой выборки пикселя в текущем блоке декодирования получается посредством вычисления в опорном местоположении смещения. Затем, декодирование и восстановление выполняются над выборкой пикселя предсказания согласно определенному остатку предсказания, в принятом битовом потоке, текущего блока декодирования. Необязательно, выборка пикселя может быть одним пикселем или малым блоком пикселей, включающим в себя множество пикселей. Настоящее изобретение не ограничено этим.
[0123] следует понимать, что последовательные номера вышеизложенных обработок не означают последовательность исполнения в различных вариантах осуществления настоящего изобретения. Последовательность исполнения обработок должна определяться согласно функциям и внутренней логике обработок, и не должна толковаться как какое-либо ограничение на обработки реализации вариантов осуществления настоящего изобретения.
[0124] поэтому, согласно способу декодирования видеоизображения в этом варианте осуществления настоящего изобретения, группа векторов движения и вектор передачи модели движения текущего блока декодирования определяются согласно принятому битовому потоку; вектор инициализации модели движения текущего блока декодирования определяется согласно группе векторов движения; вектор оптимизации модели движения определяется согласно вектору инициализации модели движения и вектору передачи модели движения; и декодирование и восстановление выполняются над вектором оптимизации модели движения. По такому принципу, объем данных и количество занятых бит в передаче кодирования и декодирования могут уменьшаться. В дополнение, когда вектор оптимизации модели движения определяется и вектор оптимизации квантуется, определенная точность квантования определяется согласно размеру текущего блока декодирования и точности квантования вектора движения текущего блока декодирования. Это также может уменьшать количество бит, требуемое в передаче параметра.
[0125] чтобы более хорошо обосновать предпочтительные эффекты этого варианта осуществления настоящего изобретения по сравнению с предшествующим уровнем техники, этот вариант осуществления настоящего изобретения реализуется на кодере на основе самого последнего стандарта кодирования видео hevc. С использованием hm12.0 в качестве эталона, способы сравниваются посредством экспериментов, и обнаруживается, что эффекты, достигаемые посредством использования способа в этом варианте осуществления настоящего изобретения, очевидно лучше эффектов, достигаемых посредством использования способа hm12.0 в случае 1.
[0126] см. На таблицу 1.
Таблица 1
Класс | Последовательность | Случай 1 | Случай 2 | Случай 3 | Случай 4 | Случай 5 |
Ldp | Дельфин | 0,0% | -0,5% | -0,4% | -0,6% | -0,7% |
Город | -3,5% | -5,8% | -4,6% | -5,8% | -3,8% | |
Команда | -0,1% | -0,3% | -0,1% | -0,6% | -0,6% | |
Реактивные самолеты | -4,5% | -9,7% | -7,5% | -11,4% | -11,4% | |
Трактор | -9,9% | -19,4% | -19,9% | -20,7% | -21,1% | |
Ваза для цветов | -2,1% | -2,8% | -2,9% | -3,2% | -2,4% | |
Синее небо | -2,2% | -6,4% | -6,1% | -6,8% | -6,3% | |
Настольная карточка | -2,5% | -5,7% | -5,9% | -6,1% | -6,2% | |
Поворотный календарь | -5,7% | -15,2% | -14,0% | -15,6% | -14,3% | |
Среднее | Все | -3,4% | -7,3% | -6,8% | -7,9% | -7,4% |
[0127] случай 1: показывает опорный результат сравнения, где параметр не предсказывается, квантуются посредством использования точности, равной 1/16, и квантуются посредством использования точности, равной 1/512.
[0128] случай 2: показывает опорный результат сравнения, где предсказываются только параметры , квантуются посредством использования точности, равной 1/16, и квантуются посредством использования точности, равной 1/512.
[0129] случай 3: показывает опорный результат сравнения, где предсказываются параметры , квантуются посредством использования точности, равной 1/16, и квантуются посредством использования точности, равной 1/512.
[0130] случай 4: показывает опорный результат сравнения, где предсказываются только параметры , квантуются посредством использования точности, равной 1/16, и квантуются посредством использования точности, вычисленной согласно формуле (10).
[0131] случай 5: показывает опорный результат сравнения, где предсказываются только параметры , квантуются посредством использования точности, равной 1/4, и квантуются посредством использования точности, вычисленной согласно формуле (10).
[0132] поэтому, согласно способу кодирования видеоизображения и способу декодирования видеоизображения в вариантах осуществления настоящего изобретения, сторона кодера определяет группу векторов движения текущего блока кодирования, определяет вектор инициализации модели движения текущего блока кодирования согласно группе векторов движения, определяет подлежащие передаче значения модели движения согласно вектору инициализации модели движения, и кодирует подлежащие передаче значения модели движения для передачи; и сторона декодера определяет подлежащие передаче значения модели движения согласно принятому битовому потоку, и выполняет декодирование и восстановление согласно значениям передачи модели движения. По такому принципу, объем данных и количество занятых бит в передаче кодирования и декодирования могут уменьшаться.
[0133] в вышеизложенном, как показано на фиг. 1 по фиг. 4, способ кодирования видеоизображения и способ декодирования видеоизображения описаны подробно согласно вариантам осуществления настоящего изобретения. В последующем, как показано на фиг. 5 и фиг. 6, устройство кодирования и устройство декодирования описываются согласно вариантам осуществления настоящего изобретения.
[0134] фиг. 5 является схематической блок-схемой последовательности операций устройства кодирования 300 согласно одному варианту осуществления настоящего изобретения. Устройство кодирования может быть пользовательским оборудованием, таким как ue; или может быть сетевым устройством, таким как rnc или enb. Как показано на фиг. 5, устройство кодирования 300 включает в себя:
Первый модуль 310 определения, сконфигурированный с возможностью определения группы векторов движения текущего блока кодирования, где группа векторов движения включает в себя, по меньшей мере, один вектор движения текущего блока кодирования;
Второй модуль 320 определения, сконфигурированный с возможностью определения значений предсказания первого набора компонент вектора инициализации модели движения текущего блока кодирования согласно упомянутому, по меньшей мере, одному вектору движения из группы векторов движения, где вектор инициализации модели движения включает в себя, по меньшей мере, четыре компоненты;
Третий модуль 330 определения, сконфигурированный с возможностью определения подлежащих передаче значений первого набора компонент согласно значениям предсказания первого набора компонент; и
Модуль 340 кодирования, сконфигурированный с возможностью кодирования подлежащих передаче значений первого набора компонент, и передачи кодированных подлежащих передаче значений первого набора компонент стороне декодера.
[013] в частности, первый модуль 310 определения определяет группу векторов движения текущего блока кодирования, где группа векторов движения включает в себя, по меньшей мере, один вектор движения, соответствующий пикселю в текущем блоке кодирования. Второй модуль 320 определения определяет значения предсказания первого набора компонент вектора инициализации модели движения текущего блока кодирования согласно упомянутому, по меньшей мере, одному вектору движения из группы векторов движения, где вектор инициализации модели движения включает в себя, по меньшей мере, четыре компоненты, и первый набор компонент включает в себя, по меньшей мере, одну компоненту вектора инициализации модели движения; и затем определяет точность квантования модели движения и вектор оптимизации модели движения согласно текущему блоку кодирования, и квантует вектор оптимизации модели движения согласно точности квантования. Третий модуль 330 определения может определять подлежащие передаче значения первого набора компонент согласно значениям предсказания первого набора компонент вектора инициализации модели движения и квантованному вектору оптимизации модели движения, кодировать подлежащие передаче значения первого набора компонент, и передавать кодированные подлежащие передаче значения стороне декодера, чтобы сторона декодера выполняла операцию декодирования. Третий модуль 330 определения может дополнительно определять выборку предсказания текущего блока кодирования согласно квантованному вектору оптимизации модели движения, и кодировать текущий блок кодирования согласно выборке предсказания для передачи.
[0136] поэтому, устройство кодирования в этом варианте осуществления настоящего изобретения определяет группу векторов движения текущего блока кодирования; определяет вектор инициализации модели движения текущего блока кодирования согласно группе векторов движения; определяет подлежащие передаче значения модели движения согласно вектору инициализации модели движения; и кодирует подлежащие передаче значения модели движения для передачи, чтобы сторона декодера выполняла декодирование согласно подлежащим передаче значениям модели движения. По такому принципу, объем данных и количество занятых бит в передаче кодирования и декодирования могут уменьшаться.
[0137] в этом варианте осуществления настоящего изобретения, для обработки кодирования видеоизображения во всех стандартах кодирования, по отношению к интер-предсказанию, множество моделей движения может использоваться в обработке вычисления компенсации движения, как, например, модель аффинного движения, модель полного движения, или модель перспективы. Здесь, модель аффинного движения используется в качестве примера для описания, но настоящее изобретение не ограничено этим.
[0138] в этом варианте осуществления настоящего изобретения, первый модуль 310 определения определяет группу векторов движения текущего блока кодирования, и группа векторов движения включает в себя, по меньшей мере, один вектор движения, соответствующий пикселю в текущем блоке кодирования. Количество параметров, требуемых для описания модели движения, изменяется между моделями движения. Для модели движения, имеющей 2n параметров, группа векторов движения текущего блока кодирования может, в общем, включать в себя n векторов движения. Например, для аффинного движения, когда все пиксели в текущем блоке кодирования представляются посредством использования модели аффинного движения, в общем, модель аффинного движения может быть выражена как . То есть, модель аффинного движения имеет шесть параметров, и группа векторов движения включает в себя, по меньшей мере, три вектора движения. Для модели полного движения, в общем, используются 12 параметров, и группа векторов движения включает в себя, по меньшей мере, шесть векторов движения. Необязательно, определение, по меньшей мере, одного вектора движения из группы векторов движения может быть определением одного вектора движения из группы векторов движения, или определением n векторов движения или всех векторов движения из группы векторов движения. Например, для аффинного движения, группа векторов движения может включать в себя, по меньшей мере, три вектора движения, и определение группы векторов движения текущего блока кодирования может быть определением одного вектора движения, трех векторов движения, или всех векторов движения из группы векторов вычисления. Настоящее изобретение не ограничено этим.
[0139] в необязательном порядке, в одном варианте осуществления, аффинное движение используется в качестве примера. Группа векторов движения включает в себя три вектора движения, и то, что первый модуль 310 определения определяет группу векторов движения текущего блока кодирования, может быть определением, по меньшей мере, одного вектора движения из группы векторов вычисления. Для стандарта hevc (высокоэффективного кодирования видео), первый вектор движения в группе векторов движения текущего блока кодирования может определяться посредством использования технологии amvp (усовершенствованного предсказания векторов движения). В частности, сначала, множество подходящих блоков текущего блока кодирования определяются из кодированных блоков, соседних вокруг текущего блока кодирования. Множество подходящих блоков может определяться согласно координатным местоположениям, и множество подходящих блоков являются смежными с текущим блоком кодирования. Например, как показано на фиг. 2, для текущего блока кодирования, в общем, a по g могут определяться в качестве множества подходящих блоков текущего блока кодирования. Затем, определяется значение ошибки согласованности между блоком предсказания, соответствующим вектору движения каждого подходящего блока, и текущим блоком кодирования. В частности, блок предсказания, соответствующий вектору движения подходящего блока, определяется в опорном кадре согласно вектору движения подходящего блока и текущему блоку кодирования; и затем, вычисляется значение ошибки согласованности между блоком предсказания и текущим блоком кодирования, и подходящий блок, соответствующий наименьшему значению ошибки согласованности, определяется в качестве целевого подходящего блока текущего блока кодирования. Далее, отдельно определяются номер порядка вывода (poc) опорного кадра текущего блока кодирования и номер порядка вывода (poc) опорного кадра целевого подходящего блока. Над вектором движения целевого подходящего блока выполняется масштабирование согласно отношению номера порядка вывода (poc) опорного кадра текущего блока кодирования к номеру порядка вывода (poc) опорного кадра целевого подходящего блока. Масштабированный вектор движения целевого подходящего блока определяется в качестве первого вектора движения в группе векторов движения текущего блока кодирования. Отношение первого вектора движения к вектору движения целевого подходящего блока является таким же как отношение номера порядка вывода опорного кадра текущего блока кодирования к номеру порядка вывода опорного кадра целевого подходящего блока.
[0140] в этом варианте осуществления настоящего изобретения, определенный вектор движения целевого подходящего блока может определяться в качестве точки начала поиска в последующей оценке движения. Устройство кодирования может кодировать значение индекса, соответствующее целевому подходящему блоку, и передавать кодированное значение индекса стороне декодера, чтобы сторона декодера выполняла декодирование и определяла целевой подходящий блок и вектор движения целевого подходящего блока.
[0141] в этом варианте осуществления настоящего изобретения, первый модуль 310 определения может определять, согласно следующему способу, значение ошибки согласованности между блоком предсказания, соответствующим вектору движения каждого подходящего блока, и текущим блоком кодирования. В частности, для каждого пикселя в текущем блоке кодирования, значение ошибки согласованности каждого пикселя может определяться согласно формулам (1) по (4), где является исходным значением пикселя для пикселя, является значением пикселя предсказания для пикселя в кадре, на который указывает вектор движения подходящего блока, и являются координатными значениями пикселя, является горизонтальным градиентом местоположения пикселя, и является вертикальным градиентом местоположения пикселя. Эти градиенты могут получаться посредством вычисления посредством использования оператора собеля (sobel).
[0142] в этом варианте осуществления настоящего изобретения, первый модуль 310 определения может определять, согласно формулам (1) по (4), значение ошибки согласованности каждого пикселя в текущем блоке кодирования по отношению к блоку предсказания, соответствующему вектору движения подходящего блока, и складывать абсолютные значения для значений ошибки согласованности всех пикселей в текущем блоке кодирования. Может получаться значение ошибки согласованности между текущим блоком кодирования и блоком предсказания, соответствующим подходящему блоку. Однако настоящее изобретение не ограничено этим. Согласно вышеизложенному способу, последовательно определяется значение ошибки согласованности между текущим блоком кодирования и блоком предсказания, соответствующим каждому подходящему блоку. Подходящий блок, соответствующий наименьшему значению ошибки согласованности, используется в качестве целевого подходящего блока текущего блока кодирования.
[0143] в необязательном порядке, в одном варианте осуществления, аффинное движение используется в качестве примера. Первый модуль 310 определения определяет группу векторов движения текущего блока кодирования. Группа векторов движения включает в себя три вектора движения. После того, как один вектор движения, именно, первый вектор движения, из группы векторов движения определяется согласно вышеизложенному способу, как показано на фиг. 2, первый вектор движения может быть вектором движения, соответствующим вершине текущего блока кодирования. Необязательно, векторы движения двух вершин, смежных с вершиной текущего блока кодирования, могут выбираться в качестве других векторов движения в группе векторов движения. Группа векторов движения может быть выражена как , и координаты векторов движения в группе векторов движения являются (0, 0), (w, 0), и (0, h), где w является шириной текущего блока кодирования, и h является высотой текущего блока кодирования.
[0144] в необязательном порядке, в одном варианте осуществления, аффинное движение используется в качестве примера. Группа векторов движения включает в себя три вектора движения, и то, что первый модуль 310 определения определяет группу векторов движения текущего блока кодирования, может быть определением каждого вектора движения из группы векторов движения. В частности, сначала, множество кодированных блоков, соседних вокруг текущего блока кодирования, могут определяться в качестве множества подходящих блоков. Множество подходящих блоков соответствуют одному и тому же пикселю в текущем блоке кодирования. Необязательно, пиксель может быть вершиной текущего блока кодирования. Например, как показано на фиг. 2, a, b, и c могут определяться в качестве множества подходящих блоков текущего блока кодирования. Согласно формулам (1) по (4), отдельно определяется значение ошибки согласованности каждого пикселя в текущем блоке кодирования по отношению к блоку предсказания, соответствующему вектору движения каждого подходящего блока. Затем, абсолютные значения для значений ошибки согласованности всех пикселей складываются. Определяется значение ошибки согласованности каждого подходящего блока относительно текущего блока кодирования. Подходящий блок, соответствующий наименьшему значению ошибки согласованности, выбирается в качестве целевого подходящего блока текущего блока кодирования. Вектор движения целевого подходящего блока определяется в качестве первого вектора движения в группе векторов движения текущего блока кодирования. Опорный кадр целевого подходящего блока определяется в качестве опорного кадра текущего блока кодирования. Вектор движения целевого подходящего блока используется в качестве первого вектора движения текущего блока кодирования, и первый вектор движения может использоваться в качестве точки начала поиска в последующей оценке движения. Устройство кодирования может кодировать значение индекса, соответствующее целевому подходящему блоку, и передавать кодированное значение индекса стороне декодера, чтобы сторона декодера выполняла декодирование и определяла целевой подходящий блок и вектор движения целевого подходящего блока.
[0145] в этом варианте осуществления настоящего изобретения, после определения первого вектора движения в группе векторов движения текущего блока кодирования, первый модуль 310 определения определяет второй вектор движения в группе векторов движения текущего блока кодирования согласно первому вектору движения. Второй вектор движения является вектором движения в группе векторов движения, отличающимся от первого вектора движения. В частности, сначала, множество подходящих блоков текущего блока кодирования определяются из кодированных блоков, соседних вокруг текущего блока кодирования. Множество блоков кодирования соответствуют одному и тому же пикселю в текущем блоке кодирования. Необязательно, пиксель может быть вершиной текущего блока кодирования. Пиксель отличается от пикселей, соответствующих множеству подходящих блоков в определении первого вектора движения. Например, как показано на фиг. 2, подходящие блоки могут включать в себя d и e, и множество подходящих блоков не включают в себя подходящий блок в определении первого вектора движения. Затем, определяется опорный кадр каждого подходящего блока. Если опорный кадр подходящего блока не является таким же кадром как опорный кадр целевого подходящего блока, соответствующего первому вектору движения, то есть, опорным кадром текущего блока кодирования, над вектором движения подходящего блока выполняется масштабирование согласно отношению номера порядка вывода poc опорного кадра целевого подходящего блока к номеру порядка вывода poc опорного кадра подходящего блока, чтобы отношение номера порядка вывода опорного кадра текущего блока к номеру порядка вывода опорного кадра подходящего блока было таким же как отношение между векторами движения. Масштабированный вектор движения каждого подходящего блока отдельно сравнивается с первым вектором движения. Когда масштабированный вектор движения подходящего блока отличается от первого вектора движения, и различие является наименьшим, этот подходящий блок определяется в качестве второго целевого подходящего блока текущего блока кодирования, и масштабированный вектор движения, соответствующий этому целевому подходящему блоку, определяется в качестве второго вектора движения в группе векторов движения текущего блока кодирования.
[0146] в этом варианте осуществления настоящего изобретения, первый модуль 310 определения может определять множество вторых векторов движения согласно вышеизложенному способу. Например, когда группа векторов движения текущего блока кодирования включает в себя три вектора движения, после того, как определяется один первый вектор движения из группы векторов движения, другие два вторых вектора движения могут определяться согласно вышеизложенному способу. Однако настоящее изобретение не ограничено этим.
[0147] в необязательном порядке, в одном варианте осуществления, аффинное движение используется в качестве примера. Первый модуль 310 определения определяет группу векторов движения текущего блока кодирования. Группа векторов движения включает в себя три вектора движения, и каждый вектор движения из группы векторов движения может дополнительно определяться согласно следующему способу. В частности, определяются множество подходящих блоков текущего блока кодирования. Все из множества подходящих блоков являются кодированными блоками, смежными с текущим блоком кодирования. Например, как показано на фиг. 2, a по f являются множеством подходящих блоков текущего блока кодирования. Затем, множество групп подходящих векторов движения текущего блока кодирования определяются согласно множеству подходящих блоков. Каждая группа подходящих векторов движения включает в себя три вектора движения, и упомянутые три вектора движения соответствуют трем пикселям в текущем блоке кодирования. Необязательно, векторы движения нескольких подходящих блоков, которые выбираются из множества подходящих блоков, могут использоваться в качестве группы подходящих векторов движения. Например, как показано на фиг. 2, для множества подходящих блоков a по f, три вектора движения, включающие в себя вектор движения блока, произвольно выбираемого из подходящих блоков a, b, и c, которые соответствуют одному и тому же пикселю, вектор движения блока, произвольно выбираемого из d и e, которые соответствуют другому пикселю, и вектор движения блока, произвольно выбираемого из f и g, которые соответствуют другому пикселю, могут составлять группу подходящих векторов движения. Так как имеются разные выборы, эти подходящие блоки могут составлять 12 групп подходящих векторов движения. Определяется опорный кадр каждого вектора движения из первой группы подходящих векторов движения. Первая группа подходящих векторов движения является любой группой подходящих векторов движения из множества групп подходящих векторов движения. Пропорциональное масштабирование выполняется над индексным номером и номером порядка вывода опорного кадра подходящего блока, соответствующего каждому вектору движения из первой группы подходящих векторов движения, чтобы упомянутые три вектора движения из первой группы подходящих векторов движения соответствовали одному и тому же номеру порядка вывода и индексному номеру опорного кадра.
[0148] в этом варианте осуществления настоящего изобретения, первый модуль 310 определения может определять местоположение предсказания, в опорном кадре первой группы подходящих векторов движения, каждого пикселя в текущем блоке кодирования согласно формулам (5) и (6), где w является шириной текущего блока кодирования, h является высотой текущего блока кодирования, является x-направленной компонентой j-ого подходящего вектора движения в первой группе подходящих векторов движения, является y-направленной компонентой j-ого подходящего вектора движения в первой группе подходящих векторов движения, j=0, 1, 2, x и y являются координатными значениями каждого пикселя в текущем блоке кодирования, и и являются координатными значениями, в точке предсказания, соответствующей опорному кадру в первой группе подходящих векторов движения, пикселя.
[0149] согласно координатным значениям каждого пикселя в текущем блоке кодирования и координатным значениям пикселя, в точке предсказания, соответствующей опорному кадру, в текущем блоке кодирования, для первой группы подходящих векторов движения, значение ошибки согласованности между каждым пикселем в текущем блоке кодирования и точкой предсказания, соответствующей опорному кадру первой группы подходящих векторов движения, определяется согласно формуле (1), где . Вычисляется абсолютное значение значения ошибки согласованности каждого пикселя по отношению к первой группе подходящих векторов движения, и абсолютные значения складываются, чтобы определять значение ошибки согласованности первой группы подходящих векторов движения, соответствующей текущему блоку кодирования. Аналогично, определяется значение ошибки согласованности текущего блока кодирования по отношению к каждой группе подходящих векторов движения, и группа подходящих векторов движения, соответствующая наименьшему значению в множестве значений ошибки согласованности, соответствующих множеству групп подходящих векторов движения, определяется в качестве группы векторов движения текущего блока кодирования. Значение индекса группы векторов движения кодируется и передается стороне декодера, чтобы сторона декодера определяла группу векторов движения согласно значению индекса.
[0150] в этом варианте осуществления настоящего изобретения, для группы векторов движения, определенной посредством первого модуля 310 определения, любой вектор движения из группы векторов движения может использоваться в качестве точки начала поиска в последующей оценке движения. Необязательно, как показано на фиг. 2, местоположение предсказания вершины в верхнем левом угле текущего блока кодирования может использоваться в качестве точки начала поиска в последующей оценке движения. Настоящее изобретение не ограничено этим.
[0151] в этом варианте осуществления настоящего изобретения, второй модуль 320 определения определяет значения предсказания первого набора компонент вектора инициализации модели движения текущего блока кодирования согласно упомянутому, по меньшей мере, одному вектору движения из группы векторов движения. Вектор инициализации модели движения включает в себя упомянутые, по меньшей мере, четыре компоненты. Первый набор компонент включает в себя, по меньшей мере, одну компоненту вектора инициализации модели движения. В частности, модель аффинного движения используется в качестве примера. Аффинная модель может представляться посредством использования шести параметров, и упомянутые шесть параметров могут быть выражены как . Местоположение, в опорном кадре, каждого пикселя в текущем блоке кодирования может определяться согласно формуле (7), где x и y являются координатными значениями любого пикселя в текущем блоке кодирования, и являются координатными значениями, в соответствующей точке предсказания в опорном кадре, пикселя, и и являются векторами движения любого пикселя в текущем блоке кодирования. Может получаться формула (8). Согласно группе векторов движения, определенной посредством первого модуля 310 определения, вектор движения может быть выражен как . Целевые подходящие блоки, соответствующие группе векторов движения, являются блоками a по g, показанными на фиг. 2. Поэтому, координаты векторов движения в группе векторов движения могут быть (0, 0), (w, 0), и (0, h), где w является шириной текущего блока кодирования, и h является высотой текущего блока кодирования. Формула (9) может получаться посредством подстановки группы векторов движения и координат в формулу (8), где является x-направленной компонентой j-ого подходящего вектора движения в первой группе подходящих векторов движения, является y-направленной компонентой j-ого подходящего вектора движения в первой группе подходящих векторов движения, и j=0, 1, 2. Соответственно, могут получаться все параметры в модели аффинного движения . Как показано в формуле (6), группа векторов движения текущего блока кодирования подставляется в формулу (6), и может определяться вектор инициализации модели движения текущего блока кодирования. Вектор инициализации модели движения является шестимерным вектором. Необязательно, для другой модели движения, вектор инициализации является вектором, включающим в себя, по меньшей мере, четыре размерности. Значения предсказания первого набора компонент могут определяться согласно вектору инициализации модели движения. Значения предсказания первого набора компонент могут быть, по меньшей мере, одной компонентой вектора инициализации модели движения.
[0152] в этом варианте осуществления настоящего изобретения, третий модуль 330 определения определяет подлежащие передаче значения первого набора компонент согласно значениям предсказания первого набора компонент. В частности, третий модуль 330 определения может определять точность квантования модели движения и вектор оптимизации модели движения согласно текущему блоку кодирования, квантовать вектор оптимизации модели движения согласно точности квантования модели движения, и определять подлежащие передаче значения первого набора компонент согласно значениям предсказания первого набора компонент модели движения и квантованному вектору оптимизации модели движения.
[0153] в этом варианте осуществления настоящего изобретения, третий модуль 330 определения может сначала определять вектор оптимизации модели движения. Необязательно, вектор оптимизации модели движения может определяться согласно предшествующему уровню техники. В частности, значение ошибки согласованности текущего блока кодирования может определяться согласно формулам (1) по (4). Блок предсказания текущего блока кодирования ищется градиентным итеративным способом внутри конкретного диапазона опорного кадра текущего блока кодирования. Блок предсказания, соответствующий наименьшему значению ошибки согласованности, определяется в качестве блока предсказания текущего блока кодирования, и соответствующий параметр модели движения в этом случае определяется в качестве вектора оптимизации текущего блока кодирования согласно формуле (4).
[0154] в необязательном порядке, третий модуль 330 определения может дополнительно определять вектор инициализации модели движения текущего блока кодирования согласно формуле (6), и определять вектор инициализации модели движения в качестве вектора оптимизации модели движения.
[0155] в необязательном порядке, вектор инициализации модели движения текущего блока кодирования может дополнительно определяться согласно формуле (6). Соответствующее местоположение, в опорном кадре, каждого пикселя в текущем блоке кодирования получается посредством вычисления согласно формуле (7). Значение ошибки согласованности текущего блока кодирования вычисляется согласно формуле (1) и (6). Это значение ошибки согласованности сравнивается со значением ошибки согласованности, которое соответствует параметру модели движения и которое определяется согласно формулам (1) по (4) и предшествующему уровню техники. Параметр модели движения , соответствующий наименьшему значению ошибки согласованности, выбирается в качестве вектора оптимизации текущего блока кодирования. Настоящее изобретение не ограничено этим.
[0156] в этом варианте осуществления настоящего изобретения, третий модуль 330 определения дополнительно должен определять точность квантования модели движения, чтобы квантовать вектор оптимизации модели движения. В частности, вектор оптимизации модели движения включает в себя два параметра поступательного движения и . Точность квантования упомянутых двух параметров поступательного движения может быть 1/16 или 1/4. Настоящее изобретение не ограничено этим. Точность квантования других параметров в векторе оптимизации модели движения может быть 1/512. Альтернативно, точность квантования может определяться согласно размеру текущего блока кодирования и информации точности. Размер текущего блока кодирования включает в себя ширину текущего блока кодирования и высоту текущего блока кодирования, и информация точности может включать в себя точность квантования группы векторов движения текущего блока кодирования. В частности, можно узнать, согласно формуле (6), что последние четыре параметра в модели движения относятся к ширине и высоте текущего блока кодирования. Поэтому, точность квантования может определяться согласно формуле (10). P может определяться согласно информации точности текущего блока кодирования. В частности, 1/p является точностью квантования группы векторов движения текущего блока кодирования. Необязательно, точность квантования группы векторов движения равняется, в общем, 1/4, таким образом, p=4. W является шириной текущего блока кодирования, и h является высотой текущего блока кодирования. Например, если ширина текущего блока кодирования равняется 16 и высота равняется 32, точность квантования группы векторов движения равняется 1/(32×4)=1/128; если ширина блока кодирования равняется 16 и высота равняется 8, точность квантования равняется 1/(16×4)=1/64.
[0157] в этом варианте осуществления настоящего изобретения, третий модуль 330 определения квантует вектор оптимизации модели движения согласно определенной точности квантования, чтобы получать квантованный вектор оптимизации модели движения .
[0158] в этом варианте осуществления настоящего изобретения, третий модуль 330 определения определяет подлежащие передаче значения первого набора компонент согласно значениям предсказания первого набора компонент и квантованному вектору оптимизации модели движения. В частности, определение может выполняться посредством использования следующего способа. Здесь, аффинное движение используется в качестве примера. Вектор инициализации модели движения определяется согласно формуле (6). В векторе инициализации модели движения, и являются параметрами поступательного движения, и относятся к первому вектору движения в группе векторов движения. и могут определяться в качестве первого набора компонент, и значения и , которые определяются согласно формуле (6), являются значениями предсказания первого набора компонент. Необязательно, точность квантования упомянутых двух параметров может быть 1/16 или 1/4. 1/16 используется в качестве примера. Сначала, масштабируется четырехкратно, чтобы точность увеличивалась с 1/4 на 1/16. Затем, квантованные и , чья точность также равняется 1/16, вычисляются посредством использования , чья точность равняется 1/16, чтобы получать и , то есть, и являются квантованными значениями предсказания первого набора компонент.
[0159] в этом варианте осуществления настоящего изобретения, третий модуль 330 определения определяет подлежащие передаче значения первого набора компонент текущего блока кодирования согласно квантованным значениям предсказания и первого набора компонент и определенному вектору оптимизации модели движения. Значения передачи модели движения текущего блока кодирования могут быть . Первый набор компонент может включать в себя две компоненты. Значения передачи первого набора компонент могут быть и , , и . Другие значения передачи являются , является квантованным вектором оптимизации модели движения, и и являются квантованными значениями значений предсказания и первого набора компонент. В этом случае, два параметра в параметрах передачи кодирования являются разностями между квантованным первым набором компонент и вектором оптимизации модели движения. Разности меньше, чем количество бит, занимаемых квантованным вектором оптимизации модели движения в прямой передаче кодирования. Это уменьшает объем передаваемых данных.
[0160] в необязательном порядке, в одном варианте осуществления, третий модуль 330 определения определяет подлежащие передаче значения первого набора компонент согласно значениям предсказания первого набора компонент и квантованному вектору оптимизации модели движения. В частности, определение может дополнительно выполняться согласно следующему способу. Согласно формуле (6), определяются шесть компонент вектора инициализации модели движения, где i=0, 1, 2, 3, 4, 5. Затем, определяется, что первый набор компонент также включает в себя шесть параметров, и могут определяться значения передачи модели движения текущего блока кодирования, то есть, значения передачи первого набора компонент являются , где , является квантованным вектором оптимизации модели движения, и является значением предсказания первого набора компонент.
[0161] в этом варианте осуществления настоящего изобретения, модуль 340 кодирования может кодировать подлежащие передаче значения первого набора компонент, определенные посредством третьего модуля 330 определения, и передавать кодированные подлежащие передаче значения первого набора компонент стороне декодера. В частности, модуль 340 кодирования может кодировать подлежащий передаче вектор модели движения текущего блока кодирования, и передавать кодированный подлежащий передаче вектор модели движения текущего блока кодирования стороне декодера. В дополнение, модуль 340 кодирования может дополнительно квантовать вектор оптимизации модели движения согласно точности квантования модели движения, определенной посредством третьего модуля 330 определения; определять выборку пикселя предсказания каждой выборки пикселя текущего блока кодирования; и дополнительно определять остаток предсказания текущего блока кодирования, кодировать остаток предсказания, и передавать кодированный остаток предсказания стороне декодера. В частности, для вектора оптимизации модели движения , каждый параметр квантуется согласно точности квантования модели движения, определенной согласно формуле (10), чтобы получать квантованный вектор оптимизации модели движения . Квантованный вектор оптимизации модели движения подставляется в формулу (7), и может получаться опорное местоположение смещения каждого пикселя с точностью q в текущем блоке кодирования. Выборка пикселя предсказания каждой выборки пикселя в текущем блоке кодирования получается посредством вычисления в опорном местоположении смещения. Дополнительно, определяется остаток предсказания текущего блока кодирования, и остаток предсказания кодируется и передается стороне декодера. Необязательно, выборка пикселя может быть одним пикселем или малым блоком пикселей, включающим в себя множество пикселей. Настоящее изобретение не ограничено этим.
[0162] следует понимать, что устройство кодирования 300 согласно этому варианту осуществления настоящего изобретения может быть соответствующим образом сконфигурировано с возможностью исполнять способ 100 кодирования видеоизображения в варианте осуществления настоящего изобретения. В дополнение, вышеизложенные и другие действия и/или функции модулей в устройстве 300 кодирования предназначены для реализации соответствующих обработок способов на фиг. 1 и фиг. 2. Для краткости, подробности дополнительно здесь не описываются.
[0163] поэтому, устройство кодирования в этом варианте осуществления настоящего изобретения определяет группу векторов движения текущего блока кодирования; определяет вектор инициализации модели движения текущего блока кодирования согласно группе векторов движения; определяет подлежащие передаче значения модели движения согласно вектору инициализации модели движения; и кодирует подлежащие передаче значения модели движения для передачи, чтобы сторона декодера выполняла декодирование согласно подлежащим передаче значениям модели движения. По такому принципу, объем данных и количество занятых бит в передаче кодирования и декодирования могут уменьшаться. В дополнение, когда вектор оптимизации модели движения определяется и вектор оптимизации квантуется, определенная точность квантования определяется согласно размеру текущего блока кодирования и точности квантования вектора движения текущего блока кодирования. Это также может уменьшать количество бит, требуемое для параметра кодирования.
[0164] фиг. 6 является схематической блок-схемой устройства 400 декодирования согласно одному варианту осуществления настоящего изобретения. Устройство декодирования может быть пользовательским оборудованием, таким как ue; или может быть сетевым устройством, таким как rnc или enb. Как показано на фиг. 6, устройство 400 декодирования включает в себя:
Первый модуль 410 определения, сконфигурированный с возможностью определения группы векторов движения и вектора передачи модели движения текущего блока декодирования согласно битовому потоку, где группа векторов движения включает в себя, по меньшей мере, один вектор движения текущего блока декодирования, и вектор передачи модели движения включает в себя, по меньшей мере, четыре компоненты;
Второй модуль 420 определения, сконфигурированный с возможностью определения значений предсказания первого набора компонент вектора инициализации модели движения текущего блока декодирования согласно упомянутому, по меньшей мере, одному вектору движения из группы векторов движения, где вектор инициализации модели движения включает в себя, по меньшей мере, четыре компоненты; и
Третий модуль 430 определения, сконфигурированный с возможностью определения вектора оптимизации модели движения текущего блока декодирования согласно значениям предсказания первого набора компонент и вектору передачи модели движения для декодирования текущего блока декодирования согласно вектору оптимизации модели движения.
[0165] в частности, первый модуль 410 определения стороны декодера принимает битовый поток, передаваемый стороной кодера, выполняет декодирование согласно битовому потоку, и определяет группу векторов движения текущего блока декодирования и вектор передачи модели движения. Группа векторов движения включает в себя, по меньшей мере, один вектор движения, соответствующий пикселю в текущем блоке декодирования. Второй модуль 420 определения определяет значения предсказания первого набора компонент вектора инициализации модели движения текущего блока декодирования согласно упомянутому, по меньшей мере, одному вектору движения из группы векторов движения. Вектор инициализации модели движения включает в себя упомянутые, по меньшей мере, четыре компоненты. Первый набор компонент включает в себя, по меньшей мере, одну компоненту вектора инициализации модели движения. Третий модуль 430 определения определяет вектор оптимизации модели движения текущего блока декодирования согласно значениям предсказания первого набора компонент и вектору передачи модели движения. Затем, третий модуль 430 определения определяет выборку предсказания текущего блока декодирования согласно квантованному вектору оптимизации модели движения, и выполняет декодирование и восстановление над текущим блоком декодирования согласно выборке предсказания.
[0166] поэтому, устройство декодирования в этом варианте осуществления настоящего изобретения определяет группу векторов движения и вектор передачи модели движения текущего блока декодирования согласно принятому битовому потоку; определяет вектор инициализации модели движения текущего блока декодирования согласно группе векторов движения; определяет вектор оптимизации модели движения согласно вектору инициализации модели движения и вектору передачи модели движения; и декодирует и восстанавливает вектор оптимизации модели движения. По такому принципу, объем данных и количество занятых бит в передаче кодирования и декодирования могут уменьшаться.
[0167] в этом варианте осуществления настоящего изобретения, устройство декодирования выполняет декодирование согласно битовому потоку. Первый модуль 410 определения определяет группу векторов движения текущего блока декодирования и вектор передачи модели движения. Группа векторов движения включает в себя, по меньшей мере, один вектор движения текущего блока декодирования, и каждый вектор движения соответствует одному пикселю в текущем блоке декодирования. Необязательно, количество параметров, требуемых для описания модели движения, изменяется между моделями движения. Для модели движения, имеющей 2n параметров, вектор передачи модели движения, определяемый стороной декодера, является 2n-мерным вектором, и группа векторов движения текущего блока декодирования может, в общем, включать в себя n векторов движения. Например, для аффинного движения, когда все пиксели в текущем блоке декодирования представляются посредством использования модели аффинного движения, в общем, модель аффинного движения может быть выражена как . То есть, модель аффинного движения имеет шесть параметров, и группа векторов движения может включать в себя три вектора движения. Для модели полного движения, в общем, используются 12 параметров, и группа векторов движения может включать в себя шесть векторов движения. Необязательно, определение группы векторов движения может быть определением, по меньшей мере, одного вектора движения из группы векторов движения, или определением одного вектора движения из группы векторов движения, или определением n векторов движения или всех векторов движения из группы векторов движения. Например, для аффинного движения, группа векторов движения может включать в себя, по меньшей мере, три вектора движения, и определение группы векторов движения текущего блока декодирования может быть определением одного вектора движения, трех векторов движения, или всех векторов движения из группы векторов вычисления. Согласно количеству векторов движения, определенных стороной кодера, сторона декодера также соответственно определяет соответствующее количество векторов движения. Настоящее изобретение не ограничено этим.
[0168] в этом варианте осуществления настоящего изобретения, первый модуль 410 определения устройства декодирования может определять вектор передачи модели движения и группу векторов движения текущего блока декодирования согласно принятому битовому потоку. В частности, сторона декодера может сначала определять вектор передачи модели движения текущего блока декодирования согласно принятому битовому потоку. Все компоненты вектора передачи модели движения могут быть разностями между вектором инициализации модели движения и вектором оптимизации модели движения. Альтернативно, некоторые компоненты вектора передачи модели движения являются разностями между вектором инициализации модели движения и вектором оптимизации модели движения, и некоторые компоненты являются компонентами в соответствующих местоположениях вектора оптимизации модели движения. Настоящее изобретение не ограничено этим.
[0169] в необязательном порядке, в одном варианте осуществления, аффинное движение используется в качестве примера. Когда первый модуль 410 определения определяет группу векторов движения текущего блока декодирования, и группа векторов движения включает в себя три вектора движения, по меньшей мере, один вектор движения из группы векторов вычисления может сначала определяться согласно битовому потоку. В частности, когда первый модуль 410 определения устройства декодирования определяет, что некоторые компоненты вектора передачи модели движения являются разностями между вектором инициализации модели движения и вектором оптимизации модели движения, и что некоторые компоненты являются компонентами в соответствующих местоположениях вектора оптимизации модели движения, сторона декодера может определять упомянутый, по меньшей мере, один вектор движения из группы векторов вычисления согласно битовому потоку. Сторона декодера декодирует битовый поток видео, определяет целевой подходящий блок текущего блока декодирования, и определяет вектор движения целевого подходящего блока и опорный кадр целевого подходящего блока. Сторона декодера отдельно получает номер порядка вывода poc опорного кадра целевого подходящего блока и номер порядка вывода poc опорного кадра текущего блока декодирования; выполняет масштабирование над вектором движения целевого подходящего блока согласно отношению номера порядка вывода poc опорного кадра текущего блока декодирования к номеру порядка вывода poc опорного кадра целевого подходящего блока, чтобы отношение номера порядка вывода poc опорного кадра целевого подходящего блока к номеру порядка вывода poc опорного кадра текущего блока декодирования было таким же как отношение вектора движения до масштабирования к вектору движения после масштабирования; и затем определяет масштабированный вектор движения в качестве первого вектора движения в группе векторов движения текущего блока декодирования. Отношение первого вектора движения к вектору движения целевого подходящего блока является таким же как отношение номера порядка вывода опорного кадра текущего блока декодирования к номеру порядка вывода опорного кадра целевого подходящего блока.
[0170] в необязательном порядке, в одном варианте осуществления, аффинное движение используется в качестве примера. Первый модуль 410 определения определяет группу векторов движения текущего блока декодирования. Группа векторов движения включает в себя три вектора движения, и каждый вектор движения из группы векторов движения может определяться согласно битовому потоку. В частности, при определении, что все компоненты вектора передачи модели движения могут быть разностями между вектором инициализации модели движения и вектором оптимизации модели движения, первый модуль 410 определения стороны декодера может определять каждый вектор движения из группы векторов движения согласно битовому потоку. Целевой подходящий блок текущего блока декодирования может сначала определяться согласно значению индекса в битовом потоке. Опорный кадр целевого подходящего блока определяется в качестве опорного кадра текущего блока декодирования. Вектор движения целевого подходящего блока определяется в качестве первого вектора движения в группе векторов движения текущего блока декодирования.
[0171] в этом варианте осуществления настоящего изобретения, после определения первого вектора движения в группе векторов движения текущего блока декодирования, первый модуль 410 определения определяет второй вектор движения в группе векторов движения текущего блока декодирования согласно первому вектору движения. Второй вектор движения является вектором движения в группе векторов движения, отличающимся от первого вектора движения. В частности, множество подходящих блоков текущего блока декодирования сначала определяются из декодированных блоков, соседних вокруг текущего блока декодирования. Множество подходящих блоков соответствуют одному и тому же пикселю. Необязательно, пиксель может быть вершиной текущего блока декодирования. Например, как показано на фиг. 2, для текущего блока декодирования, подходящие блоки могут включать в себя d и e, и множество подходящих блоков не включают в себя целевой подходящий блок определенного первого вектора движения. Затем, определяется опорный кадр каждого подходящего блока. Если опорный кадр подходящего блока не является таким же кадром как опорный кадр целевого подходящего блока, соответствующего первому вектору движения, то есть, опорным кадром текущего блока декодирования, над вектором движения подходящего блока выполняется масштабирование согласно отношению номера порядка вывода poc опорного кадра целевого подходящего блока к номеру порядка вывода poc опорного кадра подходящего блока, чтобы отношение номера порядка вывода опорного кадра текущего блока к номеру порядка вывода опорного кадра подходящего блока было таким же как отношение между векторами движения. Масштабированный вектор движения каждого подходящего блока отдельно сравнивается с первым вектором движения. Когда масштабированный вектор движения подходящего блока отличается от первого вектора движения, и различие является наименьшим, этот подходящий блок определяется в качестве целевого подходящего блока текущего блока декодирования, и масштабированный вектор движения, соответствующий этому целевому подходящему блоку, определяется в качестве второго вектора движения в группе векторов движения текущего блока декодирования.
[0172] в этом варианте осуществления настоящего изобретения, согласно вышеизложенному способу, первый модуль 410 определения может определять множество вторых векторов движения. Например, когда группа векторов движения текущего блока декодирования включает в себя три вектора движения, после того, как определяется первый вектор движения в группе векторов движения, другие два вторых вектора движения могут определяться согласно вышеизложенному способу, и дополнительно определяется каждый вектор движения из группы векторов движения. Однако настоящее изобретение не ограничено этим.
[0173] в необязательном порядке, в одном варианте осуществления настоящего изобретения, в одном варианте осуществления, аффинное движение используется в качестве примера. Первый модуль 410 определения определяет группу векторов движения текущего блока декодирования. Группа векторов движения включает в себя три вектора движения, и каждый вектор движения из группы векторов движения может дополнительно определяться согласно битовому потоку. В частности, при определении, что все компоненты вектора передачи модели движения могут быть разностями между вектором инициализации модели движения и вектором оптимизации модели движения, сторона декодера может определять каждый вектор движения из группы векторов движения согласно битовому потоку, и напрямую получать значение каждого вектора движения из группы векторов движения текущего блока декодирования согласно битовому потоку. В дополнение, целевые подходящие блоки, текущего блока декодирования, соответствующие всем векторам движения в группе векторов движения, имеют один и тот же опорный кадр, и опорный кадр является опорным кадром текущего блока декодирования.
[0174] в этом варианте осуществления настоящего изобретения, второй модуль 420 определения определяет значения предсказания первого набора компонент вектора инициализации модели движения текущего блока декодирования согласно упомянутому, по меньшей мере, одному вектору движения из группы векторов движения. Вектор инициализации модели движения включает в себя упомянутые, по меньшей мере, четыре компоненты. Первый набор компонент включает в себя, по меньшей мере, одну компоненту вектора инициализации модели движения. В частности, модель аффинного движения используется в качестве примера. Аффинная модель может представляться посредством использования шести параметров, и упомянутые шесть параметров могут быть выражены как . Местоположение, в опорном кадре, каждого пикселя в текущем блоке декодирования может определяться согласно формуле (7), где x и y являются координатными значениями любого пикселя в текущем блоке декодирования, и являются координатными значениями, в соответствующей точке предсказания в опорном кадре, пикселя, и и являются векторами движения любого пикселя в текущем блоке декодирования. Может получаться формула (8). Согласно группе векторов движения, определенной на этапе s210, группа векторов движения может быть выражена как , и координаты векторов движения в группе векторов движения могут быть (0, 0), (w, 0), и (0, h), где w является шириной текущего блока декодирования, и h является высотой текущего блока декодирования. Формула (9) может получаться посредством подстановки группы векторов движения и координат в формулу (8), где является x-направленной компонентой j-ого подходящего вектора движения в первой группе подходящих векторов движения, является y-направленной компонентой j-ого подходящего вектора движения в первой группе подходящих векторов движения, и j=0, 1, 2. Соответственно, могут получаться все параметры в модели аффинного движения . Как показано в формуле (6), группа векторов движения текущего блока декодирования подставляется в формулу (6), и может определяться вектор инициализации модели движения текущего блока декодирования. Вектор инициализации модели движения является шестимерным вектором. Необязательно, для другой модели движения, вектор инициализации является вектором, включающим в себя, по меньшей мере, четыре размерности. Значения предсказания первого набора компонент могут определяться согласно вектору инициализации модели движения. Значения предсказания первого набора компонент могут быть, по меньшей мере, одной компонентой вектора инициализации модели движения.
[0175] в этом варианте осуществления настоящего изобретения, третий модуль 430 определения определяет вектор оптимизации модели движения текущего блока декодирования согласно значениям предсказания первого набора компонент и вектору передачи модели движения, чтобы сторона декодера выполняла декодирование согласно вектору оптимизации модели движения. В частности, значения передачи модели движения текущего блока декодирования могут быть выражены как . Значения передачи первого набора компонент могут представляться посредством и , , и , где и являются числовыми значениями, полученными после квантования значений предсказания и первого набора компонент. Другие значения передачи параметров текущего блока декодирования могут быть выражены как , и может определяться , где является вектором оптимизации модели движения текущего блока декодирования.
[0176] в этом варианте осуществления настоящего изобретения, третий модуль 430 определения может квантовать значения предсказания и первого набора компонент, чтобы определять квантованные значения предсказания и первого набора компонент. В частности, аффинное движение используется в качестве примера. Вектор инициализации модели движения определяется согласно формуле (6). В векторе инициализации модели движения, и являются параметрами поступательного движения, и относятся к первому вектору движения в группе векторов движения. и могут определяться в качестве первого набора компонент. Необязательно, точность квантования упомянутых двух параметров может быть 1/16 или 1/4. 1/16 используется в качестве примера. Сначала, масштабируется четырехкратно, чтобы точность увеличивалась с 1/4 на 1/16; и затем, квантованные и , чья точность также равняется 1/16, вычисляются посредством использования , чья точность равняется 1/16, чтобы получать и , то есть, и являются квантованными значениями предсказания первого набора компонент.
[0177] в необязательном порядке, в одном варианте осуществления, третий модуль 430 определения может определять значения предсказания первого набора компонент вектора инициализации модели движения согласно формуле (6). Первый набор компонент включает в себя все компоненты вектора инициализации модели движения, то есть, первый набор компонент включает в себя шесть параметров, так что определяются значения передачи модели движения текущего блока декодирования, то есть, значения передачи первого набора компонент являются , где , и является вектором оптимизации модели движения текущего блока декодирования.
[0178] в этом варианте осуществления настоящего изобретения, третий модуль 430 определения может определять точность квантования модели движения согласно текущему блоку декодирования; квантовать вектор оптимизации модели движения согласно точности квантования модели движения; и выполнять синтаксический разбор, декодирование и восстановление над текущим блоком декодирования согласно квантованному вектору оптимизации модели движения.
[0179] в частности, третий модуль 430 определения определяет точность квантования модели движения текущего блока декодирования. В частности, точность квантования может определяться согласно размеру текущего блока декодирования и информации точности. Размер текущего блока декодирования включает в себя ширину текущего блока декодирования и высоту текущего блока декодирования, и информация точности включает в себя точность квантования группы векторов движения. В частности, можно узнать, согласно формуле (6), что параметры модели движения относятся к ширине и высоте текущего блока декодирования. Поэтому, точность квантования может определяться согласно формуле (10). 1/p является точностью квантования группы векторов движения текущего блока декодирования. Необязательно, точность квантования группы векторов движения равняется, в общем, 1/4, таким образом, p=4. W является шириной текущего блока декодирования, и h является высотой текущего блока декодирования. Например, если ширина текущего блока декодирования равняется 16 и высота равняется 32, точность квантования группы векторов движения равняется 1/(32×4)=1/128; если ширина текущего блока декодирования равняется 16 и высота равняется 8, точность квантования равняется 1/(16×4)=1/64.
[0180] в частности, в этом варианте осуществления настоящего изобретения, третий модуль 430 определения квантует определенный вектор оптимизации модели движения согласно определенной точности квантования, чтобы получать квантованный вектор оптимизации модели движения .
[0181] в частности, в этом варианте осуществления настоящего изобретения, третий модуль 430 определения декодирует текущий блок декодирования согласно квантованному вектору оптимизации модели движения. В частности, вектор оптимизации модели движения подставляется в формулу (7), и затем может получаться опорное местоположение смещения каждого пикселя с точностью q в текущем блоке декодирования. Выборка пикселя предсказания каждой выборки пикселя в текущем блоке декодирования получается посредством вычисления в опорном местоположении смещения. Затем, декодирование и восстановление выполняются над выборкой пикселя предсказания согласно определенному остатку предсказания, в принятом битовом потоке, текущего блока декодирования. Необязательно, выборка пикселя может быть одним пикселем или малым блоком пикселей, включающим в себя множество пикселей. Настоящее изобретение не ограничено этим.
[0182] следует понимать, что устройство 400 декодирования согласно этому варианту осуществления настоящего изобретения может быть соответствующим образом сконфигурировано с возможностью исполнять способ 200 декодирования видеоизображения в варианте осуществления настоящего изобретения. В дополнение, вышеизложенные и другие действия и/или функции модулей в устройстве 400 декодирования предназначены для реализации соответствующих обработок способов на фиг. 3 и фиг. 4. Для краткости, подробности дополнительно здесь не описываются.
[0183] поэтому, устройство декодирования в этом варианте осуществления настоящего изобретения определяет группу векторов движения и вектор передачи модели движения текущего блока декодирования согласно принятому битовому потоку; определяет вектор инициализации модели движения текущего блока декодирования согласно группе векторов движения; определяет вектор оптимизации модели движения согласно вектору инициализации модели движения и вектору передачи модели движения; и декодирует и восстанавливает вектор оптимизации модели движения. По такому принципу, объем данных и количество занятых бит в передаче кодирования и декодирования могут уменьшаться. В дополнение, когда вектор оптимизации модели движения определяется и вектор оптимизации квантуется, определенная точность квантования определяется согласно размеру текущего блока декодирования и точности квантования вектора движения текущего блока декодирования. Это также может уменьшать количество бит, требуемое в передаче параметра.
[0184] как показано на фиг. 7, один вариант осуществления настоящего изобретения дополнительно обеспечивает устройство 500 кодирования, включающее в себя процессор 510, запоминающее устройство 520, и шинную систему 530. Процессор 510 и запоминающее устройство 520 соединены посредством использования шинной системы 530. Запоминающее устройство 520 сконфигурировано с возможностью хранить команду. Процессор 510 сконфигурирован с возможностью исполнять команду, сохраненную в запоминающем устройстве 520. Запоминающее устройство 520 устройства 500 кодирования хранит программный код, и процессор 510 может вызывать программный код, сохраненный в запоминающем устройстве 520, чтобы выполнять следующие действия: определение группы векторов движения текущего блока кодирования, где группа векторов движения включает в себя, по меньшей мере, один вектор движения текущего блока кодирования; определение значений предсказания первого набора компонент вектора инициализации модели движения текущего блока кодирования согласно упомянутому, по меньшей мере, одному вектору движения из группы векторов движения, где вектор инициализации модели движения включает в себя, по меньшей мере, четыре компоненты; определение подлежащих передаче значений первого набора компонент согласно значениям предсказания первого набора компонент; и кодирование подлежащих передаче значений первого набора компонент, и передачу кодированных подлежащих передаче значений первого набора компонент стороне декодера.
[0185] поэтому, устройство кодирования в этом варианте осуществления настоящего изобретения определяет группу векторов движения текущего блока кодирования; определяет вектор инициализации модели движения текущего блока кодирования согласно группе векторов движения; определяет подлежащие передаче значения модели движения согласно вектору инициализации модели движения; и кодирует подлежащие передаче значения модели движения для передачи, чтобы сторона декодера выполняла декодирование согласно подлежащим передаче значениям модели движения. По такому принципу, объем данных и количество занятых бит в передаче кодирования и декодирования могут уменьшаться.
[0186] следует понимать, что, в этом варианте осуществления настоящего изобретения, процессор 510 может быть центральным блоком обработки (central processing unit, "cpu" для краткости), или процессор 510 может быть другим процессором общего назначения, цифровым сигнальным процессором (dsp), специализированной интегральной схемой (asic), программируемой пользователем вентильной матрицей (fpga) или другим программируемым логическим устройством, дискретным логическим элементом или транзисторным логическим устройством, дискретным аппаратным узлом, или подобным. Процессор общего назначения может быть микропроцессором, или процессор может быть любым стандартным процессором или подобным.
[0187] запоминающее устройство 520 может включать в себя запоминающее устройство только для чтения и запоминающее устройство с произвольным доступом, и обеспечивать команды и данные для процессора 510. Часть запоминающего устройства 520 может дополнительно включать в себя энергонезависимую запоминающее устройство с произвольным доступом. Например, запоминающее устройство 520 может дополнительно хранить информацию типа устройства.
[0188] в дополнение к шине данных, шинная система 530 может дополнительно включать в себя шину источника питания, шину управления, шину сигнала состояния, и подобное. Однако для ясного описания, различные шины представлены посредством шинной системы 530 на фигуре.
[0189] в обработке реализации, этапы вышеизложенных способов могут осуществляться с использованием интегрированной логической схемы аппаратного обеспечения в процессоре 510 или посредством использования инструкции в форме программного обеспечения. Этапы способов, раскрытых со ссылкой на варианты осуществления настоящего изобретения, могут напрямую осуществляться посредством аппаратного процессора, или могут осуществляться посредством комбинации аппаратного обеспечения и программного модуля в процессоре. Программный модуль может располагаться в зрелом запоминающем носителе в данной области техники, таком как запоминающее устройство с произвольным доступом, флэш-память, запоминающее устройство только для чтения, программируемая запоминающее устройство только для чтения, электрически-стираемая программируемая запоминающее устройство, или регистр. Запоминающий носитель располагается в запоминающем устройстве 520, и процессор 510 считывает информацию из запоминающего устройства 520 и осуществляет этапы в вышеизложенных способах в комбинации с аппаратным обеспечением процессора 501. Чтобы избегать повторения, подробности дополнительно здесь не описываются.
[0190] в необязательном порядке, в одном варианте осуществления, процессор 510 может вызывать программный код, сохраненный в запоминающем устройстве 520, чтобы выполнять следующие действия: определение вектора оптимизации модели движения текущего блока кодирования; и определение подлежащих передаче значений первого набора компонент согласно значениям предсказания первого набора компонент и вектору оптимизации модели движения.
[0191] в необязательном порядке, в одном варианте осуществления, процессор 510 может вызывать программный код, сохраненный в запоминающем устройстве 520, чтобы выполнять следующие действия: определение точности квантования модели движения согласно размеру текущего блока кодирования и информации точности; квантование вектора оптимизации модели движения согласно точности квантования модели движения; и определение подлежащих передаче значений первого набора компонент согласно значениям предсказания первого набора компонент и квантованному вектору оптимизации модели движения.
[0192] в необязательном порядке, в одном варианте осуществления, размер текущего блока кодирования включает в себя ширину текущего блока кодирования и высоту текущего блока кодирования, и информация точности включает в себя точность квантования группы векторов движения. Процессор 510 может вызывать программный код, сохраненный в запоминающем устройстве 520, чтобы выполнять следующую операцию: определение точности квантования модели движения q согласно формуле (10), где p является точностью квантования группы векторов движения, w является шириной текущего блока кодирования, и h является высотой текущего блока кодирования.
[0193] в необязательном порядке, в одном варианте осуществления, первый набор компонент включает в себя, по меньшей мере, одну компоненту из шести компонент вектора инициализации модели движения, и процессор 510 может вызывать программный код, сохраненный в запоминающем устройстве 520, чтобы выполнять следующую команду: определение упомянутых шести компонент вектора инициализации модели движения согласно формуле (6), где i=0, 1, 2, 3, 4, 5, w является шириной текущего блока кодирования, h является высотой текущего блока кодирования, является x-направленной компонентой вектора движения , является y-направленной компонентой вектора движения , и j=0, 1, 2.
[0194] в необязательном порядке, в одном варианте осуществления, первый набор компонент включает в себя две компоненты вектора инициализации модели движения, и процессор 510 может вызывать программный код, сохраненный в запоминающем устройстве 520, чтобы выполнять следующую операцию: определение подлежащих передаче значений первого набора компонент, где подлежащие передаче значения первого набора компонент включают в себя и , , , и являются квантованными векторами оптимизации модели движения, соответствующими первому набору компонент, и и являются числовыми значениями, полученными после квантования значений предсказания и первого набора компонент.
[0195] в необязательном порядке, в одном варианте осуществления, первый набор компонент включает в себя упомянутые шесть компонент вектора инициализации модели движения, и процессор 510 может вызывать программный код, сохраненный в запоминающем устройстве 520, чтобы выполнять следующую операцию: определение подлежащих передаче значений первого набора компонент, где подлежащие передаче значения первого набора компонент включают в себя , и i=0, 1, 2, 3, 4, 5, где , является квантованным вектором оптимизации модели движения, и является значением предсказания первого набора компонент.
[0196] в необязательном порядке, в одном варианте осуществления, процессор 510 может вызывать программный код, сохраненный в запоминающем устройстве 520, чтобы выполнять следующие операции: определение множества подходящих блоков текущего блока кодирования, где каждый подходящий блок из множества подходящих блоков является кодированным блоком, смежным с текущим блоком кодирования; определение значения ошибки согласованности между блоком предсказания, соответствующим вектору движения каждого подходящего блока из множества подходящих блоков, и текущим блоком кодирования; определение, в качестве целевого подходящего блока текущего блока кодирования, подходящего блока, соответствующего наименьшему значению ошибки согласованности в множестве значений ошибки согласованности, соответствующих множеству подходящих блоков; получение номера порядка вывода опорного кадра текущего блока кодирования и номера порядка вывода опорного кадра целевого подходящего блока; определение первого вектора движения в группе векторов движения согласно отношению номера порядка вывода опорного кадра текущего блока кодирования к номеру порядка вывода опорного кадра целевого подходящего блока, где отношение первого вектора движения к вектору движения целевого подходящего блока является таким же как отношение номера порядка вывода опорного кадра текущего блока кодирования к номеру порядка вывода опорного кадра целевого подходящего блока; и определение группы векторов движения согласно первому вектору движения.
[0197] в необязательном порядке, в одном варианте осуществления, процессор 510 может вызывать программный код, сохраненный в запоминающем устройстве 520, чтобы выполнять следующие действия: определение множества подходящих блоков, соответствующих одному и тому же пикселю в текущем блоке кодирования, где каждый подходящий блок из множества подходящих блоков является кодированным блоком, смежным с текущим блоком кодирования; определение значения ошибки согласованности между блоком предсказания, соответствующим вектору движения каждого подходящего блока из множества подходящих блоков, и текущим блоком кодирования; определение, в качестве целевого подходящего блока текущего блока кодирования, подходящего блока, соответствующего наименьшему значению ошибки согласованности в множестве значений ошибки согласованности, соответствующих множеству подходящих блоков; определение вектора движения целевого подходящего блока в качестве первого вектора движения в группе векторов движения; определение второго вектора движения в группе векторов движения согласно первому вектору движения; и определение группы векторов движения согласно первому вектору движения и второму вектору движения.
[0198] в необязательном порядке, в одном варианте осуществления, процессор 510 может вызывать программный код, сохраненный в запоминающем устройстве 520, чтобы выполнять следующие действия: определение множества групп подходящих векторов движения текущего блока кодирования, где каждая группа подходящих векторов движения из множества групп подходящих векторов движения включает в себя три подходящих вектора движения; определение подходящего опорного кадра, соответствующего каждой группе подходящих векторов движения из множества групп подходящих векторов движения; для каждой группы подходящих векторов движения, определение координатных значений каждого пикселя, в соответствующей точке предсказания в подходящем опорном кадре, в текущем блоке кодирования; для каждой группы подходящих векторов движения, определение значения ошибки согласованности текущего блока кодирования согласно координатным значениям каждого пикселя в текущем блоке кодирования и координатным значениям каждого пикселя, в соответствующей точке предсказания в подходящем опорном кадре, в текущем блоке кодирования; и определение, в качестве группы векторов движения текущего блока кодирования, группы подходящих векторов движения, соответствующей наименьшему значению ошибки согласованности текущего блока кодирования. Необязательно, в одном варианте осуществления, процессор 510 может вызывать программный код, сохраненный в запоминающем устройстве 520, чтобы выполнять следующие действия: определение первого блока предсказания текущего блока кодирования согласно вектору инициализации модели движения; определение первого значения ошибки согласованности между текущим блоком кодирования и первым блоком предсказания; определение, из множества блоков предсказания, включенных в опорный кадр текущего блока кодирования, второго блока предсказания с наименьшим значением ошибки согласованности относительно текущего блока кодирования; определение второго значения ошибки согласованности между текущим блоком кодирования и вторым блоком предсказания; и определение вектора оптимизации модели движения текущего блока кодирования согласно первому значению ошибки согласованности и второму значению ошибки согласованности.
[0199] в необязательном порядке, в одном варианте осуществления, процессор 510 может вызывать программный код, сохраненный в запоминающем устройстве 520, чтобы выполнять следующую операцию: когда первое значение ошибки согласованности меньше второго значения ошибки согласованности, определение вектора инициализации модели движения в качестве вектора оптимизации модели движения; или когда первое значение ошибки согласованности больше второго значения ошибки согласованности, определение вектора оптимизации модели движения согласно пикселю второго блока предсказания и пикселю текущего блока кодирования.
[0200] следует понимать, что устройство кодирования 500 согласно этому варианту осуществления настоящего изобретения может соответствовать устройству 300 кодирования в варианте осуществления настоящего изобретения, и может соответствовать соответствующему средству, которое исполняет способ 100 в варианте осуществления настоящего изобретения. В дополнение, вышеизложенные и другие действия и/или функции модулей в устройстве 500 кодирования предназначены для реализации соответствующих обработок способов на фиг. 1 и фиг. 2. Для краткости, подробности дополнительно здесь не описываются.
[0201] поэтому, устройство кодирования в этом варианте осуществления настоящего изобретения определяет группу векторов движения текущего блока кодирования; определяет вектор инициализации модели движения текущего блока кодирования согласно группе векторов движения; определяет подлежащие передаче значения модели движения согласно вектору инициализации модели движения; и кодирует подлежащие передаче значения модели движения для передачи, чтобы сторона декодера выполняла декодирование согласно подлежащим передаче значениям модели движения. По такому принципу, объем данных и количество занятых бит в передаче кодирования и декодирования могут уменьшаться. В дополнение, когда вектор оптимизации модели движения определяется и вектор оптимизации квантуется, определенная точность квантования определяется согласно размеру текущего блока кодирования и точности квантования вектора движения текущего блока кодирования. Это также может уменьшать количество бит, требуемое для параметра кодирования.
[0202] как показано на фиг. 8, один вариант осуществления настоящего изобретения дополнительно обеспечивает устройство 600 декодирования, включающее в себя процессор 610, запоминающее устройство 620, и шинную систему 630. Процессор 610 и запоминающее устройство 620 соединены посредством использования шинной системы 630. Запоминающее устройство 620 сконфигурировано с возможностью хранить инструкцию. Процессор 610 сконфигурирован с возможностью исполнять инструкцию, сохраненную в запоминающем устройстве 620. Запоминающее устройство 620 устройства 600 декодирования хранит программный код, и процессор 610 может вызывать программный код, сохраненный в запоминающем устройстве 620, чтобы выполнять следующие операции: определение группы векторов движения и вектора передачи модели движения текущего блока декодирования согласно битовому потоку, где группа векторов движения включает в себя, по меньшей мере, один вектор движения текущего блока декодирования, и вектор передачи модели движения включает в себя, по меньшей мере, четыре компоненты; определение значений предсказания первого набора компонент вектора инициализации модели движения текущего блока декодирования согласно упомянутому, по меньшей мере, одному вектору движения из группы векторов движения, где вектор инициализации модели движения включает в себя, по меньшей мере, четыре компоненты; и определение вектора оптимизации модели движения текущего блока декодирования согласно значениям предсказания первого набора компонент и вектору передачи модели движения, чтобы декодировать текущий блок декодирования согласно вектору оптимизации модели движения.
[0203] поэтому, устройство декодирования в этом варианте осуществления настоящего изобретения определяет группу векторов движения и вектор передачи модели движения текущего блока декодирования согласно принятому битовому потоку; определяет вектор инициализации модели движения текущего блока декодирования согласно группе векторов движения; определяет вектор оптимизации модели движения согласно вектору инициализации модели движения и вектору передачи модели движения; и декодирует и восстанавливает вектор оптимизации модели движения. По такому принципу, объем данных и количество занятых бит в передаче кодирования и декодирования могут уменьшаться.
[0204] следует понимать, что, в этом варианте осуществления настоящего изобретения, процессор 610 может быть центральным блоком обработки (central processing unit, "cpu" для краткости), или процессор 610 может быть другим процессором общего назначения, цифровым сигнальным процессором (dsp), специализированной интегральной схемой (asic), программируемой пользователем вентильной матрицей (fpga) или другим программируемым логическим устройством, дискретным логическим элементом или транзисторным логическим устройством, дискретным аппаратным узлом, или подобным. Процессор общего назначения может быть микропроцессором, или процессор может быть любым стандартным процессором или подобным.
[0203] запоминающее устройство 620 может включать в себя запоминающее устройство только для чтения и запоминающее устройство с произвольным доступом, и обеспечивать команды и данные для процессора 610. Часть запоминающего устройства 620 может дополнительно включать в себя энергонезависимую запоминающее устройство с произвольным доступом. Например, запоминающее устройство 620 может дополнительно хранить информацию типа устройства.
[0206] в дополнение к шине данных, шинная система 630 может дополнительно включать в себя шину источника питания, шину управления, шину сигнала состояния, и подобное. Однако для ясного описания, различные шины представлены посредством шинной системы 630 на фигуре.
[0207] в обработке реализации, этапы вышеизложенных способов могут осуществляться с использованием интегрированной логической схемы аппаратного обеспечения в процессоре 610 или посредством использования инструкции в форме программного обеспечения. Этапы способов, раскрытых со ссылкой на варианты осуществления настоящего изобретения, могут напрямую осуществляться посредством аппаратного процессора, или могут осуществляться посредством комбинации аппаратного обеспечения и программного модуля в процессоре. Программный модуль может располагаться в зрелом запоминающем носителе в данной области техники, таком как запоминающее устройство с произвольным доступом, флэш-память, запоминающее устройство только для чтения, программируемая запоминающее устройство только для чтения, электрически-стираемая программируемая запоминающее устройство, или регистр. Запоминающий носитель располагается в запоминающем устройстве 620, и процессор 610 считывает информацию из запоминающего устройства 620 и осуществляет этапы в вышеизложенных способах в комбинации с аппаратным обеспечением процессора 610. Чтобы избегать повторения, подробности дополнительно здесь не описываются.
[0208] в необязательном порядке, в одном варианте осуществления, процессор 610 может вызывать программный код, сохраненный в запоминающем устройстве 620, чтобы выполнять следующие действия: определение точности квантования модели движения текущего блока декодирования; квантование вектора оптимизации модели движения согласно точности квантования модели движения; и декодирование текущего блока декодирования согласно квантованному вектору оптимизации модели движения.
[0209] в необязательном порядке, в одном варианте осуществления, процессор 610 может вызывать программный код, сохраненный в запоминающем устройстве 620, чтобы выполнять следующую операцию: определение точности квантования модели движения согласно размеру текущего блока декодирования и информации точности.
[0210] в необязательном порядке, в одном варианте осуществления, размер текущего блока декодирования включает в себя ширину текущего блока декодирования и высоту текущего блока декодирования, и информация точности включает в себя точность квантования группы векторов движения. Процессор 610 может вызывать программный код, сохраненный в запоминающем устройстве 620, чтобы выполнять следующую операцию: определение точности квантования модели движения q согласно формуле (10), где p является точностью квантования группы векторов движения, w является шириной текущего блока декодирования, и h является высотой текущего блока декодирования.
[0211] в необязательном порядке, в одном варианте осуществления, первый набор компонент включает в себя, по меньшей мере, одну компоненту из шести компонент вектора инициализации модели движения, и процессор 610 может вызывать программный код, сохраненный в запоминающем устройстве 620, чтобы выполнять следующую операцию: определение упомянутых шести компонент вектора инициализации модели движения согласно формуле (6), где i=0, 1, 2, 3, 4, 5, w является шириной текущего блока декодирования, h является высотой текущего блока декодирования, является x-направленной компонентой вектора движения , является y-направленной компонентой вектора движения , и j=0, 1, 2.
[0212] в необязательном порядке, в одном варианте осуществления, первый набор компонент включает в себя две компоненты вектора инициализации модели движения, и процессор 610 может вызывать программный код, сохраненный в запоминающем устройстве 620, чтобы выполнять следующую операцию: определение, что вектор оптимизации модели движения текущего блока декодирования является , , и , где является вектором передачи модели движения, и являются числовыми значениями, полученными посредством квантования значений предсказания и первого набора компонент.
[0213] в необязательном порядке, в одном варианте осуществления, первый набор компонент включает в себя упомянутые шесть компонент вектора инициализации модели движения, и процессор 610 может вызывать программный код, сохраненный в запоминающем устройстве 620, чтобы выполнять следующую операцию: определение, что вектор оптимизации модели движения текущего блока декодирования является , где , является вектором передачи модели движения, является значением предсказания первого набора компонент, и i=0, 1, 2, 3, 4, 5.
[0214] в необязательном порядке, в одном варианте осуществления, процессор 610 может вызывать программный код, сохраненный в запоминающем устройстве 620, чтобы выполнять следующие действия: определение целевого подходящего блока текущего блока декодирования и вектора движения целевого подходящего блока согласно битовому потоку; получение номера порядка вывода опорного кадра текущего блока декодирования и номера порядка вывода опорного кадра целевого подходящего блока; определение первого вектора движения в группе векторов движения согласно отношению номера порядка вывода опорного кадра текущего блока декодирования к номеру порядка вывода опорного кадра целевого подходящего блока, где отношение первого вектора движения к вектору движения целевого подходящего блока является таким же как отношение номера порядка вывода опорного кадра текущего блока декодирования к номеру порядка вывода опорного кадра целевого подходящего блока; и определение группы векторов движения согласно первому вектору движения.
[0215] в необязательном порядке, в одном варианте осуществления, процессор 610 может вызывать программный код, сохраненный в запоминающем устройстве 620, чтобы выполнять следующие действия: определение вектора движения целевого подходящего блока текущего блока декодирования согласно битовому потоку; определение вектора движения целевого подходящего блока текущего блока декодирования в качестве первого вектора движения в группе векторов движения; определение второго вектора движения в группе векторов движения согласно первому вектору движения; и определение группы векторов движения согласно первому вектору движения и второму вектору движения.
[0216] следует понимать, что устройство 600 декодирования согласно этому варианту осуществления настоящего изобретения может соответствовать устройству 400 декодирования в варианте осуществления настоящего изобретения, и может соответствовать соответствующему средству, которое исполняет способ 200 в варианте осуществления настоящего изобретения. В дополнение, вышеизложенные и другие действия и/или функции модулей в устройстве 600 декодирования предназначены для реализации соответствующих обработок способов на фиг. 3 и фиг. 4. Для краткости, подробности дополнительно здесь не описываются.
[0217] поэтому, устройство декодирования в этом варианте осуществления настоящего изобретения определяет группу векторов движения и вектор передачи модели движения текущего блока декодирования согласно принятому битовому потоку; определяет вектор инициализации модели движения текущего блока декодирования согласно группе векторов движения; определяет вектор оптимизации модели движения согласно вектору инициализации модели движения и вектору передачи модели движения; и декодирует и восстанавливает вектор оптимизации модели движения. По такому принципу, объем данных и количество занятых бит в передаче кодирования и декодирования могут уменьшаться. В дополнение, когда вектор оптимизации модели движения определяется и вектор оптимизации квантуется, определенная точность квантования определяется согласно размеру текущего блока декодирования и точности квантования вектора движения текущего блока декодирования. Это также может уменьшать количество бит, требуемое в передаче параметра.
[0218] специалист в данной области техники должен знать, что, блоки и этапы алгоритмов в примерах, описанных со ссылкой на варианты осуществления, раскрытые в этом описании, могут осуществляться посредством электронного аппаратного обеспечения или комбинации компьютерного программного обеспечения и электронного аппаратного обеспечения. То, выполняются ли функции посредством аппаратного обеспечения или программного обеспечения, зависит от конкретных применений и ограничивающих условий вариантов осуществления технических решений. Специалист в данной области техники может использовать разные способы, чтобы осуществлять описанные функции для каждого конкретного применения, но это не должно трактоваться, что осуществление выходит за объем настоящего изобретения.
[0219] специалисту в данной области техники следует ясно понимать, что, для цели удобного и краткого описания, для подробной рабочей обработки вышеизложенных системы, устройства, и блока, ссылка может делаться на соответствующую обработку в вышеизложенных вариантах осуществления, относящихся к способу, и подробности дополнительно здесь не описываются.
[0220] в нескольких вариантах осуществления, обеспеченных в этой заявке, следует понимать, что раскрытые система, устройство, и способ могут осуществляться другими способами. Например, описанный вариант осуществления для устройства является всего лишь примером. Например, разделение на блоки является всего лишь логическим разделением на функции и может быть другое разделение в фактическом варианте осуществления. Например, множество блоков или компонентов могут комбинироваться или интегрироваться в другую систему, или некоторые признаки могут игнорироваться или не выполняться. В дополнение, отображенные или описанные взаимные соединения или прямые соединения или соединения передачи данных могут быть непрямыми соединениями или соединениями передачи данных между некоторыми интерфейсами, устройствами, или блоками, и могут осуществляться в электронных, механических, или других формах.
[0221] блоки, описанные как отдельные части, могут быть или могут не быть физически отдельными. Части, отображенные как блоки, могут быть или могут не быть физическими блоками, и могут располагаться в одном положении или могут быть распределенными по множеству сетевых блоков. Некоторые или все из блоков могут выбираться согласно фактическим потребностям, чтобы достигать целей решений вариантов осуществления.
[0222] в дополнение, функциональные блоки в вариантах осуществления настоящего изобретения могут быть интегрированными в один блок обработки, или каждый из блоков может существовать одиночно физически, или два или более блоков являются интегрированными в один блок.
[0223] когда функции осуществляются в форме программного функционального блока и продаются или используются как независимый продукт, функции могут храниться в считываемом компьютером запоминающем носителе. На основе такого понимания, технические решения настоящего изобретения, по существу, или часть, вносящая вклад в предшествующий уровень техники, или некоторые из технических решений могут осуществляться в форме программного продукта. Программный продукт хранится в запоминающем носителе, и включает в себя несколько инструкций для предписания компьютерному устройству (которое может быть персональным компьютером, сервером, сетевым устройством, или подобным) выполнять все или некоторые из этапов способов, описанных в вариантах осуществления настоящего изобретения. Вышеизложенный запоминающий носитель включает в себя: любой носитель, который может хранить программный код, такой как флэш-устройство usb, съемный жесткий диск, запоминающее устройство только для чтения (rom, read-only memory), запоминающее устройство с произвольным доступом (ram, random access memory), магнитный диск, или оптический диск.
[0225] вышеизложенное описание является всего лишь конкретными вариантами осуществления настоящего изобретения, но не предназначено, чтобы ограничивать объем защиты настоящего изобретения. Любое изменение или замена, непосредственно понимаемые специалистом в данной области техники в пределах технического объема, раскрытого в настоящем изобретении, должно попадать в пределы объема охраны настоящего изобретения. Поэтому, объем охраны настоящего изобретения должен зависеть от объема охраны, определяемого формулой изобретения.
Claims (71)
1. Способ декодирования видеоизображения, содержащий этапы, на которых:
определяют группу векторов движения и вектор передачи модели движения текущего блока декодирования согласно битовому потоку, при этом группа векторов движения содержит по меньшей мере один вектор движения текущего блока декодирования и вектор передачи модели движения содержит по меньшей мере четыре компоненты,
определяют значения предсказания первого набора компонент вектора инициализации модели движения текущего блока декодирования согласно упомянутому по меньшей мере одному вектору движения из группы векторов движения, при этом вектор инициализации модели движения содержит по меньшей мере четыре компоненты, и
определяют вектор оптимизации модели движения текущего блока декодирования согласно значениям предсказания первого набора компонент и вектору передачи модели движения, с тем чтобы декодировать текущий блок декодирования согласно вектору оптимизации модели движения,
при этом способ дополнительно содержит этапы, на которых:
определяют точность квантования модели движения текущего блока декодирования,
квантуют вектор оптимизации модели движения согласно точности квантования модели движения и
декодируют текущий блок декодирования согласно квантованному вектору оптимизации модели движения, а также
определяют точность квантования модели движения согласно размеру текущего блока декодирования и информации точности,
отличающийся тем, что размер текущего блока декодирования представляет собой ширину текущего блока декодирования и высоту текущего блока декодирования, и информация точности содержит точность квантования группы векторов движения, и, соответственно, этап определения точности квантования модели движения согласно размеру текущего блока декодирования и информации точности содержит этап, на котором определяют точность квантования модели движения Q согласно следующей формуле:
где P - точность квантования группы векторов движения, W - ширина текущего блока декодирования и H - высота текущего блока декодирования.
2. Способ по п. 1, отличающийся тем, что каждый из вектора инициализации модели движения, вектора передачи модели движения и вектора оптимизации модели движения содержит шесть компонент, группа векторов движения содержит три вектора движения и эти три вектора движения находятся во взаимно-однозначном соответствии с тремя пикселями в текущем блоке декодирования.
4. Способ по п. 3, отличающийся тем, что первый набор компонент содержит две компоненты вектора инициализации модели движения; и
этап определения вектора оптимизации модели движения текущего блока декодирования согласно значениям предсказания первого набора компонент и вектору передачи модели движения содержит этап, на котором определяют то, что вектор оптимизации модели движения текущего блока декодирования является , где , , - вектор передачи модели движения и и числовые значения, полученные после квантования значений предсказания и первого набора компонент.
5. Способ по п. 3, отличающийся тем, что первый набор компонент содержит шесть компонент вектора инициализации модели движения; и
этап определения оптимального параметра модели движения текущего блока декодирования согласно параметру предсказания модели движения и параметру декодирования модели движения содержит этап, на котором определяют, что вектор оптимизации модели движения текущего блока декодирования является , где , - вектор передачи модели движения, - значение предсказания первого набора компонент и i = 0, 1, 2, 3, 4, 5.
6. Способ по п. 1, отличающийся тем, что этап определения группы векторов движения и вектора передачи модели движения текущего блока декодирования содержит этапы, на которых:
определяют целевой подходящий блок текущего блока декодирования и вектор движения целевого подходящего блока согласно битовому потоку;
получают номер порядка вывода опорного кадра текущего блока декодирования и номер порядка вывода опорного кадра целевого подходящего блока;
определяют первый вектор движения в группе векторов движения согласно отношению номера порядка вывода опорного кадра текущего блока декодирования к номеру порядка вывода опорного кадра целевого подходящего блока, при этом отношение первого вектора движения к вектору движения целевого подходящего блока является таким же, как отношение номера порядка вывода опорного кадра текущего блока декодирования к номеру порядка вывода опорного кадра целевого подходящего блока; и
определяют группу векторов движения согласно первому вектору движения.
7. Способ по п. 1, отличающийся тем, что этап определения группы векторов движения и вектора передачи модели движения текущего блока декодирования согласно битовому потоку содержит этапы, на которых:
определяют вектор движения целевого подходящего блока текущего блока декодирования согласно битовому потоку;
определяют вектор движения целевого подходящего блока текущего блока декодирования в качестве первого вектора движения в группе векторов движения;
определяют второй вектор движения в группе векторов движения согласно первому вектору движения; и
определяют группу векторов движения согласно первому вектору движения и второму вектору движения.
8. Устройство декодирования для декодирования видеоизображения, содержащее:
первый модуль определения, сконфигурированный определять группу векторов движения и вектор передачи модели движения текущего блока декодирования согласно битовому потоку, при этом группа векторов движения содержит по меньшей мере один вектор движения текущего блока декодирования и вектор передачи модели движения содержит по меньшей мере четыре компоненты;
второй модуль определения, сконфигурированный определять значения предсказания первого набора компонент вектора инициализации модели движения текущего блока декодирования согласно упомянутому по меньшей мере одному вектору движения из группы векторов движения, при этом вектор инициализации модели движения содержит по меньшей мере четыре компоненты; и
третий модуль определения, сконфигурированный определять вектор оптимизации модели движения текущего блока декодирования согласно значениям предсказания первого набора компонент и вектору передачи модели движения, с тем чтобы декодировать текущий блок декодирования согласно вектору оптимизации модели движения,
при этом третий модуль определения специально сконфигурирован:
определять точность квантования модели движения текущего блока декодирования,
квантовать вектор оптимизации модели движения согласно точности квантования модели движения и
декодировать текущий блок декодирования согласно квантованному вектору оптимизации модели движения, а также
определять точность квантования модели движения согласно размеру текущего блока декодирования и информации точности,
отличающееся тем, что размер текущего блока декодирования представляет собой ширину текущего блока декодирования и высоту текущего блока декодирования и информация точности содержит точность квантования группы векторов движения, и
тем, что третий модуль определения специально сконфигурирован определять точность квантования модели движения Q согласно следующей формуле:
где P - точность квантования группы векторов движения, W - ширина текущего блока декодирования и H - высота текущего блока декодирования.
9. Устройство декодирования по п. 8, отличающееся тем, что каждый из вектора инициализации модели движения, вектора передачи модели движения и вектора оптимизации модели движения содержит шесть компонент, группа векторов движения содержит три вектора движения и эти три вектора движения находятся во взаимно-однозначном соответствии с тремя пикселями в текущем блоке декодирования.
10. Устройство декодирования по п. 9, отличающееся тем, что первый набор компонент содержит по меньшей мере одну компоненту из шести компонент вектора инициализации модели движения и второй модуль определения специально сконфигурирован определять шесть компонент вектора инициализации модели движения согласно следующим формулам:
11. Устройство декодирования по п. 10, отличающееся тем, что первый набор компонент содержит две компоненты вектора инициализации модели движения; и
12. Устройство декодирования по п. 10, отличающееся тем, что первый набор компонент содержит шесть компонент вектора инициализации модели движения; и
13. Устройство декодирования по п. 11, отличающееся тем, что первый модуль определения специально сконфигурирован:
определять целевой подходящий блок текущего блока декодирования и вектор движения целевого подходящего блока согласно битовому потоку;
получать номер порядка вывода опорного кадра текущего блока декодирования и номер порядка вывода опорного кадра целевого подходящего блока;
определять первый вектор движения в группе векторов движения согласно отношению номера порядка вывода опорного кадра текущего блока декодирования к номеру порядка вывода опорного кадра целевого подходящего блока, при этом отношение первого вектора движения к вектору движения целевого подходящего блока является таким же, как отношение номера порядка вывода опорного кадра текущего блока декодирования к номеру порядка вывода опорного кадра целевого подходящего блока; и
определять группу векторов движения согласно первому вектору движения.
14. Устройство декодирования по п. 11, отличающееся тем, что первый модуль определения специально сконфигурирован:
определять вектор движения целевого подходящего блока текущего блока декодирования согласно битовому потоку;
определять вектор движения целевого подходящего блока текущего блока декодирования в качестве первого вектора движения в группе векторов движения;
определять второй вектор движения в группе векторов движения согласно первому вектору движения; и
определять группу векторов движения согласно первому вектору движения и второму вектору движения.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510085362.X | 2015-02-16 | ||
CN201510085362.XA CN104661031B (zh) | 2015-02-16 | 2015-02-16 | 用于视频图像编码和解码的方法、编码设备和解码设备 |
PCT/CN2015/086724 WO2016131229A1 (zh) | 2015-02-16 | 2015-08-12 | 用于视频图像编码和解码的方法、编码设备和解码设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2679195C1 true RU2679195C1 (ru) | 2019-02-06 |
Family
ID=53251655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2017132279A RU2679195C1 (ru) | 2015-02-16 | 2015-08-12 | Способ кодирования видеоизображения, способ декодирования видеоизображения, устройство кодирования и устройство декодирования |
Country Status (10)
Country | Link |
---|---|
US (1) | US10349079B2 (ru) |
EP (1) | EP3249927B1 (ru) |
JP (1) | JP6481912B2 (ru) |
KR (1) | KR102010510B1 (ru) |
CN (2) | CN104661031B (ru) |
MX (1) | MX2017010564A (ru) |
MY (1) | MY185702A (ru) |
RU (1) | RU2679195C1 (ru) |
SG (1) | SG11201706698YA (ru) |
WO (1) | WO2016131229A1 (ru) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2776356C1 (ru) * | 2019-03-11 | 2022-07-19 | Ханчжоу Хиквижен Диджитал Текнолоджи Ко., Лтд. | Способ и устройство кодирования и декодирования, оборудование на стороне кодирования и оборудование на стороне декодирования |
US11902563B2 (en) | 2019-03-11 | 2024-02-13 | Hangzhou Hikvision Digital Technology Co., Ltd. | Encoding and decoding method and device, encoder side apparatus and decoder side apparatus |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104661031B (zh) | 2015-02-16 | 2017-12-22 | 华为技术有限公司 | 用于视频图像编码和解码的方法、编码设备和解码设备 |
CN106331722B (zh) | 2015-07-03 | 2019-04-26 | 华为技术有限公司 | 图像预测方法和相关设备 |
CN106559669B (zh) | 2015-09-29 | 2018-10-09 | 华为技术有限公司 | 预测图像编解码方法及装置 |
CN111526361B (zh) | 2016-02-06 | 2022-05-13 | 华为技术有限公司 | 图像编解码方法及装置 |
KR102191846B1 (ko) * | 2016-08-15 | 2020-12-17 | 노키아 테크놀로지스 오와이 | 비디오 인코딩 및 디코딩 |
US10979732B2 (en) * | 2016-10-04 | 2021-04-13 | Qualcomm Incorporated | Adaptive motion vector precision for video coding |
CN108271028A (zh) * | 2016-12-30 | 2018-07-10 | 北京优朋普乐科技有限公司 | 一种子像素全搜索方法及装置 |
CN118233624A (zh) | 2017-06-26 | 2024-06-21 | 交互数字Vc控股公司 | 用于视频编码和解码的方法及设备 |
US11889100B2 (en) * | 2017-11-14 | 2024-01-30 | Qualcomm Incorporated | Affine motion vector prediction in video coding |
WO2019191867A1 (zh) * | 2018-04-02 | 2019-10-10 | 华为技术有限公司 | 一种视频编解码方法和装置 |
KR20200133327A (ko) * | 2018-04-12 | 2020-11-27 | 삼성전자주식회사 | 부호화 방법 및 그 장치, 복호화 방법 및 그 장치 |
CN110536135B (zh) * | 2018-05-25 | 2021-11-05 | 腾讯美国有限责任公司 | 用于视频编解码的方法和设备 |
TWI746994B (zh) | 2018-06-19 | 2021-11-21 | 大陸商北京字節跳動網絡技術有限公司 | 用於不同參考列表的不同精確度 |
CN118301334A (zh) | 2018-07-11 | 2024-07-05 | 华为技术有限公司 | 视频编码器、视频解码器及相应方法 |
EP4325859A3 (en) | 2018-09-19 | 2024-05-15 | Beijing Bytedance Network Technology Co., Ltd. | Syntax reuse for affine mode with adaptive motion vector resolution |
MX2021003325A (es) * | 2018-09-21 | 2021-05-14 | Guangdong Oppo Mobile Telecommunications Corp Ltd | Metodo de codificacion/decodificacion de se?ales de imagen y dispositivo para lo mismo. |
EP3861746A1 (en) * | 2018-10-04 | 2021-08-11 | InterDigital VC Holdings, Inc. | Block size based motion vector coding in affine mode |
WO2020114406A1 (en) * | 2018-12-03 | 2020-06-11 | Beijing Bytedance Network Technology Co., Ltd. | Partial pruning method for inter prediction |
KR20210121021A (ko) | 2019-01-31 | 2021-10-07 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 어파인 모드 적응적 움직임 벡터 해상도 코딩 문맥 |
WO2020156517A1 (en) | 2019-01-31 | 2020-08-06 | Beijing Bytedance Network Technology Co., Ltd. | Fast algorithms for symmetric motion vector difference coding mode |
US11831867B2 (en) * | 2019-02-15 | 2023-11-28 | Nokia Technologies Oy | Apparatus, a method and a computer program for video coding and decoding |
CN113519160B (zh) | 2019-03-05 | 2023-09-05 | 寰发股份有限公司 | 视频编码中具有运动微调的双向预测视频处理方法和装置 |
US11343525B2 (en) * | 2019-03-19 | 2022-05-24 | Tencent America LLC | Method and apparatus for video coding by constraining sub-block motion vectors and determining adjustment values based on constrained sub-block motion vectors |
CN109874029B (zh) * | 2019-04-22 | 2021-02-12 | 腾讯科技(深圳)有限公司 | 视频描述生成方法、装置、设备及存储介质 |
CN110263547B (zh) * | 2019-05-31 | 2021-07-20 | 创新先进技术有限公司 | 基于合约状态的修改次序实现动态加密的方法及装置 |
US11076167B2 (en) * | 2019-06-24 | 2021-07-27 | FG Innovation Company Limited | Device and method for coding video data |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1158806A1 (en) * | 2000-05-24 | 2001-11-28 | Samsung Electronics Co., Ltd. | Motion vector coding |
US20040151245A1 (en) * | 2000-01-21 | 2004-08-05 | Jani Lainema | Method for encoding and decoding video information, a motion compensated video encoder and a corresponding decoder |
EP2252066A2 (en) * | 1997-03-17 | 2010-11-17 | Mitsubishi Denki Kabushiki Kaisha | Video decoder and decoding method |
RU2012101686A (ru) * | 2009-06-19 | 2013-07-27 | Франс Телеком | Способ и устройство кодирования и декодирования информации изображений |
US20140153840A1 (en) * | 2012-12-05 | 2014-06-05 | National Tsing Hua University | Method for correcting rolling shutter effect and image processing device using the same |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4703350A (en) * | 1985-06-03 | 1987-10-27 | Picturetel Corporation | Method and apparatus for efficiently communicating image sequences |
KR100359115B1 (ko) | 2000-05-24 | 2002-11-04 | 삼성전자 주식회사 | 영상 코딩 방법 |
KR100924850B1 (ko) * | 2002-01-24 | 2009-11-02 | 가부시키가이샤 히타치세이사쿠쇼 | 동화상 신호의 부호화 방법 및 복호화 방법 |
US20040091047A1 (en) * | 2002-11-11 | 2004-05-13 | Sony Corporation | Method and apparatus for nonlinear multiple motion model and moving boundary extraction |
US7881376B2 (en) * | 2004-05-14 | 2011-02-01 | Panasonic Corporation | Motion compensation apparatus |
US8565307B2 (en) * | 2005-02-01 | 2013-10-22 | Panasonic Corporation | Picture encoding method and picture encoding device |
EP1755342A1 (en) * | 2005-08-19 | 2007-02-21 | Thomson Licensing | Method and apparatus for iteratively calculating a set of global motion parameters for a picture sequence from block motion vectors |
US9258519B2 (en) | 2005-09-27 | 2016-02-09 | Qualcomm Incorporated | Encoder assisted frame rate up conversion using various motion models |
CN101114851B (zh) * | 2006-07-24 | 2010-10-20 | 大唐移动通信设备有限公司 | 一种hsdpa的功率控制方法及装置 |
CN101888559B (zh) * | 2006-11-09 | 2013-02-13 | Lg电子株式会社 | 用于解码/编码视频信号的方法及装置 |
KR101383540B1 (ko) * | 2007-01-03 | 2014-04-09 | 삼성전자주식회사 | 복수의 움직임 벡터 프리딕터들을 사용하여 움직임 벡터를추정하는 방법, 장치, 인코더, 디코더 및 복호화 방법 |
CN101257366B (zh) * | 2008-03-27 | 2010-09-22 | 华为技术有限公司 | 编解码方法、通讯系统及设备 |
WO2011013253A1 (ja) * | 2009-07-31 | 2011-02-03 | 株式会社 東芝 | 幾何変換動き補償予測を用いる予測信号生成装置、動画像符号化装置及び動画像復号化装置 |
WO2011046587A1 (en) * | 2009-10-14 | 2011-04-21 | Thomson Licensing | Methods and apparatus for adaptive coding of motion information |
CN102595110B (zh) * | 2011-01-10 | 2015-04-29 | 华为技术有限公司 | 视频编码方法、解码方法及终端 |
KR101484171B1 (ko) | 2011-01-21 | 2015-01-23 | 에스케이 텔레콤주식회사 | 예측 움직임벡터 색인부호화에 기반한 움직임정보 생성/복원 장치 및 방법, 및 그것을 이용한 영상 부호화/복호화 장치 및 방법 |
CN102685504B (zh) * | 2011-03-10 | 2015-08-19 | 华为技术有限公司 | 视频图像的编解码方法、编码装置、解码装置及其系统 |
HUE066386T2 (hu) * | 2011-05-31 | 2024-07-28 | Jvckenwood Corp | Mozgókép-kódoló eszköz, mozgókép-kódoló eljárás és mozgókép-kódoló program, valamint mozgókép-dekódoló eszköz, mozgókép-dekódoló eljárás és mozgókép-dekódoló program |
KR20140043242A (ko) * | 2011-06-30 | 2014-04-08 | 가부시키가이샤 제이브이씨 켄우드 | 화상 부호화 장치, 화상 부호화 방법, 화상 부호화 프로그램, 화상 복호 장치, 화상 복호 방법 및 화상 복호 프로그램 |
JP2013098899A (ja) * | 2011-11-04 | 2013-05-20 | Sony Corp | 符号化装置および符号化方法、並びに、復号装置および復号方法 |
US20130114686A1 (en) * | 2011-11-08 | 2013-05-09 | Sharp Laboratories Of America, Inc. | Video decoder with enhanced cabac motion vector decoding |
EP2683165B1 (en) * | 2012-07-04 | 2015-10-14 | Thomson Licensing | Method for coding and decoding a block of pixels from a motion model |
US9491460B2 (en) * | 2013-03-29 | 2016-11-08 | Qualcomm Incorporated | Bandwidth reduction for video coding prediction |
KR20140124920A (ko) * | 2013-04-15 | 2014-10-28 | 인텔렉추얼디스커버리 주식회사 | 움직임 벡터 예측을 이용한 비디오 부호화/복호화 방법 및 장치 |
CN103338372A (zh) * | 2013-06-15 | 2013-10-02 | 浙江大学 | 一种视频处理方法及装置 |
CN104661031B (zh) * | 2015-02-16 | 2017-12-22 | 华为技术有限公司 | 用于视频图像编码和解码的方法、编码设备和解码设备 |
US10477238B2 (en) * | 2016-09-07 | 2019-11-12 | Qualcomm Incorporated | Sub-PU based bi-directional motion compensation in video coding |
-
2015
- 2015-02-16 CN CN201510085362.XA patent/CN104661031B/zh active Active
- 2015-02-16 CN CN201711090963.5A patent/CN107809642B/zh active Active
- 2015-08-12 MY MYPI2017703005A patent/MY185702A/en unknown
- 2015-08-12 SG SG11201706698YA patent/SG11201706698YA/en unknown
- 2015-08-12 RU RU2017132279A patent/RU2679195C1/ru active
- 2015-08-12 MX MX2017010564A patent/MX2017010564A/es unknown
- 2015-08-12 JP JP2017542855A patent/JP6481912B2/ja active Active
- 2015-08-12 EP EP15882368.2A patent/EP3249927B1/en active Active
- 2015-08-12 KR KR1020177025899A patent/KR102010510B1/ko active IP Right Grant
- 2015-08-12 WO PCT/CN2015/086724 patent/WO2016131229A1/zh active Application Filing
-
2017
- 2017-08-16 US US15/678,635 patent/US10349079B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2252066A2 (en) * | 1997-03-17 | 2010-11-17 | Mitsubishi Denki Kabushiki Kaisha | Video decoder and decoding method |
US20040151245A1 (en) * | 2000-01-21 | 2004-08-05 | Jani Lainema | Method for encoding and decoding video information, a motion compensated video encoder and a corresponding decoder |
EP1158806A1 (en) * | 2000-05-24 | 2001-11-28 | Samsung Electronics Co., Ltd. | Motion vector coding |
RU2012101686A (ru) * | 2009-06-19 | 2013-07-27 | Франс Телеком | Способ и устройство кодирования и декодирования информации изображений |
US20140153840A1 (en) * | 2012-12-05 | 2014-06-05 | National Tsing Hua University | Method for correcting rolling shutter effect and image processing device using the same |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2812275C2 (ru) * | 2019-03-08 | 2024-01-29 | Шарп Кабусики Кайся | Устройство декодирования видеосигналов |
RU2776356C1 (ru) * | 2019-03-11 | 2022-07-19 | Ханчжоу Хиквижен Диджитал Текнолоджи Ко., Лтд. | Способ и устройство кодирования и декодирования, оборудование на стороне кодирования и оборудование на стороне декодирования |
RU2795586C2 (ru) * | 2019-03-11 | 2023-05-05 | Ханчжоу Хиквижен Диджитал Текнолоджи Ко., Лтд. | Способ и устройство кодирования и декодирования, оборудование на стороне кодирования и оборудование на стороне декодирования |
US11902563B2 (en) | 2019-03-11 | 2024-02-13 | Hangzhou Hikvision Digital Technology Co., Ltd. | Encoding and decoding method and device, encoder side apparatus and decoder side apparatus |
Also Published As
Publication number | Publication date |
---|---|
CN104661031B (zh) | 2017-12-22 |
MX2017010564A (es) | 2018-03-15 |
WO2016131229A1 (zh) | 2016-08-25 |
US20170347116A1 (en) | 2017-11-30 |
JP2018509087A (ja) | 2018-03-29 |
CN104661031A (zh) | 2015-05-27 |
KR20170118161A (ko) | 2017-10-24 |
EP3249927B1 (en) | 2020-07-29 |
US10349079B2 (en) | 2019-07-09 |
CN107809642A (zh) | 2018-03-16 |
JP6481912B2 (ja) | 2019-03-13 |
SG11201706698YA (en) | 2017-09-28 |
KR102010510B1 (ko) | 2019-08-13 |
EP3249927A4 (en) | 2017-12-13 |
BR112017017481A2 (pt) | 2018-05-08 |
CN107809642B (zh) | 2020-06-16 |
MY185702A (en) | 2021-05-31 |
EP3249927A1 (en) | 2017-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2679195C1 (ru) | Способ кодирования видеоизображения, способ декодирования видеоизображения, устройство кодирования и устройство декодирования | |
JP7004782B2 (ja) | 画像予測方法および関連装置 | |
CN110557631B (zh) | 图像预测方法和相关设备 | |
CN112087629B (zh) | 图像预测方法、装置及计算机可读存储介质 | |
US11394970B2 (en) | Image encoding and decoding method and device | |
US9380314B2 (en) | Pixel retrieval for frame reconstruction | |
CN110710219B (zh) | 用于系数代码化的上下文推导的方法和设备 | |
CN108093259B (zh) | 图像运动估计方法、装置及计算机可读存储介质 | |
CN105306953A (zh) | 图像编码方法和装置 | |
WO2020000487A1 (zh) | 变换方法、反变换方法及装置 | |
CN116546202A (zh) | 一种动态纹理视频的编码方法、解码方法及相关装置 | |
BR112017017481B1 (pt) | Método de decodificação de imagem de vídeo e dispositivo de decodificação para decodificação de imagem de vídeo |