RU2785725C2 - Device and method for external prediction - Google Patents
Device and method for external prediction Download PDFInfo
- Publication number
- RU2785725C2 RU2785725C2 RU2021105574A RU2021105574A RU2785725C2 RU 2785725 C2 RU2785725 C2 RU 2785725C2 RU 2021105574 A RU2021105574 A RU 2021105574A RU 2021105574 A RU2021105574 A RU 2021105574A RU 2785725 C2 RU2785725 C2 RU 2785725C2
- Authority
- RU
- Russia
- Prior art keywords
- prediction
- motion vector
- sample
- target sample
- block
- Prior art date
Links
- 238000004364 calculation method Methods 0.000 claims description 97
- 230000000875 corresponding Effects 0.000 claims description 59
- 238000004422 calculation algorithm Methods 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 abstract description 3
- 238000003379 elimination reaction Methods 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 238000005303 weighing Methods 0.000 abstract 1
- 230000002123 temporal effect Effects 0.000 description 69
- 238000000034 method Methods 0.000 description 62
- 238000001914 filtration Methods 0.000 description 42
- 238000010586 diagram Methods 0.000 description 28
- 238000005516 engineering process Methods 0.000 description 25
- 230000002457 bidirectional Effects 0.000 description 22
- 210000004915 Pus Anatomy 0.000 description 18
- 230000003044 adaptive Effects 0.000 description 18
- 229920002635 polyurethane Polymers 0.000 description 18
- 230000011664 signaling Effects 0.000 description 16
- 241000023320 Luma <angiosperm> Species 0.000 description 14
- 230000004927 fusion Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 230000003287 optical Effects 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 238000005070 sampling Methods 0.000 description 9
- 241001442055 Vipera berus Species 0.000 description 8
- 238000005192 partition Methods 0.000 description 8
- 238000007906 compression Methods 0.000 description 7
- 238000000926 separation method Methods 0.000 description 5
- 238000000638 solvent extraction Methods 0.000 description 5
- 230000001131 transforming Effects 0.000 description 5
- 230000018109 developmental process Effects 0.000 description 4
- 238000005286 illumination Methods 0.000 description 4
- 230000000051 modifying Effects 0.000 description 4
- 229920000069 poly(p-phenylene sulfide) Polymers 0.000 description 4
- 101700038420 MVP Proteins 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 230000001419 dependent Effects 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 108060000351 ALYREF Proteins 0.000 description 2
- 229940040608 SPS Drugs 0.000 description 2
- 206010047571 Visual impairment Diseases 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000295 complement Effects 0.000 description 2
- 230000002596 correlated Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000001360 synchronised Effects 0.000 description 2
- 101700002690 CLIP3 Proteins 0.000 description 1
- 241000723655 Cowpea mosaic virus Species 0.000 description 1
- 210000004759 MCP Anatomy 0.000 description 1
- 101710043203 P23p89 Proteins 0.000 description 1
- 235000019395 ammonium persulphate Nutrition 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000001809 detectable Effects 0.000 description 1
- 229910003460 diamond Inorganic materials 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 101710034616 gVIII-1 Proteins 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003252 repetitive Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001702 transmitter Effects 0.000 description 1
Images
Abstract
Description
Область техники, к которой относится изобретениеThe technical field to which the invention belongs
Варианты осуществления настоящего изобретения относятся к области технологий кодирования видео и, в частности, к способу и устройству внешнего предсказания.Embodiments of the present invention relate to the field of video coding technologies and, in particular, to an inter prediction method and apparatus.
Уровень техникиState of the art
Технологии цифрового видео могут широко использоваться в различных цифровых видеоустройствах. Цифровое видеоустройство может реализовывать технологии кодирования видео, например, стандарты, определенные в MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4 часть 10 Advanced Video Coding (AVC), ITU-T H.265 (также называемый высокоэффективным кодированием видео HEVC) и технологии кодирования видео, описанные в расширениях этих стандартов. Цифровое видеоустройство отправляет, принимает, кодирует, декодирует и/или сохраняет цифровую видеоинформацию более эффективно за счет реализации этих технологий кодирования видео.Digital video technologies can be widely used in various digital video devices. The digital video device may implement video coding technologies, such as the standards defined in MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4 Part 10 Advanced Video Coding (AVC), ITU-T T H.265 (also called HEVC High Efficiency Video Coding) and the video coding technologies described in extensions to these standards. A digital video device sends, receives, encodes, decodes, and/or stores digital video information more efficiently by implementing these video coding technologies.
В настоящее время технологии внешнего предсказания и внутреннего предсказания в основном используются при кодировании видео для устранения временной избыточности и пространственной избыточности в видео. В технологии внешнего предсказания учитывается только временная корреляция между одними и теми же объектами в соседних кадрах изображений, но пространственная корреляция не учитывается. Следовательно, выборки предсказания, полученные в существующем режиме внешнего предсказания, являются пространственно прерывистыми. Кроме того, это влияет на эффективность предсказания, и остаточная энергия предсказания является относительно высокой.At present, inter prediction and intra prediction technologies are mainly used in video coding to eliminate temporal redundancy and spatial redundancy in video. The inter-prediction technology takes into account only the temporal correlation between the same objects in adjacent image frames, but the spatial correlation is not taken into account. Therefore, the prediction samples obtained in the existing inter prediction mode are spatially discontinuous. In addition, the prediction performance is affected, and the residual prediction energy is relatively high.
Сущность изобретенияThe essence of the invention
Варианты осуществления настоящего изобретения предоставляют способ и устройство внешнего предсказания для выполнения пространственной фильтрации внешне закодированного блока предсказания и повышения эффективности кодирования.Embodiments of the present invention provide an inter prediction method and apparatus for performing spatial filtering of an inter-coded prediction block and improving coding efficiency.
Для решения технических задач в вариантах осуществления настоящего изобретения используются следующие технические решения.To solve technical problems in the embodiments of the present invention, the following technical solutions are used.
Согласно первому аспекту вариантов осуществления настоящего изобретения предоставляется способ внешнего предсказания. Способ включает в себя: синтаксический анализ битового потока для получения информации движения блока изображения, подлежащего обработке; выполнение компенсации движения на блоке изображения, подлежащего обработке, на основании информации движения, для получения блока предсказания блока изображения, подлежащего обработке, где блок предсказания блока изображения, подлежащего обработке, включает в себя значение предсказания целевой выборки; и выполнение вычисления взвешивания для одного или нескольких восстановленных значений одной или нескольких опорных выборок и значения предсказания целевой выборки, для обновления значения предсказания целевой выборки, где опорная выборка имеет заданную взаимосвязь пространственной позиции с целевой выборкой.According to a first aspect of the embodiments of the present invention, an inter prediction method is provided. The method includes: parsing the bit stream to obtain motion information of the image block to be processed; performing motion compensation on the image block to be processed based on the motion information to obtain a prediction block of the image block to be processed, where the prediction block of the image block to be processed includes a prediction value of the target sample; and performing a weighting calculation on the one or more recovered values of the one or more reference samples and the target sample prediction value to update the target sample prediction value, where the reference sample has a given spatial position relationship with the target sample.
На основании этого решения выполняется обработка пространственной фильтрации для значения предсказания целевой выборки с использованием соседней восстановленной выборки для повышения эффективности кодирования со сжатием.Based on this decision, spatial filtering processing is performed on the prediction value of the target sample using the adjacent reconstructed sample to improve compression coding efficiency.
Со ссылкой на первый аспект, в возможной реализации одна или несколько опорных выборок включают в себя восстановленную выборку, которая имеет ту же горизонтальную координату, что и целевая выборка, и имеет заданную разность вертикальной координаты с целевой выборкой, или восстановленную выборку, которая имеет ту же вертикальную координату, что и целевая выборка, и имеет заданную разницу горизонтальной координаты с целевой выборкой.With reference to the first aspect, in a possible implementation, one or more reference samples include a reconstructed sample that has the same horizontal coordinate as the target sample and has a given vertical coordinate difference with the target sample, or a reconstructed sample that has the same vertical coordinate as the target sample and has the given horizontal coordinate difference with the target sample.
На основании этого решения выполняется обработка фильтрации на целевой выборке с использованием опорной выборки, которая имеет заданное отношение пространственной позиции с целевой выборкой. По сравнению с традиционной технологией повышается эффективность кодирования.Based on this decision, filtering processing is performed on the target sample using a reference sample that has a predetermined spatial position relationship with the target sample. Compared with conventional technology, the coding efficiency is improved.
Со ссылкой на первый аспект и вышеупомянутую возможную реализацию, в другой возможной реализации, обновление значения предсказания целевой выборки включает в себя: выполнение вычисления взвешивания на основании значения предсказания целевой выборки перед обновлением и восстановленного значения опорной выборки для получения обновленного значения предсказания целевой выборки, где обновленное значение предсказания целевой выборки получается в соответствии со следующей формулой:With reference to the first aspect and the above possible implementation, in another possible implementation, updating the prediction value of the target sample includes: performing a weighting calculation based on the prediction value of the target sample before updating and the restored value of the reference sample to obtain an updated prediction value of the target sample, where the updated the prediction value of the target sample is obtained according to the following formula:
где координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, являются , представляют собой значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки и представляют восстановленные значения опорных выборок на позициях координат и , соответственно, w1, w2, w3, w4, w5 и w6 являются заданными константами, и M1 и M2 являются заданными положительными целыми числами.where the target sample coordinates are , the coordinates of the upper left sample of the image block to be processed are , are the prediction value of the target sample before updating, represents the updated prediction value of the target sample and represent the reconstructed values of the reference samples at the positions coordinates and , respectively, w1, w2, w3, w4, w5 and w6 are given constants, and M1 and M2 are given positive integers.
На основании этого решения обновленное значение предсказания целевой выборки может быть получено посредством обработки фильтрации.Based on this decision, an updated prediction value of the target sample can be obtained through the filtering processing.
Со ссылкой на первый аспект и вышеупомянутые возможные реализации, в другой возможной реализации, w1 + w2 = R1, w3 + w4 = R2 или w5 + w6 + w7 = R3, где R1, R2 и R3 каждый являются 2 в степени n, и n являются целым неотрицательным числом.With reference to the first aspect and the above possible implementations, in another possible implementation, w1 + w2 = R1, w3 + w4 = R2 or w5 + w6 + w7 = R3, where R1, R2 and R3 are each 2 to the power of n, and n are a non-negative integer.
На основании этого решения дополнительно может быть улучшена эффективность кодирования.Based on this decision, coding efficiency can be further improved.
Следует понимать, что каждый из R1, R2 и R3 равен 2 в степени n. R1, R2 и R3 одинаковые или разные, и это не ограничивается. Например, R1, R2 и R3 могут быть 8 или R1, R2 и R3 могут быть 2, 4 и 16, соответственно.It should be understood that each of R1, R2 and R3 is equal to 2 to the power of n. R1, R2 and R3 are the same or different, and this is not limited. For example, R1, R2, and R3 may be 8, or R1, R2, and R3 may be 2, 4, and 16, respectively.
Со ссылкой на первый аспект и вышеупомянутую возможную реализацию, в другой возможной реализации, обновление значения предсказания целевой выборки включает в себя: выполнение вычисления взвешивания на основании значения предсказания целевой выборки перед обновлением и восстановленного значения опорной выборки для получения обновленного значения предсказания целевой выборки, где обновленное значение предсказания целевой выборки получается в соответствии со следующей формулой:With reference to the first aspect and the above possible implementation, in another possible implementation, updating the prediction value of the target sample includes: performing a weighting calculation based on the prediction value of the target sample before updating and the restored value of the reference sample to obtain an updated prediction value of the target sample, where the updated the prediction value of the target sample is obtained according to the following formula:
где координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, являются , представляет собой значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки, , , и представляют восстановленные значения опорных выборок на координатах , , и позиций, соответственно, w1, w2, w3, w4, w5, w6, w7, w8, w9, w10 и w11 являются заданными константами, и M1, M2, M3 и M4 являются заданными положительными целыми числами.where the target sample coordinates are , the coordinates of the upper left sample of the image block to be processed are , is the prediction value of the target sample before updating, represents the updated prediction value of the target sample, , , and represent the reconstructed values of the reference samples on the coordinates , , and positions, respectively, w1, w2, w3, w4, w5, w6, w7, w8, w9, w10 and w11 are given constants, and M1, M2, M3 and M4 are given positive integers.
На основании этого решения обновленное значение предсказания целевой выборки может быть получено посредством обработки фильтрации.Based on this decision, an updated prediction value of the target sample can be obtained through the filtering processing.
Со ссылкой на первый аспект и вышеупомянутые возможные реализации, в другой возможной реализации, w1 + w2 + w3 = S1, w4 + w5 + w6 = S2 или w7 + w8 + w9 + w10 + w11 = S3, где S1, S2 и S3 равны 2 в степени n, и n является неотрицательным целым числом.With reference to the first aspect and the above possible implementations, in another possible implementation, w1 + w2 + w3 = S1, w4 + w5 + w6 = S2 or w7 + w8 + w9 + w10 + w11 = S3, where S1, S2 and S3 are equal 2 to the power of n, and n is a non-negative integer.
На основании этого решения эффективность кодирования может быть дополнительно улучшена.Based on this decision, the coding efficiency can be further improved.
Следует понимать, что каждое из S1, S2 и S3 равно 2 в степени n. S1, S2 и S3 одинаковые или разные, и это не ограничивается. Например, S1, S2 и S3 могут быть 8 или S1, S2 и S3 могут быть 2, 4 и 16 соответственно.It should be understood that each of S1, S2 and S3 is equal to 2 to the power of n. S1, S2 and S3 are the same or different, and this is not limited. For example, S1, S2, and S3 may be 8, or S1, S2, and S3 may be 2, 4, and 16, respectively.
Со ссылкой на первый аспект и вышеупомянутую возможную реализацию, в другой возможной реализации, обновление значения предсказания целевой выборки включает в себя: выполнение вычисления взвешивания на основании значения предсказания целевой выборки перед обновлением и восстановленного значения опорной выборки для получения обновленного значения предсказания целевой выборки, где обновленное значение предсказания целевой выборки получается в соответствии со следующей формулой:With reference to the first aspect and the above possible implementation, in another possible implementation, updating the prediction value of the target sample includes: performing a weighting calculation based on the prediction value of the target sample before updating and the restored value of the reference sample to obtain an updated prediction value of the target sample, where the updated the prediction value of the target sample is obtained according to the following formula:
где координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляют собой значение предсказания целевой выборки перед обновлением, представляют обновленное значение предсказания целевой выборки и представляют восстановленные значения опорных выборок на позициях координат и , соответственно, w1, w2 и w3 являются заданными константами и M1 и M2 являются заданными положительными целыми числами.where the target sample coordinates are , the coordinates of the upper left sample of the image block to be processed are , are the prediction value of the target sample before updating, represent the updated prediction value of the target sample and represent the reconstructed values of the reference samples at the positions coordinates and , respectively, w1, w2 and w3 are given constants and M1 and M2 are given positive integers.
На основании этого решения обновленное значение предсказания целевой выборки может быть получено посредством обработки фильтрации.Based on this decision, an updated prediction value of the target sample can be obtained through the filtering processing.
Со ссылкой на первый аспект и вышеупомянутые возможные реализации, в другой возможной реализации w1 + w2 + w3 = R, где R равно 2 в степени n, и n является неотрицательным целым числом.With reference to the first aspect and the above possible implementations, in another possible implementation, w1 + w2 + w3 = R, where R is 2 to the power of n, and n is a non-negative integer.
Со ссылкой на первый аспект и вышеупомянутую возможную реализацию, в другой возможной реализации, обновление значения предсказания целевой выборки включает в себя: выполнение вычисления взвешивания на основании значения предсказания целевой выборки перед обновлением и восстановленного значения опорной выборки для получения обновленного значения предсказания целевой выборки, где обновленное значение предсказания целевой выборки получается в соответствии со следующей формулой:With reference to the first aspect and the above possible implementation, in another possible implementation, updating the prediction value of the target sample includes: performing a weighting calculation based on the prediction value of the target sample before updating and the restored value of the reference sample to obtain an updated prediction value of the target sample, where the updated the prediction value of the target sample is obtained according to the following formula:
где координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны представляет собой значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки, , , и представляют восстановленные значения опорных выборок на позициях , , и координат, соответственно, w1, w2, w3, w4 и w5 являются заданными константы и M1, M2, M3 и M4 являются заданными положительными целыми числами.where the target sample coordinates are , the coordinates of the upper left sample of the image block to be processed are is the prediction value of the target sample before updating, represents the updated prediction value of the target sample, , , and represent the reconstructed values of the reference samples at the positions , , and coordinates, respectively, w1, w2, w3, w4 and w5 are given constants and M1, M2, M3 and M4 are given positive integers.
На основании этого решения обновленное значение предсказания целевой выборки может быть получено посредством обработки фильтрации.Based on this decision, an updated prediction value of the target sample can be obtained through the filtering processing.
Со ссылкой на первый аспект и вышеупомянутые возможные реализации, в другой возможной реализации, w1 + w2 + w3 + w4 + w5 = S, где S равно 2 в степени n, и n является неотрицательным целым числом.With reference to the first aspect and the above possible implementations, in another possible implementation, w1 + w2 + w3 + w4 + w5 = S, where S is equal to 2 to the power of n, and n is a non-negative integer.
На основании этого решения эффективность кодирования может быть дополнительно улучшена.Based on this decision, the coding efficiency can be further improved.
Со ссылкой на первый аспект и вышеупомянутой возможной реализации, в другой возможной реализации одна или несколько опорных выборок включают в себя одну или несколько из следующих выборок: восстановленная выборка, которая имеет ту же горизонтальную координату, что и целевая выборка, и которая находится рядом с верхней стороной блока изображения, подлежащего обработке, восстановленная выборка, которая имеет ту же вертикальную координату, что и целевая выборка, и которая находится рядом с левой стороной блока изображения, подлежащего обработке, верхняя правая восстановленная выборка блока изображения, подлежащего обработке, нижняя левая восстановленная выборка блока изображения, подлежащего обработке, или верхняя левая восстановленная выборка блока изображения, подлежащего обработке.With reference to the first aspect and the above possible implementation, in another possible implementation, one or more reference samples include one or more of the following samples: a reconstructed sample that has the same horizontal coordinate as the target sample and that is near the top side of the image block to be processed, the reconstructed sample that has the same vertical coordinate as the target sample and that is adjacent to the left side of the image block to be processed, the upper right reconstructed sample of the image block to be processed, the lower left reconstructed sample of the block of the image to be processed, or the top left reconstructed sample of the image block to be processed.
На основании этого решения выполняется обработка фильтрации на целевой выборке с использованием опорной выборки, который имеет заданное отношение пространственной позиции с целевой выборкой. По сравнению с традиционной технологией эффективность кодирования повышается.Based on this decision, filtering processing is performed on the target sample using a reference sample that has a predetermined spatial position relationship with the target sample. Compared with conventional technology, the coding efficiency is improved.
Со ссылкой на первый аспект и вышеупомянутую возможную реализацию, в другой возможной реализации, обновление значения предсказания целевой выборки включает в себя: выполнение вычисления взвешивания на основании значения предсказания целевой выборки перед обновлением и восстановленного значения опорной выборки для получения обновленного значения предсказания целевой выборки, где обновленное значение предсказания целевой выборки получается в соответствии со следующей формулой:With reference to the first aspect and the above possible implementation, in another possible implementation, updating the prediction value of the target sample includes: performing a weighting calculation based on the prediction value of the target sample before updating and the restored value of the reference sample to obtain an updated prediction value of the target sample, where the updated the prediction value of the target sample is obtained according to the following formula:
predQ(xP, yP) = (w1 * predP(xP, yP) + w2 * predP1(xP, yP) + ((w1 + w2)/2))/(w1 + w2)predQ(xP, yP) = (w1 * predP(xP, yP) + w2 * predP1(xP, yP) + ((w1 + w2)/2))/(w1 + w2)
где predP1(xP, yP) = (predV(xP, yP) + predH(xP, yP) + nTbW * nTbH) >> (Log2(nTbW) + Log2(nTbH) + 1), predV(xP, yP) = ((nTbH – 1 – yP) * p(xP, –1) + (yP + 1) * p(–1, nTbH)) << Log2(nTbW), predH(xP, yP) = ((nTbW – 1 – xP) * p(–1, yP) + (xP + 1) * p(nTbW, –1)) << Log2(nTbH), координаты целевой выборки равны (xP, yP), координаты верхней левой выборки блока изображения, подлежащего обработке, равны (0, 0), predP (xP, yP) представляет значение предсказания целевой выборки перед обновлением, predQ (xP, yP) представляет обновленное значение предсказания целевой выборки, p (xP, –1), p (–1, nTbH), p (–1, yP) и p (nTbW, –1) представляют восстановленные значения опорных выборок на позициях (xP, –1), (–1, nTbH), (–1, yP) и (nTbW, –1) координат, соответственно, w1 и w2 являются заданными константами и nTbW и nTbH представляют ширину и высоту блока изображения, подлежащего обработке.where predP1(xP, yP) = (predV(xP, yP) + predH(xP, yP) + nTbW * nTbH) >> (Log2(nTbW) + Log2(nTbH) + 1), predV(xP, yP) = ((nTbH – 1 – yP) * p(xP, –1) + (yP + 1) * p(–1, nTbH)) << Log2(nTbW), predH(xP, yP) = ((nTbW – 1 – xP) * p(–1, yP) + (xP + 1) * p(nTbW, –1)) << Log2(nTbH), target sample coordinates are (xP, yP), image block upper left sample coordinates, to be processed are (0, 0), predP(xP, yP) represents the prediction value of the target sample before updating, predQ(xP, yP) represents the updated prediction value of the target sample, p(xP, –1), p(–1, nTbH), p (–1, yP) and p (nTbW, –1) represent the reconstructed values of the reference samples at positions (xP, –1), (–1, nTbH), (–1, yP) and (nTbW, – 1) coordinates, respectively, w1 and w2 are given constants and nTbW and nTbH represent the width and height of the image block to be processed.
В возможной реализации первого аспекта значение предсказания целевой выборки обновляется согласно следующей формуле:In an exemplary implementation of the first aspect, the target sample prediction value is updated according to the following formula:
predQ(xP, yP) = (w1 * predP(xP, yP) + w2 * predV(xP, yP) + w3 * predH(xP, yP) + ((w1 + w2 + w3)/2))/(w1 + w2 + w3)predQ(xP, yP) = (w1 * predP(xP, yP) + w2 * predV(xP, yP) + w3 * predH(xP, yP) + ((w1 + w2 + w3)/2))/(w1 + w2 + w3)
где predV (xP, yP) = ((nTbH - 1 - yP) * p (xP, –1) + (yP + 1) * p (–1, nTbH) + nTbH / 2) >> Log2 (nTbH), predH (xP, yP) = ((nTbW - 1 - xP) * p (–1, yP) + (xP + 1) * p (nTbW, –1) + nTbW / 2) >> Log2 (nTbW), координаты целевой выборки являются (xP, yP), координаты верхней левой выборки блока изображения, подлежащего обработке, равны (0, 0), predP (xP, yP) представляет значение предсказания целевой выборки до обновления, predQ (xP, yP) представляет обновленное значение предсказания целевой выборки, p (xP, –1), p (–1, nTbH), p (–1, yP) и p (nTbW, –1) представляют восстановленные значения опорных выборок на позициях (xP, –1), (–1, nTbH), (–1, yP) и (nTbW, –1) координат, соответственно, w1, w2 и w3 представляют собой заданные константы, и nTbW и nTbH представляют ширину и высоту блока изображения, подлежащего обработке.where predV (xP, yP) = ((nTbH - 1 - yP) * p (xP, –1) + (yP + 1) * p (–1, nTbH) + nTbH / 2) >> Log2 (nTbH), predH (xP, yP) = ((nTbW - 1 - xP) * p (-1, yP) + (xP + 1) * p (nTbW, -1) + nTbW / 2) >> Log2 (nTbW), coordinates of the target sample are (xP, yP), the coordinates of the upper left sample of the image block to be processed are (0, 0), predP (xP, yP) represents the prediction value of the target sample before updating, predQ (xP, yP) represents the updated prediction value target sample, p(xP, –1), p(–1, nTbH), p(–1, yP), and p(nTbW, –1) represent the reconstructed values of the reference samples at positions (xP, –1), (– 1, nTbH), (-1, yP) and (nTbW, -1) coordinates, respectively, w1, w2 and w3 are given constants, and nTbW and nTbH represent the width and height of the image block to be processed.
В возможной реализации первого аспекта значение предсказания целевой выборки обновляется согласно следующей формуле:In an exemplary implementation of the first aspect, the target sample prediction value is updated according to the following formula:
predQ(xP, yP) = (((w1 * predP(xP, yP)) << (Log2(nTbW) + Log2(nTbH) + 1)) + w2 * predV(xP, yP) +w3 * predH(xP, yP) + (((w1 + w2 + w3)/2) << (Log2(nTbW) + Log2(nTbH) + 1)))/(((w1 + w2 + w3) << (Log2(nTbW) + Log2(nTbH) + 1)))predQ(xP, yP) = (((w1 * predP(xP, yP)) << (Log2(nTbW) + Log2(nTbH) + 1)) + w2 * predV(xP, yP) + w3 * predH(xP , yP) + (((w1 + w2 + w3)/2) << (Log2(nTbW) + Log2(nTbH) + 1)))/(((w1 + w2 + w3) << (Log2(nTbW) + Log2(nTbH) + 1)))
где predV (xP, yP) = ((nTbH - 1 - yP) * p (xP, –1) + (yP + 1) * p (–1, nTbH)) << Log2 (nTbW), predH (xP, yP) = ((nTbW - 1 - xP) * p (–1, yP) + (xP + 1) * p (nTbW, –1)) << Log2 (nTbH), координаты целевой выборки равны (xP, yP), координаты верхней левой выборки блока изображения, подлежащего обработке, равны (0, 0), predP (xP, yP) представляет значение предсказания целевой выборки до обновления, predQ (xP, yP) представляет обновленное значение предсказания целевой выборки, p (xP, –1), p (–1, nTbH), p (–1, yP) и p (nTbW, –1) представляют восстановленные значения опорных выборок на позициях (xP, –1), (–1, nTbH), (–1, yP) и (nTbW, –1) координат, соответственно, w1 и w2 являются заданными константами и nTbW и nTbH представляют ширину и высоту блока изображения, подлежащего обработке.where predV (xP, yP) = ((nTbH - 1 - yP) * p (xP, –1) + (yP + 1) * p (–1, nTbH)) << Log2 (nTbW), predH (xP, yP) = ((nTbW - 1 - xP) * p (–1, yP) + (xP + 1) * p (nTbW, –1)) << Log2 (nTbH), target sample coordinates are (xP, yP) , the coordinates of the upper left sample of the image block to be processed are (0, 0), predP(xP, yP) represents the prediction value of the target sample before updating, predQ(xP, yP) represents the updated prediction value of the target sample, p(xP, - 1), p (–1, nTbH), p (–1, yP), and p (nTbW, –1) represent the reconstructed values of the reference samples at positions (xP, –1), (–1, nTbH), (–1 , yP) and (nTbW, –1) coordinates, respectively, w1 and w2 are given constants, and nTbW and nTbH represent the width and height of the image block to be processed.
На основании этого решения обновленное значение предсказания целевой выборки может быть получено посредством обработки фильтрации.Based on this decision, an updated prediction value of the target sample can be obtained through the filtering processing.
Со ссылкой на первый аспект и вышеупомянутую возможную реализацию, в другой возможной реализации, обновление значения предсказания целевой выборки включает в себя: выполнение вычисления взвешивания на основании значения предсказания целевой выборки перед обновлением и восстановленного значения опорной выборки для получения обновленного значения предсказания целевой выборки, где обновленное значение предсказания целевой выборки получается в соответствии со следующей формулой:With reference to the first aspect and the above possible implementation, in another possible implementation, updating the prediction value of the target sample includes: performing a weighting calculation based on the prediction value of the target sample before updating and the restored value of the reference sample to obtain an updated prediction value of the target sample, where the updated the prediction value of the target sample is obtained according to the following formula:
predQ(xP, yP) = (w1 * predP(xP, yP) + w2 * predP1(xP, yP) + ((w1 + w2)/2))/(w1 + w2)predQ(xP, yP) = (w1 * predP(xP, yP) + w2 * predP1(xP, yP) + ((w1 + w2)/2))/(w1 + w2)
где where
координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляет значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки, , , и представляют восстановленные значения опорных выборок на позициях , , и координат, соответственно, w1 и w2 являются заданными константами и nTbW и nTbH представляют ширину и высоту блока изображения, подлежащего обработке.target sample coordinates are , the coordinates of the upper left sample of the image block to be processed are , represents the prediction value of the target sample before the update, represents the updated prediction value of the target sample, , , and represent the reconstructed values of the reference samples at the positions , , and coordinates, respectively, w1 and w2 are given constants and nTbW and nTbH represent the width and height of the image block to be processed.
На основании этого решения обновленное значение предсказания целевой выборки может быть получено посредством обработки фильтрации.Based on this decision, an updated prediction value of the target sample can be obtained through the filtering processing.
Со ссылкой на первый аспект и вышеупомянутых возможных реализаций, в другой возможной реализации сумма w1 и w2 равна 2, возведенной в степень n, и n является неотрицательным целым числом.With reference to the first aspect and the above possible implementations, in another possible implementation, the sum of w1 and w2 is 2 raised to the power of n, and n is a non-negative integer.
На основании этого решения эффективность кодирования может быть дополнительно улучшена.Based on this decision, the coding efficiency can be further improved.
Со ссылкой на первый аспект и вышеупомянутую возможную реализацию, в другой возможной реализации обновление значения предсказания целевой выборки включает в себя: выполнение вычисления взвешивания на основании значения предсказания целевой выборки перед обновлением и восстановленного значения опорной выборки, для получения обновленного значения предсказания целевой выборки, где обновленное значение предсказания целевой выборки получается в соответствии со следующей формулой:With reference to the first aspect and the above possible implementation, in another possible implementation, updating the prediction value of the target sample includes: performing a weighting calculation based on the prediction value of the target sample before updating and the restored value of the reference sample, to obtain an updated prediction value of the target sample, where the updated the prediction value of the target sample is obtained according to the following formula:
гдеwhere
,, , ,
, координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляет значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки, , и представляют восстановленные значения опорных выборок на позициях , и координат, соответственно, nTbW и nTbH представляют ширину и высоту блока изображения, подлежащего обработке, и clip1Cmp представляет операцию отсечения. , the coordinates of the target sample are , the coordinates of the upper left sample of the image block to be processed are , represents the prediction value of the target sample before the update, represents the updated prediction value of the target sample, , and represent the reconstructed values of the reference samples at the positions , and coordinates, respectively, nTbW and nTbH represent the width and height of the image block to be processed, and clip1Cmp represents the clipping operation.
На основании этого решения обновленное значение предсказания целевой выборки может быть получено посредством обработки фильтрации.Based on this decision, an updated prediction value of the target sample can be obtained through the filtering processing.
Со ссылкой на первый аспект и вышеупомянутую возможную реализацию, в другой возможной реализации, обновление значения предсказания целевой выборки включает в себя: выполнение вычисления взвешивания на основании значения предсказания целевой выборки перед обновлением и восстановленного значения опорной выборки для получения обновленного значения предсказания целевой выборки, где обновленное значение предсказания целевой выборки получается в соответствии со следующей формулой:With reference to the first aspect and the above possible implementation, in another possible implementation, updating the prediction value of the target sample includes: performing a weighting calculation based on the prediction value of the target sample before updating and the restored value of the reference sample to obtain an updated prediction value of the target sample, where the updated the prediction value of the target sample is obtained according to the following formula:
гдеwhere
, , , ,
координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляет значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки, и представляют восстановленные значения опорных выборок на позициях и координат, соответственно, nTbW и nTbH представляют ширину и высоту блока изображения, подлежащего обработке, clip1Cmp представляет операцию отсечения.target sample coordinates are , the coordinates of the upper left sample of the image block to be processed are , represents the prediction value of the target sample before the update, represents the updated prediction value of the target sample, and represent the reconstructed values of the reference samples at the positions and coordinates, respectively, nTbW and nTbH represent the width and height of the image block to be processed, clip1Cmp represents the clipping operation.
На основании этого решения обновленное значение предсказания целевой выборки может быть получено посредством обработки фильтрации.Based on this decision, an updated prediction value of the target sample can be obtained through the filtering processing.
Со ссылкой на первый аспект и вышеупомянутые возможные реализации, в другой возможной реализации, выполнение вычисления взвешивания для одного или нескольких восстановленных значений одной или нескольких опорных выборок и значения предсказания целевой выборки включает в себя: когда восстановленное значение опорной выборки недоступно, определение в заданном порядке доступности выборок, смежных с верхней и левой стороной блока изображения, подлежащего обработке, до тех пор, пока не будет получено заданное количество доступных опорных выборок; и выполнение вычисления взвешивания для восстановленного значения доступной опорной выборки и значения предсказания целевой выборки.With reference to the first aspect and the above possible implementations, in another possible implementation, performing a weighting calculation on one or more recovered values of one or more reference samples and a prediction value of the target sample includes: when the recovered reference sample value is not available, determining in a given order of availability samples adjacent to the top and left side of the image block to be processed until a predetermined number of available reference samples is obtained; and performing a weighting calculation on the recovered available reference sample value and the target sample prediction value.
На основании этого решения, когда восстановленное значение опорной выборки недоступно, опорные выборки, которые расположены слева и над блоком изображения, подлежащего обработке, и чьи восстановленные значения доступны, могут быть найдены в заданном порядке. Таким образом, значение предсказания целевой выборки может быть обновлено с использованием восстановленных значений доступных опорных выборок.Based on this decision, when a reconstructed reference sample value is not available, the reference samples that are located to the left and above the image block to be processed and whose reconstructed values are available can be found in a predetermined order. Thus, the target sample prediction value can be updated using the recovered values of the available reference samples.
Со ссылкой на первый аспект и вышеупомянутые возможные реализации, в другой возможной реализации определение в заданном порядке доступности выборок, смежных с верхней и левой стороной блока изображения, подлежащего обработке, до получения заданного количества доступных опорных выборок включает в себя: получение доступных опорных выборок в порядке от координат (xN - 1, yN + nTbH - 1) до координат (xN - 1, yN - 1) и затем от координат (xN, yN - 1) до координат (xN + nTbW - 1, yN - 1).With reference to the first aspect and the aforementioned possible implementations, in another possible implementation, determining in a given order the availability of samples adjacent to the top and left side of the image block to be processed until a given number of available reference samples is obtained includes: obtaining the available reference samples in order from coordinates (xN - 1, yN + nTbH - 1) to coordinates (xN - 1, yN - 1) and then from coordinates (xN, yN - 1) to coordinates (xN + nTbW - 1, yN - 1).
На основании этого решения могут быть получены восстановленные значения доступных опорных выборок.Based on this decision, reconstructed values of the available reference samples can be obtained.
Со ссылкой на первый аспект и вышеупомянутых возможных реализаций, в другой возможной реализации, при наличии, по меньшей мере, одной доступной опорной выборки во всех опорных выборках, если восстановленное значение опорной выборки (xN - 1, yN + nTbH - 1) недоступно, выполняется поиск доступной выборки в заданном порядке от координат (xN - 1, yN + nTbH - 1) до координат (xN - 1, yN - 1) и затем от координатам (xN, yN - 1) до координат (xN + nTbW - 1, yN - 1). Как только доступная выборка найдена, поиск заканчивается. Если доступная выборка является (x, y), восстановленное значение опорной выборки (xN - 1, yN + nTbH - 1) устанавливается равным восстановленному значению выборки (x, y). Если восстановленное значение опорной выборки (x, y) недоступно в наборе, включающем в себя опорную выборку (xN - 1, yN + nTbH - M), восстановленное значение опорной выборки (x, y) устанавливается на восстановленное значение выборки (x, y + 1), где M больше или равно 2 и меньше или равно nTbH + 1. Если восстановленное значение опорной выборки (x, y) недоступно в наборе, включающий в себя опорную выборку (xN + N, yN - 1), восстановленное значение опорной выборки (x, y) устанавливается равным восстановленному значению опорной выборки (x - 1, y), где N больше или равно 0 и меньше или равно nTbW - 1.With reference to the first aspect and the above possible implementations, in another possible implementation, if there is at least one available reference sample in all the reference samples, if the restored value of the reference sample (xN - 1, yN + nTbH - 1) is not available, then search for an available sample in a given order from coordinates (xN - 1, yN + nTbH - 1) to coordinates (xN - 1, yN - 1) and then from coordinates (xN, yN - 1) to coordinates (xN + nTbW - 1, yN - 1). Once an available sample is found, the search ends. If the available sample is (x, y), the reconstructed reference sample value (xN - 1, yN + nTbH - 1) is set equal to the reconstructed sample value (x, y). If the reconstructed reference sample value (x, y) is not available in the set including the reference sample (xN - 1, yN + nTbH - M), the reconstructed reference sample value (x, y) is set to the reconstructed sample value (x, y + 1), where M is greater than or equal to 2 and less than or equal to
На основании этого решения могут быть получены восстановленные значения доступных опорных выборок.Based on this decision, reconstructed values of the available reference samples can be obtained.
Со ссылкой на первый аспект и вышеупомянутые возможные реализации, в другой возможной реализации, если восстановленное значение опорной выборки (xN - 1, yN + nTbH - M) недоступно, доступная опорная выборка может быть найдена в заданном порядке, начиная с координат (xN - 1, yN + nTbH - M), где M больше или равно 1 и меньше или равно nTbH + 1. Если доступная опорная выборка является B, восстановленное значение опорной выборки (xN - 1, yN + nTbH - M) может быть установлено на восстановленное значение опорной выборки B. Если восстановленное значение опорной выборки с координатами (xN + N, yN - 1) недоступно, доступная опорная выборка может быть найдена в заданном порядке, начиная с координат (xN + N, yN - 1), где N больше или равно 0 и меньше или равно nTbW - 1. Если доступная опорная выборка равно C, восстановленное значение опорной выборки (xN + N, yN - 1) может быть установлено на восстановление измененное значение опорной выборки C.With reference to the first aspect and the aforementioned possible implementations, in another possible implementation, if the reconstructed reference sample value (xN - 1, yN + nTbH - M) is not available, the available reference sample can be found in the given order starting from the coordinates (xN - 1 , yN + nTbH - M), where M is greater than or equal to 1 and less than or equal to
На основании этого решения могут быть получены восстановленные значения доступных опорных выборок.Based on this decision, reconstructed values of the available reference samples can be obtained.
Со ссылкой на первый аспект и вышеупомянутые возможные реализации, в другой возможной реализации, если восстановленное значение опорной выборки (xN - 1, yN + nTbH - 1) недоступно, доступная выборка ищется в заданном порядке от координат (xN - 1, yN + nTbH - 1) к координатам (xN - 1, yN - 1) и затем от координат (xN, yN - 1) к координатам (xN + nTbW - 1, yN - 1). Как только доступная выборка найдена, поиск заканчивается. Если доступная выборка является (x, y), восстановленное значение опорной выборки (xN - 1, yN + nTbH - 1) устанавливается равным восстановленному значению выборки (x, y). Если восстановленное значение опорной выборки (xN - 1, yN + nTbH - M) недоступно, можно искать доступную опорную выборку в порядке, обратном заданному, начиная с координат (xN - 1, yN + nTbH - M), где M больше 1 и меньше или равно nTbH + 1. Если доступной опорной выборкой является C, восстановленное значение опорной выборки (xN - 1, yN + nTbH - M) может быть установлено на восстановленное значение опорной выборки C. Если восстановленное значение опорной выборки с координатами (xN + N, yN - 1) недоступно, доступная опорная выборка может быть найдена в порядке, обратном заданному, начиная с координат (xN + N, yN - 1), где N больше или равно 0 и меньше или равно nTbW - 1. Если доступная опорная выборка является D, восстановленное значение опорной выборки (xN + N, yN - 1) может быть установлено равным восстановленному значению опорной выборки D.With reference to the first aspect and the above possible implementations, in another possible implementation, if the reconstructed reference sample value (xN - 1, yN + nTbH - 1) is not available, the available sample is searched in the given order from the coordinates (xN - 1, yN + nTbH - 1) to coordinates (xN - 1, yN - 1) and then from coordinates (xN, yN - 1) to coordinates (xN + nTbW - 1, yN - 1). Once an available sample is found, the search ends. If the available sample is (x, y), the reconstructed reference sample value (xN - 1, yN + nTbH - 1) is set equal to the reconstructed sample value (x, y). If the reconstructed reference sample value (xN - 1, yN + nTbH - M) is not available, you can search for the available reference sample in the reverse order of the specified one, starting from coordinates (xN - 1, yN + nTbH - M), where M is greater than 1 and less than or equal to
На основании этого решения могут быть получены восстановленные значения доступных опорных выборок.Based on this decision, reconstructed values of the available reference samples can be obtained.
Со ссылкой на первый аспект и вышеупомянутые возможные реализации в другой возможной реализации, если определено, что все выборки, смежные с верхней стороной и левой стороной блока изображения, подлежащего обработке, недоступны, восстановленное значение опорной выборки устанавливается равным 1 << (bitDepth - 1), где bitDepth представляет битовую глубину значения выборки опорной выборки.With reference to the first aspect and the above possible implementations, in another possible implementation, if it is determined that all samples adjacent to the top side and left side of the image block to be processed are not available, the restored value of the reference sample is set to 1 << (bitDepth - 1) , where bitDepth represents the bit depth of the sample value of the reference sample.
На основании этого решения восстановленное значение опорной выборки может быть установлено на основании битовой глубины, когда как восстановленное значение опорной выборки, так и восстановленное значение новой опорной выборки недоступны.Based on this decision, the recovered value of the reference sample can be set based on the bit depth when both the recovered value of the reference sample and the recovered value of the new reference sample are not available.
Со ссылкой на первый аспект и вышеупомянутые возможные реализации, в другой возможной реализации, перед выполнением вычисления взвешивания для одного или нескольких восстановленных значений одной или нескольких опорных выборок и значения предсказания целевой выборки, способ включает в себя: когда опорная выборка находится выше блока изображения, подлежащего обработке, выполнение вычисления взвешивания на восстановленном значении опорной выборки и восстановленных значений левой соседней выборки и правой соседней выборки опорной выборки; когда опорная выборка находится слева блока изображения, подлежащего обработке, выполнение вычисления взвешивания на восстановленном значении опорной выборки и восстановленных значений верхней соседней выборки и нижней соседней выборки опорной выборки; и обновление восстановленного значения опорной выборки с использованием результата вычисления взвешивания.With reference to the first aspect and the above possible implementations, in another possible implementation, before performing a weighting calculation for one or more reconstructed values of one or more reference samples and a prediction value of the target sample, the method includes: when the reference sample is above the image block to be processing, performing a weighting calculation on the recovered reference sample value and the recovered values of the left neighbor sample and the right neighbor sample of the reference sample; when the reference sample is on the left of the image block to be processed, performing a weighting calculation on the restored value of the reference sample and the restored values of the top neighbor sample and the bottom neighbor sample of the reference sample; and updating the recovered reference sample value using the result of the weighting calculation.
На основании этого решения перед тем, как обработка фильтрации будет выполнена для целевой выборки, выполняется обработка фильтрации для восстановленного значения опорной выборки. Таким образом, эффективность кодирования может быть дополнительно улучшена, и остаток предсказания может быть уменьшен.Based on this decision, before filtering processing is performed on the target sample, filtering processing is performed on the recovered reference sample value. Thus, the encoding efficiency can be further improved and the prediction residual can be reduced.
Со ссылкой на первый аспект и вышеупомянутые возможные реализации, в другой возможной реализации, перед выполнением компенсации движения на блоке изображения, подлежащего обработке, на основании информации движения, способ дополнительно включает в себя: первоначальное обновление информации движения с использованием первого заданного алгоритма; и, соответственно, выполнение компенсации движения над подлежащим обработке блоком изображения на основании информации движения, включает в себя: выполнение компенсации движения на блоке изображения, подлежащего обработке, на основании изначально обновленной информации движения.With reference to the first aspect and the above possible implementations, in another possible implementation, before performing motion compensation on the image block to be processed based on the motion information, the method further includes: initially updating the motion information using the first predetermined algorithm; and accordingly, performing motion compensation on the image block to be processed based on the motion information includes: performing motion compensation on the image block to be processed based on the initially updated motion information.
На основании этого решения обновляется информация движения до того, как компенсация движения выполняется для текущего блока, и компенсация движения выполняется на основании обновленной информации движения. Таким образом можно уменьшить остаток предсказания.Based on this decision, motion information is updated before motion compensation is performed for the current block, and motion compensation is performed based on the updated motion information. In this way, the prediction residual can be reduced.
Со ссылкой на первый аспект и вышеупомянутые возможные реализации, в другой возможной реализации, после получения блока предсказания блока изображения, подлежащего обработке, способ дополнительно включает в себя: предварительное обновление блока предсказания с использованием второго заданного алгоритма; и, соответственно, выполнение вычисления взвешивания для одного или нескольких восстановленных значений одной или нескольких опорных выборок и значения предсказания целевой выборки включает в себя: выполнение вычисления взвешивания для одного или нескольких восстановленных значений одной или нескольких опорных выборок и предварительного обновленного значения предсказания целевой выборки.With reference to the first aspect and the above possible implementations, in another possible implementation, after obtaining a prediction block of an image block to be processed, the method further includes: pre-updating the prediction block using a second predetermined algorithm; and accordingly, performing a weight calculation on one or more recovered values of one or more reference samples and a target sample prediction value includes: performing a weight calculation on one or more recovered values of one or more reference samples and a preliminary updated target sample prediction value.
На основании данного решения, блок предсказания текущего блока предварительно обновляются, и выполняется вычисление взвешивания на основании предварительно обновленного значения предсказания и восстановленного значения опорной выборки. Таким образом можно уменьшить остаток предсказания.Based on this decision, the prediction block of the current block is previously updated, and a weighting calculation is performed based on the previously updated prediction value and the restored reference sample value. In this way, the prediction residual can be reduced.
Со ссылкой на первый аспект и вышеупомянутые возможные реализации, в другой возможной реализации, после выполнения вычисления взвешивания для одного или нескольких восстановленных значений одной или нескольких опорных выборок и значения предсказания целевой выборки для обновления значения предсказания целевой выборки, способ дополнительно включает в себя: обновление значения предсказания целевой выборки с использованием второго заданного алгоритма.With reference to the first aspect and the above possible implementations, in another possible implementation, after performing a weighting calculation on one or more recovered values of one or more reference samples and a prediction value of the target sample to update the prediction value of the target sample, the method further includes: updating the value predicting the target sample using the second predetermined algorithm.
На основании этого решения значение предсказания, которое относится к целевой выборке и которое подверглось обработке пространственной фильтрации, может быть обновлено с использованием заданного алгоритма. Таким образом можно уменьшить остаток предсказания.Based on this decision, a prediction value that is related to the target sample and that has undergone spatial filtering processing can be updated using a predetermined algorithm. In this way, the prediction residual can be reduced.
Со ссылкой на первый аспект и вышеупомянутые возможные реализации, в другой возможной реализации, перед выполнением вычисления взвешивания для одного или нескольких восстановленных значений одной или нескольких опорных выборок и значения предсказания целевой выборки, способ дополнительно включает в себя: синтаксический анализ битового потока для получения режима предсказания, соответствующего блоку изображения, подлежащего обработке; и определение, что режим предсказания является режимом слияния (merge) и/или усовершенствованным режимом внешнего предсказания вектора движения (inter-AMVP). Можно понять, что усовершенствованный режим внешнего предсказания вектора движения (inter-AMVP) также может называться режимом внешнего предсказания вектора движения (inter-MVP).With reference to the first aspect and the above possible implementations, in another possible implementation, before performing a weighting calculation for one or more recovered values of one or more reference samples and a prediction value of the target sample, the method further includes: parsing the bitstream to obtain a prediction mode corresponding to the block of the image to be processed; and determining that the prediction mode is a merge mode and/or an advanced inter-motion vector prediction (inter-AMVP) mode. It can be understood that the advanced inter-motion vector prediction (inter-AMVP) mode may also be referred to as the inter-motion vector prediction (inter-MVP) mode.
На основании этого решения перед обработкой фильтрации может быть определен режим предсказания, соответствующий блоку изображения, подлежащего обработке.Based on this decision, before the filtering processing, the prediction mode corresponding to the image block to be processed can be determined.
Со ссылкой на первый аспект и вышеупомянутые возможные реализации, в другой возможной реализации, перед выполнением вычисления взвешивания для одного или нескольких восстановленных значений одной или нескольких опорных выборок и значения предсказания целевой выборки, способ дополнительно включает в себя: синтаксический анализ битового потока для получения информации указания определения обновления блока изображения, подлежащего обработке; и определение, что информация указания определения обновления используется для указания обновить блок предсказания блока изображения, подлежащего обработке.With reference to the first aspect and the above possible implementations, in another possible implementation, before performing a weighting calculation on one or more recovered values of one or more reference samples and a prediction value of the target sample, the method further includes: parsing the bit stream to obtain indication information determining an update of the image block to be processed; and determining that the update determination indication information is used to indicate to update the prediction block of the image block to be processed.
На основании этого решения информация указания определении обновления блока изображения, подлежащего обработке, может быть получена путем синтаксического анализа битового потока, и определяется, что блок предсказания блока изображения, подлежащего обработке, должен быть обновлен.Based on this decision, update definition indication information of the image block to be processed can be obtained by parsing the bitstream, and it is determined that the prediction block of the image block to be processed is to be updated.
Со ссылкой на первый аспект и вышеупомянутые возможные реализации, в другой возможной реализации, перед выполнением вычисления взвешивания для одного или нескольких восстановленных значений одной или нескольких опорных выборок и значения предсказания целевой выборки, способ дополнительно включает в себя: получение заданной информации указания определения обновления блока изображения, подлежащего обработке; и определение, что информация указания определения обновления используется для указания обновить блок предсказания блока изображения, подлежащего обработке.With reference to the first aspect and the above possible implementations, in another possible implementation, before performing a weighting calculation for one or more recovered values of one or more reference samples and a target sample prediction value, the method further includes: obtaining predetermined image block update determination indication information to be processed; and determining that the update determination indication information is used to indicate to update the prediction block of the image block to be processed.
На основании этого решения может быть получена информация указания определения обновления блока изображения, подлежащего обработке, и на основании информации указания определения обновления определяется, что блок предсказания блока изображения, подлежащего обработке, подлежит обновлению.Based on this decision, update determination indication information of the image block to be processed can be obtained, and based on the update determination indication information, it is determined that the prediction block of the image block to be processed is to be updated.
Согласно второму аспекту вариантов осуществления настоящего изобретения предоставляется устройство внешнего предсказания, включающее в себя: модуль синтаксического анализа, выполненный с возможностью выполнять синтаксический анализ битового потока для получения информации движения блока изображения, подлежащего обработке; модуль компенсации, выполненный с возможностью выполнять компенсацию движения над блоком изображения, подлежащего обработке, на основании информации движения для получения блока предсказания блока изображения, подлежащего обработке, где блок предсказания блока изображения, подлежащего обработке, включает в себя значение предсказания целевой выборки; и модуль вычислений, выполненный с возможностью выполнять вычисления взвешивания для одного или нескольких восстановленных значений одной или нескольких опорных выборок и значения предсказания целевой выборки для обновления значения предсказания целевой выборки, где опорная выборка имеет заданное отношение пространственной позиции с целевой выборкой.According to a second aspect of the embodiments of the present invention, an inter prediction apparatus is provided, including: a parser configured to parse a bitstream to obtain motion information of an image block to be processed; a compensation module, configured to perform motion compensation on the image block to be processed based on the motion information to obtain a prediction block of the image block to be processed, where the prediction block of the image block to be processed includes a prediction value of the target sample; and a calculation module configured to perform weighting calculations on one or more recovered values of one or more reference samples and a prediction value of the target sample to update the prediction value of the target sample, where the reference sample has a predetermined spatial position relationship with the target sample.
Со ссылкой на второй аспект и вышеупомянутую возможную реализацию, в другой возможной реализации одна или несколько опорных выборок включают в себя восстановленную выборку, которая имеет ту же горизонтальную координату, что и целевая выборка, и имеет заданную разность вертикальной координаты с целевой выборкой, или восстановленную выборку, которая имеет ту же вертикальную координату, что и целевая выборка, и имеет заданную разность горизонтальной координаты с целевой выборкой.With reference to the second aspect and the above possible implementation, in another possible implementation, one or more reference samples include a reconstructed sample that has the same horizontal coordinate as the target sample and has a given vertical coordinate difference with the target sample, or the reconstructed sample , which has the same vertical coordinate as the target sample and has the given horizontal coordinate difference with the target sample.
Со ссылкой на второй аспект и вышеизложенное возможным осуществление, в другом возможном варианте реализации модуль вычисления специально выполнен с возможностью выполнять вычисления взвешивания на основании значения предсказания целевой выборки перед обновлением и восстановленным значением опорной выборки для получения обновленного значения предсказания целевой выборки, где обновленное значение предсказания целевой выборки получается в соответствии со следующей формулой:With reference to the second aspect and the above possible implementation, in another possible implementation, the calculation module is specifically configured to perform weighting calculations based on the prediction value of the target sample before updating and the restored value of the reference sample to obtain an updated prediction value of the target sample, where the updated prediction value of the target sample The sample is obtained according to the following formula:
где координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляет собой значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки, и представляют восстановленные значения опорных выборок на позициях и координат, соответственно, w1, w2, w3, w4, w5 и w6 являются заданными константами и M1 и M2 являются заданными положительными целыми числами.where the target sample coordinates are , the coordinates of the upper left sample of the image block to be processed are , is the prediction value of the target sample before updating, represents the updated prediction value of the target sample, and represent the reconstructed values of the reference samples at the positions and coordinates, respectively, w1, w2, w3, w4, w5 and w6 are given constants and M1 and M2 are given positive integers.
Со ссылкой на второй аспект и вышеупомянутые возможные реализации, в другой возможной реализации, w1 + w2 = R1, w3 + w4 = R2 или w5 + w6 + w7 = R3, где R1, R2 и R3 каждый являются 2 в степени n, и n представляет собой целое неотрицательное число.With reference to the second aspect and the above possible implementations, in another possible implementation, w1 + w2 = R1, w3 + w4 = R2 or w5 + w6 + w7 = R3, where R1, R2 and R3 are each 2 to the power of n, and n is a non-negative integer.
Со ссылкой на второй аспект и вышеупомянутую возможную реализацию, в другой возможной реализации модуль вычисления дополнительно специально выполнен с возможностью выполнять вычисления взвешивания на основании значения предсказания целевой выборки перед обновлением и восстановленным значением опорной выборки для получения обновленного значения предсказания целевой выборки, где обновленное значение предсказания целевой выборки получается в соответствии со следующей формулой:With reference to the second aspect and the above exemplary implementation, in another exemplary implementation, the calculation module is further specifically configured to perform weighting calculations based on the prediction value of the target sample before updating and the restored value of the reference sample to obtain an updated prediction value of the target sample, where the updated prediction value of the target sample The sample is obtained according to the following formula:
где координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляет собой значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки, , , и представляют восстановленные значения опорных выборок на позициях , , и координат, соответственно, w1, w2, w3, w4, w5, w6, w7, w8, w9, w10 и w11 являются заданными константами и M1, M2, M3 и M4 являются заданными положительными целыми числами.where the target sample coordinates are , the coordinates of the upper left sample of the image block to be processed are , is the prediction value of the target sample before updating, represents the updated prediction value of the target sample, , , and represent the reconstructed values of the reference samples at the positions , , and coordinates, respectively, w1, w2, w3, w4, w5, w6, w7, w8, w9, w10 and w11 are given constants and M1, M2, M3 and M4 are given positive integers.
Со ссылкой на второй аспект и вышеупомянутые возможные реализации, в другой возможной реализации, w1 + w2 + w3 = S1, w4 + w5 + w6 = S2 или w7 + w8 + w9 + w10 + w11 = S3, где S1, S2 и S3 равны 2 в степени n, и n представляет собой неотрицательное целое число.With reference to the second aspect and the above possible implementations, in another possible implementation, w1 + w2 + w3 = S1, w4 + w5 + w6 = S2 or w7 + w8 + w9 + w10 + w11 = S3, where S1, S2 and S3 are equal 2 to the power of n, and n is a non-negative integer.
Со ссылкой на второй аспект и вышеупомянутую возможную реализацию, в другой возможной реализации модуль вычисления дополнительно специально выполнен с возможностью выполнять вычисления взвешивания на основании значения предсказания целевой выборки перед обновлением и восстановленным значением опорной выборки для получения обновленного значения предсказания целевой выборки, где обновленное значение предсказания целевой выборки получается в соответствии со следующей формулой:With reference to the second aspect and the above exemplary implementation, in another exemplary implementation, the calculation module is further specifically configured to perform weighting calculations based on the prediction value of the target sample before updating and the restored value of the reference sample to obtain an updated prediction value of the target sample, where the updated prediction value of the target sample The sample is obtained according to the following formula:
где координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляет собой значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки, и представляют восстановленные значения опорных выборок на позициях и координат, соответственно, w1, w2 и w3 являются заданными константами и M1 и M2 являются заданными положительными целыми числами.where the target sample coordinates are , the coordinates of the upper left sample of the image block to be processed are , is the prediction value of the target sample before updating, represents the updated prediction value of the target sample, and represent the reconstructed values of the reference samples at the positions and coordinates, respectively, w1, w2 and w3 are given constants and M1 and M2 are given positive integers.
Со ссылкой на второй аспект и вышеупомянутые возможные реализации, в другой возможной реализации w1 + w2 + w3 = R, где R равно 2 в степени n, и n представляет собой неотрицательное целое число.With reference to the second aspect and the above possible implementations, in another possible implementation, w1 + w2 + w3 = R, where R is equal to 2 to the power of n, and n is a non-negative integer.
Со ссылкой на второй аспект и вышеупомянутую возможную реализацию, в другой возможной реализации модуль вычисления дополнительно специально выполнен с возможностью выполнять вычисления взвешивания на основании значения предсказания целевой выборки перед обновлением и восстановленным значением опорной выборки для получения обновленного значения предсказания целевой выборки, где обновленное значение предсказания целевой выборки получается в соответствии со следующей формулой:With reference to the second aspect and the above exemplary implementation, in another exemplary implementation, the calculation module is further specifically configured to perform weighting calculations based on the prediction value of the target sample before updating and the restored value of the reference sample to obtain an updated prediction value of the target sample, where the updated prediction value of the target sample The sample is obtained according to the following formula:
где координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляет собой значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки, , , и представляют восстановленные значения опорных выборок на позициях , , и координат, соответственно, w1, w2, w3, w4 и w5 являются заданными константами и M1, M2, M3 и M4 являются заданными положительными целыми числами.where the target sample coordinates are , the coordinates of the upper left sample of the image block to be processed are , is the prediction value of the target sample before updating, represents the updated prediction value of the target sample, , , and represent the reconstructed values of the reference samples at the positions , , and coordinates, respectively, w1, w2, w3, w4 and w5 are given constants and M1, M2, M3 and M4 are given positive integers.
Со ссылкой на второй аспект и вышеупомянутые возможные реализации, в другой возможной реализации, w1 + w2 + w3 + w4 + w5 = S, где S равно 2 в степени n, и n является неотрицательным целым числом.With reference to the second aspect and the above possible implementations, in another possible implementation, w1 + w2 + w3 + w4 + w5 = S, where S is equal to 2 to the power of n, and n is a non-negative integer.
Со ссылкой на второй аспект и вышеупомянутой возможной реализации, в другой возможной реализации одна или несколько опорных выборок включают в себя одну или несколько из следующих выборок: восстановленная выборка, которая имеет ту же горизонтальную координату, что и целевая выборка, и которая находится рядом с верхней стороной блока изображения, подлежащего обработке, восстановленная выборка, которая имеет ту же вертикальную координату, что и целевая выборка, и которая находится рядом с левой стороной блока изображения, подлежащего обработке, восстановленной выборкой рядом с верхней правой стороной блока изображения, подлежащего обработке, восстановленной выборкой с нижней левой стороны блока изображения, подлежащего обработке, или восстановленной выборкой верхней левой стороны блока изображения, подлежащего обработке.With reference to the second aspect and the above possible implementation, in another possible implementation, one or more reference samples include one or more of the following samples: a reconstructed sample that has the same horizontal coordinate as the target sample and that is near the top side of the image block to be processed, the reconstructed sample, which has the same vertical coordinate as the target sample and which is adjacent to the left side of the image block to be processed, the reconstructed sample adjacent to the upper right side of the image block to be processed, the reconstructed sample from the lower left side of the image block to be processed, or a reconstructed sample of the upper left side of the image block to be processed.
Со ссылкой на второй аспект и вышеупомянутую возможную реализацию, в другой возможной реализации модуль вычисления дополнительно специально выполнен с возможностью выполнять вычисления взвешивания на основании значения предсказания целевой выборки перед обновлением и восстановленного значения опорной выборки для получения обновленного значения предсказания целевой выборки, где обновленное значение предсказания целевой выборки получается в соответствии со следующей формулой:With reference to the second aspect and the above exemplary implementation, in another exemplary implementation, the calculation module is further specifically configured to perform weighting calculations based on the prediction value of the target sample before updating and the restored value of the reference sample to obtain an updated prediction value of the target sample, where the updated prediction value of the target sample The sample is obtained according to the following formula:
predQ (xP, yP) = (w1 * predP (xP, yP) + w2 * predP1 (xP, yP) + ((w1 + w2) / 2)) / (w1 + w2)predQ(xP, yP) = (w1 * predP(xP, yP) + w2 * predP1(xP, yP) + ((w1 + w2) / 2)) / (w1 + w2)
где predP1 (xP, yP) = (predV (xP, yP) + predH (xP, yP) + nTbW * nTbH) >> (Log2 (nTbW) + Log2 (nTbH) + 1), predV (xP, yP) = ((nTbH - 1 - yP) * p (xP, –1) + (yP + 1) * p (–1, nTbH)) << Log2 (nTbW), predH (xP, yP) = ((nTbW - 1 - xP) * p (–1, yP) + (xP + 1) * p (nTbW, –1)) << Log2 (nTbH), координаты целевой выборки равны (xP, yP), координаты верхней левой выборки блока изображения, подлежащего обработке, равны (0, 0), predP (xP, yP) представляет значение предсказания целевой выборки перед обновлением, predQ (xP, yP) представляет обновленное значение предсказания целевой выборки, p (xP, –1), p (–1, nTbH), p (–1, yP) и p (nTbW, –1) представляют восстановленные значения опорных выборок в координатах (xP, –1), (–1, nTbH), (–1, yP) и (nTbW, –1), соответственно, w1 и w2 являются заданными константами и nTbW и nTbH представляют ширину и высоту блока изображения, подлежащий обработке.where predP1 (xP, yP) = (predV (xP, yP) + predH (xP, yP) + nTbW * nTbH) >> (Log2 (nTbW) + Log2 (nTbH) + 1), predV (xP, yP) = ((nTbH - 1 - yP) * p (xP, –1) + (yP + 1) * p (–1, nTbH)) << Log2 (nTbW), predH (xP, yP) = ((nTbW - 1 - xP) * p (–1, yP) + (xP + 1) * p (nTbW, –1)) << Log2 (nTbH), target sample coordinates are (xP, yP), upper left sample coordinates of the image block, to be processed are (0, 0), predP(xP, yP) represents the prediction value of the target sample before updating, predQ(xP, yP) represents the updated prediction value of the target sample, p(xP, –1), p(–1, nTbH), p (–1, yP) and p (nTbW, –1) represent the reconstructed values of the reference samples in the coordinates (xP, –1), (–1, nTbH), (–1, yP) and (nTbW, – 1), respectively, w1 and w2 are given constants, and nTbW and nTbH represent the width and height of the image block to be processed.
В возможной реализации второго аспекта значение предсказания целевой выборки обновляется согласно следующей формуле:In an exemplary implementation of the second aspect, the target sample prediction value is updated according to the following formula:
predQ (xP, yP) = (w1 * predP (xP, yP) + w2 * predV (xP, yP) + w3 * predH (xP, yP) + ((w1 + w2 + w3) / 2)) / (w1 + w2 + w3)predQ (xP, yP) = (w1 * predP (xP, yP) + w2 * predV (xP, yP) + w3 * predH (xP, yP) + ((w1 + w2 + w3) / 2)) / (w1 + w2 + w3)
где predV (xP, yP) = ((nTbH - 1 - yP) * p (xP, –1) + (yP + 1) * p (–1, nTbH) + nTbH / 2) >> Log2 (nTbH), predH (xP, yP) = ((nTbW - 1 - xP) * p (–1, yP) + (xP + 1) * p (nTbW, –1) + nTbW / 2) >> Log2 (nTbW), координаты целевой выборки равны (xP, yP), координаты верхней левой выборки блока изображения, подлежащего обработке, равны (0, 0), predP (xP, yP) представляет значение предсказания целевой выборки перед обновлением, predQ (xP, yP) представляет обновленное значение предсказания целевой выборки, p (xP, –1), p (–1, nTbH), p (–1, yP) и p (nTbW, –1) представляют восстановленные значения опорных выборок в координатах (xP, –1), (–1, nTbH), (–1, yP) и (nTbW, –1), соответственно, w1, w2 и w3 являются заданными константами и nTbW и nTbH представляют ширину и высоту блока изображения, подлежащего обработке.where predV (xP, yP) = ((nTbH - 1 - yP) * p (xP, –1) + (yP + 1) * p (–1, nTbH) + nTbH / 2) >> Log2 (nTbH), predH (xP, yP) = ((nTbW - 1 - xP) * p (-1, yP) + (xP + 1) * p (nTbW, -1) + nTbW / 2) >> Log2 (nTbW), coordinates of the target sample are (xP, yP), the coordinates of the upper left sample of the image block to be processed are (0, 0), predP (xP, yP) represents the prediction value of the target sample before updating, predQ (xP, yP) represents the updated prediction value target sample, p(xP, –1), p(–1, nTbH), p(–1, yP), and p(nTbW, –1) represent the reconstructed values of the reference samples in coordinates (xP, –1), (– 1, nTbH), (-1, yP) and (nTbW, -1), respectively, w1, w2 and w3 are given constants and nTbW and nTbH represent the width and height of the image block to be processed.
В возможной реализации второго аспекта значение предсказания целевой выборки обновляется согласно следующей формуле:In an exemplary implementation of the second aspect, the target sample prediction value is updated according to the following formula:
predQ (xP, yP) = (((w1 * predP (xP, yP)) << (Log2 (nTbW) + Log2 (nTbH) + 1)) + w2 * predV (xP, yP) + w3 * predH (xP, yP) + (((w1 + w2 + w3) / 2) << (Log2 (nTbW) + Log2 (nTbH) + 1))) / (((w1 + w2 + w3) << (Log2 (nTbW) + Log2 (nTbH) + 1)))predQ (xP, yP) = (((w1 * predP (xP, yP)) << (Log2 (nTbW) + Log2 (nTbH) + 1)) + w2 * predV (xP, yP) + w3 * predH (xP , yP) + (((w1 + w2 + w3) / 2) << (Log2 (nTbW) + Log2 (nTbH) + 1))) / (((w1 + w2 + w3) << (Log2 (nTbW) + Log2 (nTbH) + 1)))
где predV (xP, yP) = ((nTbH - 1 - yP) * p (xP, –1) + (yP + 1) * p (–1, nTbH)) << Log2 (nTbW), predH (xP, yP) = ((nTbW - 1 - xP) * p (–1, yP) + (xP + 1) * p (nTbW, –1)) << Log2 (nTbH), координаты целевой выборки равны (xP, yP), координаты верхней левой выборки блока изображения, подлежащего обработке, равны (0, 0), predP (xP, yP) представляет значение предсказания целевой выборки до обновления, predQ (xP, yP) представляет обновленное значение предсказания целевой выборки, p (xP, –1), p (–1, nTbH), p (–1, yP) и p (nTbW, –1) представляют восстановленные значения опорных выборок на позициях (xP, –1), (–1, nTbH), (–1, yP) и (nTbW, –1) координат, соответственно, w1 и w2 являются заданными константами и nTbW и nTbH представляют ширину и высоту блока изображения, подлежащего обработке.where predV (xP, yP) = ((nTbH - 1 - yP) * p (xP, –1) + (yP + 1) * p (–1, nTbH)) << Log2 (nTbW), predH (xP, yP) = ((nTbW - 1 - xP) * p (–1, yP) + (xP + 1) * p (nTbW, –1)) << Log2 (nTbH), target sample coordinates are (xP, yP) , the coordinates of the upper left sample of the image block to be processed are (0, 0), predP(xP, yP) represents the prediction value of the target sample before updating, predQ(xP, yP) represents the updated prediction value of the target sample, p(xP, - 1), p (–1, nTbH), p (–1, yP), and p (nTbW, –1) represent the reconstructed values of the reference samples at positions (xP, –1), (–1, nTbH), (–1 , yP) and (nTbW, –1) coordinates, respectively, w1 and w2 are given constants, and nTbW and nTbH represent the width and height of the image block to be processed.
Со ссылкой на второй аспект и вышеупомянутую возможную реализацию, в другой возможной реализации модуль вычисления дополнительно специально выполнен с возможностью выполнять вычисления взвешивания на основании значения предсказания целевой выборки перед обновлением и восстановленного значения опорной выборки для получения обновленного значения предсказания целевой выборки, где обновленное значение предсказания целевой выборки получается в соответствии со следующей формулой:With reference to the second aspect and the above exemplary implementation, in another exemplary implementation, the calculation module is further specifically configured to perform weighting calculations based on the prediction value of the target sample before updating and the restored value of the reference sample to obtain an updated prediction value of the target sample, where the updated prediction value of the target sample The sample is obtained according to the following formula:
predQ (xP, yP) = (w1 * predP (xP, yP) + w2 * predP1 (xP, yP) + ((w1 + w2) / 2)) / (w1 + w2)predQ(xP, yP) = (w1 * predP(xP, yP) + w2 * predP1(xP, yP) + ((w1 + w2) / 2)) / (w1 + w2)
где where
координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляет значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки, , , и представляют восстановленные значения опорных выборок на позициях , , и координат, соответственно, w1 и w2 являются заданными константами и nTbW и nTbH представляют ширину и высоту блока изображения, подлежащего обработке.target sample coordinates are , the coordinates of the upper left sample of the image block to be processed are , represents the prediction value of the target sample before the update, represents the updated prediction value of the target sample, , , and represent the reconstructed values of the reference samples at the positions , , and coordinates, respectively, w1 and w2 are given constants and nTbW and nTbH represent the width and height of the image block to be processed.
Со ссылкой на второй аспект и вышеупомянутые возможные реализации, в другой возможной реализации сумма w1 и w2 равна 2, возведенной в степень n, и n является неотрицательным целым числом.With reference to the second aspect and the above possible implementations, in another possible implementation, the sum of w1 and w2 is equal to 2 raised to the power of n, and n is a non-negative integer.
Со ссылкой на второй аспект и вышеупомянутую возможную реализацию, в другой возможной реализации модуль вычисления дополнительно специально выполнен с возможностью выполнять вычисления взвешивания на основании значения предсказания целевой выборки перед обновлением и восстановленного значения опорной выборки для получения обновленного значения предсказания целевой выборки, где обновленное значение предсказания целевой выборки получается в соответствии со следующей формулой:With reference to the second aspect and the above exemplary implementation, in another exemplary implementation, the calculation module is further specifically configured to perform weighting calculations based on the prediction value of the target sample before updating and the restored value of the reference sample to obtain an updated prediction value of the target sample, where the updated prediction value of the target sample The sample is obtained according to the following formula:
гдеwhere
, , , ,
координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляет значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки, , и представляют восстановленные значения опорных выборок на позициях , и координат, соответственно, nTbW и nTbH представляют ширину и высоту блока изображения, подлежащего обработке, и clip1Cmp представляет операцию отсечения.target sample coordinates are , the coordinates of the upper left sample of the image block to be processed are , represents the prediction value of the target sample before the update, represents the updated prediction value of the target sample, , and represent the reconstructed values of the reference samples at the positions , and coordinates, respectively, nTbW and nTbH represent the width and height of the image block to be processed, and clip1Cmp represents the clipping operation.
Со ссылкой на второй аспект и вышеупомянутую возможную реализацию, в другой возможной реализации модуль вычисления дополнительно специально выполнен с возможностью выполнять вычисления взвешивания на основании значения предсказания целевой выборки перед обновлением и восстановленного значения опорной выборки для получения обновленного значения предсказания целевой выборки, где обновленное значение предсказания целевой выборки получается в соответствии со следующей формулой:With reference to the second aspect and the above exemplary implementation, in another exemplary implementation, the calculation module is further specifically configured to perform weighting calculations based on the prediction value of the target sample before updating and the restored value of the reference sample to obtain an updated prediction value of the target sample, where the updated prediction value of the target sample The sample is obtained according to the following formula:
гдеwhere
, , , ,
координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляет значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки, и представляют восстановленные значения опорных выборок на позициях и координат, соответственно, nTbW и nTbH представляют ширину и высоту блока изображения, подлежащего обработке и clip1Cmp представляет операцию отсечения.target sample coordinates are , the coordinates of the upper left sample of the image block to be processed are , represents the prediction value of the target sample before the update, represents the updated prediction value of the target sample, and represent the reconstructed values of the reference samples at the positions and coordinates, respectively, nTbW and nTbH represent the width and height of the image block to be processed, and clip1Cmp represents the clipping operation.
Со ссылкой на второй аспект и вышеупомянутые возможные реализации, в другой возможной реализации модуль вычислений дополнительно выполнен с возможностью: когда восстановленное значение опорной выборки недоступно, определять в заданном порядке доступность выборок соседних к верхней и левой сторонам блока изображения, подлежащего обработке, до тех пор, пока не будет получено заданное количество доступных опорных выборок; и выполнить вычисление взвешивания восстановленного значения доступной опорной выборки и значения предсказания целевой выборки.With reference to the second aspect and the above possible implementations, in another possible implementation, the calculation module is further configured to: when the recovered value of the reference sample is not available, to determine in a given order the availability of samples adjacent to the top and left sides of the image block to be processed, until until a predetermined number of available reference samples are received; and performing a weighting calculation of the reconstructed value of the available reference sample and the prediction value of the target sample.
Со ссылкой на второй аспект и вышеупомянутые возможные реализации, в другой возможной реализации модуль вычисления специально выполнен с возможностью получать восстановленное значение доступной опорной выборки в порядке от координат (xN - 1, yN + nTbH - 1) до координат (xN - 1, yN - 1) и затем из координат (xN, yN - 1) в координаты (xN + nTbW - 1, yN - 1).With reference to the second aspect and the above possible implementations, in another possible implementation, the calculation module is specifically configured to obtain the reconstructed value of the available reference sample in order from coordinates (xN - 1, yN + nTbH - 1) to coordinates (xN - 1, yN - 1) and then from coordinates (xN, yN - 1) to coordinates (xN + nTbW - 1, yN - 1).
Со ссылкой на второй аспект и вышеупомянутые возможные реализации, в другой возможной реализации, когда есть, по меньшей мере, одна доступная опорная выборка во всех опорных выборках, если восстановленное значение опорной выборки (xN - 1, yN + nTbH - 1) недоступно, доступная выборка ищется в заданном порядке от координат (xN - 1, yN + nTbH - 1) до координат (xN - 1, yN - 1) и затем от координат (xN, yN - 1) до координат (xN + nTbW - 1, yN - 1). Как только доступная выборка найдена, поиск заканчивается. Если доступная выборка является (x, y), восстановленное значение опорной выборки (xN - 1, yN + nTbH - 1) устанавливается равной восстановленному значению выборки (x, y). Если восстановленное значение опорной выборки (x, y) недоступно в наборе, включающем в себя опорную выборку (xN - 1, yN + nTbH - M), восстановленное значение опорной выборки (x, y) устанавливается на восстановленное значение выборки (x, y + 1), где M больше или равно 2 и меньше или равно nTbH + 1. Если восстановленное значение опорной выборки (x, y) недоступно в наборе включающий в себя опорную выборку (xN + N, yN - 1), восстановленное значение опорной выборки (x, y) устанавливается равным восстановленному значению опорной выборки (x - 1, y), где N больше или равно 0 и меньше или равно nTbW - 1.With reference to the second aspect and the above possible implementations, in another possible implementation, when there is at least one available reference sample in all the reference samples, if the restored value of the reference sample (xN - 1, yN + nTbH - 1) is not available, the available the sample is searched in the given order from coordinates (xN - 1, yN + nTbH - 1) to coordinates (xN - 1, yN - 1) and then from coordinates (xN, yN - 1) to coordinates (xN + nTbW - 1, yN - one). Once an available sample is found, the search ends. If the available sample is (x, y), the reconstructed reference sample value (xN - 1, yN + nTbH - 1) is set equal to the reconstructed sample value (x, y). If the reconstructed reference sample value (x, y) is not available in the set including the reference sample (xN - 1, yN + nTbH - M), the reconstructed reference sample value (x, y) is set to the reconstructed sample value (x, y + 1), where M is greater than or equal to 2 and less than or equal to
Со ссылкой на второй аспект и вышеупомянутые возможные реализации, в другой возможной реализации модуль вычислений специально выполнен с возможностью: если восстановленное значение опорной выборки (xN - 1, yN + nTbH - M) недоступно, поиск доступного опорной выборки в заданном порядке начинается с координат (xN - 1, yN + nTbH - M), где M больше или равно 1 и меньше или равно nTbH + 1. Если доступная опорная выборка равна B, восстановленное значение опорной выборки (xN - 1, yN + nTbH - M) может быть установлено на восстановленное значение опорной выборки B. Если восстановленное значение опорной выборки с координатами (xN + N, yN - 1) недоступно, доступную опорную выборку можно искать в заданном порядке, начиная с координат (xN + N, yN - 1), где N больше или равно 0 и меньше или равно nTbW - 1 .Если доступная опорная выборка равна C, восстановленное значение опорной выборки (xN + N, yN - 1) может быть установлено на восстановленное значение опорной выборки C.With reference to the second aspect and the above possible implementations, in another possible implementation, the calculation module is specifically configured to: if the recovered reference sample value (xN - 1, yN + nTbH - M) is not available, the search for an available reference sample in a given order starts from the coordinates ( xN - 1, yN + nTbH - M), where M is greater than or equal to 1 and less than or equal to
Со ссылкой на второй аспект и вышеупомянутые возможные реализации, в другой возможной реализации, если восстановленное значение опорной выборки (xN - 1, yN + nTbH - 1) недоступно, доступная выборка ищется в заданном порядке с координат (xN - 1, yN + nTbH - 1) до координат (xN - 1, yN - 1) и затем от координат (xN, yN - 1) к координатам (xN + nTbW - 1, yN - 1). Как только доступная выборка найдена, поиск заканчивается. Если доступная выборка равна (x, y), восстановленное значение опорной выборки (xN - 1, yN + nTbH - 1) устанавливается равным восстановленному значению выборки (x, y). Если восстановленное значение опорной выборки (xN - 1, yN + nTbH - M) недоступно, можно искать доступную опорную выборку в порядке, обратном заданному, начиная с координат (xN - 1, yN + nTbH - M), где M больше 1 и меньше или равно nTbH + 1. Если доступная опорная выборка является C, восстановленное значение опорной выборки (xN - 1, yN + nTbH - M) может быть установить на восстановленное значение опорной выборки C. Если восстановленное значение опорной выборки с координатами (xN + N, yN - 1) недоступно, доступная опорная выборка может быть найдена в порядке, обратном заданному, начиная с координат (xN + N, yN - 1), где N больше или равно 0 и меньше или равно nTbW - 1. Если доступная опорная выборка является D, восстановленное значение опорной выборки (xN + N, yN - 1) может быть установлено равным восстановленному значению опорной выборки D.With reference to the second aspect and the above possible implementations, in another possible implementation, if the reconstructed value of the reference sample (xN - 1, yN + nTbH - 1) is not available, the available sample is searched in the given order from the coordinates (xN - 1, yN + nTbH - 1) to coordinates (xN - 1, yN - 1) and then from coordinates (xN, yN - 1) to coordinates (xN + nTbW - 1, yN - 1). Once an available sample is found, the search ends. If the available sample is equal to (x, y), the reconstructed reference sample value (xN - 1, yN + nTbH - 1) is set equal to the reconstructed sample value (x, y). If the reconstructed reference sample value (xN - 1, yN + nTbH - M) is not available, you can search for the available reference sample in the reverse order of the specified one, starting from coordinates (xN - 1, yN + nTbH - M), where M is greater than 1 and less than or equal to
Со ссылкой на второй аспект и вышеупомянутые возможные реализации, в другой возможной реализации, если определено, что все выборки, смежные с верхней стороной и левой стороной блока изображения, подлежащего обработке, недоступны, восстановленное значение опорной выборки устанавливается равным 1 << (bitDepth - 1), где bitDepth представляет битовую глубину значения выборки опорной выборки.With reference to the second aspect and the above possible implementations, in another possible implementation, if it is determined that all samples adjacent to the top side and left side of the image block to be processed are not available, the restored value of the reference sample is set to 1 << (bitDepth - 1 ), where bitDepth represents the bit depth of the sample value of the reference sample.
Со ссылкой на второй аспект и вышеупомянутые возможные реализации, в другой возможной реализации модуль вычислений дополнительно выполнен с возможностью: когда опорная выборка расположена над блоком изображения, подлежащий обработке, выполнять вычисление взвешивания для восстановленного значения опорной выборки и восстановленных значений соседней слева выборки и правой соседней выборки опорной выборки; когда опорная выборка расположена слева от блока изображения, подлежащего обработке, выполнить вычисление взвешивания для восстановленного значения опорной выборки и восстановленных значений верхней соседней выборки и нижней соседней выборки опорной выборки; и обновить восстановленное значение опорной выборки, используя результат вычисления взвешивания.With reference to the second aspect and the aforementioned possible implementations, in another possible implementation, the calculation module is further configured to: when the reference sample is located over the image block to be processed, to perform a weighting calculation for the restored value of the reference sample and the restored values of the left adjacent sample and the right neighboring sample reference sample; when the reference sample is located to the left of the image block to be processed, perform a weighting calculation for the restored value of the reference sample and the restored values of the upper neighbor sample and the lower neighbor sample of the reference sample; and update the recovered reference sample value using the result of the weighting calculation.
Со ссылкой на второй аспект и вышеупомянутые возможные реализации, в другой возможной реализации модуль вычислений дополнительно выполнен с возможностью первоначального обновлять информацию движения с использованием первого заданного алгоритма; и, соответственно, модуль компенсации специально выполнен с возможностью выполнять компенсацию движения блока изображения, подлежащего обработке, на основании первоначально обновленной информации движения.With reference to the second aspect and the above possible implementations, in another possible implementation, the calculation module is further configured to initially update the motion information using the first predetermined algorithm; and accordingly, the compensation unit is specifically configured to perform motion compensation of the image block to be processed based on the initially updated motion information.
Со ссылкой на второй аспект и вышеупомянутые возможные реализации, в другой возможной реализации модуль вычислений дополнительно выполнен с возможностью предварительно обновлять блок предсказания с использованием второго заданного алгоритма; и, соответственно, модуль вычисления специально выполнен с возможностью выполнять вычисление взвешивания одного или нескольких восстановленных значений одной или нескольких опорных выборок и предварительно обновленного значения предсказания целевой выборки.With reference to the second aspect and the above possible implementations, in another possible implementation, the calculation module is further configured to pre-update the prediction block using the second predetermined algorithm; and accordingly, the calculation module is specifically configured to perform weighting calculation of one or more recovered values of one or more reference samples and the previously updated prediction value of the target sample.
Со ссылкой на второй аспект и вышеупомянутые возможные реализации, в другой возможной реализации модуль вычислений дополнительно выполнен с возможностью обновлять значения предсказания целевой выборки с использованием второго заданного алгоритма.With reference to the second aspect and the above possible implementations, in another possible implementation, the calculation module is further configured to update target sample prediction values using a second predetermined algorithm.
Со ссылкой на второй аспект и вышеупомянутые возможные реализации, в другой возможной реализации модуль синтаксического анализа дополнительно выполнен с возможностью: выполнять синтаксический анализ битового потока для получения режима предсказания, соответствующего блоку изображения, подлежащего обработке; и определять, что режим предсказания является режимом слияния (merge) и/или усовершенствованным режимом внешнего предсказания вектора движения (inter-AMVP). Можно понять, что усовершенствованным режимом внешнего предсказания вектора движения (inter-AMVP) также может называться режим внешнего предсказания вектора движения (inter-MVP).With reference to the second aspect and the above possible implementations, in another possible implementation, the parsing module is further configured to: parse the bitstream to obtain a prediction mode corresponding to the image block to be processed; and determine that the prediction mode is a merge mode and/or an advanced inter-motion vector prediction (inter-AMVP) mode. It can be understood that the advanced inter-motion vector prediction (inter-AMVP) mode may also be referred to as the inter-motion vector prediction (inter-MVP) mode.
Со ссылкой на второй аспект и вышеупомянутые возможные реализации, в другой возможной реализации модуль синтаксического анализа дополнительно выполнен с возможностью: выполнять синтаксический анализ битового потока для получения информации указания определения обновления блока изображения, подлежащего обработке; и определять, что информация указания определения обновления используется для указания обновить блок предсказания блока изображения, подлежащего обработке.With reference to the second aspect and the aforementioned possible implementations, in another possible implementation, the parsing module is further configured to: perform parsing of the bitstream to obtain update determination indication information of the image block to be processed; and determine that the update determination indication information is used to indicate to update the prediction block of the image block to be processed.
Со ссылкой на второй аспект и вышеупомянутые возможные реализации, в другой возможной реализации модуль вычислений дополнительно выполнен с возможностью: получать заданную информацию определения обновления блока изображения, подлежащего обработке; и определять, что информация указания определения обновления используется для указания обновить блок предсказания блока изображения, подлежащего обработке.With reference to the second aspect and the above possible implementations, in another possible implementation, the calculation module is further configured to: obtain predetermined update determination information of an image block to be processed; and determine that the update determination indication information is used to indicate to update the prediction block of the image block to be processed.
Согласно третьему аспекту настоящего изобретения, предоставляется устройство предсказания информации движения, включающее в себя процессор и память, которая связана с процессором. Процессор выполнен с возможностью выполнять способ согласно первому аспекту.According to a third aspect of the present invention, a motion information predictor is provided, including a processor and a memory that is coupled to the processor. The processor is configured to perform the method according to the first aspect.
Согласно четвертому аспекту настоящего изобретения предоставляется машиночитаемый носитель данных. Машиночитаемый носитель данных хранит инструкцию. Когда инструкция выполняется на компьютере, компьютер получает возможность выполнять способ в соответствии с первым аспектом.According to a fourth aspect of the present invention, a computer-readable storage medium is provided. The computer-readable storage medium stores the instruction. When the instruction is executed on the computer, the computer is enabled to execute the method according to the first aspect.
Согласно пятому аспекту настоящего изобретения предоставляется компьютерный программный продукт, включающий в себя инструкцию. Когда инструкция выполняется на компьютере, компьютер получает возможность выполнять способ в соответствии с первым аспектом.According to a fifth aspect of the present invention, a computer program product including an instruction is provided. When the instruction is executed on the computer, the computer is enabled to execute the method according to the first aspect.
Следует понимать, что технические решения в аспектах со второго по пятый настоящего изобретения согласуются с решениями в первом аспекте настоящего изобретения. Достигаемые положительные эффекты во всех аспектах и соответствующие возможные реализации всех аспектов аналогичны. Поэтому подробности снова не описываются.It should be understood that the technical solutions in the second to fifth aspects of the present invention are consistent with those in the first aspect of the present invention. The positive effects achieved in all aspects and the corresponding possible realizations of all aspects are similar. Therefore, details are not described again.
Краткое описание чертежейBrief description of the drawings
Фиг. 1 является блок-схемой примера системы кодирования видео, которая может быть выполнена с возможностью использовать в варианте осуществления настоящего изобретения;Fig. 1 is a block diagram of an example of a video coding system that may be configured to be used in an embodiment of the present invention;
фиг. 2 является блок-схемой примера видеокодера, который может быть выполнен с возможностью использовать в варианте осуществления настоящего изобретения;fig. 2 is a block diagram of an example of a video encoder that may be configured to be used in an embodiment of the present invention;
фиг. 3 является блок-схемой примера видеодекодера, который может быть выполнен с возможностью использовать в варианте осуществления настоящего изобретения;fig. 3 is a block diagram of an example of a video decoder that may be configured to be used in an embodiment of the present invention;
фиг. 4 является блок-схемой примера модуля внешнего предсказания, который может быть выполнен с возможностью использования в варианте осуществления настоящего изобретения;fig. 4 is a block diagram of an example of an inter prediction module that can be configured to be used in an embodiment of the present invention;
фиг. 5 является блок-схемой алгоритма примерной реализации режима предсказания слияния;fig. 5 is a flowchart of an exemplary implementation of the merge prediction mode;
фиг. 6 является блок-схемой алгоритма примерной реализации усовершенствованного режима предсказания вектора движения;fig. 6 is a flowchart of an exemplary implementation of the advanced motion vector prediction mode;
фиг. 7 является блок-схемой алгоритма примерной реализации компенсации движения, выполняемой видеодекодером, который может быть выполнен с возможностью использования в варианте осуществления настоящего изобретения;fig. 7 is a flowchart of an exemplary implementation of motion compensation performed by a video decoder that may be configured for use in an embodiment of the present invention;
фиг. 8 является схемой примера блока кодирования и соседнего блока изображения, ассоциированного с блоком кодирования;fig. 8 is a diagram of an example of an encoding block and an adjacent image block associated with the encoding block;
фиг. 9 является блок-схемой алгоритма примерной реализации составления списка кандидатов предсказанного вектора движения;fig. 9 is a flowchart of an exemplary implementation of listing predicted motion vector candidates;
фиг. 10 является схемой примерной реализации добавления объединенного кандидата вектора движения в список кандидатов предсказанного вектора движения в режиме слияния;fig. 10 is a diagram of an exemplary implementation of adding a combined motion vector candidate to a predicted motion vector candidate list in a merge mode;
фиг. 11 является схемой примерной реализации добавления масштабированного кандидата вектора движения в список кандидатов предсказанного вектора движения в режиме слияния;fig. 11 is a diagram of an exemplary implementation of adding a scaled motion vector candidate to a predicted motion vector candidate list in a merge mode;
фиг. 12 является схемой примерной реализации добавления нулевого вектора движения к списку кандидатов предсказанного вектора движения в режиме слияния;fig. 12 is a diagram of an exemplary implementation of adding a zero motion vector to a list of predicted motion vector candidates in a merge mode;
фиг. 13 является блок-схемой алгоритма способа внешнего предсказания согласно варианту осуществления настоящего изобретения;fig. 13 is a flowchart of an inter prediction method according to an embodiment of the present invention;
фиг. 14 является схемой 1 применения способа внешнего предсказания согласно варианту осуществления настоящего изобретения;fig. 14 is an application diagram 1 of an inter prediction method according to an embodiment of the present invention;
фиг. 15 является схемой 2 применения способа внешнего предсказания согласно варианту осуществления настоящего изобретения;fig. 15 is an application diagram 2 of an inter prediction method according to an embodiment of the present invention;
фиг. 16 является схемой 3 применения способа внешнего предсказания согласно варианту осуществления настоящего изобретения;fig. 16 is an application diagram 3 of an inter prediction method according to an embodiment of the present invention;
фиг. 17 является схемой 4 применения способа внешнего предсказания согласно варианту осуществления настоящего изобретения;fig. 17 is an application diagram 4 of an inter prediction method according to an embodiment of the present invention;
фиг. 18 является схемой устройства внешнего предсказания согласно варианту осуществления настоящего изобретения; иfig. 18 is a diagram of an inter prediction device according to an embodiment of the present invention; and
фиг. 19 является схемой другого устройства внешнего предсказания согласно варианту осуществления настоящего изобретения.fig. 19 is a diagram of another inter prediction device according to an embodiment of the present invention.
Описание вариантов осуществления Description of Embodiments
Нижеследующее ясно и полностью описывает технические решения в вариантах осуществления настоящего изобретения со ссылкой на сопроводительные чертежи в вариантах осуществления настоящего изобретения.The following clearly and completely describes the technical solutions in the embodiments of the present invention with reference to the accompanying drawings in the embodiments of the present invention.
Фиг. 1 является блок-схемой примера системы кодирования видео согласно варианту осуществления настоящего изобретения. Как описано здесь, термин «видеокодер» обычно относится как к видеокодеру, так и к видеодекодеру. В настоящем изобретении термин «кодирование видео» или «кодирование» обычно может относиться к кодированию видео или декодированию видео. Видеокодер 100 и видеодекодер 200 в системе кодирования видео выполнены с возможностью предсказывать информацию движения, например, вектор движения, текущего кодированного блока изображения или подблока текущего кодированного блока изображения согласно различным примерам способа, описанным на основании любого из множества новых режимов внешнего предсказания, предоставленных в настоящем изобретении, так что предсказанный вектор движения в наибольшей степени приближается к вектору движения, полученному с помощью способа оценки движения, и нет необходимости передавать разность векторов движения во время кодирования. Кроме того, это повышает производительность кодирования.Fig. 1 is a block diagram of an example of a video coding system according to an embodiment of the present invention. As described herein, the term "video encoder" generally refers to both a video encoder and a video decoder. In the present invention, the term "video coding" or "coding" can generally refer to video coding or video decoding.
Как показано на фиг. 1, система кодирования видео включает в себя устройство 10 источника и устройство 20 назначения. Устройство 10 источника генерирует кодированные видеоданные. Следовательно, устройство 10 источника может называться устройством кодирования видео. Устройство 20 назначения может декодировать кодированные видеоданные, генерируемые устройством 10 источника. Следовательно, устройство 20 назначения может называться устройством декодирования видео. В различных решениях реализации устройство 10 источника, устройство 20 назначения или как устройство 10 источника, так и устройство 20 назначения могут включать в себя один или несколько процессоров и память, соединенную с одним или несколькими процессорами. Память может включать в себя, но не ограничивается, RAM, ROM, EEPROM, флэш-память или любой другой носитель, который может использоваться для хранения необходимого программного кода в форме инструкции или структуры данных и к которому можно получить доступ с помощью компьютера, как описано в этой спецификации.As shown in FIG. 1, the video coding system includes a source device 10 and a destination device 20. The source device 10 generates encoded video data. Therefore, the source device 10 may be referred to as a video encoding device. The destination device 20 can decode the encoded video data generated by the source device 10 . Therefore, the destination device 20 may be referred to as a video decoding device. In various implementations, source device 10, destination device 20, or both source device 10 and destination device 20 may include one or more processors and memory coupled to one or more processors. Memory may include, but is not limited to, RAM, ROM, EEPROM, flash memory, or any other medium that can be used to store the necessary program code in the form of an instruction or data structure and that can be accessed by a computer as described. in this specification.
Устройство 10 источника и устройство 20 назначения могут включать в себя различные устройства, включающие в себя настольный компьютер, мобильное вычислительное устройство, портативный компьютер (например, портативный компьютер), планшетный компьютер, телеприставку, портативный телефонный аппарат. такой как «умный» телефон, телевизор, фотоаппарат, устройство отображения, цифровой медиаплеер, игровая приставка, бортовой компьютер и т.п.Source device 10 and destination device 20 may include various devices including a desktop computer, a mobile computing device, a portable computer (eg, a laptop computer), a tablet computer, a set-top box, a portable telephone. such as a smart phone, TV, camera, display device, digital media player, game console, trip computer, and the like.
Устройство 20 назначения может принимать кодированные видеоданные от устройства 10 источника по линии 30 связи. Линия 30 связи может включать в себя один или несколько носителей или устройств, которые могут передавать кодированные видеоданные от устройства 10 источника в устройство назначения 20. В одном примере линия 30 связи может включать в себя одну или несколько сред передачи данных, которые позволяют устройству 10 источника напрямую передавать кодированные видеоданные в устройство 20 назначения в реальном времени. В этом примере устройство 10 источника может модулировать закодированные видеоданные в соответствии со стандартом связи (например, протоколом беспроводной связи) и может передавать модулированные видеоданные в устройство 20 назначения. Одна или несколько сред связи могут включать в себя беспроводная и/или проводная среда связи, например, радиочастотный (radio frequency, RF) спектр или одну или несколько физических линий передачи. Одна или несколько сред связи могут составлять часть сети с пакетной передачей данных, и сеть с пакетной передачей данных представляет собой, например, локальную сеть, региональную сеть или глобальную сеть (например, интернет). Одна или несколько сред связи могут включать в себя маршрутизатор, коммутатор, базовую станцию или другое устройство, обеспечивающее связь от устройства 10 источника к устройству 20 назначения.Destination device 20 may receive encoded video data from source device 10 via
В другом примере, закодированные данные могут быть выведены в устройство 40 хранения через интерфейс 140 вывода. Аналогичным образом, к кодированным данным можно получить доступ из устройства 40 хранения через интерфейс 240 ввода. Устройство 40 хранения может включать в себя любой один из множества распределенных носителей для хранения данных или локально доступных носителей для хранения данных, например, жесткий диск, диск Blu-ray, цифровой видеодиск (digital video disc, DVD), компакт-диск, постоянное запоминающее устройство (compact disk read-only memory, CD-ROM), флэш-памятью, энергозависимой или энергонезависимой памятью или любым другим подходящим цифровым запоминающим устройством, выполненным с возможностью хранить кодированные видеоданные.In another example, the encoded data may be output to the storage device 40 via the
В другом примере устройство 40 хранения может соответствовать файловому серверу или другому промежуточному устройству хранения, выполненному с возможностью хранить кодированное видео, сгенерированное устройством 10 источника. Устройство 20 назначения может осуществлять доступ к сохраненным видеоданным из устройства 40 хранения посредством потоковой передачи или загрузки. Файловый сервер может быть сервером любого типа, который может хранить закодированные видеоданные и передавать закодированные видеоданные в устройство 20 назначения. В одном примере файловый сервер включает в себя сетевой сервер (например, используемый для веб-сайта), протокол передачи файлов (file transfer protocol, FTP), устройство сетевого хранилища (network-attached storage, NAS) или локальный диск. Устройство 20 назначения может получить доступ к закодированным видеоданным через любое стандартное соединение для передачи данных (включающее в себя соединение с интернетом). Стандартное соединение для передачи данных может включать в себя беспроводной канал (например, соединение достоверностью беспроводной связи (wireless-fidelity, Wi-Fi)), проводное соединение (например, цифровую абонентскую линию (digital subscriber line, DSL) или кабельному модему) или комбинацию беспроводного канала и проводного соединения, где комбинация подходит для доступа к кодированным видеоданным, хранящимся на файловом сервере. Кодированные видеоданные могут передаваться из устройства 40 хранения посредством потоковой передачи, загрузки с загрузкой или их комбинации.In another example, storage device 40 may correspond to a file server or other intermediate storage device configured to store encoded video generated by source device 10. The destination device 20 may access the stored video data from the storage device 40 via streaming or downloading. The file server may be any type of server that can store the encoded video data and transmit the encoded video data to the destination device 20 . In one example, a file server includes a network server (eg, used for a website), a file transfer protocol (FTP), a network-attached storage (NAS) device, or a local drive. The destination device 20 can access the encoded video data via any standard data connection (including an Internet connection). A typical data connection may include a wireless link (for example, a wireless-fidelity (Wi-Fi) connection), a wired connection (for example, a digital subscriber line (DSL) or cable modem), or a combination wireless channel and wired connection, where the combination is suitable for accessing encoded video data stored on a file server. The encoded video data may be transferred from the storage device 40 via streaming, upload-to-download, or a combination thereof.
Технология предсказания вектора движения в настоящем изобретении применима к кодированию видео для поддержки множества мультимедийных приложений, например, эфирного телевещания, передачи кабельного телевидения, передачи спутникового телевидения, передачи потокового видео (например, через интернет), кодирование видеоданных, хранящихся на носителе данных, декодирование видеоданных, хранящихся на носителе данных, или другое приложение. В некоторых примерах система кодирования видео может быть выполнена с возможностью поддерживать однонаправленную или двунаправленную передачи видео для поддержки таких приложений, как потоковая передача видео, воспроизведение видео, широковещательная передача видео и/или видеотелефония.The motion vector prediction technology of the present invention is applicable to video coding to support a variety of multimedia applications, such as terrestrial TV broadcast, cable TV transmission, satellite TV transmission, video streaming (for example, via the Internet), encoding of video data stored on a storage medium, decoding of video data stored on a storage medium, or another application. In some examples, the video coding system may be configured to support unidirectional or bidirectional video transmission to support applications such as video streaming, video playback, video broadcast, and/or video telephony.
Система кодирования видео, описанная на фиг. 1, является просто примером, и технология настоящего изобретения применимы к настройкам кодирования видео (например, кодирование видео или декодирование видео), которые не обязательно включают в себя обмен данными между устройством кодирования и устройством декодирования. В другом примере данные извлекаются из локальной памяти, передаются в потоковом режиме по сети и т.п. Устройство кодирования видео может кодировать данные и сохранять данные в памяти, и/или устройство декодирования видео может извлекать данные из памяти и декодировать данные. Во многих примерах кодирование и декодирование выполняются устройствами, которые не обмениваются данными друг с другом, и просто кодируют данные и сохраняют данные в памяти и/или извлекают данные из памяти и декодируют данные.The video coding system described in FIG. 1 is just an example, and the technology of the present invention is applicable to video encoding settings (eg, video encoding or video decoding) that do not necessarily include communication between an encoding device and a decoding device. In another example, data is retrieved from local memory, streamed over a network, and the like. The video encoding device may encode the data and store the data in memory, and/or the video decoding device may retrieve the data from the memory and decode the data. In many examples, encoding and decoding are performed by devices that do not communicate with each other and simply encode data and store data in memory and/or retrieve data from memory and decode data.
В примере на фиг. 1, устройство 10 источника включает в себя источник 120 видео, видеокодер 100 и интерфейс 140 вывода. В некоторых примерах интерфейс 140 вывода может включать в себя модулятор/демодулятор (модем) и/или передатчик. Источник 120 видео может включать в себя устройство захвата видео (например, видеокамеру), видеоархив, включающий в себя ранее захваченные видеоданные, интерфейс подачи видео для приема видеоданных от поставщика видеоконтента и/или компьютерную графическую систему для генерирования видеоданных или комбинаций вышеупомянутых источников видеоданных.In the example in FIG. 1, the source device 10 includes a
Видеокодер 100 может кодировать видеоданные из источника 120 видео. В некоторых примерах устройство 10 источника напрямую передает закодированные видеоданные в устройство 20 назначения через интерфейс 140 вывода. В других примерах кодированные видеоданные могут быть дополнительно сохранены в устройстве 40 хранения, так что устройство 20 назначения впоследствии получает доступ к кодированным видеоданным для декодирования и/или воспроизведения.
В примере на фиг. 1, устройство 20 назначения включает в себя интерфейс 240 ввода, видеодекодер 200 и устройство 220 отображения. В некоторых примерах интерфейс 240 ввода включает в себя приемник и/или модем. Интерфейс 240 ввода может принимать закодированные видеоданные по линии 30 связи и/или от устройства 40 хранения. Устройство 220 отображения может быть интегрировано с устройством 20 назначения или может быть расположено вне устройства 20 назначения. Как правило, устройство 220 отображения отображает декодированные видеоданные. Устройство 220 отображения может включать в себя множество типов устройств отображения, например, жидкокристаллический дисплей (liquid crystal display, LCD), плазменный дисплей, дисплей на органических светодиодах (organic light-emitting diode, OLED), или другой тип устройства отображения.In the example in FIG. 1, the destination device 20 includes an
В некоторых аспектах, хотя это не показано на фиг. 1, видеокодер 100 и видеодекодер 200 могут быть интегрированы с аудиокодером и аудиодекодером соответственно и могут включать в себя соответствующий блок мультиплексора-демультиплексора или другое аппаратное и программное обеспечение для кодирования как звука, так и видео в одном и том же потоке данных или отдельных потоках данных. В некоторых примерах, если применимо, блок демультиплексора (MUX-DEMUX) может соответствовать протоколу мультиплексора H.223 международного союза электросвязи (International Telecommunication Union, ITU) или другому протоколу, например, протоколу дейтаграмм пользователя (user datagram protocol, UDP). In some aspects, although not shown in FIG. 1,
Видеокодер 100 и видеодекодер 200 каждый может быть реализован в виде любой из множества схем, например, одного или нескольких микропроцессоров, процессоров цифровых сигналов (digital signal processor, DSP), специализированной интегральной схемой (application-specific integrated circuit, ASIC), программируемые пользователем вентильные матрицы (field programmable gate array, FPGA), дискретная логика, аппаратное обеспечение или любая их комбинация. Если настоящее изобретение реализовано частично с использованием программного обеспечения, устройство может хранить инструкцию для программного обеспечения на соответствующем постоянном машиночитаемом носителе данных и может использовать один или несколько процессоров для выполнения инструкции в аппаратном обеспечении для реализации технологии в настоящем изобретении. Любое из вышеупомянутого (включающее в себя оборудование, программное обеспечение, комбинацию аппаратного и программного обеспечения и т.п.) может рассматриваться как один или несколько процессоров. Видеокодер 100 и видеодекодер 200 каждый может быть использован в одном или нескольких кодеров или декодеров. Кодер или декодер могут быть интегрированы как часть комбинированного кодера/декодера (кодека) в соответствующее устройство.
В настоящем изобретении видеокодер 100 может, в целом, называться устройством, которое «сигнализирует» или «отправляет» некоторую информацию на другое устройство, такое как видеодекодер 200. Термин «сигнализация» или «отправка» может обычно относиться к передаче элемента синтаксиса и/или других данных, используемых для декодирования сжатых видеоданных. Передача может осуществляться в реальном времени или почти в реальном времени. В качестве альтернативы связь может выполняться по истечении определенного периода времени, например, когда элемент синтаксиса в закодированном битовой потоке сохраняется на машиночитаемом носителе данных во время кодирования. Затем устройство декодирования может извлекать элемент синтаксиса в любое время после того, как элемент синтаксиса, сохраненный на носителе.In the present invention,
JCT-VC разработал стандарт высокоэффективного видеокодирования H.265 (high efficiency video coding, HEVC). Стандартизация HEVC основана на развитой модели устройства декодирования видео, где модель называется тестовой моделью HEVC (HEVC model, HM). Последний стандартный документ H.265 доступен по адресу http://www.itu.int/rec/T-REC-H.265. Последней версией стандартного документа является H.265 (12/16), и стандартный документ полностью включен в настоящее описание посредством ссылки. В HM предполагается, что устройство декодирования видео имеет несколько дополнительных возможностей по сравнению с существующим алгоритмом в ITU-TH.264/AVC. Например, H.264 обеспечивает девять режимов кодирования с внутренним предсказанием, тогда как HM может обеспечивать до 35 режимов кодирования с внутренним предсказанием.JCT-VC has developed the H.265 (high efficiency video coding, HEVC) standard. The HEVC standardization is based on an evolved video decoding device model, where the model is referred to as the HEVC test model (HEVC model, HM). The latest standard H.265 document is available at http://www.itu.int/rec/T-REC-H.265. The latest version of the standard document is H.265 (12/16), and the standard document is incorporated herein by reference in its entirety. HM assumes that the video decoder has several additional capabilities over the existing algorithm in ITU-TH.264/AVC. For example, H.264 provides nine intra prediction coding modes, while HM can provide up to 35 intra prediction coding modes.
JVET разрабатывает стандарт H.266. Процесс стандартизации H.266 основан на усовершенствованной модели устройства декодирования видео, где модель упоминается как тестовая модель H.266. Описания алгоритмов H.266 доступны на http://phenix.int-evry.fr/jvet, и последние описания алгоритмов содержаться в JVET-F1001-v2. Документ с описанием алгоритма полностью включен в настоящий документ посредством ссылки. Кроме того, справочное программное обеспечение для тестовой модели JEM доступно по адресу https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/, и оно также полностью включено в настоящий документ посредством ссылки.JVET is developing the H.266 standard. The H.266 standardization process is based on an advanced video decoding device model, where the model is referred to as the H.266 test model. H.266 algorithm descriptions are available at http://phenix.int-evry.fr/jvet and the latest algorithm descriptions are in JVET-F1001-v2. The algorithm description document is incorporated herein by reference in its entirety. In addition, the reference software for the JEM test model is available at https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/ and is also incorporated herein by reference in its entirety.
Обычно, как описано в рабочей модели HM, видеокадр или изображение могут быть разделены на последовательность древовидных блоков или наибольших блоков кодирования (largest coding unit, LCU), включающие в себя как выборки яркости, так и выборки цветности. LCU также называется блоком дерева кодирования (coding tree unit, CTU). Блок дерева имеет функцию, аналогичную функции макроблока в стандарте H.264. Сегмент включает в себя несколько последовательных блоков дерева в порядке декодирования. Видеокадр или изображение могут быть разделены на один или несколько сегментов. Каждый блок дерева может быть разделен на блоки кодирования на основании дерева квадрантов. Например, блок дерева, служащий корневым узлом дерева квадрантов, может быть разделен на четыре дочерних узла, и каждый дочерний узел может также служить в качестве родительского узла и быть разделен на четыре других дочерних узла. Конечный нерасщепляемый дочерний узел, служащий листовым узлом дерева квадрантов, включает в себя узел декодирования, например, декодированный блок видео. Максимальное количество раз, когда блок дерева может быть разделен, и минимальный размер узла декодирования может быть определен в данных синтаксиса, ассоциированных с декодированным битовым потоком.Typically, as described in the HM Working Model, a video frame or picture may be divided into a sequence of tree blocks or large coding units (LCUs) including both luminance and chrominance samples. An LCU is also called a coding tree unit (CTU). The tree block has a function similar to that of the macroblock in the H.264 standard. A segment includes several consecutive tree blocks in decoding order. A video frame or image may be divided into one or more segments. Each tree block may be divided into coding blocks based on the quadtree. For example, a tree block serving as the root node of a quadtree may be split into four child nodes, and each child node may also serve as a parent node and be split into four other child nodes. The final non-splittable child node serving as a leaf node of the quadtree includes a decoding node, such as a decoded video block. The maximum number of times a tree block may be split and the minimum decoding node size may be specified in the syntax data associated with the decoded bitstream.
Блок кодирования включает в себя узел декодирования, блок предсказания (prediction unit, PU) и блок преобразования (transform unit, TU), ассоциированный с узлом декодирования. Размер CU соответствует размеру узла декодирования, и форма CU должна быть квадратом. Размер CU может варьироваться от 8 × 8 пикселей до максимума 64 × 64 пикселей или может быть большим размером блока дерева. Каждый CU может включать в себя один или несколько PUs и один или несколько TUs. Например, данные синтаксиса, ассоциированные с CU, могут описывать разделение одного CU на один или несколько PUs. Режимы разделения могут изменяться, когда CU кодируется на основании режима пропуска или прямого предсказания, кодируется на основании режима внутреннего предсказания или кодируется на основании режима внешнего предсказания. PU, полученный в результате разделения, может иметь неквадратную форму. Например, данные синтаксиса, ассоциированные с CU, могут альтернативно описывать разделение одного CU на один или несколько TUs на основании дерева квадрантов. TU может иметь квадратную или неквадратную форму.The coding unit includes a decoding node, a prediction unit (PU), and a transform unit (TU) associated with the decoding node. The size of the CU corresponds to the size of the decoding node, and the shape of the CU must be a square. The size of a CU can vary from 8×8 pixels to a maximum of 64×64 pixels, or it can be a larger tree block size. Each CU may include one or more PUs and one or more TUs. For example, the syntax data associated with a CU may describe the division of one CU into one or more PUs. The division modes may change when the CU is encoded based on the skip or direct prediction mode, encoded based on the intra prediction mode, or encoded based on the inter prediction mode. The PU resulting from the separation may have a non-square shape. For example, syntax data associated with a CU may alternatively describe the division of one CU into one or more TUs based on a quadtree. The TU may be square or non-square.
Стандарт HEVC допускает преобразование на основании TU. Tus могут быть разными для разных CUs. Размер TU обычно устанавливается на основании размера PU в пределах данного CU, определенном для разделенного LCU. Однако так бывает не всегда. Размер TU обычно такой же или меньше размера PU. В некоторых возможных реализациях структура дерева квадрантов, именуемая «остаточное дерево квадрантов» (residual quadtree, RQT), может использоваться для разделения остаточной выборки, соответствующей CU, на меньшие блоки. Листовой узел RQT может называться TU. Разность пикселей, ассоциированная с TU, может быть преобразована для генерирования коэффициента преобразования, и коэффициент преобразования может быть квантован.The HEVC standard allows conversion based on TU. Tus may be different for different CUs. The TU size is usually set based on the size of the PUs within a given CU defined for a partitioned LCU. However, this is not always the case. The TU size is usually the same or smaller than the PU size. In some possible implementations, a quadtree structure referred to as a "residual quadtree" (residual quadtree, RQT) may be used to divide the residual sample corresponding to a CU into smaller blocks. The leaf node of an RQT may be referred to as a TU. The pixel difference associated with the TU may be transformed to generate a transform coefficient, and the transform coefficient may be quantized.
Обычно PU включает в себя данные, относящиеся к процессу предсказания. Например, когда PU кодируется на основании режима внутреннего предсказания, PU может включать в себя данные, описывающие режим внутреннего предсказания, соответствующий PU. В другой возможной реализации, когда PU кодируется на основании режима внешнего предсказания, PU может включать в себя данные, определяющие вектор движения PU. Например, данные, определяющие вектор движения PU, могут описывать горизонтальную составляющую вектора движения, вертикальную составляющую вектора движения, разрешение (например, точность 1/4 выборки или точность 1/8 выборки) вектора движения, опорного изображения, на которое указывает вектор движения, и/или список опорного изображения (например, список 0, список 1, или список С) вектора движения.Typically, the PU includes data related to the prediction process. For example, when the PU is encoded based on the intra prediction mode, the PU may include data describing the intra prediction mode corresponding to the PU. In another possible implementation, when the PU is encoded based on the inter prediction mode, the PU may include data defining a motion vector of the PU. For example, the data defining the motion vector of the PU may describe the horizontal motion vector component, the vertical motion vector component, the resolution (e.g., 1/4 sample precision or 1/8 sample precision) of the motion vector, the reference picture pointed to by the motion vector, and /or a reference picture list (eg,
Обычно для TU используются процессы преобразования и квантования. Данный CU, включающий в себя один или несколько PUs, также может включать в себя один или несколько TUs. После предсказания видеокодер 100 может вычислить остаточное значение, соответствующее PU. Остаточное значение включает в себя разность пикселей. Разность пикселей может быть преобразована в коэффициент преобразования и коэффициент преобразования квантуется и подвергается сканированию TU для генерирования сериализованного коэффициента преобразования для энтропийного декодирования. В настоящем изобретении термин «блок видео» обычно используется для обозначения узла декодирования CU. В некоторых конкретных приложениях в настоящем изобретении термин «блок видео» также может использоваться для обозначения древовидного блока, такого как LCU или CU, включающий в себя узел декодирования, PU и TU.Typically, transformation and quantization processes are used for TUs. A given CU including one or more PUs may also include one or more TUs. After prediction,
Видеопоследовательность обычно включает в себя серию видеокадров или изображений. Например, группа изображений (group of picture, GOP) включает в себя серию видеоизображений или одно или несколько видеоизображений. GOP может включать в себя данные синтаксиса в информацию заголовка GOP, в информацию заголовка одного или нескольких изображений или где-то еще, и данные синтаксиса описывают количество изображений, включенных в GOP. Каждый сегмент изображения может включать в себя данные синтаксиса сегмента, описывающие режим кодирования для соответствующего изображения. Видеокодер 100 обычно выполняет операцию над блок видео в сегменте видео, чтобы кодировать видеоданные. Блок видео может соответствовать узлу декодирования в CU. Размер блок видео может быть фиксированным или переменным и может изменяться в зависимости от указанного стандарта декодирования.A video sequence typically includes a series of video frames or pictures. For example, a group of pictures (GOP) includes a series of video images or one or more video images. The GOP may include the syntax data in the header information of the GOP, in the header information of one or more pictures, or elsewhere, and the syntax data describes the number of pictures included in the GOP. Each image segment may include segment syntax data describing an encoding mode for the corresponding image.
В возможной реализации HM поддерживает предсказание для PU с множеством размеров. Предполагая, что размер заданного CU равен 2N × 2N, HM поддерживает внутреннее предсказание для PU с размером 2N × 2N или N × N, и внешнее предсказание для симметричного PU с размером 2N × 2N, 2N × N, N × 2N или N × N. HM также поддерживает асимметричное разделение для внешнего предсказания для размеров PU 2N × nU, 2N × nD, nL × 2N или nR × 2N. При асимметричном разделении CU не разделяется в одном направлении, и делится на две части в другом направлении, где одна часть составляет 25% CU и другая часть равна 75% CU. Часть, на которую приходится 25% CU, обозначается индикатором, включающим в себя «n», за которым следует «U (вверх)», «D (вниз)», «L (влево)» или «R (вправо)». Следовательно, например, «2N × nU» относится к горизонтально разделенному 2N × 2N CU с PU 2N × 0,5N вверху и PU 2Nx1,5N внизу.In an exemplary implementation, the HM supports multi-size PU prediction. Assuming that the size of a given CU is 2N × 2N, HM supports intra prediction for a PU with a size of 2N × 2N or N × N, and an inter prediction for a symmetric PU with a size of 2N × 2N, 2N × N, N × 2N or N × N The HM also supports asymmetric partitioning for inter-prediction for PU sizes of 2N × nU, 2N × nD, nL × 2N, or nR × 2N. In asymmetric splitting, the CU is not split in one direction, but is split into two parts in the other direction, where one part is 25% CU and the other part is 75% CU. The portion that accounts for 25% of CU is indicated by an indicator including "n" followed by "U (up)", "D (down)", "L (left)", or "R (right)". Therefore, for example, "2N × nU" refers to a horizontally divided 2N × 2N CU with a 2N × 0.5N PU at the top and a 2Nx1.5N PU at the bottom.
В настоящем изобретении «N × N» и «N, умноженное на N» используются взаимозаменяемо для указания размера пикселя блока видео в вертикальном измерении и горизонтальном измерении, например, 16 × 16 пикселей или 16 умноженных на 16 пикселей. Обычно блок 16 × 16 имеет 16 пикселей в вертикальном направлении (y = 16) и 16 пикселей в горизонтальном направлении (x = 16). Точно так же блок N × N имеет N пикселей в вертикальном направлении и N пикселей в горизонтальном направлении, где N является неотрицательным целым числом. Пиксели в блоке могут быть расположены в строках и столбцах. Кроме того, в блоке количество пикселей в горизонтальном направлении и количество пикселей в вертикальном направлении не обязательно может быть одинаковым. Например, блок может включать в себя N × M пикселей, где M не обязательно равно N.In the present invention, "N×N" and "N times N" are used interchangeably to indicate the pixel size of a video block in vertical dimension and horizontal dimension, such as 16×16 pixels or 16 times 16 pixels. Typically a 16×16 block has 16 pixels in the vertical direction (y = 16) and 16 pixels in the horizontal direction (x = 16). Similarly, an N × N block has N pixels in the vertical direction and N pixels in the horizontal direction, where N is a non-negative integer. Pixels in a block can be arranged in rows and columns. In addition, in a block, the number of pixels in the horizontal direction and the number of pixels in the vertical direction may not necessarily be the same. For example, a block may include N × M pixels, where M is not necessarily equal to N.
После того, как выполнено декодирование с внутренним или внешним предсказанием для PU в CU, видеокодер 100 может вычислить остаточные данные TU в CU. PU может включать в себя данные пикселей в пространственной области (также называемой областью пикселей). TU может включать в себя коэффициент в области преобразования после того, как к остаточным видеоданным применяется преобразование (например, дискретное косинусное преобразование (discrete cosine transform, DCT), целочисленное преобразование, вейвлет-преобразование или концептуально аналогичное преобразование). Остаточные данные могут соответствовать разности пикселей между пикселями некодированного изображения и значением предсказания, соответствующему PU. Видеокодер 100 может генерировать TU, включающий в себя остаточные данные CU, и затем преобразовывать TU для генерирования коэффициента преобразования CU.After intra- or inter-prediction decoding has been performed for the PU in the CU,
После выполнения любого преобразования для генерирования коэффициентов преобразования видеокодер 100 может квантовать коэффициенты преобразования. Квантование относится, например, к процессу квантования коэффициентов для уменьшения количества данных, используемых для представления коэффициентов, и реализовать дополнительное сжатие. Процесс квантования может уменьшить битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Например, во время квантования n-битовое значение может быть уменьшено до m-битового значения посредством округления, где n больше m.After performing any transformation to generate the transform coefficients,
Модель JEM дополнительно улучшает структуру кодирования видеоизображения. В частности, представлена структура блочного кодирования, называемая структурой «дерево квадрантов плюс двоичное дерево» (QTBT). Без использования таких концепций, как CU, PU и TU в HEVC, структура QTBT поддерживает более гибкую форму разделения CU. CU может иметь квадратную или прямоугольную форму. Разделение дерева квадрантов сначала выполняется на CTU, и далее выполняется разделение двоичного дерева на листовом узле дерева квадрантов. Кроме того, в разделении двоичного дерева есть два режима разделения: симметричное горизонтальное разбиение и симметричное вертикальное разбиение. Листовой узел двоичного дерева называется CU. CU в модели JEM не может быть далее разделен во время предсказания и преобразования. Другими словами, CU, PU и TU в модели JEM имеют одинаковый размер блока. В существующей модели JEM максимальный размер CTU составляет 256 × 256 пикселей яркости.The JEM model further improves the video coding structure. In particular, a block coding structure called a Quadtree Plus Binary Tree (QTBT) structure is presented. Without the use of concepts such as CU, PU, and TU in HEVC, the QTBT framework supports a more flexible form of CU partitioning. The CU may be square or rectangular. Quadtree splitting is first performed on the CTU, and then binary tree splitting is performed on the leaf node of the quadtree. In addition, there are two partitioning modes in binary tree partitioning: symmetrical horizontal splitting and symmetrical vertical splitting. The leaf node of a binary tree is called CU. The CU in the JEM model cannot be further split during prediction and transformation. In other words, CU, PU, and TU in the JEM model have the same block size. In the current JEM model, the maximum CTU size is 256 × 256 luma pixels.
В некоторых возможных реализациях видеокодер 100 может сканировать квантованный коэффициент преобразования в заранее определенном порядке сканирования для генерирования сериализованного вектора, который может быть энтропийно закодирован. В других возможных реализациях видеокодер 100 может выполнять адаптивное сканирование. После сканирования квантованного коэффициента преобразования для генерирования одномерного вектора видеокодер 100 может выполнить энтропийное кодирование одномерного вектора с использованием контекстно-зависимого адаптивного кодирования переменной длины (context-based adaptive variable-length code, CAVLC), контекстного адаптивного двоичного арифметического кодирования (context-based adaptive binary arithmetic coding, CABAC), основанное на синтаксисе адаптивное двоичное арифметическое кодирование на основании синтаксиса (syntax-based adaptive binary arithmetic coding, SBAC), энтропии разделения интервалов вероятности (probability interval partitioning entropy, PIPE) или другой способ энтропийного кодирования. Видеокодер 100 может дополнительно выполнять энтропийное кодирование элемента синтаксиса, ассоциированного с кодированными видеоданными, чтобы видеодекодер 200 декодировал видеоданные.In some possible implementations,
Чтобы выполнить CABAC, видеокодер 100 может назначить контекст в контекстной модели символу, который должен быть передан. Контекст может быть связан с тем, является ли соседнее значение символа ненулевым. Для выполнения CAVLC видеокодер 100 может выбрать код переменной длины для передаваемого символа. Может быть сформировано кодовое слово при кодировании с переменной длиной слова (variable-length, VLC) так, чтобы более короткий код соответствовал более вероятному символу и более длинный код соответствовал менее вероятному символу. Таким образом, по сравнению с использованием кодовых слов одинаковой длины для всех подлежащих передаче символов, использование VLC может снизить скорость передачи битов. Вероятность в CABAC может быть определена на основании контекста, назначенного символу.To perform CABAC,
В этом варианте осуществления настоящего изобретения для уменьшения временной избыточности между изображениями видеокодер может выполнять внешнее предсказание. Как описано выше, CU может иметь один или несколько блоков предсказания PUs в зависимости от различных стандартов кодирования сжатия видео. Другими словами, множество PUs могут принадлежать одному CU, или PU и CU имеют одинаковый размер. В этой спецификации, когда CU и PU имеют одинаковый размер, режим разделения, соответствующий CU, состоит в том, что CU не разделен, или CU разделен на один PU, и PU единообразно используется для описания. Когда видеокодер выполняет внешнее предсказание, видеокодер может передавать информацию движения PU в видеодекодер. Например, информация движения PU может включать в себя индекс опорного изображения, вектор движения и индикатор направления предсказания. Вектор движения может указывать смещение между блоком изображения (также называемым блок видео, блоком пикселей, набором пикселей или т.п.) PU и опорным блоком PU. Опорный блок PU может быть частью опорного изображения, аналогично блока изображения PU. Опорный блок может быть расположен в качестве опорного изображения, указанного индексом опорного изображения и индикатором направления предсказания.In this embodiment of the present invention, to reduce temporal redundancy between pictures, the video encoder may perform inter-prediction. As described above, a CU may have one or more PUs depending on different video compression coding standards. In other words, multiple PUs may belong to the same CU, or PUs and CUs may be the same size. In this specification, when the CU and the PU are the same size, the division mode corresponding to the CU is that the CU is not divided, or the CU is divided into one PU, and the PU is uniformly used for description. When the video encoder performs inter prediction, the video encoder may send the motion information of the PU to the video decoder. For example, the PU motion information may include a reference picture index, a motion vector, and a prediction direction indicator. The motion vector may indicate an offset between an image block (also called a video block, pixel block, pixel set, or the like) PU and a reference PU. The reference PU may be part of a reference picture, similar to the picture PU. The reference block may be positioned as a reference picture indicated by a reference picture index and a prediction direction indicator.
Чтобы уменьшить количество битов кодирования, необходимых для представления информации движения PU, видеокодер может сгенерировать список предсказанных векторов движения (Motion Vector, MV) для каждой PU на основании режима предсказания слияния или усовершенствованного режима предсказания вектора движения. Каждый кандидат предсказанного вектора движения в списке кандидатов предсказанного вектора движения для PU может указывать информацию движения. Информация движения, указанная некоторыми предсказанными кандидатами вектора движения в списке кандидатов предсказанного вектора движения, может быть основана на информации движения других PUs. Если кандидат предсказанного вектора движения указывает информацию движения одного из указанного пространственного кандидата, предсказанного вектора движения на позиции или указанного временного кандидата предсказанного вектора движения на позиции, кандидат предсказанного вектора движения может упоминаться как «исходный» кандидат предсказанного вектора движения в настоящем изобретении. Например, в режиме слияния, также называемом режимом предсказания слияния в этой спецификации, может быть пять исходных пространственных кандидатов предсказанных векторов движения на позициях и один исходный временной кандидат предсказанного вектора движения на позиции. В некоторых примерах видеокодер может генерировать дополнительные предсказанные кандидаты вектора движения путем объединения некоторых векторов движения из различных исходных кандидатов предсказанного вектора движения, модификации исходного кандидата предсказанного вектора движения или вставки только нулевого вектора движения в качестве кандидата предсказанного вектора движения. Предсказанные векторы движения дополнительных кандидатов не рассматриваются как предсказанные исходные кандидаты векторов движения и в настоящем изобретении могут упоминаться как искусственно сгенерированные предсказанные кандидаты векторов движения.To reduce the number of coding bits required to represent PU motion information, the video encoder may generate a list of predicted motion vectors (Motion Vector, MV) for each PU based on the merge prediction mode or the advanced motion vector prediction mode. Each predicted motion vector candidate in the predicted motion vector candidate list for the PU may indicate motion information. The motion information indicated by some of the predicted motion vector candidates in the predicted motion vector candidate list may be based on the motion information of other PUs. If the predicted motion vector candidate indicates motion information of one of the specified spatial candidate, the predicted motion vector at a position, or the specified temporal predicted motion vector candidate at a position, the predicted motion vector candidate may be referred to as the "original" predicted motion vector candidate in the present invention. For example, in the merge mode, also referred to as the merge prediction mode in this specification, there may be five initial spatial position predicted motion vector candidates and one initial position predicted motion vector candidate temporal. In some examples, the video encoder may generate additional predicted motion vector candidates by combining some motion vectors from different original predicted motion vector candidates, modifying the original predicted motion vector candidate, or inserting only the null motion vector as a predicted motion vector candidate. The predicted motion vectors of the additional candidates are not considered to be the predicted original motion vector candidates and may be referred to as artificially generated predicted motion vector candidates in the present invention.
Технологии в настоящем изобретении обычно включают в себя технологию для составления списка кандидатов предсказанного вектора движения на видеокодере и технологию для составления того же списка кандидатов предсказанного вектора движения на видеодекодере. Видеокодер и видеодекодер могут генерировать один и тот же список кандидатов предсказанного вектора движения путем реализации одной и той же технологии для составления списка кандидатов предсказанного вектора движения. Например, видеокодер и видеодекодер могут составлять списки с одинаковым количеством кандидатов предсказанного вектора движения (например, пять кандидатов предсказанного вектора движения). Видеокодер и видеодекодер могут сначала рассматривать предсказанные векторы движения пространственных кандидатов (например, соседние блоки в одном изображении) и затем рассматривать предсказанные векторы движения временных кандидатов (например, предсказанные кандидаты векторов движения в разных изображениях) и, наконец, могут рассматривать искусственно сгенерированные кандидаты предсказанных векторов движения до тех пор, пока требуемое количество кандидатов предсказанных векторов движения не будет добавлено в списки. Согласно технологиям в настоящем изобретении, во время составления списка кандидатов предсказанного вектора движения операция сокращения может выполняться для некоторых типов кандидатов предсказанного вектора движения для удаления повторяющийся кандидатов предсказанного вектора движения из списка кандидатов предсказанного вектора движения, но может не выполняться для других типов предсказанных векторов движения кандидатов для снижения сложности декодера. Например, для набора предсказанных пространственных кандидатов вектора движения и предсказанного временного кандидата вектора движения может быть выполнена операция отсечения для удаления кандидата предсказанного вектора движения с той же информацией движения из списка кандидатов предсказанного вектора движения. Однако искусственно сгенерированный кандидат предсказанного вектора движения может быть добавлен в список кандидатов предсказанного вектора движения без удаления.The techniques in the present invention typically include a technique for listing predicted motion vector candidates at a video encoder and a technique for listing the same predicted motion vector candidates at a video decoder. The video encoder and the video decoder may generate the same motion vector predicted candidate list by implementing the same technology for generating the motion vector predicted candidate list. For example, the video encoder and video decoder may list the same number of motion vector predictor candidates (eg, five motion vector predictor candidates). The video encoder and video decoder may first consider the predicted motion vectors of spatial candidates (eg, neighboring blocks in the same picture) and then consider the predicted motion vectors of temporal candidates (eg, predicted motion vector candidates in different pictures), and finally may consider artificially generated predicted vector candidates. until the required number of predicted motion vector candidates are added to the lists. According to the techniques in the present invention, during the listing of motion vector predicted candidates, a pruning operation may be performed on some types of predicted motion vector candidates to remove duplicate predicted motion vector candidates from the list of predicted motion vector candidates, but may not be performed on other types of predicted motion vector candidates. to reduce the complexity of the decoder. For example, for a set of predicted spatial motion vector candidates and a predicted temporal motion vector candidate, a pruning operation may be performed to remove a predicted motion vector candidate with the same motion information from the list of predicted motion vector candidates. However, the artificially generated motion vector predictor candidate may be added to the motion vector predictor candidate list without being removed.
После генерирования списка кандидатов предсказанного вектора движения для PU из CU видеокодер может выбрать кандидат предсказанного вектора движения из списка кандидатов предсказанного вектора движения и вывести индекс кандидата предсказанного вектора движения в битовом потоке. Выбранный кандидат предсказанного вектора движения может быть кандидатом предсказанного вектора движения для генерирования вектора движения, который наиболее точно соответствует значению предсказания целевого PU, который декодируется. Индекс кандидата предсказанного вектора движения может указывать позицию выбранного кандидата предсказанного вектора движения в списке кандидатов предсказанных векторов движения. Видеокодер может дополнительно генерировать блок изображения предсказания PU, основанный на опорном блоке, указанным информацией движения PU. Информация движения PU может быть определена на основании информации движения, указанной выбранным кандидатом предсказанного вектора движения. Например, в режиме слияния информация движения PU может быть такой же, как информация движения, указанная выбранным кандидатом предсказанного вектора движения. В режиме AMVP информация движения PU может быть определена на основании разности векторов движения для PU и информации движения, указанной выбранным кандидатом предсказанного вектора движения. Видеокодер может генерировать один или несколько блоков остаточного изображения CU на основании блока изображения предсказания PU CU и исходного блока изображения CU. Затем видеокодер может кодировать один или несколько блоков остаточного изображения и выводить один или несколько блоков остаточного изображения в битовом потоке.After generating a list of predicted motion vector candidates for the PU from the CU, the video encoder may select a predicted motion vector candidate from the list of predicted motion vector candidates and output an index of the predicted motion vector candidate in the bitstream. The selected predicted motion vector candidate may be a predicted motion vector candidate for generating a motion vector that most closely matches the prediction value of the target PU that is being decoded. The motion vector predictor candidate index may indicate the position of the selected motion vector candidate in the predicted motion vector candidate list. The video encoder may further generate a PU prediction image block based on the reference block indicated by the PU motion information. The motion information of the PU may be determined based on the motion information indicated by the selected motion vector predictor candidate. For example, in the merge mode, the motion information of the PU may be the same as the motion information indicated by the selected motion vector predictor candidate. In the AMVP mode, the motion information of the PU may be determined based on the difference of the motion vectors for the PU and the motion information indicated by the selected motion vector prediction candidate. The video encoder may generate one or more CUs based on the CU prediction PU and the original CU. The video encoder may then encode one or more afterimage blocks and output one or more afterimage blocks in the bitstream.
Битовый поток может включать в себя данные, идентифицирующие выбранного кандидата предсказанного вектора движения в списке кандидатов предсказанного вектора движения для PU. Видеодекодер может определять информацию движения PU на основании информации движения, указанной выбранным кандидатом предсказанного вектора движения в списке кандидатов предсказанного вектора движения для PU. Видеодекодер может идентифицировать один или несколько опорных блоков PU на основании информации движения PU. После идентификации одного или нескольких опорных блоков PU видеодекодер может сгенерировать блок изображения предсказания PU на основании одного или нескольких опорных блоков PU. Видеодекодер может восстановить блок изображения CU на основании блока изображения предсказания PU CU и одного или нескольких остаточных блоков изображения CU.The bitstream may include data identifying a selected predicted motion vector candidate in the list of predicted motion vector candidates for the PU. The video decoder may determine the motion information of the PU based on the motion information indicated by the selected motion vector predictor candidate in the predicted motion vector candidate list for the PU. The video decoder may identify one or more PU reference blocks based on the motion information of the PU. After identifying one or more PUs, the video decoder may generate a PU prediction picture block based on the one or more PUs. The video decoder may reconstruct the CU image block based on the CU prediction image block PU and one or more residual CU image blocks.
Для простоты объяснения в настоящем изобретении позиция или блок изображения могут быть описаны как позиция или блок изображения, имеющий различные пространственные отношения с CU или PU. Описание может быть объяснено следующим образом: позиция или блок изображения имеет различные пространственные отношения с блоком изображения, ассоциированным с CU или PU. Кроме того, в настоящем изобретении PU, декодируемый в настоящий момент видеодекодером, может называться текущим PU, а также называться текущим блоком изображения, подлежащий обработке. В настоящем изобретении CU, декодируемый в настоящий момент видеодекодером, может называться текущим CU. В настоящем изобретении изображение, декодируемое в данный момент видеодекодером, может называться текущим изображением. Следует понимать, что настоящее изобретение также применимо к случаю, когда PU и CU имеют одинаковый размер или PU является CU. Для описания единообразно используется PU.For ease of explanation, in the present invention, a position or image block may be described as a position or image block having a different spatial relationship with a CU or PU. The description can be explained as follows: a position or image block has a different spatial relationship with an image block associated with a CU or PU. Further, in the present invention, the PU currently being decoded by the video decoder may be referred to as the current PU and also referred to as the current image block to be processed. In the present invention, the CU currently being decoded by the video decoder may be referred to as the current CU. In the present invention, the picture currently being decoded by the video decoder may be referred to as the current picture. It should be understood that the present invention is also applicable to the case where the PU and CU have the same size or the PU is a CU. PU is used uniformly for description.
Как кратко описано выше, видеокодер 100 может генерировать блок изображения предсказания и информацию движения PU CU посредством внешнего предсказания. Во многих примерах информация движения данного PU может быть такой же или аналогичной информации движения одного или нескольких соседних PUs (а именно, PU, блок изображения которого пространственно или временно смежен с блоком изображения данного PU). Поскольку соседний PU часто имеет аналогичную информацию движения, видеокодер 100 может кодировать информацию движения данного PU на основании информации движения соседнего PU. Кодирование информации движения данного PU на основании информации движения соседнего PU может уменьшить количество битов кодирования в битовом потоке, которые требуются для указания информации движения данного PU.As briefly described above,
Видеокодер 100 может кодировать информацию движения данного PU на основании информации движения соседнего PU различными способами. Например, видеокодер 100 может указывать, что информация движения данного PU такая же, как информация движения соседнего PU. В настоящем изобретении режим слияния может использоваться для указания, что информация движения данного PU является такой же, как или может быть получена из информации движения соседнего PU. В другой возможной реализации видеокодер 100 может вычислить разность векторов движения (Motion Vector Difference, MVD) для данного PU. MVD указывает разницу между вектором движения данного PU и вектором движения соседнего PU. Видеокодер 100 может добавлять MVD вместо вектора движения данного PU в информацию движения данного PU. В битовом потоке количество битов кодирования, необходимых для представления MVD, меньше количества битов кодирования, необходимых для представления вектора движения данного PU. В настоящем изобретении может использоваться усовершенствованный режим предсказания вектора движения для указания, что информация движения заданного PU передается на сторону декодера с использованием MVD и значения индекса, которое используется для идентификации кандидата вектора движения.
Для сигнализации, на основании режима слияния или режима AMVP, информации движения данного PU стороне декодера, видеокодер 100 может сгенерировать список кандидатов предсказанного вектора движения для данного PU. Список кандидатов предсказанного вектора движения может включать в себя один или несколько кандидатов предсказанного вектора движения. Каждый из кандидатов предсказанного вектора движения в списке кандидатов предсказанного вектора движения для данного PU может указывать информацию движения. Информация движения, указанная каждым кандидатом предсказанного вектора движения, может включать в себя вектор движения, индекс опорного изображения и индикатор направления предсказания. Кандидаты предсказанного вектора движения в списке кандидатов предсказанного вектора движения могут включать в себя «исходный» кандидат предсказанного вектора движения. Каждый из кандидатов предсказанного вектора движения указывает информацию движения в одном из указанных кандидатов предсказанного вектора движения на позициях в пределах PU, отличных от данного PU.To signal, based on the merge mode or AMVP mode, the motion information of a given PU to the decoder side,
После генерирования списка кандидатов предсказанного вектора движения для PU видеокодер 100 может выбрать один кандидат предсказанного вектора движения из списка кандидатов предсказанного вектора движения, который используется для PU. Например, видеокодер может сравнивать каждый кандидат предсказанного вектора движения с PU, который декодируется, и может выбирать кандидат предсказанного вектора движения с требуемой стоимостью искажения скорости. Видеокодер 100 может выводить предсказанный индекс кандидата вектора движения для PU. Индекс кандидата предсказанного вектора движения может идентифицировать позицию выбранного кандидата предсказанного вектора движения в списке кандидатов предсказанного вектора движения.After generating the list of predicted motion vector candidates for the PU,
Дополнительно, видеокодер 100 может генерировать блок изображения предсказания PU, основанный на опорный блоке, указанной информацией движения PU. Информация движения PU может быть определена на основании информации движения, указанной выбранным кандидатом предсказанного вектора движения в списке кандидатов предсказанного вектора движения для PU. Например, в режиме слияния информация движения PU может быть такой же, как информация движения, указанная выбранным кандидатом предсказанного вектора движения. В режиме AMVP информация движения PU может быть определена на основании разности векторов движения для PU и информации движения, указанной выбранным кандидатом предсказанного вектора движения. Как описано выше, видеокодер 100 может обрабатывать блок изображения предсказания PU.Additionally,
Когда видеодекодер 200 принимает битовый поток, видеодекодер 200 может сгенерировать список кандидатов предсказанного вектора движения для каждой PU из CU. Список кандидатов предсказанного вектора движения, сгенерированный видеодекодером 200 для PU, может быть таким же, как список кандидатов предсказанного вектора движения, сгенерированный видеокодером 100 для PU. Элемент синтаксиса, полученный путем синтаксического анализа битового потока, может указывать позицию выбранного кандидата предсказанного вектора движения в списке кандидатов предсказанного вектора движения для PU. После генерирования списка кандидатов предсказанных векторов движения для PU, видеодекодер 200 может сгенерировать блок изображения предсказания PU на основании одного или нескольких опорных блоков, указанных информацией движения PU. Видеодекодер 200 может определять информацию движения PU на основании информации движения, указанной выбранным кандидатом предсказанного вектора движения в списке кандидатов предсказанного вектора движения для PU. Видеодекодер 200 может восстановить блок изображения CU на основании блока изображения предсказания PU и остаточного блока изображения CU.When
Следует понимать, что в возможной реализации на стороне декодера составление списка кандидатов предсказанного вектора движения и анализ битового потока для получения позиции выбранного кандидата предсказанного вектора движения в списке кандидатов предсказанного вектора движения являются независимыми друг друга, и могут выполняться в любом порядке или параллельно.It should be understood that, in an exemplary implementation at the decoder side, the listing of motion vector predicted candidates and parsing the bitstream to obtain the position of the selected motion vector candidate in the predicted motion vector candidate list are independent of each other, and may be performed in any order or in parallel.
В другой возможной реализации на стороне декодера сначала получается позиция выбранного кандидата предсказанного вектора движения в списке предсказанных векторов движения путем анализа битового потока и затем составляется список кандидатов предсказанного вектора движения на основании позиции, полученной посредством синтаксического анализа. В этой реализации нет необходимости составлять все списки кандидатов предсказанного вектора движения, и нужно составить только список кандидатов предсказанного вектора движения на позиции, полученной посредством синтаксического анализа, а именно, при условии, что кандидат предсказанного вектора движения на позиции можно определить. Например, когда получается, путем синтаксического анализа битового потока, что выбранный кандидат предсказанного вектора движения является кандидатом предсказанного вектора движения, индекс которого равен 3 в списке кандидатов предсказанного вектора движения, необходимо составить только список с кандидата предсказанного вектора движения, включающий в себя кандидата предсказанного вектора движения, индекс которого равен 0, по кандидат предсказанного вектора движения, индекс которого равен 3, и можно определить кандидат предсказанного вектора движения, индекс которого равен 3. Это может снизить сложность и повысить эффективность декодирования.In another exemplary implementation, the decoder side first obtains the position of the selected motion vector predictor candidate in the predicted motion vector list by parsing the bitstream, and then constructs the list of predicted motion vector candidates based on the position obtained by parsing. In this implementation, it is not necessary to compile all lists of predicted motion vector candidates, and only need to compile a list of predicted motion vector candidates at the position obtained by parsing, that is, provided that the predicted motion vector candidate at the position can be determined. For example, when it is obtained, by bitstream parsing, that the selected motion vector candidate is the motion vector candidate whose index is 3 in the motion vector predictor candidate list, it is only necessary to compile a motion vector predictor candidate list including the predicted vector candidate motion vector candidate whose index is 0 to a predicted motion vector candidate whose index is 3, and a predicted motion vector candidate whose index is 3 can be determined. This can reduce complexity and improve decoding efficiency.
Фиг. 2 является блок-схемой примера видеокодера 100 согласно варианту осуществления настоящего изобретения. Видеокодер 100 выполнен с возможностью выводить видео в объект 41 постобработки. Объект 41 постобработки представляет собой пример объекта видео, который может обрабатывать закодированные видеоданные из видеокодера 100. Например, объект видео является сетевым элементом с поддержкой мультимедиа (MANE) или устройством видеомонтажа/устройством редактирования. В некоторых случаях объект 41 постобработки может быть примером сетевого объекта. В некоторых системах видеокодирования объект 41 постобработки и видеокодер 100 могут быть компонентами отдельных устройств. В других случаях функции объекта 41 постобработки могут выполняться одним и тем же устройством, включающим в себя видеокодер 100. В одном примере объект 41 постобработки является примером устройства 40 хранения на фиг. 1.Fig. 2 is a block diagram of an example of a
В примере на фиг. 2, видеокодер 100 включает в себя блок 108 обработки предсказания, блок 106 фильтра, буфер 107 декодированного изображения (decoded picture buffer, DPB) 107, сумматор 112, преобразователь 101, квантователь 102 и энтропийный кодер 103. Блок 108 обработки предсказания включает в себя блок 110 внешнего предсказания и блок 109 внутреннего предсказания. Для восстановления блока изображения видеокодер 100 дополнительно включает в себя обратный квантователь 104, обратный преобразователь 105 и сумматор 111. Блок 106 фильтра предназначен для представления одного или нескольких контурных фильтров, например, фильтр удаления блочности, адаптивный контурный фильтр (adaptive loop filter, ALF) и фильтр с адаптивным смещением выборки (sample adaptive offset, SAO). Хотя блок 106 фильтра показан на фиг. 2, в другой реализации блок 106 фильтра может быть реализован как постконтурный фильтр. В одном примере видеокодер 100 может дополнительно включать в себя память видеоданных и блок разделения (который не показан на чертеже).In the example in FIG. 2,
Память видеоданных может хранить видеоданные, которые должны быть кодированы компонентом видеокодера 100. Видеоданные, хранящиеся в памяти видеоданных, могут быть получены из источника 120 видео. DPB 107 может быть памятью опорных изображений который хранит опорные видеоданные, используемые видеокодером 100 для кодирования видеоданных в режиме внутреннего кодирования или режиме внешнего кодирования. Память видеоданных и DPB 107 могут включать в себя любой из множества типов устройств памяти, например, динамическую память с произвольным доступом (dynamic random access memory, DRAM), включающую в себя синхронную динамическую память с произвольным доступом (synchronous dynamic random access memory, SDRAM), магнитное RAM (magnetic random access memory, MRAM), резистивная RAM (resistive random access memory, RRAM) или другой тип запоминающего устройства. Память видеоданных и DPB 107 могут быть предоставлены одним и тем же устройством памяти или отдельными устройствами памяти. В различных примерах память видеоданных может быть интегрирована в микросхему вместе с другими компонентами видеокодера 100 или может быть расположена вне микросхемы относительно этих компонентов.The video data memory may store video data to be encoded by the
Как показано на фиг. 2, видеокодер 100 принимает видеоданные и сохраняет видеоданные в памяти видеоданных. Блок разделения разделяет видеоданные на несколько блоков изображения и может дополнительно разделять эти блоки изображения на более мелкие блоки, например, разделять эти блоки изображения на основании структуры дерева квадрантов или структуры двоичного дерева. Разделение может дополнительно включать в себя разделение на сегменты (slice), плитки (tile) или другие более крупные блоки. Видеокодер 100 обычно представляет собой компонент, который кодирует блок изображения в сегменте видео, который должен быть закодирован. Сегмент может быть разделен на множество блоков изображения (и может быть разделен на набор блоков изображения, который называется плиткой). Блок 108 обработки предсказания может выбрать один из множества возможных режимов кодирования, используемых для текущего блока изображения, например, выбрать один из множества режимов внутреннего кодирования или один из множества режимов внешнего кодирования. Блок 108 обработки предсказания может предоставить полученный внутри-кодированный или внешне-кодированный блок сумматору 112 для генерирования остаточного блока и предоставить полученный внутри-кодированный или внешне-кодированный блок сумматору 111 для восстановления кодированного блока, который используется как опорное изображение.As shown in FIG. 2,
Внутренний предиктор 109 в блоке 108 обработки предсказания может выполнять кодирование с внутренним предсказанием текущего блока, который должен быть закодирован, относительно одного или нескольких соседних блоков, которые находятся в том же кадре или сегменте, что и текущий блок изображения, для удаления пространственной избыточности. Блок 110 внешнего предсказания в блоке 108 обработки предсказания может выполнять кодирование с внешним предсказанием для текущего блока изображения относительно одного или нескольких блоков предсказания в одном или нескольких опорных изображениях для удаления временной избыточности.Intra predictor 109 in
В частности, внешний предиктор 110 может быть выполнен с возможностью определять режим внешнего предсказания, используемый для кодирования текущего блока изображения. Например, внешний предиктор 110 может вычислять значения искажения скорости для различных режимов внешнего предсказания в подходящем режиме внешнего предсказания, установленном посредством анализа искажения скорости, и выбирать режим внешнего предсказания с функцией оптимального отношения скорость-искажение из набора кандидатов режима внешнего предсказания. Анализ скорости-искажения обычно используется для определения величины искажения (или ошибки) между кодированным блоком и исходным некодированным блоком, из которого кодированный блок генерируется посредством кодирования, и скорости передачи данных (а именно, количества битов), используемой для генерирования закодированного блока. Например, внешний предиктор 110 может определить, что режим внешнего предсказания в наборе кандидатов режимов внешнего предсказания, используемый для кодирования текущего блока изображения с минимальной стоимостью искажения скорости передачи данных, является режимом внешнего предсказания, используемым для выполнения внешнего предсказания для текущего блока изображения.In particular, the inter predictor 110 may be configured to determine the inter prediction mode used to encode the current image block. For example, inter predictor 110 may calculate rate distortion values for various inter prediction modes in a suitable inter prediction mode established by rate distortion analysis, and select an inter prediction mode with an optimal rate-distortion ratio function from a set of inter prediction mode candidates. Rate-distortion analysis is generally used to determine the amount of distortion (or error) between the encoded block and the original unencoded block from which the encoded block is generated by encoding, and the data rate (namely, the number of bits) used to generate the encoded block. For example, outer predictor 110 may determine that the inter prediction mode in the inter prediction mode candidate set used to encode the current image block with the minimum data rate distortion cost is the inter prediction mode used to perform inter prediction for the current image block.
Внешний предиктор 110 выполнен с возможностью: предсказывать информацию движения (например, вектор движения) одного или более субблоков текущего блока изображения на основании определенного режима внешнего предсказания и получать или генерировать блок предсказания текущего блока изображения на основании информации движения (например, вектора движения) одного или нескольких субблоков текущего блока изображения. Внешний предиктор 110 может найти в одном из списков опорных изображений блок предсказания, на который указывает вектор движения. Внешний предиктор 110 может дополнительно генерировать элемент синтаксиса, ассоциированный с блоком изображения и сегментом видео, так что видеодекодер 200 использует элемент синтаксиса для декодирования блока изображения в сегменте видео. В качестве альтернативы, в примере, внешний предиктор 110 выполняет процесс компенсации движения на основании информации движения каждого субблока для генерирования блока предсказания каждого субблока и получения блока предсказания текущего блока изображения. Следует понимать, что внешний предиктор 110 в настоящем описании выполняет процесс оценки движения и процесс компенсации движения.The outer predictor 110 is configured to: predict motion information (eg, a motion vector) of one or more sub-blocks of the current image block based on the determined inter prediction mode, and obtain or generate a prediction block of the current image block based on the motion information (eg, motion vector) of one or more several sub-blocks of the current image block. The outer predictor 110 may find in one of the reference picture lists the prediction block pointed to by the motion vector. Outer predictor 110 may further generate a syntax element associated with the image block and video segment such that
В частности, после выбора режима внешнего предсказания для текущего блока изображения, внешний предиктор 110 может предоставить энтропийному кодеру 103 информацию, указывающую режим внешнего предсказания, выбранный для текущего блока изображения, так что энтропийный кодер 103 кодирует информацию с указанием выбранного режима внешнего предсказания.Specifically, after selecting an inter prediction mode for the current image block, the inter predictor 110 may provide entropy encoder 103 with information indicative of the inter prediction mode selected for the current image block, so that entropy encoder 103 encodes information indicating the selected inter prediction mode.
Внутренний предиктор 109 может выполнять внутреннее предсказание для текущего блока изображения. Понятно, что внутренний предиктор 109 может определять режим внутреннего предсказания, используемый для кодирования текущего блока. Например, внутренний предиктор 109 может вычислять значения искажения скорости для различных подлежащих тестированию режимов внутреннего предсказания посредством анализа скоростей-искажений и выбирать режим внутреннего предсказания с функцией оптимальной скорости-искажения из подлежащих тестированию режимов. В любом случае, после выбора режима внутреннего предсказания для блока изображения, внутренний предиктор 109 может предоставить энтропийному кодеру 103 информацию, указывающую режим внутреннего предсказания, выбранный для текущего блока изображения, так что энтропийный кодер 103 кодирует информацию, указывающую выбранный режим внутреннего предсказания.Intra predictor 109 may perform intra prediction for the current image block. It is understood that the intra predictor 109 may determine the intra prediction mode used to encode the current block. For example, intra predictor 109 may calculate rate distortion values for various intra prediction modes to be tested by rate-distortion analysis, and select an intra prediction mode with an optimal rate-distortion function from among the modes to be tested. In any case, after selecting an intra prediction mode for an image block, intra predictor 109 may provide entropy encoder 103 with information indicative of the intra prediction mode selected for the current image block, so that entropy encoder 103 encodes information indicative of the selected intra prediction mode.
После того, как блок 108 обработки предсказания сгенерирует блок предсказания текущего блока изображения посредством внешнего предсказания и внутреннего предсказания, видеокодер 100 получает остаточный блок изображения путем вычитания блока предсказания из текущего блока изображения, который должен быть закодирован. Сумматор 112 представляет один или несколько компонентов, которые выполняют операцию вычитания. Остаточные видеоданные в остаточном блоке могут быть включены в один или несколько блоков TUs и подаются в преобразователь 101. Преобразователь 101 преобразует остаточные видеоданные в коэффициент остаточного преобразования посредством преобразования, такого как дискретное косинусное преобразование (DCT) или концептуально подобное преобразование. Преобразователь 101 может преобразовывать остаточные видеоданные из области значений пикселей в область преобразования, например, частотную область.After
Преобразователь 101 может отправить полученный коэффициент преобразования на квантователь 102. Квантователь 102 квантует коэффициент преобразования, чтобы дополнительно снизить скорость передачи битов. В некоторых примерах квантователь 102 может дополнительно сканировать матрицу, включающую в себя квантованный коэффициент преобразования. В качестве альтернативы энтропийный кодер 103 может выполнять сканирование.Transformer 101 may send the obtained transform coefficient to
После квантования энтропийный кодер 103 выполняет энтропийное кодирование квантованного коэффициента преобразования. Например, энтропийный кодер 103 может выполнять контекстно-адаптивное кодирование с переменной длиной (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC), основанное на синтаксисе контекстно-адаптивное двоичное арифметическое кодирование (SBAC), энтропию с вероятностным интервалом разделения (PIPE) кодирование или другой способ или технологию энтропийного кодирования. После выполнения энтропийного кодирования энтропийный кодер 103 может передавать закодированный битовый поток в видеодекодер 200 или архивировать закодированный битовый поток для последующей передачи или для последующего поиска видеодекодером 200. Энтропийный кодер 103 может дополнительно выполнять энтропийное кодирование элемента синтаксиса текущего блока изображения, который должен быть закодирован.After quantization, the entropy encoder 103 performs entropy encoding of the quantized transform coefficient. For example, entropy encoder 103 can perform context adaptive variable length coding (CAVLC), context adaptive binary arithmetic coding (CABAC), syntax-based context adaptive binary arithmetic coding (SBAC), entropy with probabilistic separation interval (PIPE) coding or other entropy encoding method or technology. After performing entropy encoding, entropy encoder 103 may transmit the encoded bitstream to
Обратный квантователь 104 и обратный преобразователь 105, соответственно, выполняют обратное квантование и обратное преобразование для восстановления остаточного блока в пиксельной области, например, что впоследствии используют в качестве опорного блока опорного изображения. Сумматор 111 добавляет восстановленный остаточный блок к блоку предсказания, сгенерированному с помощью внешнего предиктора 110 или внутреннего предиктора 109, для генерирования восстановленного блока изображения. Блок 106 фильтра применим к восстановленному блоку изображения для уменьшения искажения, например, артефакта блочности (block artifacts). Затем, восстановленный блок изображения используется в качестве опорного блока и сохраняется в буфере 107 декодированного изображения, и может быть использовано внешний предиктором 110 в качестве опорного блока для выполнения внешнего предсказания блока в последующем видеокадре или изображении.An
Следует понимать, что другие структурные варианты видеокодера 100 могут использоваться для кодирования видеопотока. Например, для некоторых блоков изображения или кадров изображения видеокодер 100 может непосредственно квантовать остаточный сигнал, обработка преобразователем 101 не требуется и, соответственно, обработка обратным преобразователем 105 также не требуется. В качестве альтернативы, для некоторых блоков изображения или кадров изображения видеокодер 100 не генерирует остаточные данные и, соответственно, обработка преобразователем 101, квантователем 102, обратным квантователем 104 и обратным преобразователем 105 не требуется. В качестве альтернативы видеокодер 100 может хранить непосредственно восстановленный блок изображения в качестве опорного блока, и обработка с помощью блока 106 фильтра не требуется. В качестве альтернативы квантователь 102 и обратный квантователь 104 в видеокодере 100 могут быть объединены.It should be understood that other structural variations of
Фиг. 3 является блок-схемой примера видеодекодера 200 согласно варианту осуществления настоящего изобретения. В примере на фиг. 3, видеодекодер 200 включает в себя энтропийный декодер 203, блок 208 обработки предсказания, обратный квантователь 204, обратный преобразователь 205, сумматор 211, блок 206 фильтра и DPB 207. Блок 208 обработки предсказания может включать в себя внешний предиктор 210 и внутренний предиктор 209. В некоторых примерах видеодекодер 200 может выполнять процесс декодирования, который примерно обратен процессу кодирования, описанному со ссылкой на видеокодер 100 на фиг. 2.Fig. 3 is a block diagram of an example of a
Во время декодирования видеодекодер 200 принимает от видеокодера 100 кодированный битовый поток видеоданных, который представляет блок изображения в кодированном сегменте видео и ассоциированный с ним элемент синтаксиса. Видеодекодер 200 может принимать видеоданные из сетевого объекта 42 и, возможно, может дополнительно сохранять видеоданные в памяти видеоданных (которая не показана на чертеже). Память видеоданных может хранить видеоданные, например, кодированный битовый поток, который должен быть декодирован компонентом видеодекодера 200. Видеоданные, хранящиеся в памяти видеоданных, могут быть получены, например, из локального источника видео, такого как устройство 40 хранения или камера, посредством проводной или беспроводной сетевой передачи видеоданных или путем доступа к физическому носителю данных. Память видеоданных может использоваться как буфер декодированных изображений (DPB) для хранения кодированных видеоданных из кодированного битового потока видеоданных. Следовательно, хотя память видеоданных не показана на фиг. 3, память видеоданных и DPB 207 могут быть одной и той же памятью или могут быть памятью, которая расположена отдельно. Память видеоданных и DPB 207 каждый может включать в себя любой из множества типов устройств памяти, например, динамическую память с произвольным доступом (DRAM), включающую в себя синхронную DRAM (SDRAM), магнитную RAM (MRAM), резистивную RAM (RRAM) или другой тип запоминающего устройства. В различных примерах память видеоданных может быть интегрирована в микросхему вместе с другими компонентами видеодекодера 200 или может быть расположена вне микросхемы относительно этих компонентов.During decoding,
Сетевой объект 42 может быть, например, сервером, MANE, видеоредактором/устройством видеомонтажа или другим устройством, выполненным с возможностью реализации одной или более технологий, описанных выше. Сетевой объект 42 может включать в себя или не включать в себя видеокодер, например, видеокодер 100. Перед тем, как сетевой объект 42 отправит закодированный битовый поток видео в видеодекодер 200, сетевой объект 42 может реализовать часть технологий, описанных в настоящем изобретении. В некоторых системах декодирования видео сетевой объект 42 и видеодекодер 200 могут быть компонентами отдельных устройств. В других случаях функции сетевого объекта 42 могут выполняться одним и тем же устройством, включающим в себя видеодекодер 200. В некоторых случаях сетевой объект 42 может быть примером устройства 40 хранения на фиг. 1.The network entity 42 may be, for example, a server, a MANE, a video editor/editor, or other device capable of implementing one or more of the technologies described above. Network entity 42 may or may not include a video encoder, such as
Энтропийный декодер 203 в видеодекодере 200 выполняет энтропийное декодирование битового потока для генерирования квантованного коэффициента и некоторых элементов синтаксиса. Энтропийный декодер 203 пересылает элементы синтаксиса в блок 208 обработки предсказания. Видеодекодер 200 может принимать элементы синтаксиса на уровне сегмента видео и/или уровне блока изображения.Entropy decoder 203 in
Когда сегмент видео декодируется в внутренне-декодированный (I) сегмент, внутренний предиктор 209 в блоке 208 обработки предсказания может сгенерировать блок предсказания блока изображения в текущем сегменте видео на основании сигнализированного режима внутреннего предсказания и данных ранее декодированного блока текущего кадра или изображения. Когда сегмент видео декодируется в сегмент с внешним декодированием (а именно, B или P), внешний предиктор 210 в блоке 208 обработки предсказания может определять на основании элементов синтаксиса, полученных из энтропийного декодера 203, используемый режим внешнего предсказания для декодирования текущего блока изображения в текущем сегменте видео и декодирования (например, выполнения внешнего предсказания) текущего блока изображения на основании определенного режима внешнего предсказания. В частности, внешний предиктор 210 может определять, для предсказания текущего блока изображения используется ли новый режим внешнего предсказания для предсказания текущего блока изображения в текущем сегменте видео. Если элемент синтаксиса указывает, что используется новый режим внешнего предсказания, информация движения текущего блока изображения в текущем сегменте видео или информация движения субблока текущего блока изображения предсказывается на основании нового внешнего предсказания режим предсказания (например, новый режим внешнего предсказания, указанный с помощью элемента синтаксиса или новый режим внешнего предсказания по умолчанию), и получается блок предсказания текущего блока изображения или блок предсказания подблока текущего блока изображения, или генерируется в процессе компенсации движения с использованием предсказанной информации движения, которая относится к текущему блоку изображения или субблоку текущего блока изображения. Информация движения в настоящем документе, может включать в себя информацию об изображении и опорный вектор движения. Информация об опорных изображениях может включать в себя, но не ограничивается ими, информацию об одном/двукратном предсказании, номер списка опорных изображений и индекс опорных изображений, соответствующий списку опорных изображений. Для внешнего предсказания блок предсказания может быть сгенерирован из одного из опорных изображений в одном из списков опорных изображений. Видеодекодер 200 может составить списки опорных изображений, то есть, список 0 и списка 1, на основании опорных изображений, сохраненных в DPB 207. Индекс опорного кадра текущего изображения может быть включен в один из или оба список 0 опорных кадров и список 1 опорных кадров. В некоторых примерах видеокодер 100 может сигнализировать, используется ли новый режим внешнего предсказания для декодирования конкретного элемента синтаксиса конкретного блока, или сигнализировать, используется ли новый режим внешнего предсказания и какой новый режим внешнего предсказания используется для декодирования конкретного элемента синтаксиса конкретного блока. Следует понимать, что здесь внешний предиктор 210 выполняет процесс компенсации движения.When a video segment is decoded into an intra-decoded (I) segment, intra predictor 209 in
Блок 204 обратного квантования выполняет обратное квантование, то есть, деквантовывает квантованный коэффициент преобразования, предоставленный в битовом потоке и декодированный энтропийным декодером 203. Процесс обратного квантования может включать в себя: определение степени квантования, которая должна применяться, с использованием параметра квантования, вычисляемый видеокодером 100 для каждого блока изображения в сегменте видео, и определение степени обратного квантования, которая должна применяться, таким же образом. Обратный преобразователь 205 выполняет обратное преобразование, например обратное DCT, обратное целочисленное преобразование или концептуально подобный процесс обратного преобразования коэффициента преобразования для генерирования остаточного блока пиксельной области.The
После того, как внешний предиктор 210 сгенерирует блок предсказания для текущего блока изображения или субблока текущего блока изображения, видеодекодер 200 добавляет остаточный блок из обратного преобразователя 205 и соответствующий блоку предсказания, сгенерированный внешним предиктором 210, для получения восстановленного блока, а именно, блока декодированного изображения. Сумматор 211 представляет компонент, который выполняет операцию суммирования. При необходимости контурный фильтр (либо в цикле декодирования, либо после цикла декодирования) может дополнительно использоваться для сглаживания переходов пикселей или улучшения качества видео другим способом. Блок 206 фильтра может представлять один или несколько контурных фильтров, например, фильтр удаления блочности, адаптивный контурный фильтр (ALF) и фильтр с адаптивным смещением выборки (SAO). Хотя блок 206 фильтра показан на фиг. 2, в другой реализации блок 206 фильтра может быть реализован как постконтурный фильтр. В примере блок 206 фильтра применим к восстановленному блоку для уменьшения искажения блока, и результат выводится как декодированный видеопоток. Кроме того, декодированный блок изображения в заданном кадре или изображения могут дополнительно быть сохранены в DPB 207, и DPB 207 хранит опорное изображение, используемое для последующей компенсации движения. DPB 207 может быть частью памяти и может дополнительно хранить декодированное видео для последующего представления в устройство отображения (например, устройство 220 отображения на фиг. 1). В качестве альтернативы DPB 207 может быть отделен от такой памяти.After
Следует понимать, что другие структурные варианты видеодекодера 200 могут использоваться для декодирования кодированного битового потока видеоданных. Например, видеодекодер 200 может генерировать выходной видеопоток, и обработка блоком 206 фильтра не требуется. В качестве альтернативы, для некоторых блоков изображения или кадров изображения энтропийный декодер 203 в видеодекодере 200 не получает квантованный коэффициент посредством декодирования и, соответственно, обработка обратным квантователем 204 и обратным преобразователем 205 не требуется.It should be understood that other design options for
Как описано выше, технологии в настоящем изобретении относятся, например, к внешнему декодированию. Следует понимать, что технологии в настоящем изобретении могут выполняться любым одним видеокодеком, описанным в настоящем изобретении, и видеодекодер включает в себя (например) видеокодер 100 и видеодекодер 200, показанные и описанные на фиг. 1-фиг. 3. Чтобы быть конкретным, в возможной реализации, внешний предиктор 110, описанный на фиг. 2, может выполнять конкретную технологию, описанную ниже, когда внешнее предсказание выполняется во время кодирования блока видеоданных. В другой возможной реализации внешний предиктор 210, описанный на фиг. 3, может выполнять конкретную технологию, описанную ниже, когда внешнее предсказание выполняется во время декодирования блока видеоданных. Следовательно, ссылка на общий «видеокодер» или «видеодекодер» может включать в себя видеокодер 100, видеодекодер 200 или другой блок кодирования видео или блок декодирования.As described above, the techniques in the present invention relate to, for example, external decoding. It should be understood that the techniques in the present invention may be performed by any one video codec described in the present invention, and the video decoder includes (for example)
Следует понимать, что в кодере 100 и декодере 200 в настоящем изобретении результат обработки этапа может быть дополнительно обработан и затем выведен на следующий этап. Например, после такого этапа, как интерполяционная фильтрация, вывод вектора движения или контурная фильтрация результата обработки соответствующего этапа, выполняется дополнительная операция, такая как отсечение или сдвиг.It should be understood that in the
Например, значение вектора движения ограничено определенным диапазоном битовой глубины. Предполагая, что допустимая битовая глубина вектора движения равна bitDepth, значение вектора движения находится в диапазоне от –2 ^ (bitDepth - 1) до 2 ^ (bitDepth - 1) - 1, где символ «^» представляет возведение в степень. Если bitDepth равно 16, значение находится в диапазоне от –32768 до 32767. Если bitDepth равно 18, значение находится в диапазоне от –131072 до 131071. Значение вектора движения может быть ограничено одним из следующих двух способов:For example, the value of the motion vector is limited to a certain range of bit depth. Assuming the allowed bit depth of the motion vector is bitDepth, the value of the motion vector is in the range -2^(bitDepth - 1) to 2^(bitDepth - 1) - 1, where the character "^" represents exponentiation. If bitDepth is 16, the value is in the range -32768 to 32767. If bitDepth is 18, the value is in the range -131072 to 131071. The motion vector value can be limited in one of the following two ways:
Способ 1. Удаляется старший значащий бит переполнения вектора движения:Method 1: Remove the most significant bit of the motion vector overflow:
Например, значение vx равно –32769, а 32767 выводится в соответствии с приведенными выше формулами. Значение хранится на компьютере в представлении с дополнением до двух, представление с дополнением до двух –32769 составляет 1,0111,1111,1111,1111 (17 бит), и обработка, выполняемая компьютером для переполнения, отбрасывает самый старший бит. Следовательно, значение vx равно 0111,1111,1111,1111, то есть, 32767. Это значение согласуется с результатом, полученным в результате обработки в соответствии с формулами.For example, the value of vx is -32769 and 32767 is output according to the formulas above. The value is stored on the computer in two's complement representation, the two's complement representation of –32769 is 1.0111,1111,1111,1111 (17 bits), and the computer's overflow processing discards the most significant bit. Therefore, the value of vx is 0111,1111,1111,1111, that is, 32767. This value is consistent with the result obtained by processing according to the formulas.
Способ 2: выполняется отсечение вектора движения, и используются следующие формулы:Method 2: Motion vector clipping is performed and the following formulas are used:
В приведенных выше формулах Clip3 определяется как усечение значения z до диапазона [x, y]In the formulas above, Clip3 is defined as truncation of the z value to the range [x, y]
Фиг. 4 представляет собой блок-схему модуля 121 внешнего предсказания согласно варианту осуществления настоящего изобретения. Например, модуль 121 внешнего предсказания может включать в себя блок оценки движения и блок компенсации движения. Отношения между PU и CU варьируются в зависимости от стандарта кодирования сжатия видео. Модуль 121 внешнего предсказания может разделить текущий CU на PU на основании множества режимов разделения. Например, модуль 121 внешнего предсказания может разделить текущий CU на PU на основании режимов разделения 2N × 2N, 2N × N, N × 2N и N × N. В другом варианте осуществления текущий CU является текущим PU. Это не ограничено.Fig. 4 is a block diagram of an inter prediction unit 121 according to an embodiment of the present invention. For example, inter prediction module 121 may include a motion estimation block and a motion compensation block. The relationship between PU and CU varies depending on the video compression coding standard. The inter prediction unit 121 may divide the current CU into PUs based on a plurality of division modes. For example, inter prediction unit 121 may divide the current CU into PUs based on the 2N×2N, 2N×N, N×2N, and N×N partition modes. In another embodiment, the current CU is the current PU. It's not limited.
Модуль 121 внешнего предсказания может выполнять целочисленную оценку движения (Integer Motion Estimation, IME) и затем дробную оценку движения (Fraction Motion Estimation, FME) для каждого PU. Когда модуль 121 внешнего предсказания выполняет IME для PU, модуль 121 внешнего предсказания может искать в одном или нескольких опорных изображениях опорный блок PU. После нахождения опорного блока PU, модуль 121 внешнего предсказания может генерировать вектор движения, который указывает, с точностью до целого числа, пространственное смещение между PU и опорным блоком PU. Когда модуль 121 внешнего предсказания выполняет FME для PU, модуль 121 внешнего предсказания может улучшить вектор движения, сгенерированный посредством выполнения IME для PU. Вектор движения, сгенерированный посредством выполнения FME на PU, может иметь субцелочисленную точность (например, точность 1/2 выборки или точность 1/4 выборки). После генерирования вектора движения для PU модуль 121 внешнего предсказания может сгенерировать блок изображения предсказания PU, используя вектор движения PU.The inter prediction module 121 may perform an integer motion estimation (Integer Motion Estimation, IME) and then a fractional motion estimation (Fraction Motion Estimation, FME) for each PU. When inter prediction module 121 performs an IME for a PU, inter prediction module 121 may search one or more reference pictures for a reference block of the PU. After finding the reference PU, inter prediction module 121 may generate a motion vector that indicates, up to an integer, the spatial offset between the PU and the reference PU. When the inter prediction unit 121 performs the FME for the PU, the inter prediction unit 121 may improve the motion vector generated by performing the IME for the PU. The motion vector generated by performing FME on the PU may have sub-integer precision (eg, 1/2 sample precision or 1/4 sample precision). After generating the motion vector for the PU, inter prediction unit 121 may generate a PU prediction image block using the motion vector of the PU.
В некоторых возможных реализациях, в которых модуль 121 внешнего предсказания передает информацию движения PU на сторону декодера на основании режима AMVP, модуль 121 внешнего предсказания может генерировать список кандидатов предсказанного вектора движения для PU. Список кандидатов предсказанного вектора движения может включать в себя один или несколько исходных кандидатов предсказанного вектора движения и один или несколько дополнительных кандидатов предсказанного вектора движения, полученных из одного или нескольких исходных кандидатов предсказанного вектора движения. После генерирования списка кандидатов предсказанных векторов движения для PU модуль 121 внешнего предсказания может выбрать кандидата предсказанного вектора движения из списка кандидатов предсказанного вектора движения и сгенерировать разность векторов движения (MVD) для PU. MVD для PU может указывать разность между вектором движения, указанным выбранным кандидатом предсказанного вектора движения, и вектором движения, сгенерированным для PU через IME и FME. В этих возможных реализациях модуль 121 внешнего предсказания может выводить индекс кандидата предсказанного вектора движения, используемый для идентификации позиции выбранного кандидата предсказанного вектора движения в списке кандидатов предсказанного вектора движения. Модуль 121 внешнего предсказания может дополнительно выводить MVD для PU. Ниже подробно описывается возможная реализация усовершенствованного режима предсказания вектора движения (AMVP) на фиг. 6 в этом варианте настоящего изобретения.In some possible implementations, in which inter prediction module 121 transmits motion information of the PU to the decoder side based on the AMVP mode, inter prediction module 121 may generate a list of predicted motion vector candidates for the PU. The list of motion vector predictor candidates may include one or more original motion vector predictor candidates and one or more additional motion vector predictor candidates derived from the one or more original motion vector predictor candidates. After generating the list of predicted motion vector candidates for the PU, inter prediction module 121 may select a predicted motion vector candidate from the list of predicted motion vector candidates and generate a motion vector difference (MVD) for the PU. The MVD for the PU may indicate the difference between the motion vector indicated by the selected motion vector predictor candidate and the motion vector generated for the PU via the IME and FME. In these possible implementations, inter prediction module 121 may output a predicted motion vector candidate index used to identify the position of the selected motion vector candidate in the predicted motion vector candidate list. The inter prediction unit 121 may further output the MVD for the PU. The following describes in detail a possible implementation of the advanced motion vector prediction (AMVP) mode in FIG. 6 in this embodiment of the present invention.
В дополнение к выполнению IME и FME на PU для генерирования информации движения PU, модуль 121 внешнего предсказания может дополнительно выполнять операцию слияния (Merge) для каждого PU. Когда модуль 121 внешнего предсказания выполняет операцию слияния над PU, модуль 121 внешнего предсказания может сгенерировать список кандидатов предсказанного вектора движения для PU. Список кандидатов предсказанного вектора движения для PU может включать в себя один или несколько исходных кандидатов предсказанного вектора движения и один или несколько дополнительных кандидатов предсказанного вектора движения, полученных из одного или нескольких исходных кандидатов предсказанного вектора движения. Исходные кандидаты предсказанного вектора движения в списке кандидатов предсказанного вектора движения могут включать в себя один или несколько пространственных кандидатов предсказанных векторов движения и временных кандидатов предсказанных векторов движения. Пространственный кандидат предсказанного вектора движения может указывать информацию движения другого PU текущего изображения. Временной кандидат предсказанного вектора движения может быть основан на информации движения соответствующего PU изображения, отличного от текущего изображения. Временной кандидат предсказанного вектора движения также может называться режимом временного предсказания вектора движения (TMVP).In addition to performing IME and FME on the PU to generate motion information of the PU, the inter prediction unit 121 may further perform a Merge operation for each PU. When inter prediction unit 121 performs a merge operation on a PU, inter prediction unit 121 may generate a list of predicted motion vector candidates for the PU. The list of motion vector predictor candidates for the PU may include one or more original motion vector predictor candidates and one or more additional motion vector predictor candidates derived from the one or more original motion vector predictor candidates. The initial motion vector predictor candidates in the motion vector predictor candidate list may include one or more spatial motion vector predictor candidates and temporal motion vector predictor candidates. The spatial candidate of the predicted motion vector may indicate motion information of another PU of the current picture. The temporal candidate of the predicted motion vector may be based on the motion information of the corresponding PU of a picture other than the current picture. A temporal motion vector predicted candidate may also be referred to as a temporal motion vector prediction (TMVP) mode.
После составления списка кандидатов предсказанного вектора движения модуль 121 внешнего предсказания может выбрать один кандидат предсказанного вектора движения из списка кандидатов предсказанного вектора движения. Затем модуль 121 внешнего предсказания может генерировать блок изображения предсказания PU, основанный на опорном блоке, указанный информацией движения PU. В режиме слияния информация движения PU может быть такой же, как информация движения, указанная выбранным кандидатом предсказанного вектора движения. Фиг. 5, описанная ниже, представляет собой блок-схему примера режима слияния.After listing the predicted motion vector candidates, the inter prediction unit 121 may select one predicted motion vector candidate from the list of predicted motion vector candidates. Then, the inter prediction unit 121 may generate a PU prediction image block based on the reference block indicated by the PU motion information. In the merge mode, the motion information of the PU may be the same as the motion information indicated by the selected motion vector predictor candidate. Fig. 5, described below, is a block diagram of an example of a merge mode.
После генерирования блока изображения предсказания PU через IME и FME и генерирования блока изображения предсказания PU посредством операции слияния, модуль 121 внешнего предсказания может выбрать блок изображения предсказания, сгенерированный посредством операции FME, или блок изображения предсказания, сгенерированный в результате операции слияния. В некоторых возможных реализациях модуль 121 внешнего предсказания может выбирать блок изображения предсказания для PU путем анализа затрат на соотношение скорость-искажение блока изображения предсказания, сгенерированного посредством операции FME, и блока изображения предсказания, сгенерированного посредством операции слияния.After generating the prediction image block PU through the IME and FME and generating the prediction image block PU by the merge operation, the inter prediction unit 121 may select the prediction image block generated by the FME operation or the prediction image block generated by the merge operation. In some possible implementations, inter prediction module 121 may select a prediction image block for the PU by analyzing the rate-distortion cost of the prediction image block generated by the FME operation and the prediction image block generated by the merge operation.
После того, как модуль 121 внешнего предсказания выбрал блок изображения предсказания из PU, сгенерированного путем разделения текущего CU на основании каждого режима разделения (в некоторых реализациях, после того, как блок дерева кодирования CTU разделен на CU, CU больше не разделенный на более мелкие PU, и в этом случае, PU эквивалентен CU), модуль 121 внешнего предсказания может выбрать режим разделения для текущего CU. В некоторых реализациях модуль 121 внешнего предсказания может выбрать режим разделения для текущего CU путем анализа стоимости искажения выбранного блока изображения предсказания PU, сгенерированного путем разделения текущего CU на основании каждого режима разделения. Модуль 121 внешнего предсказания может выводить блок изображения предсказания, ассоциированный с PU, который принадлежит выбранному режиму разделения, в модуль 102 генерирования остатка. Модуль 121 внешнего предсказания может выводить в модуль энтропийного кодирования элемент синтаксиса, указывающий информацию движения PU, принадлежащий выбранному режиму разбиения.After the inter prediction unit 121 has selected a prediction image block from a PU generated by splitting the current CU based on each split mode (in some implementations, after the coding tree block of the CTU is split into CUs, the CU is no longer split into smaller PUs). , in which case, PU is equivalent to CU), inter prediction unit 121 may select a split mode for the current CU. In some implementations, inter prediction module 121 may select a split mode for the current CU by analyzing a distortion cost of a selected PU prediction image block generated by splitting the current CU based on each split mode. The inter prediction module 121 may output a prediction image block associated with a PU that belongs to the selected partition mode to the
На схеме на фиг. 4, модуль 121 внешнего предсказания включает в себя IME модули 180A-180N (вместе именуемые «IME модуль 180»), FME модули 182A-182N (все вместе именуемые «FME модуль 182»), модули 184A-184N слияния (вместе именуемые «модуль 184 слияния»), модули 186A-186N принятия решений в режиме PU (вместе именуемые «модуль 186 принятия решений режима PU») и модуль 188 принятия решений режима CU (и могут далее выполнить процесс принятия решения в режиме от CTU к CU).In the diagram in Fig. 4, inter prediction module 121 includes
IME модуль 180, FME модуль 182 и модуль 184 слияния могут соответственно выполнять операцию IME, операцию FME и операцию слияния над PU текущего CU. На схеме на фиг. 4, модуль 121 внешнего предсказания описан как включающий в себя отдельный IME модуль 180, отдельный FME модуль 182 и отдельный модуль 184 слияния для каждого PU в каждом режиме разделения для CU. В другой возможной реализации модуль 121 внешнего предсказания не включает в себя отдельный IME модуль 180, отдельный FME модуль 182 или отдельный модуль 184 слияния для каждого PU в каждом режиме разделения для CU.The IME module 180, the FME module 182, and the merge module 184 can respectively perform an IME operation, an FME operation, and a merge operation on the PU of the current CU. In the diagram in Fig. 4, inter prediction module 121 is described as including a separate IME module 180, a separate FME module 182, and a separate merge module 184 for each PU in each split mode for the CU. In another possible implementation, inter prediction module 121 does not include a separate IME module 180, a separate FME module 182, or a separate merge module 184 for each PU in each split mode for the CU.
Как показано на схеме на фиг. 4, IME модуль 180A, FME модуль 182A и модуль 184A слияния могут, соответственно, выполнять операцию IME, операцию FME и операцию слияния для PU, сгенерированного путем разделения CU на основании режима разделения 2N × 2N. Модуль 186A принятия решения в режиме PU может выбрать один из блоков изображения предсказания, сгенерированных IME модулем 180A, FME модулем 182A и модулем 184A слияния.As shown in the diagram in Fig. 4, the
IME модуль 180B, FME модуль 182B и модуль 184B слияния могут соответственно выполнять операцию IME, операцию FME и операцию слияния для левого PU, сгенерированного путем разделения CU на основании режима разделения N × 2N. Модуль 186B принятия решения о режиме PU может выбрать один из блоков изображения предсказания, сгенерированных IME модулем 180B, FME модулем 182B и модулем 184B слияния.The
IME модуль 180C, FME модуль 182C и модуль 184C слияния могут, соответственно, выполнять операцию IME, операцию FME и операцию слияния для правого PU, сгенерированного путем разделения CU на основании режима разделения N × 2N. Модуль 186C принятия решения режима PU может выбрать один из блоков изображения предсказания, сгенерированных IME модулем 180C, FME модулем 182C и модулем 184C слияния.The
IME модуль 180N, FME модуль 182N и модуль 184N слияния могут, соответственно, выполнять операцию IME, операцию FME и операцию слияния для нижнего правого PU, сгенерированного путем разделения CU на основании N × N режима разделения. Модуль 186N принятия решения режима PU может выбирать один из блоков изображения предсказания, сгенерированных IME модулем 180N, FME модулем 182N и модулем 184N слияния.The
Модуль 186 принятия решения в режиме PU может выбрать блок изображения предсказания, анализируя стоимость искажения скорости для множества возможных блоков изображения предсказания, и выбрать блок изображения предсказания, который обеспечивает оптимальную стоимость искажения скорости в данном сценарии декодирования. Например, для приложения с ограниченной полосой пропускания модуль 186 принятия решения в режиме PU может предпочесть выбрать блок изображения предсказания, для которого повышена степень сжатия, а для другого приложения модуль 186 принятия решения в режиме PU может предпочесть выбрать блок изображения предсказания, для которого улучшено качество восстановленного видео. После того, как модуль 186 принятия решения в режиме PU выбирает блоки изображения предсказания для PU в текущем CU, модуль 188 принятия решения в режиме CU выбирает режим разделения для текущего CU и выводит блок изображения предсказания и информацию движения PU, которая принадлежит выбранному режиму разделения.The PU decision module 186 may select a prediction image block by analyzing the rate distortion cost for a plurality of possible prediction image blocks, and select the prediction image block that provides the optimal rate distortion cost in a given decoding scenario. For example, for a bandwidth limited application, PU decision module 186 may prefer to select a prediction image block for which the compression ratio has been increased, and for another application, PU decision module 186 may prefer to select a prediction image block for which quality has been improved. restored video. After the PU mode decision module 186 selects prediction image blocks for the PUs in the current CU, the CU
Фиг. 5 является блок-схемой алгоритма реализации режима слияния согласно варианту осуществления настоящего изобретения. Видеокодер (например, видеокодер 100) может выполнять операцию 201 слияния. Операция 201 слияния может включать в себя: S202: генерировать список кандидатов для текущего блока предсказания. S204: генерировать блок предсказания видео, ассоциированный с кандидатом в списке кандидатов. S206: выбрать кандидата из списка кандидатов. S208: вывести кандидата. Кандидат является кандидатом вектора движения или кандидатом информации движения.Fig. 5 is a flowchart for implementing a merge mode according to an embodiment of the present invention. A video encoder (eg, video encoder 100) may perform a merge operation 201 . The merge operation 201 may include: S202: generate a list of candidates for the current prediction block. S204: generate a video prediction block associated with a candidate in the candidate list. S206: select a candidate from the list of candidates. S208: bring out the candidate. The candidate is a motion vector candidate or a motion information candidate.
В другой возможной реализации видеокодер может выполнять операцию слияния, отличную от операции 201 слияния. Например, в другой возможной реализации видеокодер может выполнять операцию слияния. В этом случае видеокодер выполняет больше или меньше этапов, чем этапы операции 201 слияния, или этапы, отличные от этапов операции 201 слияния. В другой возможной реализации видеокодер может выполнять этапы операции 201 слияния в разных порядках или параллельно. Кодер может дополнительно выполнять операцию 201 слияния с PU, кодированного на основании режима пропуска (skip).In another possible implementation, the video encoder may perform a merge operation other than merge operation 201 . For example, in another possible implementation, the video encoder may perform a merge operation. In this case, the video encoder performs more or fewer steps than the steps of the merge operation 201, or steps other than the steps of the merge operation 201. In another possible implementation, the video encoder may perform the steps of merge operation 201 in different orders or in parallel. The encoder may further perform a merge operation 201 with a PU encoded based on a skip mode.
После того, как видеокодер начинает операцию 201 слияния, видеокодер может сгенерировать список кандидатов предсказанного вектора движения для текущего PU (S202). Видеокодер может генерировать список кандидатов предсказанного вектора движения для текущего PU различными способами. Например, видеокодер может сгенерировать список кандидатов предсказанного вектора движения для текущего PU с использованием одной из примерных технологий, описанных ниже со ссылкой на фиг. 8- фиг. 12.After the video encoder starts merge operation 201, the video encoder may generate a predicted motion vector candidate list for the current PU (S202). The video encoder may generate a predicted motion vector candidate list for the current PU in various ways. For example, the video encoder may generate a list of predicted motion vector candidates for the current PU using one of the exemplary techniques described below with reference to FIG. 8- fig. 12.
Как описано выше, список кандидатов предсказанного вектора движения для текущего PU может включать в себя временные кандидаты предсказанного вектора движения. Временной кандидат предсказанного вектора движения может указывать информацию движения соответствующей временному (совмещенному) PU. Совмещенный PU может быть пространственно расположен на той же позиции, что и текущий PU кадра изображения, но в качестве опорного изображения вместо текущего изображения. В настоящем изобретении, опорное изображение, включающее в себя соответствующий временный PU может упоминаться в качестве соответствующего опорного кадра. В настоящем изобретении индекс опорного изображения соответствующего опорного кадра может называться как соответствующий индекс опорного изображения. Как описано выше, текущее изображение может быть ассоциировано с одним или несколькими списками опорных изображений (например, списком 0 и списком 1). Индекс опорного изображения может указывать опорное изображение, указав позицию опорного изображения в списке опорных изображений. В некоторых возможных реализациях текущее изображение может быть ассоциировано с объединенным списком опорных изображений.As described above, the list of predicted motion vector candidates for the current PU may include temporal motion vector predicted candidates. The temporal motion vector predictor candidate may indicate motion information corresponding to the temporal (co-located) PU. The aligned PU may be spatially located at the same position as the current image frame PU, but as a reference image instead of the current image. In the present invention, a reference picture including a corresponding temporal PU may be referred to as a corresponding reference frame. In the present invention, a reference picture index of a corresponding reference frame may be referred to as a corresponding reference picture index. As described above, the current picture may be associated with one or more reference picture lists (eg,
В некоторых видеокодерах, ассоциированный индекс опорного изображения является индексом опорного изображения PU, который охватывает позицию источника опорного индекса, ассоциированную с текущим PU. В этих видеокодерах, позиция источника опорного индекса, ассоциированную с текущим PU примыкает к текущему PU слева от текущего PU или выше текущего PU. В настоящем изобретении, если блок изображения, ассоциированный с PU, включает в себя конкретную позицию, PU может «охватывать» конкретную позицию. В этих видеокодерах видеокодер может использовать индекс 0 опорного изображения, если позиция источника опорного индекса недоступна.In some video encoders, the associated reference picture index is a PU reference picture index that spans the reference index source position associated with the current PU. In these video encoders, the reference index source position associated with the current PU is adjacent to the current PU to the left of the current PU or above the current PU. In the present invention, if an image block associated with a PU includes a specific position, the PU may "cover" the specific position. In these video encoders, the video encoder may use
Однако в некоторых примерах позиция источника опорного индекса, ассоциированная с текущей PU, находится в пределах текущего CU. В этих примерах PU, который покрывает позицию источника опорного индекса, ассоциированного с текущим PU, может считаться доступной, если PU находится выше или слева от текущего CU. В этом случае видеокодеру может потребоваться информация движения доступа другого PU текущего CU для определения опорного изображения, включающего в себя совмещенный PU. Таким образом, эти видеокодеры могут использовать информацию движения (а именно, индекс опорного изображения) PU, принадлежащий к текущему CU, чтобы генерировать временный кандидат предсказанного вектора движения для текущего PU. Другими словами, эти видеокодеры могут использовать информацию движения PU, принадлежащего текущему CU, для генерирования временного кандидата предсказанного вектора движения. Таким образом, видеокодер может быть не в состоянии генерировать параллельно список кандидатов предсказанного вектора движения для текущего PU и PU, который охватывает позицию источника опорного индекса, ассоциированную с текущим PU.However, in some examples, the reference index source position associated with the current PU is within the current CU. In these examples, a PU that covers the source position of the reference index associated with the current PU may be considered available if the PU is above or to the left of the current CU. In this case, the video encoder may need access motion information of another PU of the current CU to determine a reference picture including the aligned PU. Thus, these video encoders can use motion information (namely, a reference picture index) of a PU belonging to the current CU to generate a temporal predicted motion vector candidate for the current PU. In other words, these video encoders can use the motion information of the PU belonging to the current CU to generate a temporal candidate of the predicted motion vector. Thus, the video encoder may not be able to generate in parallel a predicted motion vector candidate list for the current PU and PU that spans the reference index source position associated with the current PU.
Согласно технологии, в настоящем изобретении, видеокодер может явно установить соответствующий индекс опорного изображения, не обращаясь к индексу опорного изображения любого другого PU. Таким образом, видеокодер может параллельно генерировать списки кандидатов предсказанного вектора движения для текущего PU и другого PU текущего CU. Видеокодер явно устанавливает соответствующий индекс опорного кадра, ассоциированный с индексом опорного изображения не на основании информации движения любого другого PU текущего CU. В некоторых возможных вариантах осуществления, в которых видеокодер явно устанавливает ассоциированный с ним индекс опорного изображения, видеокодер всегда может установить соответствующий фиксированный, заданный индекс опорного изображения и заданный индекс опорного изображения (например, 0). Таким образом, видеокодер может генерировать временного кандидата предсказанного вектора движения на основании информации движения совмещенного PU в опорном кадре, указанной заданным индексом опорного изображения, где временной кандидат предсказанного вектора движения может быть включен в список кандидатов предсказанных векторов движения для текущего CU.According to the technology in the present invention, the video encoder can explicitly set the corresponding reference picture index without referring to the reference picture index of any other PU. Thus, the video encoder can generate predicted motion vector candidate lists for the current PU and another PU of the current CU in parallel. The video encoder explicitly sets the corresponding key frame index associated with the reference picture index not based on the motion information of any other PU of the current CU. In some possible embodiments in which the video encoder explicitly sets its associated reference picture index, the video encoder can always set a corresponding fixed, given reference picture index and a given reference picture index (eg, 0). Thus, the video encoder can generate a temporal motion vector predicted candidate based on the motion information of the aligned PU in the reference frame indicated by the given reference picture index, where the temporal motion vector predicted candidate can be included in the list of predicted motion vector candidates for the current CU.
В возможной реализации, в которой видеокодер явно устанавливает ассоциированный индекс опорного изображения, видеокодер может явно сигнализировать ассоциированный индекс опорного изображения в структуре синтаксиса (например, изображение, заголовок сегмента, APS, или другая структура синтаксиса). В этом осуществимой реализации видеокодер может сигнализировать ассоциированный индекс опорного изображения каждого LCU (а именно, CTU), CU, PU, TU или другого типа субблока на сторону декодера. Например, видеокодер может сигнализировать о том, что ассоциированный индекс опорного изображения каждого PU CU равен «1».In an exemplary implementation in which the video encoder explicitly sets the associated reference picture index, the video encoder may explicitly signal the associated reference picture index in a syntax structure (eg, picture, segment header, APS, or other syntax structure). In this workable implementation, the video encoder may signal the associated reference picture index of each LCU (namely, CTU), CU, PU, TU, or other sub-unit type to the decoder side. For example, the video encoder may signal that the associated reference picture index of each CU PU is "1".
В некоторых возможных вариантах осуществления, ассоциированный индекс опорного изображения может быть установлена косвенно, а не явно. В этих возможных реализациях видеокодер может генерировать каждый временный кандидат предсказанного вектора движения в списке кандидатов предсказанного вектора движения для PU текущего CU, используя информацию движения PU в качестве опорного изображения, указанного индексом опорного изображения PU, который охватывает позиции за пределами текущего CU даже, если эти позиции не являются строго смежными с текущим PU.In some possible embodiments, the associated reference picture index may be set indirectly rather than explicitly. In these exemplary implementations, the video encoder may generate each temporal motion vector candidate in the current CU's PU predicted motion vector candidate list using the PU's motion information as a reference picture indicated by the PU's reference picture index that spans positions outside the current CU even if these positions are not strictly adjacent to the current PU.
После генерирования списка кандидатов предсказанного вектора движения для текущего PU видеокодер может генерировать блок изображения предсказания, ассоциированный с кандидатом предсказанного вектора движения в списке кандидатов предсказанного вектора движения (S204). Видеокодер может определять информацию движения текущего PU на основании информации движения указанного кандидата предсказанного вектора движения, и затем генерировать блок изображения предсказания на основании одного или нескольких опорных блоков, указанных информацией движения текущего PU, чтобы сгенерировать блок изображения предсказания, ассоциированный с кандидатом предсказанного вектора движения. Затем видеокодер может выбрать один кандидат предсказанного вектора движения из списка кандидатов предсказанного вектора движения (S206). Видеокодер может выбирать кандидата предсказанного вектора движения различными способами. Например, видеокодер может выбрать один кандидат предсказанного вектора движения путем анализа стоимости искажения для каждого из блоков изображения предсказания, ассоциированных с кандидатами предсказанного вектора движения.After generating the predicted motion vector candidate list for the current PU, the video encoder may generate a prediction picture block associated with the predicted motion vector candidate in the predicted motion vector candidate list (S204). The video encoder may determine the motion information of the current PU based on the motion information of the specified motion vector prediction candidate, and then generate a prediction image block based on one or more reference blocks indicated by the current PU's motion information to generate a prediction image block associated with the predicted motion vector candidate. The video encoder may then select one predicted motion vector candidate from the list of predicted motion vector candidates (S206). The video encoder may select the predicted motion vector candidate in various ways. For example, the video encoder may select one predicted motion vector candidate by analyzing the distortion cost for each of the prediction image blocks associated with the predicted motion vector candidates.
После выбора кандидата предсказанного вектора движения, видеокодер может вывести индекс кандидата предсказанного вектора движения (S208). Индекс кандидата предсказанного вектора движения может указывать позицию выбранного кандидата предсказанного вектора движения в списке кандидатов предсказанного вектора движения. В некоторых возможных реализациях индекс кандидата предсказанного вектора движения может быть представлен как «merge_idx».After selecting a predicted motion vector candidate, the video encoder may output an index of the predicted motion vector candidate (S208). The motion vector predictor candidate index may indicate the position of the selected motion vector candidate in the predicted motion vector candidate list. In some possible implementations, the predicted motion vector candidate index may be represented as "merge_idx".
Фиг. 6 является блок-схемой алгоритма реализации усовершенствованного режима предсказания вектора движения (AMVP) согласно варианту осуществления настоящего изобретения. Видеокодер (например, видеокодер 100) может выполнять операцию 210 AMVP. Операция 210 AMVP может включать в себя: S211: генерировать один или несколько векторов движения для текущего блока предсказания. S212: генерировать блок видео предсказания для текущего блока предсказания. S213: генерировать список кандидатов для текущего блока предсказания. S214: генерировать разность векторов движения. S215: выбрать кандидата из списка кандидатов. S216: вывести индекс опорного изображения, индекс кандидата и разность векторов движения, которое используется для выбранного кандидата. Кандидат является кандидатом вектора движения или кандидатом информации движения.Fig. 6 is a flowchart for implementing an advanced motion vector prediction (AMVP) mode according to an embodiment of the present invention. A video encoder (eg, video encoder 100) may perform
После начала операции 210 AMVP видеокодером, видеокодер может генерировать один или несколько векторов движения для текущего PU (S211). Видеокодер может выполнять целочисленную оценку движения и дробную оценку движения, чтобы генерировать вектор движения для текущего PU. Как описано выше, текущее изображение может быть ассоциировано с двумя списками опорных изображений (список 0 и список 1). Если текущий PU предсказывается однонаправленно, видеокодер может генерировать вектор движения списка-0 или вектор движения списка-1 для текущего PU. Вектор движения списка 0 может указывать на пространственное перемещение между блоком изображения, соответствующий текущему PU, и опорным блоком, в качестве опорного изображения в списке 0. Вектор движения списка 1 может указывать на пространственное перемещение между блоком изображения, соответствующее текущему PU, и опорным блоком в опорном изображении в списке 1. Если текущий PU, предсказанный двунаправленно, видеокодер могут генерировать вектор движения списка 0 и вектор движения списка 1 для текущего PU.After the start of
После генерирования одного или нескольких векторов движения для текущего PU видеокодер может генерировать блок изображения предсказания для текущего PU (S212). Видеокодер может генерировать блок изображения предсказания для текущего PU на основании одного или более опорных блоков, указанных одним или более векторами движения текущей PU.After generating one or more motion vectors for the current PU, the video encoder may generate a prediction picture block for the current PU (S212). The video encoder may generate a prediction picture block for the current PU based on one or more reference blocks indicated by one or more motion vectors of the current PU.
Дополнительно, видеокодер может генерировать список кандидатов предсказанного вектора движения для текущего PU (S213). Видеокодер может генерировать список кандидатов предсказанного вектора движения для текущего PU различными способами. Например, видеокодер может генерировать список кандидатов предсказанного вектора движения для текущего PU, используя одну или несколько возможных реализаций, описанных ниже со ссылкой на фиг. 8-фиг. 12. В некоторых возможных реализациях, когда видеокодер генерирует список кандидатов предсказанного вектора движения в операции 210 AMVP, список кандидатов предсказанного вектора движения может быть ограничен двумя кандидатами предсказанного вектора движения. Напротив, когда видеокодер генерирует список кандидатов предсказанного вектора движения в операции слияния, список кандидатов предсказанного вектора движения может включать в себя больше кандидатов предсказанного вектора движения (например, пять кандидатов предсказанного вектора движения).Additionally, the video encoder may generate a predicted motion vector candidate list for the current PU (S213). The video encoder may generate a predicted motion vector candidate list for the current PU in various ways. For example, the video encoder may generate a list of predicted motion vector candidates for the current PU using one or more of the possible implementations described below with reference to FIG. 8-fig. 12. In some possible implementations, when the video encoder generates the predicted motion vector candidate list in
После генерирования списка кандидатов предсказанного вектора движения для текущего PU видеокодер может генерировать одну или несколько разностей векторов движения (MVD) для каждого кандидата предсказанного вектора движения в списке кандидатов предсказанного вектора движения (S214). Видеокодер может определять разность между вектором движения, указанным кандидатом предсказанного вектора движения, и соответствующим вектором движения текущего PU, чтобы генерировать разность векторов движения для кандидата предсказанного вектора движения.After generating the predicted motion vector candidate list for the current PU, the video encoder may generate one or more motion vector differences (MVDs) for each predicted motion vector candidate in the predicted motion vector candidate list (S214). The video encoder may determine the difference between the motion vector indicated by the predicted motion vector candidate and the corresponding motion vector of the current PU to generate the motion vector difference for the predicted motion vector candidate.
Если текущий PU предсказывается однонаправленно, видеокодер может генерировать одиночную MVD для каждого кандидата предсказанного вектора движения. Если текущий PU предсказан двунаправленно, видеокодер может генерировать два MVDs для каждого кандидата предсказанного вектора движения. Первый MVD может указывать разность между вектором движения, указанным кандидатом предсказанного вектора движения, и вектором движения списка 0 текущего PU. Второй MVD может указывать разность между вектором движения, указанным кандидатом предсказанного вектора движения, и вектором движения списка 1 текущего PU.If the current PU is predicted unidirectionally, the video encoder may generate a single MVD for each predicted motion vector candidate. If the current PU is bidirectionally predicted, the video encoder may generate two MVDs for each predicted motion vector candidate. The first MVD may indicate a difference between the motion vector indicated by the predicted motion vector candidate and the
Видеокодер может выбрать один или несколько кандидатов предсказанного вектора движения из списка кандидатов предсказанного вектора движения (S215). Видеокодер может выбирать один или более кандидатов предсказанного вектора движения различными способами. Например, видеокодер может выбрать кандидата предсказанного вектора движения, который с минимальной ошибкой совпадает с вектором движения, ассоциированным с вектором движения, который должен быть кодирован. Это может уменьшить количество битов, необходимых для представления разности векторов движения для кандидата предсказанного вектора движения.The video encoder may select one or more predicted motion vector candidates from a list of predicted motion vector candidates (S215). The video encoder may select one or more predicted motion vector candidates in various manners. For example, the video encoder may select a predicted motion vector candidate that matches, with minimal error, the motion vector associated with the motion vector to be encoded. This can reduce the number of bits needed to represent the motion vector difference for a predicted motion vector candidate.
После выбора одного или нескольких кандидатов предсказанного вектора движения видеокодер может выводить один или несколько индексов опорных изображений для текущего PU, один или несколько индексов кандидатов предсказанного вектора движения для текущего PU и одну или несколько разностей векторов движения для одного или нескольких выбранных кандидатов предсказанных векторов движения (S216).After selecting one or more motion vector predictor candidates, the video encoder may output one or more reference picture indexes for the current PU, one or more motion vector predictor candidate indices for the current PU, and one or more motion vector differences for one or more selected motion vector predictor candidates ( S216).
В качестве примера, в котором текущее изображение ассоциировано с двумя списками опорных изображений (список 0 и списка 1) и текущий PU предсказан однонаправленно, видеокодер может выводить индекс опорного изображения («ref_idx_10») для списка 0 или индекс опорного изображения («ref_idx_11») для списка 1. Видеокодер может дополнительно выводить индекс кандидата предсказанного вектора движения («mvp_10_flag»), что указывает на позицию выбранного кандидата предсказанного вектора движения для списка 0 вектора движения текущего PU в списке кандидатов предсказанного вектора движения. В качестве альтернативы видеокодер может выводить индекс кандидата предсказанного вектора движения («mvp_11_flag»), который указывает позицию выбранного вектора движения кандидата предсказанного вектора движения списка 1 текущего PU в списке кандидатов предсказанного вектора движения. Видеокодер может дополнительно выводить MVD для вектора движения списка 0 или вектора движения списка 1 текущего PU.As an example, in which the current picture is associated with two reference picture lists (
В качестве примера, в котором текущий изображение ассоциировано с двумя списками опорных изображений (список 0 и списка 1) и текущий PU предсказан двунаправленно, видеокодер может выводить индекс опорного изображения («ref_idx_10») для списка 0 и индекс опорного изображения («ref_idx_11») для списка 1. Видеокодер может дополнительно выводить индекс кандидата предсказанного вектора движения («mvp_10_flag»), что указывает на позицию выбранного кандидата предсказанного вектора движения для списка 0 вектора движения текущего PU в списке кандидатов предсказанного вектора движения . Кроме того, видеокодер может выводить индекс кандидата предсказанного вектора движения («mvp_11_flag»), который указывает позицию выбранного кандидата предсказанного вектора движения для вектора движения списка 1 текущего PU в списке кандидатов предсказанного вектора движения. Видеокодер может дополнительно выводить MVD для вектора движения списка 0 текущего PU и MVD для вектора движения списка 1 текущего PU.As an example, in which the current picture is associated with two reference picture lists (
Фиг. 7 является блок-схемой алгоритма реализации компенсации движения, выполняемой видеодекодером (например, видеодекодером 30) согласно варианту осуществления настоящего изобретения.Fig. 7 is a flowchart of a motion compensation implementation performed by a video decoder (eg, video decoder 30) according to an embodiment of the present invention.
Когда видеодекодер выполняет операцию 220 компенсации движения, видеодекодер может принимать указание, используемую для выбранного кандидата предсказанного вектора движения текущего PU (S222). Например, видеодекодер может принимать индекс кандидата предсказанного вектора движения, указывающий позицию выбранного кандидата предсказанного вектора движения в списке кандидатов предсказанного вектора движения для текущего PU.When the video decoder performs
Если информация движения текущего PU кодируется на основании режима AMVP и текущий PU предсказывается двунаправленно, видеодекодер может принимать первый индекс кандидата предсказанного вектора движения и второй индекс кандидата предсказанного вектора движения. Первый индекс кандидата предсказанного вектора движения указывает позицию выбранного кандидата предсказанного вектора движения для вектора движения списка 0 текущего PU в списке кандидатов предсказанного вектора движения. Второй индекс кандидата предсказанного вектора движения указывает позицию выбранного кандидата предсказанного вектора движения для вектора движения списка 1 текущего PU в списке кандидатов предсказанного вектора движения. В некоторых возможных реализациях один элемент синтаксиса может использоваться для идентификации двух индексов кандидатов предсказанных вектора движения.If the motion information of the current PU is encoded based on the AMVP mode and the current PU is bidirectionally predicted, the video decoder may receive a first predicted motion vector candidate index and a second predicted motion vector candidate index. The first predicted motion vector candidate index indicates the position of the selected motion vector prediction candidate for the
Дополнительно, видеодекодер может генерировать список кандидатов предсказанного вектора движения для текущего PU (S224). Видеодекодер может генерировать список кандидатов предсказанного вектора движения для текущего PU различными способами. Например, видеодекодер может генерировать список кандидатов предсказанного вектора движения для текущего PU, используя технологии, описанные ниже со ссылкой на фиг. 8-фиг. 12. Когда видеодекодер генерирует временный кандидат предсказанного вектора движения для списка кандидатов предсказанного вектора движения, видеодекодер может явно или неявно установить индекс опорного изображения, который идентифицирует опорное изображение, включающее в себя совмещенный PU, как описано выше со ссылкой на фиг. 5.Additionally, the video decoder may generate a predicted motion vector candidate list for the current PU (S224). The video decoder may generate a predicted motion vector candidate list for the current PU in various ways. For example, the video decoder may generate a predicted motion vector candidate list for the current PU using the techniques described below with reference to FIG. 8-fig. 12. When the video decoder generates a temporal motion vector predicted candidate for the motion vector predicted candidate list, the video decoder may explicitly or implicitly set a reference picture index that identifies the reference picture including the aligned PU, as described above with reference to FIG. five.
После генерирования списка кандидатов предсказанного вектора движения для текущего PU, видеодекодер может определять информацию движения текущего PU на основании информации движения, указанной одним или несколькими выбранными кандидатами предсказанными векторами движения в списке кандидатов предсказанного вектора движения для текущего PU (S225). Например, если информация движения текущего PU кодируется на основании режима слияния, информация движения текущего PU может быть такой же, как информация движения, указанная выбранным кандидатом предсказанного вектора движения. Если информация движения текущего PU кодируется на основании режима AMVP, видеодекодер может восстановить один или несколько векторов движения текущего PU, используя один или несколько векторов движения, указанных одним или несколькими выбранными кандидатами предсказанного вектора движения и одним или более MVDs, указанных в битовом потоке. Индекс опорного кадра и индикатор направления предсказания текущего PU могут быть таким же, как один или более индексы опорных изображений и указатели направления предсказания одного или более выбранные кандидаты предсказанного вектора движения. После определения информации движения текущего PU, видеодекодер может генерировать блок изображения предсказания для текущего PU на основании одного или более опорных блоков, указанных информацией движения текущего PU (S226).After generating a list of predicted motion vector candidates for the current PU, the video decoder may determine the motion information of the current PU based on the motion information indicated by one or more selected candidate motion vectors in the list of predicted motion vector candidates for the current PU (S225). For example, if the motion information of the current PU is encoded based on the merge mode, the motion information of the current PU may be the same as the motion information indicated by the selected motion vector prediction candidate. If the motion information of the current PU is encoded based on the AMVP mode, the video decoder may recover one or more motion vectors of the current PU using one or more motion vectors indicated by one or more selected motion vector predictor candidates and one or more MVDs indicated in the bitstream. The reference frame index and prediction direction indicator of the current PU may be the same as one or more reference picture indices and prediction direction indicators of one or more selected motion vector predictor candidates. After determining the motion information of the current PU, the video decoder may generate a prediction picture block for the current PU based on one or more reference blocks indicated by the motion information of the current PU (S226).
Фиг. 8 является схемой примера блока кодирования (CU) и соседнего блока изображения, ассоциированного с блоком кодирования (CU), согласно варианту осуществления настоящего изобретения. Фиг. 8 является схемой для описания CU 250 и примерных кандидатов предсказанного вектора движения на позициях с 252A по 252E, ассоциированных с CU 250. В настоящем изобретении кандидаты предсказанного вектора движения на позициях 252A-252E могут вместе называться кандидатами предсказанного вектора движения на позиции 252. Кандидат предсказанного вектора движения на позиции 252 представляет пространственного кандидата предсказанного вектора движения, который находится в том же изображении, что и CU 250. Кандидат предсказанного вектора движения на позиции 252A расположен слева от CU 250. Кандидат предсказанного вектора движения на позиции 252B расположен над CU 250. Кандидат предсказанного вектора движения на позиции 252C расположен в верхнем правом углу CU 250. Кандидат предсказанного вектора движения на позиции 252D расположен в нижнем левом углу CU 250. Кандидат предсказанного вектора движения на позиции 252E расположен в верхнем левом углу CU 250. Фиг. 8 показывает схематическую реализацию способа, которым модуль 121 внешнего предсказания и модуль компенсации движения могут генерировать списки кандидатов предсказанного вектора движения. Далее реализация объясняется на основании модуля 121 внешнего предсказания. Однако следует понимать, что модуль компенсации движения может реализовывать ту же технологию и, следовательно, генерировать тот же самый список кандидатов предсказанного вектора движения.Fig. 8 is a diagram of an example of a coding unit (CU) and an adjacent image block associated with a coding unit (CU) according to an embodiment of the present invention. Fig. 8 is a diagram for describing
Фиг. 9 является блок-схемой алгоритма реализации составления списка кандидатов предсказанного вектора движения согласно варианту осуществления настоящего изобретения. Технология на фиг. 9 описывается на основании списка, включающего в себя пять кандидатов предсказанного вектора движения, но технологии, описанные в этой спецификации, могут альтернативно использоваться со списком, имеющим другой размер. Каждый из пяти кандидатов предсказанного вектора движения может иметь индекс (например, от 0 до 4). Технология на фиг. 9 описывается на основании общего видеокодека. Общий видеокодек может быть, например, видеокодером (например, видеокодером 100) или видеодекодером (например, видеодекодером 30).Fig. 9 is a flowchart of an implementation of predicted motion vector candidate listing according to an embodiment of the present invention. The technology in Fig. 9 is described based on a list of five predicted motion vector candidates, but the techniques described in this specification may alternatively be used with a list having a different size. Each of the five predicted motion vector candidates may have an index (eg, 0 to 4). The technology in Fig. 9 is described based on a common video codec. The general video codec may be, for example, a video encoder (eg, video encoder 100) or a video decoder (eg, video decoder 30).
Для восстановления списка кандидатов предсказанного вектора движения согласно реализации на фиг. 9, видеодекодер сначала рассматривает четыре пространственных кандидата предсказанного вектора движения (902). Четыре пространственных кандидата предсказанного вектора движения могут включать в себя кандидаты предсказанного вектора движения на позициях 252A, 252B, 252C и 252D. Четыре пространственных кандидата предсказанного вектора движения могут соответствовать информации движения четырех PUs, которые расположены в том же изображении, что и текущий CU (например, CU 250). Видеодекодер может рассматривать четыре пространственных кандидата предсказанного вектора движения в списке в указанном порядке. Например, сначала может рассматриваться кандидат предсказанного вектора движения на позиции 252A. Если кандидат предсказанного вектора движения на позиции 252A доступен, может быть присвоен индекс 0 кандидату предсказанного вектора движения на позиции 252A. Если кандидат предсказанного вектора движения на позиции 252A недоступен, видеодекодер может пропустить добавление кандидата предсказанного вектора движения на позиции 252A в список кандидатов предсказанного вектора движения. Кандидат предсказанного вектора движения на позиции может быть недоступен по разным причинам. Например, если кандидат предсказанного вектора движения на позиции отсутствует в текущем изображении, кандидат предсказанного вектора движения на позиции может быть недоступен. В другой возможной реализации, если кандидат предсказанного вектора движения на позиции подвергается внутреннему предсказанию, кандидат предсказанного вектора движения на позиции может быть недоступен. В другой возможной реализации, если кандидат предсказанного вектора движения на позиции находится в сегменте, отличном от сегмента, соответствующего текущего CU, кандидат предсказанного вектора движения на позиции может быть недоступен.To reconstruct the predicted motion vector candidate list according to the implementation of FIG. 9, the video decoder first considers four spatial motion vector predictor candidates (902). The four spatial motion vector predictor candidates may include the predicted motion vector candidates at
После рассмотрения кандидата предсказанного вектора движения на позиции 252A, видеодекодер может рассмотреть кандидата предсказанного вектора движения на позиции 252B. Если кандидат предсказанного вектора движения на позиции 252B доступен и отличается от кандидата предсказанного вектора движения на позиции 252A, видеодекодер может добавить кандидата предсказанного вектора движения на позиции 252B в список кандидатов предсказанного вектора движения. В этом конкретном контексте термин «одинаковый» или «другой» означает, что информация движения, ассоциированная с кандидатами предсказанного вектора движения на позициях, одинакова или отличается. Следовательно, если два кандидата предсказанного вектора движения на позициях имеют одинаковую информацию движения, два кандидата предсказанного вектора движения на позициях считаются одинаковыми; или, если два кандидата предсказанного вектора движения на позициях имеют разную информацию движения, то два кандидата предсказанного вектора движения на позициях считаются разными. Если кандидат предсказанного вектора движения на позиции 252A недоступен, видеодекодер может присвоить индекс 0 кандидату предсказанного вектора движения на позиции 252B. Если кандидат предсказанного вектора движения на позиции 252A доступен, видеодекодер может присвоить индекс 1 кандидату предсказанного вектора движения на позиции 252B. Если кандидат предсказанного вектора движения на позиции 252B недоступен или совпадает с кандидатом предсказанного вектора движения на позиции 252A, видеодекодер пропускает добавление кандидата предсказанного вектора движения на позиции 252B в список кандидатов предсказанного вектора движения.After considering the predicted motion vector candidate at 252A, the video decoder may consider the predicted motion vector candidate at 252B. If the predicted motion vector candidate at
Аналогичным образом, видеодекодер рассматривает кандидата предсказанного вектора движения на позиции 252C, чтобы определить, следует ли добавить кандидата предсказанного вектора движения на позиции 252C в список. Если кандидат предсказанного вектора движения на позиции 252C доступен и отличается от кандидатов предсказанного вектора движения на позициях 252B и 252A, видеодекодер может назначить следующий доступный индекс кандидату предсказанного вектора движения на позиции 252C. Если кандидат предсказанного вектора движения на позиции 252C недоступен или совпадает, по меньшей мере, с одним из кандидатов предсказанного вектора движения на позициях 252A и 252B, видеодекодер пропускает добавление кандидата предсказанного вектора движения на позиции 252C в список кандидатов предсказанного вектора движения. Затем видеодекодер рассматривает кандидата предсказанного вектора движения на позиции 252D. Если кандидат предсказанного вектора движения на позиции 252D доступен и отличается от кандидатов предсказанного вектора движения на позициях 252A, 252B и 252C, видеодекодер может назначить следующий доступный индекс кандидату предсказанного вектора движения на позиции 252D. Если кандидат предсказанного вектора движения на позиции 252D недоступен или совпадает, по меньшей мере, с одним из кандидатов предсказанного вектора движения на позициях 252A, 252B и 252C, видеодекодер пропускает добавление кандидата предсказанного вектора движения на позиции 252D в список кандидатов предсказанного вектора движения. В вышеупомянутой реализации в целом описывается пример, в котором кандидаты предсказанного вектора движения 252A-252D рассматриваются для определения того, следует ли добавлять кандидаты предсказанного вектора движения 252A-252D в список кандидатов предсказанного вектора движения. Однако в некоторых реализациях все кандидаты предсказанного вектора движения 252A-252D могут быть сначала добавлены в список кандидатов предсказанного вектора движения, а затем повторяющийся кандидат предсказанного вектора движения удаляется из списка кандидатов предсказанного вектора движения.Similarly, the video decoder considers the predicted motion vector candidate at
После того, как видеодекодер рассматривает первые четыре пространственные кандидата предсказанного вектора движения, список кандидатов предсказанного вектора движения может включать в себя четыре пространственных кандидата предсказанного вектора движения или список может включать в себя менее четырех пространственных кандидатов предсказанного вектора движения. Если список включает в себя четыре пространственных кандидата предсказанного вектора движения (904, да), видеодекодер рассматривает временного кандидата предсказанного вектора движения (906). Временной кандидат предсказанного вектора движения может соответствовать информации движения совместно расположенного PU изображения, отличного от текущего изображения. Если временной кандидат предсказанного вектора движения доступен и отличается от первых четырех пространственных кандидатов предсказанного вектора движения, видеодекодер назначает индекс 4 временному кандидату предсказанного вектора движения. Если временной кандидат предсказанного вектора движения недоступен или совпадает с одним из первых четырех пространственных кандидатов предсказанного вектора движения, видеодекодер пропускает добавление временного кандидата предсказанного вектора движения в список кандидатов предсказанного вектора движения. Следовательно, после того, как видеодекодер рассматривает временной кандидат предсказанного вектора движения (906), список кандидатов предсказанного вектора движения может включать в себя пять кандидатов предсказанного вектора движения (первые четыре пространственных кандидата предсказанного вектора движения, рассматриваемых на 902, и учитываемый временной кандидат предсказанного вектора движения на этапе 906) или может включать в себя четыре кандидата предсказанного вектора движения (первые четыре кандидата предсказанного вектора движения рассматриваются на этапе 902). Если список кандидатов предсказанного вектора движения включает в себя пять кандидатов предсказанного вектора движения (908, да), видеодекодер завершает составление списка.After the video decoder considers the first four spatial motion vector predicted candidates, the list of predicted motion vector candidates may include four spatial predicted motion vector candidates, or the list may include less than four spatial predicted motion vector candidates. If the list includes four spatial motion vector predicted candidates (904, yes), the video decoder considers a temporal motion vector predicted candidate (906). The predicted motion vector temporal candidate may correspond to motion information of a co-located PU image other than the current image. If a temporal predicted motion vector candidate is available and different from the first four spatial predicted motion vector candidates, the video decoder assigns
Если список кандидатов предсказанного вектора движения включает в себя четыре кандидата предсказанного вектора движения (908, нет), видеодекодер может рассматривать пятый кандидат предсказанного вектора движения (910). Пятый пространственный кандидат предсказанного вектора движения может (например) соответствовать кандидату предсказанного вектору движения на позиции 252E. Если кандидат предсказанного вектора движения на позиции 252E доступен и отличается от кандидатов предсказанного вектора движения на позициях 252A, 252B, 252C и 252D, видеодекодер может добавить пятый пространственный кандидат предсказанного вектора движения в список кандидатов предсказанного вектора движения и присвоить индекс 4 пятому пространственному кандидату предсказанного вектора движения. Если кандидат предсказанного вектора движения на позиции 252E недоступен или совпадает с одним из кандидатов предсказанного вектора движения на позициях 252A, 252B, 252C и 252D, видеодекодер может пропустить добавление кандидата предсказанного вектора движения на позиции 252 в список кандидатов предсказанного вектора движения. Следовательно, после рассмотрения (910) пятого пространственного кандидата предсказанного вектора движения, список может включать в себя пять кандидатов предсказанного вектора движения (первые четыре пространственные кандидаты предсказанного вектора движения, рассматриваемые на 902, и пятый пространственный кандидат предсказанного вектора движения, рассматриваемый на 910) или может включать в себя четыре кандидата предсказанного вектора движения (первые четыре пространственные кандидаты предсказанного вектора движения рассматриваются на этапе 902).If the list of predicted motion vector candidates includes four predicted motion vector candidates (908, none), the video decoder may consider a fifth predicted motion vector candidate (910). The fifth spatial motion vector predictor candidate may (for example) correspond to the predicted motion vector candidate at
Если список кандидатов предсказанного вектора движения включает в себя пять кандидатов предсказанного вектора движения (912, да), видеодекодер завершает формирование списка кандидатов предсказанного вектора движения. Если список кандидатов предсказанного вектора движения включает в себя четыре кандидата предсказанного вектора движения (912, нет), видеодекодер добавляет искусственно сгенерированный кандидат предсказанного вектора движения (914) до тех пор, пока список не будет включает в себя пять кандидатов предсказанного вектора движения (916, да).If the motion vector predicted candidate list includes five motion vector predicted candidates (912, YES), the video decoder ends generation of the motion vector predicted candidate list. If the motion vector predicted candidate list includes four motion vector predicted candidates (912, none), the video decoder adds an artificially generated motion vector predicted candidate (914) until the list includes five motion vector predicted candidates (916, Yes).
Если список включает в себя менее четырех пространственных кандидатов предсказанного вектора движения (904, нет) после того, как видеодекодер рассматривает первые четыре пространственных кандидата предсказанного вектора движения, видеодекодер может рассмотреть пятый пространственный кандидат предсказанного вектора движения (918). Пятый пространственный кандидат предсказанного вектора движения может (например) соответствовать кандидату предсказанного вектора движения на позиции 252E. Если кандидат предсказанного вектора движения на позиции 252E доступен и отличается от существующих кандидатов предсказанного вектора движения в списке кандидатов предсказанного вектора движения, видеодекодер может добавить пятый пространственный кандидат предсказанного вектора движения в список кандидатов предсказанного вектора движения, и назначить следующий доступный индекс для пятого пространственного кандидата предсказанного вектора движения. Если кандидат предсказанного вектора движения на позиции 252E недоступен или совпадает с одним из существующих кандидатов предсказанного вектора движения в списке кандидатов предсказанного вектора движения, видеодекодер может пропустить добавление кандидата предсказанного вектора движения на позиции 252E в список кандидатов предсказанного вектора движения. Затем видеодекодер может рассмотреть временной кандидат предсказанного вектора движения (920). Если временной кандидат предсказанного вектора движения доступен и отличается от существующего кандидата предсказанного вектора движения в списке кандидатов предсказанного вектора движения, видеодекодер может добавить временной кандидат предсказанного вектора движения в список кандидатов предсказанного вектора движения и назначить следующий доступный индекс временному кандидату предсказанного вектора движения. Если временной кандидат предсказанного вектора движения недоступен или является таким же, как один из существующих кандидатов предсказанного вектора движения в списке кандидатов предсказанного вектора движения, видеодекодер может пропустить добавление временного кандидата предсказанного вектора движения в список кандидатов предсказанного вектора движения.If the list includes less than four spatial motion vector predicted candidates (904, none), after the video decoder considers the first four spatial motion vector predicted candidates, the video decoder may consider a fifth spatial motion vector predicted candidate (918). The fifth spatial motion vector predictor candidate may (for example) correspond to the predicted motion vector candidate at
Если список кандидатов предсказанного вектора движения включает в себя пять кандидатов предсказанного вектора движения (922, да) после того, как учитываются пятый пространственный кандидат предсказанного вектора движения (на этапе 918) и временной кандидат предсказанного вектора движения (на этапе 920), видеодекодер завершает формирование списка кандидатов предсказанного вектора движения. Если список кандидатов предсказанного вектора движения включает в себя менее пяти кандидатов предсказанного вектора движения (922, нет), видеодекодер добавляет искусственно сгенерированный кандидат предсказанного вектора движения (914) до тех пор, пока список не будет включать в себя пять кандидатов предсказанного вектора движения (916, да).If the list of predicted motion vector candidates includes five predicted motion vector candidates (922, YES) after considering the fifth spatial motion vector candidate (at 918) and the temporal motion vector predicted candidate (at 920), the video decoder ends generating list of predicted motion vector candidates. If the motion vector predicted candidate list includes less than five motion vector predicted candidates (922, none), the video decoder adds an artificially generated motion vector predicted candidate (914) until the list includes five motion vector predicted candidates (916 , Yes).
Согласно технологиям в настоящем изобретении, дополнительный кандидат слияния предсказанного вектора движения может быть искусственно сгенерирован после пространственного кандидата предсказанного вектора движения и временного кандидата предсказанного вектора движения, так что размер списка кандидатов слияния предсказанного вектора движения является фиксированным, и список кандидатов слияния предсказанного вектора движения включает в себя указанное количество (например, пять в вышеупомянутой возможной реализации на фиг. 9) кандидатов слияния предсказанного вектора движения. Дополнительный кандидат слияния предсказанного вектора движения может включать в себя примеры объединенного кандидата слияния предсказанного вектора движения с двойным предсказанием (кандидат предсказанного вектора 1 движения), масштабированного кандидата слияния предсказанного вектора движения с двойным предсказанием (кандидат предсказанного вектора 2 движения) и кандидата слияния/AMVP предсказанного вектора движения нулевого вектора (кандидат предсказанного вектора 3 движения).According to the techniques in the present invention, an additional predicted motion vector merge candidate can be artificially generated after the spatial predicted motion vector candidate and the temporal predicted motion vector candidate, so that the size of the predicted motion vector merge candidate list is fixed, and the predicted motion vector merge candidate list includes a specified number (eg, five in the above exemplary implementation in FIG. 9) of predicted motion vector fusion candidates. The additional predicted motion vector merge candidate may include examples of a combined dual predicted motion vector merge candidate (motion vector predicted candidate 1), a scaled dual predicted motion vector merge candidate (motion vector predicted candidate 2), and a predicted merge/AMVP candidate. zero motion vector motion vector (predicted motion vector candidate 3).
Фиг. 10 является схемой примера добавления объединенного кандидата вектора движения в список кандидатов предсказанного вектора движения в режиме слияния согласно варианту осуществления настоящего изобретения. Объединенный кандидат предсказанного вектора движения слияния с двойным предсказанием может быть сгенерирован путем объединения исходных кандидатов предсказанного вектора движения слияния. В частности, два исходных кандидата предсказанного вектора движения (которые имеют mvL0 и refIdxL0 или mvL1 и refIdxL1) могут использоваться для генерирования кандидата предсказанного вектора движения слияния с двойным предсказанием. На фиг. 10, два кандидата предсказанного вектора движения включены в список исходных кандидатов слияния предсказанного вектора движения. Типом предсказания одного кандидата предсказанного вектора движения является унифицированное предсказание с использованием списка 0, и типом предсказания другого кандидата предсказанного вектора движения является унифицированное предсказание с использованием списка 1. В этой возможной реализации получают mvL0_A и ref0 из списка 0, и mvL1_B и ref0 получают из списка 1. Затем может быть сгенерирован кандидат слияния предсказанного вектора движения с двойным предсказанием (который имеет mvL0_A и ref0 в списке 0 и mvL1_B и ref0 в списке 1), и проверяется, отличается ли кандидат слияния предсказанного вектора движения с двойным предсказанием от существующего кандидата предсказанного вектора движения в списке кандидатов предсказанного вектора движения. Если кандидат слияния предсказанного вектора движения с двойным предсказанием отличается существующего кандидата предсказанного вектора движения, видеодекодер может добавить кандидат слияния предсказанного вектора движения с двойным предсказанием в список кандидатов предсказанного вектора движения.Fig. 10 is a diagram of an example of adding a combined motion vector candidate to a merge mode predicted motion vector candidate list according to an embodiment of the present invention. The combined dual-predictive merge motion vector candidate can be generated by combining the original merge motion vector candidates. In particular, two initial motion vector predictor candidates (which have mvL0 and refIdxL0 or mvL1 and refIdxL1) may be used to generate a dual prediction merge motion vector candidate. In FIG. 10, two predicted motion vector candidates are included in the list of initial predicted motion vector fusion candidates. The prediction type of one motion vector predictor candidate is unified
Фиг. 11 является схемой добавления масштабированного кандидата вектора движения в список кандидатов предсказанного вектора движения в режиме слияния согласно варианту осуществления настоящего изобретения. Масштабированный кандидат слияния предсказанного вектора движения с двойным предсказанием может быть сгенерирован путем масштабирования исходного кандидата слияния предсказанного вектора движения. В частности, один исходный кандидат предсказанного вектора движения (который имеет mvLX и refIdxLX) может использоваться для генерирования кандидата слияния предсказанного вектора движения с двойным предсказанием. В возможной реализации на фиг. 11, два кандидата предсказанного вектора движения включены в список исходных кандидатов слияния предсказанного вектора движения. Типом предсказания одного кандидата предсказанного вектора движения является унифицированное предсказание с использованием списка 0, и типом предсказания другого кандидата предсказанного вектора движения является унифицированное предсказание с использованием списка 1. В этой возможной реализации mvL0_A и ref0 могут быть получены из списка 0, ref0 может быть скопирован в список 1 и обозначается как опорный индекс ref0'. Затем mvL0'_A может быть вычислен путем масштабирования mvL0_A, имеющего ref0 и ref0'. Масштабирование может зависеть от расстояния POC (счет порядка изображения). Затем может быть сгенерирован кандидат слияния предсказанного вектора движения с двойным предсказанием (который имеет mvL0_A и ref0 в списке 0 и mvL0'_A и ref0 'в списке 1), и определяют повторяется ли кандидат слияния предсказанного вектора движения с двойным предсказанием. Если кандидат слияния предсказанного вектора движения с двойным предсказанием не повторяется, кандидат слияния предсказанного вектора движения с двойным предсказанием может быть добавлен в список кандидатов слияния предсказанного вектора движения.Fig. 11 is a diagram of adding a scaled motion vector candidate to a merge mode predicted motion vector candidate list according to an embodiment of the present invention. A scaled dual predicted motion vector merge candidate can be generated by scaling the original predicted motion vector merge candidate. In particular, one original motion vector predictor candidate (which has mvLX and refIdxLX) may be used to generate a dual predicted motion vector merge candidate. In a possible implementation in FIG. 11, two predicted motion vector candidates are included in the list of initial predicted motion vector fusion candidates. The prediction type of one motion vector predictor candidate is unified
Фиг. 12 является схемой примера добавления нулевого вектора движения в список кандидатов слияния предсказанного вектора движения согласно варианту осуществления настоящего изобретения. Кандидат слияния предсказанного вектора движения нулевого вектора может быть сгенерирован путем объединения нулевого вектора и опорного индекса, на который можно ссылаться. Если кандидат слияния предсказанного вектора движения нулевого вектора не повторяется, кандидат слияния предсказанного вектора движения нулевого вектора может быть добавлен в список кандидатов слияния предсказанного вектора движения. Информация движения каждого сгенерированного кандидата слияния предсказанного вектора движения может сравниваться с информацией движения предшествующего кандидата предсказанного вектора движения в списке.Fig. 12 is a diagram of an example of adding a null motion vector to a predicted motion vector merge candidate list according to an embodiment of the present invention. A null vector predicted motion vector merge candidate can be generated by concatenating the null vector and a reference index that can be referenced. If the null vector predicted motion vector merge candidate is not repeated, the null vector predicted motion vector merge candidate may be added to the predicted motion vector merge candidate list. The motion information of each generated predicted motion vector merge candidate may be compared with the motion information of a previous predicted motion vector candidate in the list.
В возможной реализации, если вновь сгенерированный кандидат предсказанного вектора движения отличается от существующего кандидата предсказанного вектора движения в списке кандидатов предсказанного вектора движения, сгенерированный кандидат предсказанного вектора движения добавляется в список кандидатов слияния предсказанного вектора движения. Процесс определения, отличается ли кандидат предсказанного вектора движения от существующего кандидата предсказанного вектора движения в списке кандидатов предсказанного вектора движения, иногда называется отсечением (pruning). Посредством отсечения каждый вновь сгенерированный кандидат предсказанного вектора движения может сравниваться с существующим кандидатом предсказанного вектора движения в списке. В некоторых возможных реализациях операция отсечения может включать в себя: сравнение одного или нескольких новых кандидатов предсказанного вектора движения с существующим кандидатом предсказанного вектора движения в списке кандидатов предсказанного вектора движения и пропуск добавления нового кандидата предсказанного вектора движения, который совпадает с кандидатом предсказанного вектора движения в списке кандидатов предсказанного вектора движения. В некоторых других возможных реализациях операция отсечения может включать в себя: добавление одного или нескольких новых кандидатов предсказанного вектора движения в список кандидатов предсказанного вектора движения и затем удаление повторяющегося кандидата предсказанного вектора движения из списка.In an exemplary implementation, if a newly generated predicted motion vector candidate differs from an existing predicted motion vector candidate in the predicted motion vector candidate list, the generated predicted motion vector candidate is added to the predicted motion vector merge candidate list. The process of determining whether a motion vector prediction candidate differs from an existing motion vector prediction candidate in the motion vector prediction candidate list is sometimes referred to as pruning. By pruning, each newly generated predicted motion vector candidate can be compared with an existing predicted motion vector candidate in the list. In some possible implementations, the pruning operation may include: comparing one or more new predicted motion vector candidates with an existing predicted motion vector candidate in the list of predicted motion vector candidates, and skipping adding a new predicted motion vector candidate that matches the predicted motion vector candidate in the list. candidates for the predicted motion vector. In some other possible implementations, the pruning operation may include: adding one or more new predicted motion vector candidates to the list of predicted motion vector candidates, and then removing the duplicate predicted motion vector candidate from the list.
Нижеследующее описывает несколько реализаций внешнего предсказания. Первый заданный алгоритм и второй заданный алгоритм в настоящем изобретении могут включать в себя одну или несколько реализаций внешнего предсказания.The following describes several implementations of extrinsic prediction. The first predetermined algorithm and the second predetermined algorithm in the present invention may include one or more inter prediction implementations.
Во внешнем предсказании используется временная корреляция между изображениями для получения предсказания с компенсацией движения (motion-compensation prediction, MCP) для блока выборок изображения.Inter-prediction uses temporal correlation between images to obtain motion-compensation prediction (MCP) for a block of image samples.
Для MCP на основании блоков, видеоизображение делится на прямоугольные блоки. Предполагая, что в пределах одного блока осуществляется однородное движение и что движущиеся объекты больше одного блока, для каждого блока можно найти соответствующий блок в ранее декодированном изображении, который служит в качестве значения предсказания. При использовании модели поступательного движения позиция блока в ранее декодированном изображении указывается вектором (Δx, Δy) движения, где Δx указывает горизонтальное смещение относительно позиции текущего блока и Δy указывает вертикальное смещение относительно позиции текущего блока. Вектор (Δx, Δy) движения может иметь дробную точность выборки для более точного захвата движения опорного объекта. Когда соответствующий вектор движения имеет точность дробной дискретизации, интерполяция применяется на опорном изображении, чтобы вывести сигнал предсказания. Ранее декодированное изображение называется в качестве опорного изображения, и обозначается опорным индексом Δt, соответствующий списку опорных изображений. Эти параметры модели поступательного движения, а именно, вектор движения и опорный индекс, далее называются данными движения. В современных стандартах кодирования видео разрешены два типа внешнего предсказания, а именно: унифицированное предсказание и двунаправленное предсказание.For block-based MCP, the video image is divided into rectangular blocks. Assuming that uniform motion occurs within one block and that the moving objects are larger than one block, for each block, a corresponding block in the previously decoded image can be found that serves as a prediction value. When using the translational motion model, the position of a block in a previously decoded image is indicated by a motion vector (Δx, Δy) where Δx indicates a horizontal offset relative to the position of the current block and Δy indicates a vertical offset relative to the position of the current block. The motion vector (Δx, Δy) may have a fractional sampling precision to more accurately capture the movement of the reference object. When the corresponding motion vector has fractional sampling precision, interpolation is applied on the reference picture to output a prediction signal. The previously decoded picture is called as a reference picture, and is denoted by a reference index Δt corresponding to the reference picture list. These translational motion model parameters, namely motion vector and reference index, are hereinafter referred to as motion data. In current video coding standards, two types of inter prediction are allowed, namely unified prediction and bidirectional prediction.
В случае двунаправленного предсказания используются два набора данных движения (Δx0, Δy0, Δt0 и Δx1, Δy1, Δt1) для генерирования двух MCPs (возможно, из разных изображений), которые затем объединяются для получения окончательного MCP. По умолчанию это делается путем усреднения, но в случае взвешенного предсказания к каждому MCP могут применяться разные веса, например, чтобы компенсировать постепенное исчезновение изображения. Опорные изображения, которые можно использовать в двунаправленном предсказании, хранятся в двух отдельных списках, а именно, списке 0 и списке 1. Чтобы ограничить полосу пропускания памяти в сегменте, который обеспечивает двунаправленное предсказание, стандарт HEVC ограничивает PU с блоки предсказания яркости 4 х 8 или 8 × 4 для использования только унифицированного предсказания. Данные движения выводятся в кодер с использованием процесса оценки движения. Оценка движения не указывается в стандартах видео, так что разные кодеры могут использовать различные компромиссы сложности и качества во время реализации кодеров.In the case of bidirectional prediction, two sets of motion data (Δx0, Δy0, Δt0 and Δx1, Δy1, Δt1) are used to generate two MCPs (possibly from different images), which are then combined to obtain the final MCP. By default, this is done by averaging, but in the case of weighted prediction, different weights can be applied to each MCP, for example, to compensate for the gradual disappearance of the image. Reference pictures that can be used in bidirectional prediction are stored in two separate lists, namely
Данные движения блока коррелируются с соседним блоком. Чтобы использовать эту корреляцию, данные движения не кодируются напрямую в битовом потоке, а кодируются с предсказанием на основании данных соседнего движения. В HEVC для этого используются две концепции. Кодирование с предсказанием вектора движения было улучшено в HEVC за счет введения нового инструмента, называемого усовершенствованным предсказанием вектора движения (advanced motion vector prediction, AMVP), в котором лучшее значение предсказания для каждого блока движения передается в декодер. Дополнительно, для извлечения всех данных движения блока из соседних блоков используется новая технология, называемая слиянием блоков внешнего предсказания. Таким образом, в H.264/AVC заменяются прямой режим и режим пропуска.The movement data of a block is correlated with a neighboring block. To use this correlation, the motion data is not encoded directly in the bitstream, but is predictively encoded based on the adjacent motion data. HEVC uses two concepts for this. Motion vector prediction coding has been improved in HEVC by introducing a new tool called advanced motion vector prediction (AMVP), in which the best prediction value for each motion block is passed to the decoder. Additionally, a new technique called inter prediction block fusion is used to extract all block motion data from neighboring blocks. Thus, direct mode and skip mode are replaced in H.264/AVC.
Усовершенствованное предсказание вектора движенияAdvanced Motion Vector Prediction
Как описано в предшествующих стандартах кодирования видео, вектор движения HEVC кодируется как разница значения предсказания вектора движения (motion vector prediction value, MVP) на основании горизонтальной (x) компоненты и вертикальной (y) компоненты. Две компоненты разности векторов движения (MVD) вычисляются согласно уравнениям (1.1) и (1.2).As described in previous video coding standards, the HEVC motion vector is encoded as the difference of the motion vector prediction value (MVP) based on the horizontal (x) component and the vertical (y) component. The two motion vector difference (MVD) components are calculated according to equations (1.1) and (1.2).
MVDX = Δx - MVPX (1.1)MVD X = ∆x - MVP X (1.1)
MVDY = Δy - MVPY (1.2)MVD Y = Δy - MVP Y (1.2)
Вектор движения текущего блока обычно коррелируется с вектором движения соседнего блока в текущем изображении или ранее кодированном изображении. Это ассоциировано с тем, что соседний блок, вероятно, соответствует одному и тому же движущемуся объекту с аналогичным движением, и движение объекта вряд ли резко изменится с течением времени. Следовательно, использование вектора движения соседнего блока в качестве значения предсказания уменьшает сигнализируемую разность векторов движения. MVP обычно получается из уже декодированного вектора движения соседнего по пространству блока или соседнего по времени блока в совместно размещенном изображении. В некоторых случаях нулевой вектор движения может альтернативно использоваться как MVP. В H.264/AVC это реализуется путем выполнения покомпонентного медианного значения трех пространственных соседних векторов движения. При использовании этого подхода не требуется сигнализация значения предсказания. в H.264/AVC рассматривается только временной MVP из совмещенного изображения в так называемом временном прямом режиме. Прямой режим H.264/AVC также используется для получения других данных движения, кроме вектора движения.The motion vector of the current block is typically correlated with the motion vector of a neighboring block in the current picture or a previously encoded picture. This is associated with the fact that the adjacent block is likely to correspond to the same moving object with similar motion, and the motion of the object is unlikely to change dramatically over time. Therefore, using the motion vector of an adjacent block as a prediction value reduces the signaled motion vector difference. The MVP is typically obtained from an already decoded motion vector of a spatially adjacent block or a temporally adjacent block in a co-located picture. In some cases, motion vector zero may alternatively be used as an MVP. In H.264/AVC, this is implemented by performing a componentwise median of three spatial adjacent motion vectors. Using this approach, signaling the prediction value is not required. in H.264/AVC, only the temporal MVP from the merged image is considered in the so-called temporal direct mode. H.264/AVC direct mode is also used to receive motion data other than motion vector.
В HEVC подход к неявному получению MVP был заменен технологией, известной как конкуренция векторов движения. Технология явно сигнализирует, какой MVP из списка MVP используется для получения вектора движения. Структура блока дерева квадрантов с переменным кодированием в HEVC может привести к тому, что один блок, имеющий несколько соседних блоков с векторами движения, будет служить потенциальными кандидатами MVP. Первоначальная структура усовершенствованного предсказания вектора движения (Advanced Motion Vector Prediction, AMVP) включала с себя пять MVPs из трех различных классов значений предсказания: три вектора движения из пространственных соседей, медиана трех значений пространственного предсказания и масштабированный вектор движения из совмещенного временного соседнего блока. Кроме того, список значений предсказания был изменен путем переупорядочения, чтобы поместить наиболее вероятное значение предсказания движения в первую позицию и путем удаления избыточного кандидата, чтобы гарантировать минимальные накладные расходы на сигнализацию. Затем разрабатываются значительные упрощения структуры AMVP, такие как удаление среднего значения предсказания, уменьшение количества кандидатов в списке с пяти до двух, фиксация порядка кандидатов в списке и уменьшение количества проверок избыточности. Окончательный вариант построения списка кандидатов AMVP включает в себя следующие два кандидата MVP: a. до двух пространственных кандидатов MVPs, полученных из пяти пространственных соседних блоков; b. один MVP временной кандидат, полученный из двух совместно размещенных временных блоков, когда оба пространственных MVPs кандидата недоступны или идентичны; и c. нулевой вектор движения, когда пространственные кандидаты, временный кандидат или и пространственные кандидаты, и временный кандидат недоступны.In HEVC, the approach to implicit MVP acquisition has been replaced by a technology known as motion vector contention. The technology explicitly signals which MVP from the MVP list is used to get the motion vector. The variable coding quadtree block structure in HEVC can result in a single block having multiple neighbor blocks with motion vectors to serve as potential MVP candidates. The original Advanced Motion Vector Prediction (AMVP) structure included five MVPs from three different classes of prediction values: three motion vectors from spatial neighbors, a median of three spatial prediction values, and a scaled motion vector from an aligned temporal neighbor block. In addition, the list of prediction values has been modified by reordering to put the most likely motion prediction value in the first position and by removing a redundant candidate to ensure minimal signaling overhead. Significant simplifications of the AMVP structure are then developed, such as removing the mean of the prediction, reducing the number of candidates in the list from five to two, fixing the order of the candidates in the list, and reducing the number of redundancy checks. The final build of the AMVP candidate roster includes the following two MVP candidates: a. up to two spatial candidate MVPs derived from five spatial neighboring blocks; b. one temporal candidate MVP derived from two co-located temporal blocks when both spatial candidate MVPs are unavailable or identical; and c. zero motion vector when the spatial candidates, the temporal candidate, or both the spatial candidates and the temporal candidate are unavailable.
Как уже упоминалось, два пространственных кандидата MVP A и B выводятся из пяти пространственных соседних блоков. Позиции пространственных кандидатов блоков одинаковы как для AMVP, так и для слияния блоков внешнего предсказания. Для кандидата A данные движения двух блоков A0 и A1 в нижнем левом углу учитываются при двухпроходном подходе. На первом проходе проверяется, включает ли в себя какой-либо из кандидатов блока опорный индекс, который равен опорному индексу текущего блока. Первый вектор движения, который найден, используется в качестве кандидата А. Когда все опорные индексы от A0 и A1 указывают на другое опорное изображение, чем опорный индекс текущего блока, ассоциированный с ним вектор движения не может быть использован, как есть. Следовательно, во втором проходе вектор движения необходимо масштабировать на основании временного расстояния между кандидатом опорного изображения и текущим опорным изображением. Уравнение (1.3) показывает, как масштабируется кандидат вектора mvcand движения на основании коэффициента масштабирования. Коэффициент масштабирования вычисляется на основании временного расстояния между текущим изображением и опорным изображением кандидата блока td и временного расстояния между текущим изображением и опорным изображением текущего блока tb. Временное расстояние выражается в терминах разницы между значениями количества изображений (picture order count, POC), что определяет порядок отображения изображений. Операция масштабирования в основном такая же, как схема, которая используется для временного прямого режима в H.264/AVC. Это разложение на множители позволяет предварительно вычислить коэффициент масштабирования на уровне сегмента, поскольку это разложение зависит только от структуры списка опорных изображений, о котором сообщается в заголовке сегмента. Следует отметить, что MV масштабирование выполняются только тогда, когда оба текущее опорное изображение и кандидат опорного изображения являются краткосрочными опорными изображениями. Параметр td определяется как разность POC между совместно размещенным изображением и опорным изображением для совместно расположенного кандидата блока.As already mentioned, two spatial MVP candidates A and B are derived from five spatial neighbor blocks. The positions of spatial block candidates are the same for both AMVP and inter prediction block merging. For candidate A, the motion data of the two blocks A0 and A1 in the lower left corner are taken into account in a two-pass approach. The first pass checks to see if any of the block candidates includes a reference index that is equal to the reference index of the current block. The first motion vector that is found is used as candidate A. When all the reference indices from A0 and A1 point to a different reference picture than the reference index of the current block, its associated motion vector cannot be used as is. Therefore, in the second pass, the motion vector needs to be scaled based on the temporal distance between the reference picture candidate and the current reference picture. Equation (1.3) shows how the motion vector candidate mvcand is scaled based on the scaling factor. The scaling factor is calculated based on the temporal distance between the current picture and the block candidate reference picture td and the temporal distance between the current picture and the current block reference picture tb. The temporal distance is expressed in terms of the difference between the picture order count (POC) values, which determines the order in which the pictures are displayed. The scaling operation is basically the same as the scheme used for the temporary direct mode in H.264/AVC. This factorization allows the scaling factor to be precomputed at the segment level, since this factorization depends only on the structure of the reference picture list reported in the segment header. It should be noted that MV scaling is only performed when both the current reference picture and the reference picture candidate are short-term reference pictures. The parameter td is defined as the POC difference between the co-located picture and the reference picture for the co-located block candidate.
mv = sign (mvcand • ScaleFactor) ((| mvcand • ScaleFactor | + 27) >> 8) (1.3)mv = sign (mvcand • ScaleFactor) ((| mvcand • ScaleFactor | + 27) >> 8) (1.3)
ScaleFactor = clip (–212, 212 - 1, (tb • tx + 25) >> 6) (1.4)ScaleFactor = clip (–212, 212 - 1, (tb • tx + 25) >> 6) (1.4)
(1.5) (1.5)
Для кандидата B кандидаты от B0 до B2 последовательно проверяются таким же образом, как и при проверке A0 и A1 на первом проходе. Однако второй проход выполняется только тогда, когда блоки A0 и A1 не включают в себя какую-либо информацию движения, другими словами, когда блоки A0 и A1 недоступны или кодируются посредством внутреннего предсказания изображения. Затем, если кандидат A найден, кандидат A устанавливается равным немасштабированному кандидату B и кандидат B устанавливается равным второму немасштабированному или масштабированному варианту кандидата B. На втором проходе выполняется поиск для получения немасштабированного MV и масштабированного MV из кандидатов от B0 до B2. В целом эта структура позволяет обрабатывать A0 и A1 независимо от B0, B1 и B2. При выводе B следует учитывать только доступность как A0, так и A1, чтобы выполнить поиск для получения масштабированного MV или дополнительного немасштабированного MV от B0 до B2. Эта зависимость приемлема при условии, что она значительно уменьшает сложную операцию масштабирования вектора движения для кандидата B. Уменьшение количества масштабирования вектора движения представляет собой значительное снижение сложности в процессе получения значения предсказания вектора движения.For candidate B, candidates from B0 to B2 are sequentially checked in the same way as when checking A0 and A1 on the first pass. However, the second pass is only performed when blocks A0 and A1 do not include any motion information, in other words, when blocks A0 and A1 are not available or are encoded by intra picture prediction. Then, if candidate A is found, candidate A is set equal to the unscaled candidate B and candidate B is set equal to the second unscaled or scaled variant of candidate B. On the second pass, a search is performed to obtain the unscaled MV and the scaled MV from candidates B0 to B2. In general, this structure allows A0 and A1 to be processed independently of B0, B1 and B2. When inferring B, only the availability of both A0 and A1 should be considered in order to search for a scaled MV or an additional unscaled MV from B0 to B2. This relationship is acceptable provided that it significantly reduces the complex motion vector scaling operation for candidate B. Reducing the amount of motion vector scaling represents a significant reduction in complexity in the process of deriving a motion vector prediction value.
В HEVC блоки в правом нижнем углу и в центре текущего блока были определены как наиболее подходящие блоки для обеспечения хорошего временного значения предсказания вектора движения (temporal motion vector prediction value, TMVP). Среди этих кандидатов C0 представляет нижний правый соседний блок и C1 представляет центральный блок. Здесь снова сначала рассматриваются данные движения C0. Если данные движения C0 недоступны, данные движения совместно расположенного кандидата блока в центре используются для получения временного MVP кандидата C. Данные движения C0 также считаются недоступными, когда ассоциированный PU принадлежит CTU, что находится за пределами текущей строки CTU. Это сводит к минимуму требования к пропускной способности памяти для хранения совместно размещенных данных движения. В отличии от пространственных кандидатов MVP, движения векторов может относиться к тому же опорному изображению, масштабирование вектора движения является обязательным для TMVP. Следовательно, используется такая же операция масштабирования, как и для пространственного MVP.In HEVC, the blocks in the lower right corner and in the center of the current block were determined to be the most suitable blocks to provide a good temporal motion vector prediction value (TMVP). Among these candidates, C0 represents the bottom right neighbor block and C1 represents the center block. Here again, motion data C0 is considered first. If C0 motion data is not available, the motion data of the co-located block candidate at the center is used to obtain the temporary MVP of candidate C. The C0 motion data is also considered unavailable when the associated PU belongs to a CTU that is outside the current CTU row. This minimizes the memory bandwidth requirements for storing co-located motion data. Unlike spatial MVP candidates, motion vectors can refer to the same reference picture, motion vector scaling is mandatory for TMVP. Therefore, the same scaling operation is used as for the spatial MVP.
Несмотря, что прямой временной режим временного в H.264/AVC всегда относится к первому опорному изображению во втором списке опорного изображения, а именно, список 1, и допускаются только в двунаправленном предсказании сегмента, HEVC обеспечивает возможность указания для каждого изображения, которое опорное изображение рассматривается как совмещенное изображение. Это реализуется посредством сигнализации списка совмещенных опорных изображений и индекса опорного изображения в заголовке сегмента и посредством запроса элементов синтаксиса во всех сегментах в изображении указать тоже опорное изображение.Although H.264/AVC direct temporal mode always refers to the first reference picture in the second reference picture list,
Поскольку временный кандидат MVP вводит дополнительную зависимость, использование временного кандидата MVP может потребоваться отключить из-за устойчивости к ошибкам. В H.264/AVC существует возможность отключения временного прямого режима для сегмента с двунаправленным предсказанием в заголовке сегмента (direct_spatial_mv_pred_flag). Синтаксис HEVC расширяет эту сигнализацию, позволяя отключать TMVP на уровне последовательности или уровне изображения (sps/slice_temporal_mvp_enabled_flag). Хотя в заголовке сегмента сообщается о флаге, для соответствия битового потока требуется, чтобы значение флага было одинаковым для всех сегментов в одном изображении. Поскольку сигнализация флага уровня изображения зависит от флага SPS, сигнализация флага уровня изображения в PPS может вводить зависимость синтаксического анализа между SPS и PPS. Другое преимущество этой сигнализации заголовка сегмента состоит в следующем: если требуется изменить только значение этого флага в PPS без изменения другого параметра, нет необходимости передавать второй PPS.Because the interim MVP candidate introduces an additional dependency, the use of the interim MVP candidate may need to be disabled due to fault tolerance. In H.264/AVC, it is possible to disable temporal direct mode for a bidirectional segment in the segment header (direct_spatial_mv_pred_flag). The HEVC syntax extends this signaling to allow TMVP to be disabled at the sequence or image level (sps/slice_temporal_mvp_enabled_flag). Although the segment header reports a flag, bitstream matching requires the flag value to be the same for all segments in the same picture. Since the image level flag signaling is dependent on the SPS flag, the image level flag signaling in the PPS may introduce a parsing dependency between the SPS and the PPS. Another advantage of this segment header signaling is that if only the value of this flag in the PPS needs to be changed without changing the other parameter, there is no need to send a second PPS.
В общем, сигнализация данных движения в HEVC аналогична сигнализации данных движения в H.264/AVC. Элемент синтаксиса внешнего предсказания, inter_pred_idc, сигнализирует, используется ли справочный список 0, справочный список 1 или оба справочного списка 0 и справочного списка 1. Для каждого МСР, полученного из одного списка опорного изображения, соответствующее опорное изображение (Δt) сигнализируется индексом в список опорного изображения, ref_idx_l0/1 и МV (Δх, Δy) представлен индексом в MVP, mvp_l0/1_flag и МVD MVP. Вновь введенный флаг в заголовке сегмента, mvd_l1_zero_flag, указывает, равен ли MVD для второго списка опорных изображений нулю и, следовательно, не сигнализируется в битовом потоке. Когда вектор движения полностью восстановлен, заключительная операция отсечения гарантирует, что значение каждого компонента окончательного вектора движения всегда находится в диапазоне от –215 до 215-1 включительно.In general, motion data signaling in HEVC is similar to motion data signaling in H.264/AVC. The inter prediction syntax element, inter_pred_idc, signals whether
Слияние блока (Block) внешнего предсказанияMerging a block (Block) of external prediction
Список AMVP включает в себя только вектор движения для одного справочного списка, в то время как кандидат слияния включает в себя все данные движения, включающие в себя информацию о том, используются ли один или два списка опорных изображений, а также опорный индекс и вектор движения для каждого списка. В целом список кандидатов слияния состоит из следующих кандидатов: a. до четырех кандидатов на пространственное слияние, полученных из пяти соседних пространственных блоков; b. один кандидат на временное слияние, полученный из двух совместно размещенных во времени блоков; и c. дополнительные кандидаты слияния, включающие в себя объединенный кандидат с двойным предсказанием и кандидат с нулевым вектором движения.The AMVP list only includes the motion vector for one reference list, while the merge candidate includes all motion data including whether one or two reference picture lists are used, and the reference index and motion vector for each list. In general, the list of merger candidates consists of the following candidates: a. up to four spatial merging candidates derived from five adjacent spatial blocks; b. one temporary merge candidate derived from two co-located blocks; and c. additional merge candidates including a combined dual-prediction candidate and a null motion vector candidate.
Первый кандидат в списке кандидатов слияния является пространственным соседом. A1, B1, B0, A0 и B2 проверяются последовательно, и в список слияния в этом порядке могут быть вставлены до четырех кандидатов.The first candidate in the merge candidate list is the spatial neighbor. A1, B1, B0, A0, and B2 are checked sequentially, and up to four candidates can be inserted into the merge list in that order.
Вместо простой проверки того, доступен ли соседний блок и включает в себя информацию движения, выполняются некоторые дополнительные проверки избыточности до того, как все данные движения соседнего блока будут использованы в качестве кандидата слияния. Эти проверки избыточности можно разделить на две категории для двух разных целей: a. Не допустить наличия в списке кандидата с избыточными данными движении; и b. Не допустить слияния двух разделов, которые могут быть выражены другим средством, которое может создать избыточный синтаксис.Instead of simply checking if a neighboring block is available and includes motion information, some additional redundancy checks are performed before all of the neighboring block's motion data is used as a merge candidate. These redundancy checks can be divided into two categories for two different purposes: a. Avoid having a candidate with redundant traffic data on the list; and b. Avoid merging two sections that might be expressed by another means that might create redundant syntax.
Когда N представляет количество кандидатов на пространственное слияние, полная проверка избыточности состоит из сравнений данных движения. В случае пяти потенциальных кандидатов на пространственное слияние необходимо выполнить 10 сравнений данных движения, чтобы гарантировать, что все кандидаты в списке слияния имеют разные данные движения. Во время разработки HEVC проверки избыточных данных движения были сокращены до подмножества, так что эффективность кодирования сохраняется, и логика сравнения значительно снижается. В окончательном варианте для каждого кандидата выполняется не более двух сравнений, всего пять сравнений. Учитывая порядок {A1, B1, B0, A0, B2}, B0 проверяет только B1, A0 только A1 и B2 только A1 и B1. В варианте осуществления, в котором выполняется проверка избыточности разделения, нижний PU раздела 2N × N объединяется с верхним PU путем выбора кандидата B1. В этом случае у одного CU есть два PUs с одинаковыми данными движения. CU может также сигнализироваться как 2N × 2N CU. В целом эта проверка применяется ко всем вторым PUs прямоугольных и асимметричных разделов: 2N × N, 2N × nU, 2N × nD, N × 2N, nR × 2N и nL × 2N. Следует отметить, что для кандидатов на пространственное слияние выполняется только проверка избыточности, и данные движения копируются из кандидатов блоков как есть. Следовательно, здесь не требуется масштабирование вектора движения.When N represents the number of spatial merge candidates, the full redundancy check consists of motion data comparisons. In the case of five potential spatial merge candidates, 10 motion data comparisons must be performed to ensure that all candidates in the merge list have different motion data. During the development of HEVC, checks for redundant motion data were reduced to a subset so that coding efficiency is maintained and comparison logic is greatly reduced. In the final version, no more than two comparisons are made for each candidate, for a total of five comparisons. Given the order {A1, B1, B0, A0, B2}, B0 checks only B1, A0 only A1, and B2 only checks A1 and B1. In an embodiment in which a partition redundancy check is performed, the lower PU of the 2N × N partition is combined with the upper PU by selecting candidate B1. In this case, one CU has two PUs with the same motion data. The CU may also be signaled as 2N × 2N CU. In general, this check applies to all second PUs of rectangular and asymmetric partitions: 2N × N, 2N × nU, 2N × nD, N × 2N, nR × 2N, and nL × 2N. It should be noted that only a redundancy check is performed for spatial merge candidates, and motion data is copied from block candidates as is. Therefore, motion vector scaling is not required here.
Кандидат вектора движения на временное слияние выводится таким же образом, как и при получении TMVP. Поскольку кандидат на слияние включает в себя все данные движения и TMVP является только одним вектором движения, получение всех данных движения зависит только от типа сегмента. Для сегмента с двойным предсказанием TMVP выводится для каждого списка опорных изображений. В зависимости от доступности TMVP для каждого списка, тип предсказания устанавливается на двунаправленное предсказание или на список, для которого доступен TMVP. Все ассоциированные индексы опорных изображений устанавливаются равными нулю. Таким образом, для сегмента унифицированного предсказания, полученного только ТМVP для списка 0 вместе с индексом опорного изображения, равен нулю.The motion vector candidate for temporary merge is derived in the same way as when TMVP is received. Since the merge candidate includes all motion data and TMVP is only one motion vector, obtaining all motion data depends only on the segment type. For a dual prediction segment, TMVP is output for each reference picture list. Depending on the availability of TMVP for each list, the prediction type is set to bidirectional prediction or to the list for which TMVP is available. All associated reference picture indexes are set to zero. Thus, for a unified prediction segment obtained only by TMVP for
Когда доступен хотя бы один TMVP и кандидат на временное слияние добавлен в список, проверка избыточности не выполняется. Это делает составление списка слияния независимым от совместно размещенного изображения и, следовательно, повышает устойчивость к ошибкам. Когда рассматривается случай, когда временный кандидат на слияние является избыточным и, следовательно, не включен в список кандидатов на слияние, и совмещенное изображение потеряно, декодер не может получить временного кандидата и, следовательно, не проверяет, является ли временный кандидат избыточный. Это влияет на индексацию всех последующих кандидатов.When at least one TMVP is available and a temporary merge candidate is added to the list, no redundancy check is performed. This makes the compilation of the merge list independent of the co-located image and therefore improves error resilience. When considering the case where the temporary merge candidate is redundant and therefore not included in the list of merge candidates, and the merged image is lost, the decoder cannot obtain the temporary candidate and therefore does not check whether the temporary candidate is redundant. This affects the indexing of all subsequent candidates.
Для устойчивости к синтаксическому анализу список кандидатов на слияние имеет фиксированную длину. После добавления пространственных и временных кандидатов на слияние список все еще может не достичь фиксированной длины. Чтобы компенсировать потерю эффективности кодирования, которая возникает вместе с сигнализацией индекса адаптивного списка без длины, генерируется дополнительный кандидат. В зависимости от типа сегмента для полного заполнения списка можно использовать до двух типов кандидатов: a. комбинированный кандидат с двойным предсказанием; и b. кандидат с нулевым вектором движения.For parse resistance, the merge candidate list has a fixed length. After adding spatial and temporal merge candidates, the list may still not reach a fixed length. To compensate for the loss in coding efficiency that occurs with adaptive list index signaling without length, an additional candidate is generated. Depending on the segment type, up to two types of candidates can be used to complete the list: a. combined candidate with double prediction; and b. candidate with zero motion vector.
В сегменте с двойным предсказанием дополнительный кандидат может быть сгенерирован на основании существующего кандидата путем объединения данных движения списка 0 опорных изображений одного кандидата и данных движения списка 1 опорных изображений другого кандидата. Это реализуется путем копирования Δx0, Δy0 и Δt0 из одного кандидата, такого как первый кандидат, и копирования Δx1, Δy1 и Δt1 из другого кандидата, например, второго кандидата. Различные комбинации предопределены и приведены в таблице 1.1.In the dual prediction segment, an additional candidate can be generated based on an existing candidate by combining
Таблица 1.1Table 1.1
Когда список все еще не заполнен после того, как объединенный кандидат с двойным предсказанием добавлен или не заполнен для сегмента с унифицированным предсказанием, для завершения списка вычисляется кандидат с нулевым вектором движения. Все кандидаты с нулевым вектором движения имеют один вектор движения с нулевым смещением для сегмента с унифицированным предсказанием и два вектора движения с нулевым смещением для сегмента с двойным предсказанием. Опорный индекс устанавливается равным нулю и увеличивается на единицу для каждого дополнительного кандидата до тех пор, пока не будет достигнуто максимальное количество опорных индексов. В этом случае, если по-прежнему отсутствуют другие кандидаты, для генерирования этих кандидатов используется опорный индекс, равный нулю. Для всех дополнительных кандидатов проверки на избыточность не выполняются, поскольку оказалось, что пропуск этих проверок не приводит к потере эффективности кодирования.When the list is still empty after the combined dual prediction candidate is added or is empty for the unified prediction segment, a zero motion vector candidate is computed to complete the list. All zero motion vector candidates have one zero offset motion vector for the unified prediction segment and two zero offset motion vectors for the dual prediction segment. The pivot index is set to zero and incremented by one for each additional candidate until the maximum number of pivot indexes is reached. In this case, if there are still no other candidates, a reference index of zero is used to generate those candidates. For all additional candidates, redundancy checks are not performed, since it turned out that omission of these checks does not lead to a loss in coding efficiency.
Для каждого PU, кодированного на основании режима внешнего предсказания, merge_flag указывает, что для получения данных движения используется объединение блоков, и merge_idx дополнительно используется для определения кандидата, который находится в списке слияния и который предоставляет все требуемые данные движения для MCP. В дополнение к этой сигнализации на уровне PU количество кандидатов в списке слияния сигнализируется в заголовке сегмента. Поскольку значение по умолчанию равно 5, оно представлено как разница в пять (five_minus_max_num_merge_cand). Таким образом, 5 передается коротким кодовым словом для 0. Если используется только один кандидат, 5 передается более длинным кодовым словом для 4. Что касается воздействия на процесс построения списка кандидатов на слияние, общий процесс остается таким же, хотя процесс завершается после того, как список включает в себя максимальное количество кандидатов слияния. В первоначальном варианте максимальное значение для кодирования индекса слияния задается количеством доступных пространственных и временных кандидатов в списке. Например, когда доступны только два кандидата, индекс можно эффективно закодировать как флаг. Однако для анализа индекса слияния необходимо составить весь список кандидатов слияния, чтобы знать фактическое количество кандидатов. Предполагая, что соседний блок недоступен из-за ошибки передачи, индекс слияния больше не может быть проанализирован.For each PU encoded based on the inter prediction mode, merge_flag indicates that block merging is used to obtain motion data, and merge_idx is further used to determine a candidate that is in the merge list and that provides all the required motion data for the MCP. In addition to this signaling at the PU level, the number of candidates in the merge list is signaled in the segment header. Since the default value is 5, it is represented as a difference of five (five_minus_max_num_merge_cand). Thus, 5 is conveyed with a short codeword for 0. If only one candidate is used, 5 is conveyed with a longer codeword for 4. Regarding the impact on the merge candidate list building process, the overall process remains the same, although the process terminates after the list includes the maximum number of merger candidates. In the original version, the maximum value for encoding the merge index is given by the number of available spatial and temporal candidates in the list. For example, when only two candidates are available, the index can be effectively encoded as a flag. However, to analyze the merger index, it is necessary to compile the entire list of merger candidates in order to know the actual number of candidates. Assuming a neighboring block is unavailable due to a transmission error, the merge index can no longer be parsed.
Важным применением концепции объединения блоков в HEVC является ее комбинация с режимом пропуска. В предшествующих стандартах кодирования видео режим пропуска используется для указания для блока, что данные движения предполагаются вместо явных сигналов и что остаток предсказания равен нулю. Другими словами, коэффициент преобразования не отправляется. В HEVC в начале каждого CU в сегменте внешнего предсказания сигнализируется skip_flag, что подразумевает следующее: a. CU включает в себя только один PU (тип раздела 2N × 2N). b. Режим слияния используется для получения данных движения (merge_flag равно 1). c. В битовом потоке остаточные данные отсутствуют.An important application of the concept of block merging in HEVC is its combination with the skip mode. In previous video coding standards, the skip mode is used to indicate to the block that motion data is assumed instead of explicit signals and that the prediction residual is zero. In other words, no conversion factor is sent. In HEVC, a skip_flag is signaled at the beginning of each CU in an inter prediction segment, which implies the following: a. The CU includes only one PU (partition type 2N × 2N). b. The merge mode is used to get motion data (merge_flag is 1). c. There is no residual data in the bitstream.
Уровень оценки параллельного слияния, который указывает, что в HEVC вводится область. Список кандидатов слияния может быть получен независимо путем проверки того, расположен ли блок кандидатов в этой области оценки слияния (MER). Блок кандидатов в том же MER не включается в список кандидатов слияния. Следовательно, данные движения кандидата блока не обязательно должны быть доступны во время построения списка. Когда этот уровень равен, например, 32, все блоки предсказания в области 32 × 32 могут использоваться для составления списка кандидатов слияния параллельно, потому что все кандидаты слияния в одном и том же MER 32 × 32 не вставляются в список. Все потенциальные кандидаты слияния для первого PU 0 доступны, потому что все потенциальные кандидаты слияния находятся за пределами первого MER 32 × 32. Для второго MER списки кандидатов слияния для PU с 2 по 6 не могут включать в себя данные движения от этих PUs, когда оценка слияния внутри MER должна быть независимой. Поэтому, например, когда просматривается PU 5, кандидат слияния недоступен и, следовательно, не вставлен в список кандидатов слияния. В этом случае список слияния для PU5 включает в себя только временного кандидата (если доступен) и нулевого кандидата MV. Чтобы дать возможность кодеру найти компромисс между параллелизмом и эффективностью кодирования, уровень оценки параллельного слияния является адаптивным и сигнализируется как log2_parallel_merge_level_minus2 в наборе параметров изображения.The parallel merge evaluation level, which indicates that a scope is being introduced into HEVC. The merge candidate list can be obtained independently by checking whether the candidate block is located in that merge evaluation area (MER). A block of candidates in the same MER is not included in the merge candidate list. Therefore, block candidate motion data need not be available at the time of list building. When this level is 32, for example, all prediction blocks in a 32×32 region can be used to list merge candidates in parallel because all merge candidates in the same 32×32 MER are not inserted into the list. All potential merge candidates for the
Предсказание вектора движения на основании суб-CUMotion vector prediction based on sub-CU
Во время разработки новой технологии кодирования видео с QTBT каждый CU может иметь не более одного набора параметров движения для каждого направления предсказания. В кодере рассматриваются два способа предсказания вектора движения на уровне суб-CU путем разделения большого CU на суб-CU и получения информации движения для всех суб-CUs большого CU. Способ альтернативного временного предсказания вектора движения (alternative temporal motion vector prediction, ATMVP) позволяет каждому CU извлечь множество наборов информации движения из множества блоков меньшего размера, чем текущий CU в совмещенном опорном изображении. В способе пространственно-временного предсказания вектора движения (spatial-temporal motion vector prediction, STMVP) вектор движения суб-CU получается рекурсивно с использованием значения предсказания временного вектора движения и соседнего вектора движения в пространстве.During the development of a new QTBT video coding technology, each CU can have at most one set of motion parameters for each prediction direction. The encoder considers two methods of motion vector prediction at the sub-CU level by dividing the large CU into sub-CUs and obtaining motion information for all sub-CUs of the large CU. The alternative temporal motion vector prediction (ATMVP) method allows each CU to extract a plurality of motion information sets from a plurality of smaller blocks than the current CU in the aligned reference picture. In the spatial-temporal motion vector prediction (STMVP) method, a sub-CU motion vector is obtained recursively using a temporal motion vector prediction value and an adjacent spatial motion vector.
Для сохранения более точного поля движения для предсказания движения суб-CU, сжатие движения для опорного кадра в настоящее время отключено.To preserve a more accurate motion field for sub-CU motion prediction, motion compression for the reference frame is currently disabled.
Альтернативное временное предсказание вектора движенияAlternative temporal motion vector prediction
В способе альтернативного временного предсказания вектора движения (alternative temporal motion vector prediction, ATMVP) предсказание временного вектора движения (temporal motion vector prediction, TMVP) для вектора движения модифицируется путем выборки множества наборов информации движения (включающая в себя векторы движения и опорные индексы) из блоков, меньших, чем текущий CU. Суб-CU представляет собой квадратный блок размером N × N (где N по умолчанию равно 4).In an alternative temporal motion vector prediction (ATMVP) method, a temporal motion vector prediction (TMVP) for a motion vector is modified by fetching a plurality of motion information sets (including motion vectors and reference indices) from blocks , smaller than the current CU. A sub-CU is an N × N square block (where N defaults to 4).
ATMVP предсказывает вектор движения суб-CU в CU в два этапа. Первый этап заключается в определении соответствующего блока в опорном кадре с использованием временного вектора. Опорное изображение называется изображением источника движения. Второй этап заключается в разделении текущего CU на суб-CUs и получении вектора движения и опорного индекса каждого суб-CU из блока, соответствующего суб-CU.ATMVP predicts the motion vector of the sub-CU in the CU in two steps. The first step is to determine the corresponding block in the reference frame using the time vector. The reference image is called the motion source image. The second step is to divide the current CU into sub-CUs and obtain the motion vector and reference index of each sub-CU from the block corresponding to the sub-CU.
На первом этапе, опорное изображение и соответствующий блок определяются на основании информации движения пространственного соседнего блока текущего CU. Чтобы избежать повторяющегося процесса сканирования для соседнего блока, используется первый кандидат слияния в списке кандидатов слияния для текущего CU. Первый доступный вектор движения и опорный индекс, ассоциированный с первым доступным вектором движения, устанавливаются как временной вектор и индекс исходного изображения движения. Таким образом, по сравнению с TMVP, в ATMVP соответствующий блок может быть идентифицирован более точно. В TMVP соответствующий блок (иногда называемый совмещенным блоком) всегда располагается в правом нижнем углу или по центру относительно текущего CU.In the first step, the reference image and the corresponding block are determined based on the motion information of the spatial neighboring block of the current CU. To avoid a repetitive scanning process for a neighboring block, the first merge candidate in the list of merge candidates for the current CU is used. The first available motion vector and the reference index associated with the first available motion vector are set as the temporal vector and index of the original motion image. Thus, compared to TMVP, in ATMVP the corresponding block can be identified more accurately. In TMVP, the corresponding box (sometimes called a merged box) is always located in the lower right corner or centered on the current CU.
На втором этапе соответствующий блок суб-CU идентифицируется временным вектором в изображении источника движения путем добавления временного вектора к координатам текущего CU. Для каждого суб-CU информация движения соответствующего блока (наименьшая сетка движения, покрывающая центральную выборку) суб-CU используется для получения информации движения для суб-CU. После того, как информация движения соответствующего блока N × N идентифицирована, в HEVC информация движения преобразуется в вектор движения и опорный индекс текущего суб-CU таким же образом, как TMVP, и применяются масштабирование движения и другие процедуры. Например, декодер проверяет, удовлетворяется ли условие низкой задержки (то есть, POC всех опорных изображений текущего изображения меньше, чем POC текущего изображения) и, возможно, использует вектор MVx движения (вектор движения, соответствующий списку X опорных изображений) для предсказания вектора MVy движения (с X равным 0 или 1 и Y равным 1 - X) для каждого суб-CU.In the second step, the corresponding sub-CU is identified by a time vector in the motion source image by adding the time vector to the coordinates of the current CU. For each sub-CU, motion information of the corresponding block (the smallest motion grid covering the center sample) of the sub-CU is used to obtain motion information for the sub-CU. After the motion information of the corresponding N×N block is identified, in HEVC, the motion information is converted into a motion vector and a reference index of the current sub-CU in the same manner as TMVP, and motion scaling and other procedures are applied. For example, the decoder checks whether a low delay condition is satisfied (that is, the POC of all reference pictures of the current picture is less than the POC of the current picture), and possibly uses a motion vector MVx (a motion vector corresponding to the reference picture list X) to predict the motion vector MVy (with X equal to 0 or 1 and Y equal to 1 - X) for each sub-CU.
Пространственно-временное предсказание вектора движенияSpatiotemporal Motion Vector Prediction
В этом способе вектор движения суб-CU получается рекурсивно, следуя порядку сканирования растра. Считается, что CU 8 × 8 включает в себя четыре суб-CUs 4 × 4 A, B, C и D. Соседние блоки 4 × 4 в текущем кадре помечены как a, b, c и d.In this method, the motion vector of the sub-CU is obtained recursively following the raster scan order. An 8×8 CU is considered to include four 4×4 sub-CUs A, B, C, and D. Adjacent 4×4 blocks in the current frame are labeled a, b, c, and d.
Получение движения для суб-CU A начинается с идентификации двух пространственных соседей суб-CU A. Первый сосед является блоком размером N × N над суб-CU A (а именно, блок c). Если блок c недоступен или внутренне кодирован, проверяются другие блоки N × N выше суб-CU A (слева направо, начиная с блока c). Второй сосед является блоком слева от суб-CU A (а именно, блок b). Если блок b недоступен или внутренне закодирован, проверяются другие блоки слева от суб-CU A (сверху вниз, начиная с блока b). Информация движения, полученная из соседнего блока для каждого списка изменяется в соответствии с первым опорным кадром для данного списка. Затем получают значение временного предсказания вектора движения (temporal motion vector prediction value, TMVP) субблока A, следуя той же процедуре получения TMVP, которая указана в HEVC. Информация движения совместно размещенного блока в позиции D выбирается и масштабируется соответственно. Наконец, после получения и масштабирования информации движения все доступные векторы движения (до 3) усредняются отдельно для каждого справочного списка. Усредненный вектор движения назначается как вектор движения текущего суб-CU.Getting motion for sub-CU A begins with the identification of two spatial neighbors of sub-CU A. The first neighbor is an N×N block over sub-CU A (namely, block c). If block c is not available or intra-coded, other N × N blocks above sub-CU A are checked (from left to right, starting from block c). The second neighbor is the block to the left of sub-CU A (namely, block b). If block b is not available or intra-coded, other blocks to the left of sub-CU A are checked (from top to bottom, starting from block b). The motion information obtained from the neighboring block for each list is changed in accordance with the first reference frame for that list. The temporal motion vector prediction value (TMVP) of sub-block A is then obtained by following the same TMVP acquisition procedure as specified in HEVC. The motion information of the co-located block at position D is selected and scaled accordingly. Finally, after receiving and scaling the motion information, all available motion vectors (up to 3) are averaged separately for each reference list. The average motion vector is assigned as the motion vector of the current sub-CU.
Объединенный с режимом слиянияMerged with merge mode
В качестве дополнительного кандидата слияния используют режим суб-CU, и дополнительный элемент синтаксиса не требуется для сигнализации режима. Два дополнительных кандидата слияния добавляются в список кандидатов слияния для каждого CU, чтобы представить режим ATMVP и режим STMVP. Если набор параметров последовательности указывает применение ATMVP и STMVP, используется до семи кандидатов слияния. Логика кодирования дополнительных кандидатов слияния такая же, как и логика кодирования кандидата слияния в HM. Это означает, что для каждого CU в P- или B-сегменте необходимо выполнить еще две проверки RD для двух дополнительных кандидатов слияния.The sub-CU mode is used as an additional merge candidate, and no additional syntax element is required for mode signaling. Two additional merge candidates are added to the merge candidate list for each CU to represent the ATMVP mode and the STMVP mode. If the sequence parameter set specifies the use of ATMVP and STMVP, up to seven merge candidates are used. The logic for encoding additional merge candidates is the same as the logic for encoding a merge candidate in HM. This means that for each CU in the P- or B-segment, two more RD checks must be performed for two additional merge candidates.
Аффинное предсказание компенсации движенияAffine Motion Compensation Prediction
Поле аффинного движения блока описывается с помощью двух векторов движения контрольной точки.The block's affine motion field is described using two control point motion vectors.
Поле вектора движения (motion vector field, MVF) блока описывается в соответствии со следующим уравнением:The motion vector field (MVF) of the block is described according to the following equation:
(1.6) (1.6)
где (v0x, v0y) представляет вектор движения контрольной точки в верхнем левом углу и (v1x, v1y) представляет вектор движения контрольной точки в правом верхнем углу.where (v0x, v0y) represents the motion vector of the control point in the upper left corner and (v1x, v1y) represents the motion vector of the control point in the upper right corner.
Чтобы еще больше упростить предсказание компенсации движения, применяется предсказание аффинного преобразования на основании субблоков. Размер подблока M х N выводится согласно уравнению (1.7), где MvPre представляет дробную точность вектора движения (например, 1/16), и (v2x, v2y) представляет вектор движения нижней левой контрольной точки, вычисленной в соответствии с уравнению (1.6).To further simplify motion compensation prediction, sub-block based affine transform prediction is applied. The sub-block size M x N is derived according to equation (1.7), where MvPre represents the fractional motion vector precision (e.g., 1/16), and (v2x, v2y) represents the motion vector of the lower left control point calculated according to equation (1.6).
(1.7) (1.7)
После того, как размер субблока M × N получен согласно уравнению (1.7), M и N должны быть скорректированы в сторону уменьшения, если необходимо, чтобы сделать M и N делителями w и h, соответственно.After the subblock size M × N is obtained according to equation (1.7), M and N must be adjusted downwards, if necessary, to make M and N divisors of w and h, respectively.
Для получения вектор движения каждого субблока M × N, вектор движения центральной выборки субблока вычисляется согласно уравнению (1.6) и округляется до дробной точности 1/16.To obtain the motion vector of each sub-block M × N, the motion vector of the central sample of the sub-block is calculated according to equation (1.6) and rounded to
Аффинный внешний режимAffine outer regime
Для CU, ширина и высота которого больше 8, может применяться режим AF_INTER. Флаг аффинности на уровне CU сигнализируется в битовом потоке, чтобы указать, используется ли режим AF_INTER. В этом режиме список кандидатов с парой векторов движения создается с использованием соседнего блока. выбирается из вектора движения блока A, B или C. Вектор движения из соседнего блока масштабируется в соответствии со справочном списком и соотношением между POC ссылки для соседнего блока, POC ссылки для текущего CU и POC текущего CU. Подход, используемый для выбора из соседних блоков D и E, аналогичен. Если количество списков кандидатов меньше 2, список дополняется парой векторов движения, составленной путем дублирования каждого кандидата AMVP. Когда количество списков кандидатов больше 2, кандидаты сначала сортируются в соответствии с согласованностью соседних векторов движения (сходство двух векторов движения в паре кандидатов), и сохраняются только первые два кандидата. Проверка стоимости RD используется для определения, какой кандидат пары векторов движения выбран в качестве предсказания вектора движения контрольной точки (control point motion vector prediction, CPMVP) текущего CU, и указывается индекс, указывающий позицию CPMVP в списке кандидатов в битовом потоке. Разница между CPMV и CPMVP сообщается в битовым потоке.For a CU whose width and height is greater than 8, the AF_INTER mode can be applied. An affinity flag at the CU level is signaled in the bitstream to indicate whether the AF_INTER mode is used. In this mode, the list of candidates with a pair of motion vectors created using an adjacent block. is selected from the motion vector of block A, B, or C. The motion vector from the neighboring block is scaled according to the look-up list and the relationship between the link POC for the neighbor block, the link POC for the current CU, and the POC of the current CU. Approach used for selection from neighboring blocks D and E is similar. If the number of candidate lists is less than 2, the list is padded with a pair of motion vectors composed by duplicating each AMVP candidate. When the number of candidate lists is greater than 2, the candidates are first sorted according to adjacent motion vector consistency (similarity of two motion vectors in a candidate pair), and only the first two candidates are kept. The RD cost check is used to determine which motion vector pair candidate is selected as the control point motion vector prediction (CPMVP) of the current CU, and an index indicating the position of the CPMVP in the candidate list in the bitstream is indicated. The difference between CPMV and CPMVP is reported in the bitstream.
Режим аффинного слиянияAffine merge mode
Когда CU применяется в режиме AF_MERGE, первый блок, кодированный на основании аффинного режима, получается из действительного соседнего восстановленного блока. Порядок выбора кандидатов блока - слева, вверху, вверху справа, внизу слева, вверху слева. Если нижний левый соседний блок A кодируется на основании аффинного режима, то выводятся верхний левый, верхний правый и нижний левый векторы , и движения, и CU, включающий в себя блок A. Дополнительно, вектор движения в верхнем левом углу текущего CU вычисляется согласно , и . Затем вычисляется правый верхний вектор движения текущего CU.When the CU is applied in the AF_MERGE mode, the first block encoded based on the affine mode is obtained from the actual neighboring reconstructed block. The block candidate selection order is left, top, top right, bottom left, top left. If the bottom-left neighbor block A is encoded based on the affine mode, then top-left, top-right, and bottom-left vectors are output. , and movement, and a CU including block A. Additionally, the vector movement in the upper left corner of the current CU is calculated according to , and . Then the upper right vector is calculated movement of the current CU.
Чтобы идентифицировать, кодируется ли текущий CU на основании режима AF_MERGE, когда существует, по меньшей мере, один соседний блок, который кодируется на основании аффинного режима, аффинный флаг сигнализируется в битовом потоке.To identify whether the current CU is encoded based on the AF_MERGE mode, when there is at least one neighboring block that is encoded based on the affine mode, an affine flag is signaled in the bitstream.
Получение вектора движения с согласованным шаблономGetting a motion vector with a matched pattern
Режим получения вектора движения с согласованным шаблоном (pattern matched motion vector derivation, PMMVD) основан на технологиях преобразования с повышением частоты кадров (Frame-Rate up Conversion, FRUC). В этом режиме информация движения блока не передается, а получается на стороне декодера.The pattern matched motion vector derivation (PMMVD) mode is based on Frame-Rate up Conversion (FRUC) technologies. In this mode, block motion information is not transmitted, but received at the decoder side.
Когда флаг слияния CU истинен, сигнализируется флаг FRUC этого CU. Когда флаг FRUC имеет значение ложно, указывается индекс слияния, и используется обычный режим слияния. Когда флаг FRUC истинен, сигнализируется дополнительный флаг режима FRUC для указания, какой способ (двустороннее сопоставление или сопоставление с шаблоном) должен использоваться для получения информации движения блока.When a CU's merge flag is true, that CU's FRUC flag is signaled. When the FRUC flag is false, the merge index is specified and normal merge mode is used. When the FRUC flag is true, an additional FRUC mode flag is signaled to indicate which method (two-way matching or pattern matching) should be used to obtain block motion information.
На стороне кодера решение о том, следует ли использовать режим слияния FRUC для CU, основывается на выборе стоимости RD, как это делается для обычного кандидата на слияние. То есть, два режима сопоставления (двустороннее сопоставление и сопоставление с шаблоном) проверяются для CU с помощью выбора стоимости RD. Режим, ведущий к минимальной стоимости, дополнительно сравнивается с другими режимами CU. Если режим сопоставления FRUC является наиболее эффективным режимом, флаг FRUC устанавливается в истинное значение для CU, и используется ассоциированный режим сопоставления.On the encoder side, the decision whether to use the FRUC merge mode for the CU is based on the choice of RD cost, as is done for a normal merge candidate. That is, two matching modes (two-way matching and pattern matching) are tested for the CU with the choice of RD cost. The mode leading to the minimum cost is further compared with other CU modes. If the FRUC mapping mode is the most efficient mode, the FRUC flag is set to true for the CU and the associated mapping mode is used.
Процесс получения движения в режиме слияния FRUC включает два этапа. Сначала выполняется поиск движения на уровне CU, затем следует уточнение движения на подуровне CU. На уровне CU получают исходный вектор движения для всего CU на основании двустороннего сопоставления или сопоставления с шаблоном. Сначала составляется список кандидатов MV и выбирается кандидат, который приводит к минимальной стоимости сопоставления, в качестве начальной точки для дополнительного уточнения на уровне CU. Затем выполняется локальный поиск, основанный на двустороннем сопоставлении или сопоставлении по шаблону вокруг начальной точки, и MV, который приводит к минимальной стоимости сопоставления, используется как MV для всего CU. Впоследствии информация движения дополнительно уточняется на уровне суб-CU с использованием полученного вектора движения CU в качестве начальной точки.The process of obtaining traffic in FRUC merge mode includes two steps. First, a motion search is performed at the CU level, followed by motion refinement at the CU sublevel. At the CU level, an initial motion vector for the entire CU is obtained based on two-way matching or pattern matching. First, a list of MV candidates is compiled and the candidate that results in the lowest matching cost is selected as a starting point for further refinement at the CU level. A local search is then performed based on a two-way or pattern matching around the starting point, and the MV that results in the lowest matching cost is used as the MV for the entire CU. Subsequently, the motion information is further refined at the sub-CU level using the received motion vector of the CU as a starting point.
Например, выполняется следующий процесс получения для вывода информации движения W х H CU. На первом этапе выводится MV всего W х H CU. На втором этапе CU дополнительно разделяется на M х M суб-CUs. Значение M вычисляется в соответствии с уравнением (1.8), D представляет заранее заданную глубину разделения и по умолчанию, установленное в JEM равным 3. Затем получают MV каждого суб-CU.For example, the following acquisition process is performed to output W x H CU motion information. At the first stage, the MV of the total W x H CU is displayed. In the second step, the CU is further divided into M x M sub-CUs. The value of M is calculated in accordance with Equation (1.8), D represents a predetermined separation depth and defaulted to 3 in the JEM. The MV of each sub-CU is then obtained.
(1.8) (1.8)
Двустороннее сопоставление используется для получения информации движения текущего CU путем нахождения наиболее близкого совпадения между двумя блоками вдоль траектории движения текущего CU в двух разных опорных изображениях. В предположении непрерывной траектории движения векторы MV0 и MV1 движения, указывающие на два опорных блока, должны быть пропорциональны временным расстояниям, то есть, TD0 и TD1, между текущим изображением и двумя опорными изображениями. Когда текущее изображение является временным между двумя опорными изображениями и временные расстояния между текущим изображением и двумя опорными изображениями одинаковы, двустороннее согласование становится двунаправленным MV на основании зеркала.Two-way matching is used to obtain motion information of the current CU by finding the closest match between two blocks along the motion path of the current CU in two different reference pictures. Assuming a continuous motion path, the motion vectors MV0 and MV1 pointing to two reference blocks should be proportional to the time distances, ie, TD0 and TD1, between the current picture and the two reference pictures. When the current picture is temporal between two reference pictures and the temporal distances between the current picture and the two reference pictures are the same, the bi-directional matching becomes a mirror-based bi-directional MV.
В режиме слияния с двусторонним соответствием всегда применяется двунаправленное предсказание, поскольку получается информация движения CU на основании наиболее близкого совпадения между двумя блоками вдоль траектории движения текущего CU в двух разных опорных изображениях. Для режима слияния шаблонов, соответствующих шаблону, такого ограничения нет. В режиме слияния сопоставления с шаблоном кодер может выбрать унифицированное предсказание из списка 0, унифицированное предсказание из списка 1 или двойное предсказание для CU. Выбор основан на следующей стоимости сопоставления шаблона:In the two-way matching merge mode, bi-directional prediction is always applied because CU motion information is obtained based on the closest match between two blocks along the motion path of the current CU in two different reference pictures. For pattern-matching merge mode, there is no such restriction. In the pattern-matching merge mode, the encoder may select unified prediction from
Если costBi <= factor * min (cost0, cost1),If costBi <= factor * min(cost0, cost1),
используется двунаправленное предсказание;bidirectional prediction is used;
В противном случае, если cost0 <= cost1,Otherwise, if cost0 <= cost1,
используется унифицированное предсказание из списка 0;the unified prediction from
Иначе,Otherwise,
используется унифицированное предсказание из списка 1.the unified prediction from
cost0 представляет собой SAD сопоставления шаблонов списка-0, cost1 представляет собой SAD сопоставления шаблонов списка-1, и costBi представляет собой SAD сопоставления шаблонов двойного предсказания. Значение коэффициента равно 1,25, что означает, что процесс выбора смещен в сторону двумерного предсказания. Выбор направления внешнего предсказания применяется только к процессу сопоставления шаблона на уровне CU.cost0 is the list-0 pattern matching SAD, cost1 is the list-1 pattern matching SAD, and costBi is the double prediction pattern matching SAD. The coefficient value is 1.25, which means that the selection process is biased towards two-dimensional prediction. The inter prediction direction selection applies only to the pattern matching process at the CU level.
Сопоставление с шаблоном используется для получения информации движения текущего CU путем нахождения наиболее близкого совпадения между шаблоном (верхние и/или левые соседние блоки текущего CU) в текущем изображении и блоке (с размером, таким же, как шаблон) в опорном изображении. За исключением вышеупомянутого режима слияния FRUC, сопоставление шаблонов также применяется к режиму AMVP. Новый кандидат получается с использованием способа сопоставления шаблонов. Если новый кандидат, полученный посредством сопоставления шаблонов, отличается от первого существующего кандидата AMVP, новый кандидат вставляется в самое начало списка кандидатов AMVP, и затем размер списка устанавливается равным 2 (это означает, что второй существующий кандидат AMVP удален). Когда сопоставление шаблонов применяется к режиму AMVP, применяется только поиск на уровне CU.Pattern matching is used to obtain motion information of the current CU by finding the closest match between a pattern (top and/or left adjacent blocks of the current CU) in the current picture and a block (with the same size as the pattern) in the reference picture. With the exception of the aforementioned FRUC merge mode, pattern matching also applies to the AMVP mode. A new candidate is obtained using a pattern matching method. If the new candidate obtained by pattern matching is different from the first existing AMVP candidate, the new candidate is inserted at the very beginning of the AMVP candidate list and then the list size is set to 2 (meaning the second existing AMVP candidate is deleted). When pattern matching is applied to AMVP mode, only CU-level lookup is applied.
Кандидаты MV, установленные на уровне CU, включают в себя: a. исходный кандидат AMVP, выбранный, если режим AMVP используется для текущего CU; b. все кандидаты слияния; c. несколько MVs в интерполированном поле MV; и d. верхний и левый соседние векторы движения.MV candidates established at the CU level include: a. the initial AMVP candidate selected if the AMVP mode is used for the current CU; b. all merger candidates; c. multiple MVs in an interpolated MV field; and d. top and left adjacent motion vectors.
Следует отметить, что упомянутое выше интерполированное поле MV генерируется до кодирования всего изображения на основании одностороннего ME. Затем поле движения может использоваться позже как кандидат MV на уровне CU или подуровне CU. Во-первых, поле движения каждого опорного изображения в двух опорных списках пересекается на уровне 4 × 4 блока. Для каждого блока 4 × 4, если движение, связанное с блоком, проходит через 4 × 4 блока в текущем изображении, и блок не был назначен какой-либо интерполированное движение, движение опорного блока масштабируется к текущему изображению, основываясь на временных расстояниях TD 0 и TD 1 (аналогично масштабированию MV в TMVP в HEVC), и масштабированное движение назначается блоку в текущем кадре. Если масштабированный MV не назначен блоку 4 × 4, движение блока в интерполированном поле движения помечается как недоступное.It should be noted that the interpolated MV field mentioned above is generated before encoding the entire picture based on the one-way ME. The motion field may then be used later as an MV candidate at the CU level or sub-CU level. First, the motion field of each reference picture in the two reference lists intersects at the 4×4 block level. For each 4×4 block, if the motion associated with the block passes through 4×4 blocks in the current image and the block has not been assigned any interpolated motion, the motion of the reference block is scaled to the current image based on the
Когда используется двустороннее сопоставление, каждый действительный MV кандидат слияния используется в качестве входных данных для генерирования пары MV с предположением двустороннего сопоставления. Например, одним действительным MV кандидатом слияния является (MVa, refa) в опорном списке A. Затем опорное изображение refb его парного двустороннего MV находится в другом опорном списке B. Таким образом, refa и refb являются временно расположенными по разные стороны текущего изображения. Если такой refb недоступен в списке ссылок B, refb определяется как опорный, отличным от refa, и временное расстояние между refb и текущим изображением является минимальным в списке B. После определения refb MVb получается путем масштабирования MVa на основании временных расстояний между текущим изображением и refa и между текущим изображением и refb.When two-way matching is used, each valid merge candidate MV is used as input to generate a pair of MVs with a two-way matching assumption. For example, one valid merge candidate MV is (MVa, refa) in reference list A. Then the reference image refb of its paired two-sided MV is in another reference list B. Thus, refa and refb are temporarily located on opposite sides of the current image. If no such refb is available in link list B, refb is defined as a reference other than refa, and the temporal distance between refb and current image is the minimum in list B. Once refb is determined, MVb is obtained by scaling MVa based on temporal distances between current image and refa and between current image and refb.
Четыре MVs из интерполированного поля MV также добавляются в список кандидатов на уровне CU. Более конкретно, добавляются интерполированные MVs на позициях (0, 0), (W / 2, 0), (0, H / 2) и (W / 2, H / 2) текущего CU.The four MVs from the interpolated MV field are also added to the candidate list at the CU level. More specifically, interpolated MVs are added at positions (0, 0), (W/2, 0), (0, H/2) and (W/2, H/2) of the current CU.
Когда FRUC применяется к режиму AMVP, исходный кандидат AMVP также добавляется к набору кандидатов MV уровня CU.When FRUC is applied to the AMVP mode, the original AMVP candidate is also added to the CU layer MV candidate set.
На уровне CU в список кандидатов добавляется до 15 MV AMVP CU и до 13 MV объединенных CU.At the CU level, up to 15 AMVP CU MVs and up to 13 merged CU MVs are added to the candidate list.
Кандидаты MV, установленные на уровне суб-CU, включают в себя: a. MV, определенный из поиска на уровне CU; b. верхний, левый, верхний левый и верхний правый соседние MVs; c. масштабированная версия совмещенного MV из опорного изображения; d. до четырех кандидатов ATMVP; и е. до четырех кандидатов STMVP.MV candidates established at the sub-CU level include: a. MV determined from CU level search; b. top, left, top left, and top right neighbor MVs; c. a scaled version of the combined MV from the reference image; d. up to four ATMVP candidates; and e. up to four STMVP candidates.
Масштабированный MV из опорного изображения получается следующим образом: все опорные изображения в обоих списках перемещаются, и МV на совмещенной позиции суб-CU в опорном изображении масштабируется до опорного исходного МV CU уровня.The scaled MV from the reference picture is obtained as follows: all reference pictures in both lists are moved, and the MV at the aligned sub-CU position in the reference picture is scaled to the reference original MV of the CU level.
Кандидаты ATMVP и STMVP ограничены четырьмя первыми.ATMVP and STMVP candidates are limited to the first four.
На подуровне CU в список кандидатов добавляется до 17 MVs.At the CU sublevel, up to 17 MVs are added to the list of candidates.
Уточнение вектора движенияRefinement of the motion vector
Вектор движения может быть уточнен с использованием различных способов, комбинируемых с разными режимами внешнего предсказания.The motion vector can be refined using various methods combined with different inter prediction modes.
Уточнение MV в FRUCRefinement of MV in FRUC
Уточнение MV представляет собой поиск MV на основании шаблона с критерием стоимости двустороннего сопоставления или стоимости сопоставления с шаблоном. В текущей разработке поддерживаются два шаблона поиска: неограниченный ромбовидный поиск с центральным смещением (unrestricted center-biased diamond search, UCBDS) и адаптивный перекрестный поиск, используемый для уточнения MV на уровне CU и суб-CU соответственно. Для уточнения MV как на уровне CU, так и на уровне подуровня CU, MV ищется непосредственно с точностью MV четверти выборки яркости, после чего выполняется уточнение MV одной восьмой выборки яркости. Диапазон поиска уточнения MV для CU и этапа суб-CU устанавливается равным 8 выборкам яркости.MV refinement is a search for MV based on a template with a two-way matching cost or template matching cost criterion. Two search patterns are supported in current development: unrestricted center-biased diamond search (UCBDS) and adaptive cross search used to refine MVs at the CU and sub-CU levels, respectively. For MV refinement at both the CU level and the CU sublayer level, the MV is searched directly with the MV accuracy of a quarter luminance sample, after which the MV refinement of one eighth luma sample is performed. The MV refinement search range for the CU and the sub-CU stage is set to 8 luma samples.
Уточнение вектора движения на стороне декодераMotion vector refinement on the decoder side
В операции двойного предсказания для предсказания одного блока области два блока предсказания, сформированные с использованием MV списка-0 и MV списка-1, соответственно, объединяются для формирования единого сигнала предсказания. В способе уточнения вектора движения на стороне декодера (decoder-side motion vector refinement, DMVR) два вектора движения двунаправленного предсказания дополнительно уточняются с использованием процесса двустороннего сопоставления шаблонов. Двустороннее соответствие шаблона применяются в декодере, чтобы выполнить поиск искажений между двусторонний шаблоном и восстановленной выборкой в опорном изображении, и для получения уточненного MV без отправки дополнительной информации движения.In the dual prediction operation for predicting one area block, two prediction blocks generated using List-0 MV and List-1 MV, respectively, are combined to generate a single prediction signal. In a decoder-side motion vector refinement (DMVR) method, two bidirectional prediction motion vectors are further refined using a two-way pattern matching process. Two-sided pattern matching is applied in the decoder to search for distortions between the two-sided pattern and the reconstructed sample in the reference picture, and to obtain an improved MV without sending additional motion information.
В DMVR генерируется двунаправленный шаблон как взвешенная комбинация (а именно, среднее значение) двух блоков предсказания из начального списка-0 MV 0 и списка-1 MV 1, соответственно. Операция согласования шаблона включает в себя вычисление величины стоимости между сгенерированным шаблоном и выборкой области (вокруг начального блока предсказания) в опорном изображении. Для каждого из двух опорных изображений MV, который дает минимальную стоимость шаблона, рассматривается как обновленный MV для списка, чтобы заменить исходный MV. В текущей версии для каждого списка ищется девять кандидатов MVs. Девять кандидатов MVs включают в себя исходный MV и восемь окружающих MVs с одним смещением выборки яркости относительно исходного MV либо в горизонтальном направлении, либо в вертикальном направлении, либо в горизонтальном и вертикальном направлениях. Наконец, два новых MVs, то есть, MV 0' и MV 1' используются для генерирования окончательного результата двунаправленного предсказания. В качестве меры стоимости используется сумма абсолютных разностей (sum of absolute differences, SAD).In DMVR, a bi-directional pattern is generated as a weighted combination (namely, the average) of two prediction blocks from the
DMVR применяется для режима слияния двунаправленного предсказания с одним MV из опорного изображения в прошлом, и другой MV из опорного изображения в будущем, без отправки дополнительных элементов синтаксиса.DMVR is applied for bidirectional prediction fusion mode with one MV from a reference picture in the past and another MV from a reference picture in the future, without sending additional syntax elements.
Точность и хранение данных движенияMovement Accuracy and Storage
Уменьшение объема хранения данных движенияReducing Motion Data Storage
Использование ТМVP в AMVP, а также в режиме слияния требует хранения данных движения (в том числе вектора движения, опорного индекса и режим кодирования) в совмещенном опорном изображении. Учитывая степень детализации представления движения, размер памяти, необходимый для хранения данных движения, является значительным. HEVC использует уменьшение объема данных движения для хранения (motion data storage reduction, MDSR) для уменьшения размеров буфера данных движения и ассоциированную с ним пропускной способность доступа к памяти по данным движения подвыборки в опорном кадре. Хотя информация хранится в виде блоков 4 × 4 в H.264 / AVC, в HEVC используется блок 16 × 16. В случае подвыборки сетки 4 × 4 сохраняется информация левого верхнего блока 4 × 4. Из-за этой подвыборки MDSR влияет на качество временного предсказания.The use of TMVP in AMVP as well as in fusion mode requires the storage of motion data (including motion vector, reference index, and coding mode) in the merged reference picture. Considering the granularity of motion representation, the amount of memory required to store motion data is significant. HEVC uses motion data storage reduction (MDSR) to reduce the size of the motion data buffer and its associated memory access bandwidth over subsample motion data in a reference frame. Although information is stored as 4×4 blocks in H.264/AVC, HEVC uses a 16×16 block. In the case of 4×4 grid subsampling, 4×4 upper left block information is stored. Due to this subsampling, MDSR affects the quality of the temporal predictions.
Кроме того, существует тесная корреляция между позицией MV, используемого в совмещенном изображении, и позицией MV, сохраненного с использованием MDSR. В процессе стандартизации HEVC выясняется, что сохранение данных движения верхнего левого блока внутри области 16 × 16 вместе с нижним правым и центральным кандидатами TMVP обеспечивает лучший компромисс между эффективностью кодирования и сокращением полосы пропускания памяти.In addition, there is a close correlation between the position of the MV used in the combined image and the position of the MV stored using MDSR. During the HEVC standardization process, it appears that keeping the top left block motion data inside a 16×16 region along with the bottom right and center TMVP candidates provides the best trade-off between coding efficiency and memory bandwidth reduction.
Более высокая точность сохранения вектора движенияHigher motion vector accuracy
В HEVC точность вектора движения составляет одну четверть пикселя (одна четвертая выборка яркости и одна восьмая выборка цветности для видео 4: 2: 0). В текущих разработках точность внутреннего хранения векторов движения и кандидатов слияния увеличивается до 1/16 пикселя. Более высокая точность вектора движения (1/16 пикселя) используется во внешнем предсказании компенсации движения для CU, кодированного на основании режима пропуска/слияния. Для CU, закодированного в нормальном режиме AMVP, используется движение целочисленного пикселя или движение четверти пикселя.In HEVC, motion vector accuracy is one quarter of a pixel (one fourth luma sample and one eighth chroma sample for 4:2:0 video). In current developments, the accuracy of internal storage of motion vectors and fusion candidates is increased to 1/16th of a pixel. Higher motion vector precision (1/16 pixel) is used in motion compensation inter prediction for CU coded based on the skip/merge mode. For a CU encoded in normal AMVP mode, integer pixel motion or quarter pixel motion is used.
Адаптивное разрешение разности векторов движенияAdaptive Motion Vector Difference Resolution
В HEVC разность векторов движения (motion vector difference, MVD) сообщается в единицах четверти выборки яркости, когда use_integer_mv_flag равно 0 в заголовке сегмента. В текущей версии вводится локально адаптивное разрешение вектора движения (locally adaptive motion vector resolution, LAMVR). MVD может быть закодирована в единицах четвертой выборки яркости, целочисленной выборки яркости или четырех выборок яркости. Разрешение MVD контролируется на уровне блока кодирования (coding unit, CU) и флаг разрешения MVD условно сигнализируется для каждого CU, который имеет, по меньшей мере, один ненулевой компонент MVD.In HEVC, the motion vector difference (MVD) is reported in units of a luma sample quarter when use_integer_mv_flag is 0 in the segment header. The current version introduces locally adaptive motion vector resolution (LAMVR). The MVD may be encoded in units of a fourth luma sample, an integer luminance sample, or four luma samples. MVD permission is controlled at the coding unit (CU) level, and an MVD permission flag is conditionally signaled for each CU that has at least one non-zero MVD component.
Для CU, который имеет, по меньшей мере, один ненулевой компонент MVD, первый флаг сигнализируется для указания, используется ли точность MV четверти выборки яркости для CU. Когда первый флаг (который равен 1) указывает, что точность MV четверти выборки яркости не используется, другой флаг сигнализируется для указания, используется ли точность MV целочисленной выборки яркости или точность MV четырех выборок яркости.For a CU that has at least one non-zero MVD component, a first flag is signaled to indicate whether the quarter luma sample precision MV for the CU is used. When the first flag (which is 1) indicates that the quarter luminance sample precision MV is not used, another flag is signaled to indicate whether the integer luminance sample precision MV or the four luminance sample precision MV is used.
Когда первый флаг разрешения MVD CU равен нулю или не закодирован для CU (это означает, что все MVD для CU равны нулю), для CU используется четверть разрешения MV выборки яркости. Когда используется точность MV целочисленной выборки яркости или точность MV четырех выборок яркости для CU, MVP в списке кандидатов AMVP для CU округляется до соответствующей точности.When the first CU MVD resolution flag is zero or not encoded for the CU (meaning that all MVDs for the CU are zero), a quarter of the luma sample resolution MV is used for the CU. When integer luma sample precision MV or CU four luminance sample precision MV is used, the MVP in the AMVP candidate list for the CU is rounded to the appropriate precision.
В кодере используется проверка RD на уровне CU для определения того, какое разрешение MVD должно использоваться для CU. То есть, проверка RD на уровне CU выполняется трижды для каждого разрешения MVD.The encoder uses a CU-level RD check to determine which MVD resolution should be used for the CU. That is, the RD check at the CU level is performed three times for each MVD permission.
Модуль интерполяции дробной выборкиFractional interpolation module
Когда вектор движения указывает на позицию дробной выборки, требуется интерполяция с компенсацией движения. Для интерполяционной фильтрации яркости используется 8-отводный разделяемый интерполяционный фильтр на основании DCT для выборки с точностью 2/4, и используется интерполяционный фильтр на основании 7-отводов с разделением на основании DCT для выборки с точностью 1/4, как показано в таблице 1.2.When the motion vector points to a fractional sample position, motion-compensated interpolation is required. For luminance interpolation filtering, an 8-tap DCT-based separable interpolation filter is used for 2/4 sampling, and a 7-tap DCT-based split interpolation filter is used for 1/4 sampling, as shown in Table 1.2.
Таблица 1.2Table 1.2
Аналогичным образом, интерполяционный фильтр на основании DCT с 4 отводами используется для фильтра интерполяции цветности, как показано в таблице 1.3.Similarly, a 4-tap DCT-based interpolation filter is used for the chrominance interpolation filter, as shown in Table 1.3.
Таблица 1.3.Table 1.3.
Для вертикальной интерполяции для 4: 2: 2 и горизонтальной и вертикальной интерполяции для каналов цветности 4: 4: 4 нечетные позиции в таблице 1.3 не используются, что приводит к 1/4-й интерполяции цветности.For vertical interpolation for 4:2:2 and horizontal and vertical interpolation for 4:4:4 chroma channels, the odd positions in Table 1.3 are not used, resulting in 1/4th chroma interpolation.
Для двунаправленного предсказания битовая глубина выходного сигнала интерполяционного фильтра поддерживается с точностью до 14 битов, независимо от исходной битовой глубины, перед усреднением двух сигналов предсказания. Фактический процесс усреднения выполняется неявно с процессом уменьшения битовой глубины следующим образом:For bidirectional prediction, the bit depth of the output of the interpolation filter is maintained to within 14 bits, regardless of the original bit depth, before averaging the two prediction signals. The actual averaging process is done implicitly with the bit depth reduction process as follows:
(1.9) (1.9)
(1.10) (1.10)
(1.11) (1.11)
Чтобы снизить сложность, для двустороннего сопоставления и сопоставления с шаблоном используется билинейная интерполяция вместо обычной 8-отводной интерполяции HEVC.To reduce complexity, bilinear interpolation is used for bi-directional and pattern matching instead of the usual 8-tap HEVC interpolation.
Расчет стоимости сопоставления на разных этапах немного отличается. Когда кандидат выбирается из набора кандидатов на уровне CU, стоимость сопоставления представляет собой SAD двустороннего сопоставления или сопоставления с шаблоном. После определения начального MV стоимость С сопоставления двустороннего сопоставления при поиске подуровня CU вычисляется следующим образом:The calculation of the cost of matching at different stages is slightly different. When a candidate is selected from a set of candidates at the CU level, the matching cost is the SAD of the two-way or pattern matching. Once the initial MV is determined, the two-way matching matching cost C in the CU sublayer search is calculated as follows:
(1.12) (1.12)
w представляет собой весовой коэффициент, который эмпирически установлен на 4, и и указывают текущее MV и начальное MV, соответственно. SAD по-прежнему используется в качестве стоимости сопоставления шаблонов при поиске на уровне суб-CU.w is a weighting factor that is empirically set to 4, and and indicate the current MV and the initial MV, respectively. SAD is still used as the cost of pattern matching in sub-CU searches.
В режиме FRUC MV выводится только с использованием выборки яркости. Полученный вектор движения должен использоваться как для яркости, так и для цветности для внешнего предсказания MC. После определения MV выполняется окончательная MC с использованием 8-отводного интерполяционного фильтра для яркости и 4-отводного интерполяционного фильтра для цветности.In FRUC mode, MV is output only using luminance sampling. The resulting motion vector should be used for both luminance and chrominance for MC inter prediction. After MV is determined, the final MC is performed using an 8-tap interpolation filter for luma and a 4-tap interpolation filter for chrominance.
Модуль компенсации движенияMotion Compensation Module
Компенсация движения перекрывающегося блокаOverlapping Block Motion Compensation
Компенсация движения перекрывающегося блока (Overlapped Block Motion Compensation, OBMC) выполняется для всех границ блока компенсации движения (motion compensation, MC), за исключением правой и нижней границ CU в текущей версии. Кроме того, компенсация движения перекрывающихся блоков применяется как для компонентов яркости, так и для компонентов цветности. Блок MC соответствует блоку кодирования. Когда CU кодируется на основании режима суб-CU (включающий в себя режимы слияния суб-CU, аффинного и FRUC), каждый субблок CU является блоком MC. Чтобы обрабатывать границу CU единообразным образом, OBMC выполняется на уровне субблока для всех границ блока MC, где размер субблока устанавливается равным 4 × 4.Overlapped Block Motion Compensation (OBMC) is performed for all motion compensation (MC) block boundaries except for the right and bottom CU boundaries in the current version. In addition, overlapping block motion compensation is applied to both luminance and chrominance components. The MC block corresponds to the coding block. When a CU is encoded based on a sub-CU mode (including sub-CU merge, affine, and FRUC modes), each sub-CU is an MC. In order to handle the CU boundary in a uniform manner, OBMC is performed at the sub-unit level for all MC-unit boundaries, where the sub-unit size is set to 4×4.
Когда к текущему субблоку применяется OBMC, в дополнение к текущему вектору движения, если векторы движения четырех ассоциированных соседних подблоков доступны и не идентичны текущему вектору движения, векторы движения четырех ассоциированных соседних подблоков также используются для получения блока предсказания для текущего субблока. Множество этих блоков предсказания на основании множества векторов движения объединяются для генерирования окончательного сигнала предсказания текущего субблока.When OBMC is applied to the current subblock, in addition to the current motion vector, if the motion vectors of the four associated neighboring subblocks are available and are not identical to the current motion vector, the motion vectors of the four associated neighboring subblocks are also used to obtain a prediction block for the current subblock. The plurality of these prediction blocks based on the plurality of motion vectors are combined to generate the final prediction signal of the current sub-block.
Блок предсказания, основанный на векторе движения соседнего субблока, обозначается как PN, где N представляет индекс верхнего, нижнего, левого или правого соседнего субблока, и блок предсказания, основанный на векторе движения текущего субблока, обозначается как РС. Когда PN основан на информации движения соседнего субблока, которая включает в себя ту же информацию движения, что и текущий субблок, OBMC не выполняется из PN. В противном случае каждая выборка PN добавляется к одной и той же выборке в РС. То есть к РС добавляются четыре строки/столбца PN. Весовые коэффициенты {1/4, 1/8, 1/16, 1/32} используются для PN, и весовые коэффициенты {3/4, 7/8, 15/16, 31/32} используются для РС. Исключением является небольшой блок MC (то есть, когда высота или ширина блока кодирования равна 4 или CU кодируется на основании режима суб-CU), и для такого блока в РС добавлены только две строки/столбца PN. В этом случае весовые коэффициенты {1/4, 1/8} используются для PN и весовые коэффициенты {3/4, 7/8} используются для РС. Для PN, сгенерированного на основании вектора движения вертикального (горизонтального) соседнего субблока, выборки в той же строке (столбце) PN добавляются в PC с тем же весовым коэффициентом.A prediction block based on the motion vector of an adjacent sub-block is referred to as PN, where N represents an index of the top, bottom, left, or right neighboring sub-block, and a prediction block based on the motion vector of the current sub-block is referred to as PC. When the PN is based on the motion information of a neighboring subblock that includes the same motion information as the current subblock, OBMC is not executed from the PN. Otherwise, each PN sample is added to the same sample in the PC. That is, four rows/columns PN are added to the PC. Weights {1/4, 1/8, 1/16, 1/32} are used for PN and weights {3/4, 7/8, 15/16, 31/32} are used for PC. An exception is a small MC block (ie, when the height or width of the coding block is 4 or the CU is encoded based on the sub-CU mode), and only two PN rows/columns are added to the PC for such a block. In this case, weights {1/4, 1/8} are used for PN and weights {3/4, 7/8} are used for PC. For a PN generated based on the motion vector of a vertical (horizontal) neighboring subblock, samples in the same row (column) of the PN are added to the PC with the same weight.
В текущих версиях для CU с размером, меньшим или равным 256 выборок яркости, сигнализируется флаг уровня CU, чтобы указать, применяется ли OBMC для текущего CU. Для CU с размером более 256 выборок яркости или CU, не закодированного на основании режима AMVP, OBMC применяется по умолчанию. В кодере, когда OBMC применяется для CU, влияние OBMC учитывается на этапе оценки движения. Сигнал предсказания, сформированный посредством OBMC с использованием информации движения верхнего соседнего блока и левого соседнего блока, используется для компенсации верхней и левой границ исходного сигнала текущего CU, и затем применяется обработка оценки нормального движения.In current versions, for CUs with a size less than or equal to 256 luma samples, a CU level flag is signaled to indicate whether OBMC is applied to the current CU. For a CU larger than 256 luminance samples or a CU not encoded based on the AMVP mode, OBMC is applied by default. In the encoder, when OBMC is applied to a CU, the effect of OBMC is taken into account in the motion estimation step. The prediction signal generated by OBMC using the motion information of the upper neighbor block and the left neighbor block is used to compensate the upper and left boundaries of the original signal of the current CU, and then normal motion estimation processing is applied.
Инструменты оптимизацииOptimization tools
Компенсация локальной освещенностиLocal Light Compensation
Компенсация локальной освещенности (Local Illumination Compensation, LIC) основана на линейной модели для изменений освещенности с использованием коэффициента а масштабирования и смещения b. Компенсация локальной освещенности включается или выключается адаптивно для каждого блока кодирования с внешним предсказанием (coding unit, CU).Local Illumination Compensation (LIC) is based on a linear model for illumination changes using a scaling factor a and an offset b. Local illumination compensation is turned on or off adaptively for each coding unit (CU).
Когда LIC применяется для CU, используется способ наименьших квадратов ошибок для получения параметров a и b с использованием соседней выборки текущего CU и соответствующей опорной выборки. В качестве опорного изображения используются суб-выборки (2:1 суб-выборки) соседней выборка CU и соответствующая выборка (идентифицируемая информацией движения текущего CU или суб-CU). Параметры LIC выводятся и применяются для каждого направления предсказания отдельно.When LIC is applied to a CU, a least squares error method is used to derive parameters a and b using the current CU's neighbor sample and the corresponding reference sample. The sub-samples (2:1 sub-samples) of the adjacent CU sample and the corresponding sample (identified by the motion information of the current CU or sub-CU) are used as the reference picture. The LIC parameters are derived and applied for each prediction direction separately.
Когда CU кодируется на основании режима слияния, флаг LIC копируется из соседнего блока аналогично копированию информации движения в режиме слияния. В противном случае для CU сигнализируется флаг LIC для указания, применяется ли LIC или нет.When a CU is encoded based on a merge mode, the LIC flag is copied from an adjacent block in a manner similar to copying motion information in a merge mode. Otherwise, the LIC flag is signaled to the CU to indicate whether LIC is applied or not.
Когда LIC используется для изображения, необходима дополнительная проверка RD на уровне CU, чтобы определить, применяется ли LIC для CU. Когда LIC используется для CU, сумма абсолютной разницы, удаленная из среднего (mean-removed sum of absolute difference, MR-SAD), и удаленная средняя сумма абсолютной разности, преобразованной по Адамару (mean-removed sum of absolute Hadamard-transformed difference, MR-SATD) используются вместо SAD и SATD для поиска движения целочисленного пикселя и поиска движения дробного пикселя, соответственно.When LIC is used for an image, an additional RD check is needed at the CU level to determine if LIC is applied to the CU. When LIC is used for CU, the mean-removed sum of absolute difference (MR-SAD) and the mean-removed sum of absolute Hadamard-transformed difference (MR -SATD) are used instead of SAD and SATD for integer pixel motion search and fractional pixel motion search, respectively.
Двунаправленный оптический потокBidirectional optical flow
Двунаправленный оптический поток (Bi-directional Optical flow, BIO) представляет собой дискретное уточнение движения, выполняемое поверх поблочной компенсации движения для двунаправленного предсказания. Дискретное уточнение движения не использует сигнализацию.Bi-directional Optical flow (BIO) is a discrete motion refinement performed on top of block motion compensation for bidirectional prediction. Discrete motion refinement does not use signaling.
Пусть является значением яркости из опорной к (где к = 0, 1) после блока компенсации движения, и и представляют собой горизонтальную составляющую и вертикальную составляющую градиента, соответственно. Предполагая, что оптический поток действителен, поле вектора движения задается в соответствии с уравнением (1.13):Let be is the brightness value from the reference k (where k = 0, 1) after the motion compensation block, and and are the horizontal component and the vertical component gradient, respectively. Assuming the optical flow is valid, the field motion vector is given in accordance with equation (1.13):
(1.13) (1.13)
Комбинирование этого уравнения оптического потока с интерполяцией Эрмита для траектории движения каждой выборки приводит к уникальному многочлену третьего порядка, который соответствует как значению функции, так и производным и на концах. Значение этого полинома при t = 0 является значением предсказания BIO:Combining this optical flow equation with Hermite interpolation for the motion path of each sample results in a unique third-order polynomial that corresponds to both the value functions and derivatives and at the ends. The value of this polynomial at t = 0 is the value of the BIO prediction:
(1.14) (1.14)
В данном описании и обозначают расстояния до опорного кадра. Расстояния и рассчитываются на основании POCs для Ref0 и Ref1: = POC (текущий) - POC (Ref0), = POC (Ref1) - POC (текущий). Если оба предсказания исходят из одного и того же временного направления (либо из прошлого, либо из будущего), знаки разные (то есть, ). В этом случае BIO применяется только в том случае, если предсказания не относятся к одному и тому же моменту времени (то есть, ), обе упомянутые области имеют ненулевые векторы () движения и векторы движения блока пропорциональны временным расстояниям In this description and denote the distances to the reference frame. Distances and are calculated based on POCs for Ref0 and Ref1: = POC(current) - POC(Ref0), =POC(Ref1) - POC(current). If both predictions come from the same time direction (either past or future), the signs are different (i.e., ). In this case, BIO only applies if the predictions do not refer to the same point in time (i.e., ), both mentioned regions have nonzero vectors ( ) motions and motion vectors of the block are proportional to the time distances
().( ).
Поле вектора движения определяется путем минимизации разности Δ между значениями в точках А и В (пересечение траектории движения и плоскостей опорных кадров). Модель использует только первый линейный член локального разложения Тейлора для ∆:Field the motion vector is determined by minimizing the difference Δ between the values at points A and B (the intersection of the motion trajectory and reference frame planes). The model uses only the first linear term of the local Taylor expansion for ∆:
(1.15) (1.15)
Все значения в уравнении (1.15) зависят от местоположения выборки, которое до сих пор не указывалось в обозначениях. Предполагая, что движение согласовано в локальной окружающей области, ∆ минимизируется внутри (2M + 1) х (2M + 1) квадратного окна с центром в текущей предсказанной точке , где M равно 2:All values in equation (1.15) depend on the location sample, which has not yet been indicated in the notation. Assuming motion is consistent in the local surrounding area, ∆ is minimized within the (2M + 1) x (2M + 1) square window centered on the current predicted point , where M is equal to 2:
(1.16) (1.16)
Для этой задачи оптимизации текущая версия использует упрощенный подход, выполняющий минимизацию сначала в вертикальном направлении и затем в горизонтальном направлении. Получается следующее:For this optimization problem, the current version uses a simplified approach that performs minimization first in the vertical direction and then in the horizontal direction. It turns out the following:
(1.17) (1.17)
(1.18) (1.18)
гдеwhere
(1.19) (1.19)
Чтобы избежать деления на ноль или очень маленькое значение, в уравнениях (1.17) и (1.18) используются параметры r и m регуляризации.To avoid division by zero or a very small value, the regularization parameters r and m are used in equations (1.17) and (1.18).
(1.20) (1.20)
(1.21) (1.21)
Здесь d представляет битовую глубину выборки видео.Here d represents the bit depth of the video sample.
Чтобы доступ к памяти для BIO оставался таким же, как доступ к памяти для обычной компенсации движения с двунаправленным предсказанием, вычисляются все предсказания и значения градиента только для позиций внутри текущего блока. В уравнении (1.19) (2M + 1) х (2M + 1) квадратное окно Ω с центром в текущей точке предсказания на границе блока предсказания должно иметь доступ к позиции за пределами блока. В текущей версии значения вне блока устанавливаются равными ближайшему доступному значению внутри блока. Например, это можно реализовать как заполнение.To ensure that the memory access for BIO remains the same as the memory access for conventional bidirectional motion compensation, all predictions and values are computed. gradient only for positions inside the current block. In equation (1.19) (2M + 1) x (2M + 1) a square window Ω centered on the current prediction point on the boundary of the prediction block must access a position outside the block. In the current version of the value outside the block are set to the nearest available value inside the block. For example, this can be implemented as padding.
С BIO возможно, что поле движения уточняется для каждой выборки. Однако для уменьшения вычислительной сложности может использоваться блочная конструкция BIO. Уточнение движения вычисляется на основании блока 4 × 4. В блочном BIO значения sn в уравнении (1.19) всех выборок в блоке 4 × 4 агрегируются и затем агрегированные значения sn используются для получения смещения вектора движения BIO для блока 4 × 4. Следующая формула используется для получения BIO на основании блоков:With BIO it is possible that the motion field is refined for each sample. However, the BIO block design can be used to reduce computational complexity. The motion refinement is computed based on the 4×4 block. In the block BIO, the sn values in equation (1.19) of all samples in the 4×4 block are aggregated, and then the aggregated sn values are used to obtain the BIO motion vector offset for the 4×4 block. The following formula is used to getting BIO based on blocks:
(1,22) (1.22)
bk обозначает набор выборок, принадлежащих k-му блоку 4 × 4 блока предсказания. sn в уравнениях (1.17) и (1.18) заменяется на ((sn, bk) >> 4) для получения соответствующего смещения вектора движения.bk denotes the set of samples belonging to the k-
В некоторых случаях MV группа BIO может быть ненадежной из-за шума или неравномерного движения. Следовательно, в BIO величина MV группы ограничена пороговым значением thBIO. Пороговое значение определяется на основании того, все ли опорные изображения текущего изображения имеют одно направление. Если все опорные изображения текущего изображения поступают из одного направления, значение порогового значения устанавливается равным ; в противном случае, устанавливается значение . In some cases, the MV group BIO may be unreliable due to noise or uneven movement. Therefore, in BIO, the MV value of the group is limited by the threshold value thBIO. The threshold value is determined based on whether all reference pictures of the current picture are in the same direction. If all reference pictures of the current picture come from the same direction, the threshold value is set to ; otherwise, set to .
Градиент для BIO вычисляется одновременно с интерполяцией компенсации движения с использованием операции, соответствующей процессу компенсации движения HEVC (двумерный разделяемый FIR). Вход 2D разделяемого FIR является той же выборкой опорного кадра, что и процесс компенсации движения и дробные позиции (fracX, fracY) в соответствии с дробной частью вектора движения блока. В случае сигнала горизонтального градиента сначала выполняется вертикальная интерполяция с использованием BIOfilterS, соответствующего дробной позиции fracY со сдвигом масштабирования d-8, и затем применяется градиентный фильтр BIOfilterG в горизонтальном направлении, соответствующем дробной позиции fracX со сдвигом масштабирования на 18-d. В случае вертикального градиента сначала применяется фильтр градиента по вертикали с использованием BIOfilterG, соответствующего дробной позиции fracY со сдвигом масштабирования d - 8, и затем смещение сигнала выполняется с помощью BIOfilterS в горизонтальном направлении, соответствующем дробной позиции fracX со сдвигом уменьшения масштаба на 18-d. Длины интерполяционных фильтров для вычисления BIOfilterG градиента и смещения BIOfilterS сигнала короче (6 отводов) для сохранения надлежащей сложности. В таблице 1.4 показан фильтр, используемый для вычисления градиента в различных дробных позициях вектора движения блока в BIO. В таблице 1.5 показан фильтр интерполяции для генерирования сигнала предсказания в BIO.The gradient for BIO is calculated simultaneously with motion compensation interpolation using an operation corresponding to the HEVC (two-dimensional shared FIR) motion compensation process. The 2D input of the shared FIR is the same reference frame sample as the motion compensation process and the fractional positions (fracX, fracY) according to the fractional part of the block's motion vector. In the case of a horizontal gradient signal, a vertical interpolation is first performed using BIOfilterS corresponding to the fractional position of fracY with a scaling offset of d-8, and then applying a gradient filter BIOfilterG in the horizontal direction corresponding to the fractional position of fracX with a scaling offset of 18-d. In the case of a vertical gradient first a vertical gradient filter is applied using BIOfilterG corresponding to the fractional position of fracY with a scaling offset of d - 8, and then the signal is shifted using BIOfilterS in the horizontal direction corresponding to the fractional position of fracX with a downscaling offset of 18-d. The interpolation filter lengths for calculating the gradient BIOfilterG and the signal offset BIOfilterS are shorter (6 taps) to keep proper complexity. Table 1.4 shows the filter used to calculate the gradient at various fractional positions of the block's motion vector in the BIO. Table 1.5 shows the interpolation filter for generating the prediction signal in BIO.
Таблица 1.4Table 1.4
Таблица 1.5Table 1.5
В текущей версии BIO применяется ко всем блокам с двунаправленным предсказанием, когда выполняют два предсказания из разных опорных изображений. Когда LIC используется для CU, BIO отключен. OBMC применяется для блока после обычного процесса MC. Чтобы уменьшить вычислительную сложность, BIO не применяется в процессе OBMC. Это означает, что BIO применяется только в процессе MC для блока, когда используется MV блока, но не применяется в процессе MC, когда MV соседнего блока используется в процессе OBMC.In the current version, BIO is applied to all bidirectional prediction blocks when two predictions are made from different reference pictures. When LIC is used for CU, BIO is disabled. OBMC is applied to the block after the normal MC process. To reduce computational complexity, BIO is not applied in the OBMC process. This means that the BIO is only applied in the MC process for a block when the block MV is used, but not applied in the MC process when the neighboring block MV is used in the OBMC process.
Модуль предсказания взвешенной выборкиWeighted Sample Predictor
В качестве возможного инструмента в HEVC предоставляется инструмент взвешенного предсказания (weighted prediction, WP). Принцип WP заключается в замене сигнала P внешнего предсказания на сигнал P' линейного взвешенного предсказания (с весом w и смещением o):A weighted prediction (WP) tool is provided as a possible tool in HEVC. The principle of WP is to replace the inter prediction signal P with a linear weighted prediction signal P' (with weight w and bias o):
унифицированное предсказание: P'= w × P + o (1.23)unified prediction: P'= w × P + o (1.23)
двунаправленное предсказание: P'= (w0 × P0 + o0 + w1 × P1 + o1) / 2 (1.24)bidirectional prediction: P'= (w0 × P0 + o0 + w1 × P1 + o1) / 2 (1.24)
Применимый вес и применимое смещение выбираются кодером и передаются в битовом потоке. Суффиксы L0 и L1 определяют список 0 и список 1 списков опорных изображений, соответственно. Для фильтра интерполяции глубина в битах поддерживается с точностью до 14 бит перед усреднением сигналов предсказания.The applicable weight and applicable offset are selected by the encoder and transmitted in the bitstream. The suffixes L0 and L1 define
В случае двунаправленного предсказания с, по меньшей мере, одним опорным изображением, доступным в каждом из списков L0 и L1, следующая формула применяется к явной сигнализации параметра взвешенного предсказания, относящегося к каналу яркости. Соответствующая формула применяется к каналу цветности и к случаю унифицированного предсказания.In the case of bi-directional prediction with at least one reference picture available in each of the lists L0 and L1, the following formula is applied to the explicit signaling of the weighted prediction parameter related to the luminance channel. The corresponding formula is applied to the chrominance channel and to the case of unified prediction.
(1.25)(1.25)
гдеwhere
, ,
, , , ,
, ,
, ,
. .
Фильтр предсказания границы (Boundary prediction filters) является способом внутреннего кодирования, используемый для дополнительной настройки выборок предсказания в крайнем левом столбце и самой верхней строке. В HEVC после того, как блок внутреннего предсказания был сгенерирован для вертикального или горизонтального внутреннего режима, выборки предсказания в крайнем левом столбце и самой верхней строке дополнительно настраиваются соответственно. Этот способ может быть дополнительно расширен до нескольких диагональных внутренних режимов, и граничные выборки до четырех столбцов или строк дополнительно настраиваются с помощью 2-отводного фильтра (для внутренних режимов 2 и 34) или 3-отводного фильтра (для внутренних режимов 3 до 6 и 30-33).The Boundary prediction filters are an intra-coding technique used to further customize the prediction samples in the leftmost column and topmost row. In HEVC, after an intra prediction block has been generated for vertical or horizontal intra mode, the prediction samples in the leftmost column and topmost row are further adjusted accordingly. This method can be further extended to multiple diagonal internal modes, and border samples up to four columns or rows are further configured with a 2-tap filter (for
В стандарте HEVC и предшествующих стандартах опорные кадры классифицируются на две группы: прямой опорный кадр и обратный опорный кадр, и соответственно помещаются в два списка опорных кадров (список опорных изображений). Два списка опорных кадров обычно называют список 0 и список 1. Для текущего блока используется направление внешнего предсказания используется для указания направления предсказания в прямом предсказании, обратном предсказании или двунаправленном предсказании, и другой список опорного кадра, то есть, список 0, список 1 или и список 0, и список 1, выбираются на основании направления предсказания. Опорный кадр в выбранном списке выборки обозначается индексом опорного кадра. Вектор движения используются для указания позиции смещения опорного блока предсказания текущего блока в выбранной системе выборки, относительно текущего блока в текущем кадре. Затем, генерируется окончательный блок предсказания на основании направления предсказания с использованием блочного предсказания, полученные из опорного кадра в списке 0, списке 1 или обоих списков 0 и 1. Когда направление предсказания является унифицированным предсказанием, непосредственно используются блок предсказания, полученный из опорного кадра в списке 0 или 1. Когда направление предсказания является двунаправленным предсказанием, блоки предсказания, полученные из опорных кадров как в списке 0, так и в списке 1, синтезируются посредством взвешенного усреднения для получения окончательного блока предсказания.In the HEVC standard and prior standards, reference frames are classified into two groups: a forward reference frame and a reverse reference frame, and are respectively placed in two reference frame lists (reference picture list). The two reference frame lists are commonly referred to as
Для решения технической задачи в традиционной технологии, заключающейся в том, что выборки предсказания, полученные на основании режима внешнего предсказания, являются пространственно прерывистыми, что влияет на эффективность предсказания, и остаточная энергия предсказания является относительно высокой, варианты осуществления настоящего изобретения предоставляют способ внешнего предсказания для фильтрации выборка предсказания с использованием соседнего восстановленного выборки после того, как выборка предсказания сгенерирована, что повышает эффективность кодирования.In order to solve the technical problem in the conventional technology that the prediction samples obtained based on the inter prediction mode are spatially discontinuous, which affects the prediction performance, and the prediction residual energy is relatively high, embodiments of the present invention provide an inter prediction method for filtering the prediction sample using an adjacent reconstructed sample after the prediction sample is generated, which improves coding efficiency.
Фиг. 13 является блок-схемой алгоритма способа внешнего предсказания согласно варианту осуществления настоящего изобретения. Как показано на фиг. 13, способ включает в себя этапы с S1301 по S1307.Fig. 13 is a flowchart of an inter prediction method according to an embodiment of the present invention. As shown in FIG. 13, the method includes steps S1301 to S1307.
S1301: выполнитель синтаксический анализ битового потока для получения информации движения блока изображения, подлежащего обработке.S1301: Bitstream parsing executor to obtain motion information of the image block to be processed.
Обрабатываемый блок изображения может упоминаться как текущий блок или текущий CU.The image block being processed may be referred to as the current block or the current CU.
Можно понять, что этап S1301 может выполняться видеодекодером 200 на фиг. 1.It can be understood that step S1301 may be performed by
Например, в этом варианте осуществления настоящего изобретения технология компенсации движения на основании блоков может использоваться для поиска закодированных блоков для блока оптимального соответствия текущего блока кодирования, так что остаток между блоком предсказания и текущим блоком будет как можно меньше; и используется для вычисления смещения MV текущего блока.For example, in this embodiment of the present invention, a block-based motion compensation technique can be used to search for encoded blocks for the best match block of the current coding block, so that the residual between the prediction block and the current block is as small as possible; and is used to calculate the MV offset of the current block.
Например, блок изображения, подлежащего обработке, может быть любым блоком изображения и размер блока изображения, подлежащего обработке, может быть 2 x 2, 4 x 4, 8 x 8, 16 x 16, 32 x 32, 64 x 64 или 128 x 128. Это не ограничено в этом варианте осуществления настоящего изобретения.For example, the image block to be processed can be any image block, and the size of the image block to be processed can be 2 x 2, 4 x 4, 8 x 8, 16 x 16, 32 x 32, 64 x 64, or 128 x 128 This is not limited in this embodiment of the present invention.
Например, если подлежащий обработке блок изображения (текущий блок) кодируется на стороне кодера на основании режима слияния (merge), пространственный кандидат и временной кандидат текущего блока могут быть добавлены к список кандидатов с информацией движения слияния для текущего блока. Способ такой же, как способ в HEVC. Например, любая из технологий, описанных на фиг. 8-фиг. 12, может использоваться в качестве конкретного способа для получения списка кандидатов с информацией движения слияния.For example, if the image block to be processed (the current block) is encoded at the encoder side based on the merge mode, the spatial candidate and temporal candidate of the current block may be added to the candidate list with merge motion information for the current block. The method is the same as the method in HEVC. For example, any of the technologies described in FIG. 8-fig. 12 may be used as a specific method for obtaining a candidate list with merge motion information.
Например, если для текущего блока используется режим слияния, информация движения текущего блока определяется на основании индекса слияния, переносимого в битовом потоке. Если используется внешний режим MVP для текущего блока, информация движения текущего блока определяется на основании направления внешнего предсказания, индекса опорного кадра, индексного значения вектора предсказания движения и остаточной стоимости вектора движения, которые передаются в битовом потоке.For example, if the merge mode is used for the current block, the motion information of the current block is determined based on the merge index carried in the bitstream. If the inter-MVP mode for the current block is used, the motion information of the current block is determined based on the inter-prediction direction, the reference frame index, the motion prediction vector index value, and the residual motion vector cost, which are transmitted in the bitstream.
Этап S1301 может выполняться с использованием способа в HEVC или VTM, или может выполняться с использованием другого способа для составления списка кандидатов предсказания вектора движения. Это не ограничивается данным вариантом выполнения настоящего изобретения.Step S1301 may be performed using a method in HEVC or VTM, or may be performed using another method to list motion vector prediction candidates. This is not limited to this embodiment of the present invention.
S1302: (Возможно) определить обновить блок предсказания блока изображения, подлежащего обработке.S1302: Determine to update the prediction block of the image block to be processed (may be) determined.
Можно понять, что этап S1302 может выполняться видеодекодером 200 на фиг. 1.It can be understood that step S1302 may be performed by
Блок предсказания блока изображения, подлежащего обработке, является блоком предсказания текущего блока и может быть получен на основании одного или нескольких кодированных блоков.The prediction block of the image block to be processed is the prediction block of the current block, and may be obtained based on one or more coded blocks.
Например, нужно ли обновлять блок предсказания блока изображения, подлежащего обработке, может быть определено на основании индикатора определения обновления блока изображения, подлежащего обработке. Другими словами, следует ли выполнять пространственную фильтрацию блока изображения, подлежащего обработке, может быть определено на основании индикатора определения обновления блока изображения, подлежащего обработке.For example, whether it is necessary to update the prediction block of the image block to be processed may be determined based on the update determination indicator of the image block to be processed. In other words, whether to perform spatial filtering of the image block to be processed can be determined based on the update determination indicator of the image block to be processed.
В возможной реализации битовый поток может быть проанализирован для получения информации указания определения обновления блока изображения, подлежащего обработке, где используется информация указания определения обновления для указания, следует ли обновить блок предсказания блока изображения, подлежащего обработке; и дополнительно определяется, на основании информации указания определения обновления блока изображения, подлежащего обработке, что блок предсказания блока изображения, подлежащего обработке, должен быть обновлен.In an exemplary implementation, the bitstream may be parsed to obtain update definition indication information of the image block to be processed, where the update definition indication information is used to indicate whether to update the prediction block of the image block to be processed; and further determined, based on the update determination indication information of the image block to be processed, that the prediction block of the image block to be processed is to be updated.
В другой возможной реализации может быть получена заданная информация указания определения обновления блока изображения, подлежащего обработке, где предварительно установленная информация указания определения обновления используется для указания, следует ли обновлять блок предсказания блока изображения, подлежащего обработке; и дополнительно определяется на основании заданной информации указания определения обновления, что блок предсказания блока изображения, подлежащего обработке, должен быть обновлен.In another exemplary implementation, predetermined update determination indication information of the image block to be processed can be obtained, where the preset update determination indication information is used to indicate whether to update the prediction block of the image block to be processed; and further determined based on the given update determination indication information that the prediction block of the image block to be processed is to be updated.
Например, если индикатор определения обновления истинен, может быть определено, что блок предсказания блока изображения, подлежащего обработке, должен быть обновлен. Другими словами, определяется, что пространственная фильтрация должна выполняться над блоком предсказания блока изображения, подлежащего обработке. Если индикатор определения обновления является ложным, определяется, что блок предсказания блока изображения, подлежащего обработке, не нуждается в обновлении. Конкретная форма индикатора определения обновления не ограничивается в этом варианте осуществления настоящего изобретения. В данном случае то, что индикатор определения обновления является истинным или ложным, просто используется в качестве примера для описания.For example, if the update determination indicator is true, it may be determined that the prediction block of the image block to be processed is to be updated. In other words, it is determined that spatial filtering is to be performed on a prediction block of an image block to be processed. If the update determination indicator is false, it is determined that the prediction block of the image block to be processed does not need to be updated. The specific form of the update determination indicator is not limited in this embodiment of the present invention. Here, whether the update determination indicator is true or false is simply used as an example for description.
S1303: (Возможно) определить режим предсказания, соответствующий блоку изображения, подлежащего обработке.S1303: (Could) determine the prediction mode corresponding to the image block to be processed.
Можно понять, что этап S1303 может выполняться видеодекодером 200 на фиг. 1.It can be understood that step S1303 may be performed by
Например, режим предсказания, соответствующий блоку изображения, подлежащего обработке, может быть режимом слияния (merge) и/или усовершенствованным режимом внешнего предсказания вектора движения (inter-AMVP). Это не ограничивается данным вариантом выполнения настоящего изобретения. Можно понять, что режим предсказания, соответствующий блоку изображения, подлежащего обработке, может быть только режимом слияния, только inter-AMVP режимом или комбинацией режима слияния и inter-AMVP режима.For example, the prediction mode corresponding to the image block to be processed may be a merge mode and/or an advanced inter-motion vector prediction (inter-AMVP) mode. This is not limited to this embodiment of the present invention. It can be understood that the prediction mode corresponding to a block of an image to be processed may be a fusion only mode, an inter-AMVP only mode, or a combination of a fusion mode and an inter-AMVP mode.
Следует отметить, что усовершенствованный режим внешнего предсказания вектора движения (inter-AMVP) также может называться режимом внешнего предсказания вектора движения (inter-MVP).It should be noted that the advanced inter-motion vector prediction (inter-AMVP) mode may also be referred to as the inter-motion vector prediction (inter-MVP) mode.
Например, способ определения режима предсказания, соответствующего блоку изображения, подлежащего обработке, может быть следующим: анализ битового потока для получения режима предсказания, соответствующего блоку изображения, подлежащего обработке, и определение, что режим предсказания, соответствующий блоку изображения, подлежащего обработке, является режимом слияния и/или inter-AMVP режимом.For example, the method for determining the prediction mode corresponding to the image block to be processed may be as follows: parsing the bitstream to obtain the prediction mode corresponding to the image block to be processed, and determining that the prediction mode corresponding to the image block to be processed is a fusion mode. and/or inter-AMVP mode.
Можно понять, что в этом варианте осуществления настоящего изобретения способ пространственной фильтрации может выполняться для блока с внешним кодированием, который был закодирован на основании режима слияния и/или inter-AMVP режима. Другими словами, обработка фильтрации может выполняться на стороне декодера во время декодирования для блока, который был закодирован на основании режима слияния и/или inter-AMVP режима.It can be understood that in this embodiment of the present invention, the spatial filtering method can be performed on an inter-coded block that has been coded based on a merge mode and/or an inter-AMVP mode. In other words, filtering processing may be performed at the decoder side during decoding for a block that has been encoded based on the merge mode and/or the inter-AMVP mode.
S1304: выполнить компенсацию движения над блоком изображения, подлежащего обработке, на основании информации движения, для получения блока предсказания блока изображения, подлежащего обработке.S1304: perform motion compensation on the image block to be processed based on the motion information to obtain a prediction block of the image block to be processed.
Блок предсказания изображения, подлежащего обработке, включает в себя значение предсказания целевой выборки.The prediction block of the image to be processed includes the prediction value of the target sample.
Можно понять, что этап S1304 может выполняться видеодекодером 200 на фиг. 1.It can be understood that step S1304 may be performed by
Так, например, во время компенсации движения, текущее частичное изображение предсказывается и компенсируются на основании опорного изображения. Это может уменьшить избыточность информации в последовательности кадров.So, for example, during motion compensation, the current partial image is predicted and compensated based on the reference image. This can reduce the redundancy of information in a sequence of frames.
Например, когда выполняется компенсация движения на основании информации движения, блок предсказания блока изображения, подлежащего обработке, может быть получен из опорного кадра на основании направления опорного кадра, порядкового номера опорного кадра и вектора движения. Направление опорного кадра может быть прямым предсказанием, обратным предсказанием или двунаправленным предсказанием. Это не ограничивается данным вариантом выполнения настоящего изобретения.For example, when motion compensation is performed based on motion information, a prediction block of an image block to be processed can be obtained from a reference frame based on the direction of the reference frame, the sequence number of the reference frame, and the motion vector. The direction of the reference frame may be forward prediction, reverse prediction, or bidirectional prediction. This is not limited to this embodiment of the present invention.
Например, когда направление выборки является прямым предсказанием, опорный кадр, может быть выбран из набора переднего опорного изображения для кодирования текущего блока (CU) для получения опорного блока. Когда направление выборки является обратным предсказанием, опорное изображение может быть выбрано из набора обратного опорного изображения для текущего блока кодирования (CU) для получения опорного блока. Когда направление выборки является двунаправленным предсказанием, опорное изображение может быть выбрано из каждого из набора прямых опорных изображений и набора обратных опорных изображений для текущего блока кодирования (CU) для получения опорного блока.For example, when the fetch direction is direct prediction, a reference frame may be selected from the front reference picture set to encode the current block (CU) to obtain the reference block. When the fetch direction is inverse prediction, the reference picture may be selected from the inverse reference picture set for the current coding unit (CU) to obtain the reference block. When the sampling direction is bidirectional prediction, a reference picture may be selected from each of the forward reference picture set and the reverse reference picture set for the current coding unit (CU) to obtain the reference block.
Следует отметить, что на этапе S1304 способ для выполнения компенсации движения в блоке изображения, подлежащего обработке, на основании информации движения, может быть способом в HEVC или VTM, или может быть другим способом для получения блока предсказания блока изображения, подлежащего обработке. Это не ограничивается данным вариантом выполнения настоящего изобретения.It should be noted that in step S1304, the method for performing motion compensation on the image block to be processed based on the motion information may be a method in HEVC or VTM, or may be another method for obtaining a prediction block of the image block to be processed. This is not limited to this embodiment of the present invention.
S1306: выполнить вычисление взвешивания одного или нескольких восстановленных значений одной или нескольких опорных выборок и значения предсказания целевой выборки, для обновления значения предсказания целевой выборки.S1306: Perform a weighting calculation of one or more recovered values of one or more reference samples and a prediction value of the target sample to update the prediction value of the target sample.
Опорная выборка имеет заданную пространственную позицию относительно целевой выборки.The reference sample has a given spatial position relative to the target sample.
Можно понять, что этап S1306 может выполняться видеодекодером 200 на фиг. 1.It can be understood that step S1306 may be performed by
Так, например, целевая выборка представляет собой выборку в блоке предсказания блока изображения, подлежащего обработке, и значение предсказания целевой выборки может быть определенно на основании значения выборки в опорном блоке.For example, the target sample is a sample in the prediction block of the image block to be processed, and the prediction value of the target sample can be determined based on the sample value in the reference block.
Например, опорная выборка может быть восстановленной выборкой, которая пространственно смежна с текущим CU (блока изображения, подлежащего обработке). В частности, опорная выборка может быть восстановленной выборкой в блоке, отличном от текущего блока CU в изображении. Например, опорная выборка может быть восстановленной выборкой в блоке CU выше или слева от текущего CU. Это не ограничивается данным вариантом выполнения настоящего изобретения.For example, the reference sample may be a reconstructed sample that is spatially adjacent to the current CU (image block to be processed). In particular, the reference sample may be a reconstructed sample in a block other than the current CU in the picture. For example, the reference sample may be a reconstructed sample in a CU above or to the left of the current CU. This is not limited to this embodiment of the present invention.
Можно понять, что на этапе S1306 выполняется пространственная фильтрация на выборке предсказания целевой выборки с использованием восстановленной выборки, которая пространственно смежна с текущим CU. В частности, выполняется вычисление взвешивания для выборки предсказания целевой выборки в текущем блоке и значения выборки восстановленной выборки, которая пространственно смежна с текущим CU, для получения обновленной выборки предсказания целевой выборки.It can be understood that, in step S1306, spatial filtering is performed on the prediction sample of the target sample using the reconstructed sample that is spatially adjacent to the current CU. In particular, a weighting calculation is performed for a target sample prediction sample in the current block and a reconstructed sample sample value that is spatially adjacent to the current CU to obtain an updated target sample prediction sample.
В возможной реализации, одна или несколько опорных выборок могут включать в себя восстановленную выборку, которая имеет ту же горизонтальную координату, что и целевая выборка, и имеет заданную разность вертикальных координат с целевой выборкой, или восстановленную выборку, которая имеет те же вертикальные координаты что и целевая выборка и имеет предварительно заданное горизонтальное отличие от целевой выборки.In an exemplary implementation, one or more reference samples may include a reconstructed sample that has the same horizontal coordinate as the target sample and has a given vertical coordinate difference with the target sample, or a reconstructed sample that has the same vertical coordinates as the target sample. the target sample and has a predefined horizontal difference from the target sample.
Например, как показано на фиг. 14, верхний левый угол изображения используется как начало системы координат, направление оси X системы координат проходит вправо вдоль верхней стороны изображения, и направление оси Y системы координат продолжается вниз по левой стороне изображения. Если координаты целевой выборки в блоке изображения, подлежащего обработке (текущий CU), равны , и координаты верхней левой выборки блока изображения, подлежащего обработке, равны , то опорная выборка целевой выборки может быть восстановленной выборкой в блоке выше или слева от блока изображения, подлежащего обработке. Если опорная выборка является восстановленной выборкой в блоке над подлежащим обработке блоком изображения, поскольку опорная выборка представляет собой восстановленную выборку в блоке, отличном от блока изображения, подлежащего обработке, то вертикальная координата опорной выборки представляет собой значение, полученное путем вычитания заданного отношения положения N из вертикальной координаты верхней стороны блока изображения, подлежащего обработке, и горизонтальная координата опорной выборки такая же, как горизонтальная координата целевой выборки в блоке изображения, подлежащего обработке. Точнее, координаты опорной выборки равны . Если опорная выборка является восстановленной выборкой в блоке слева от подлежащего обработке блока изображения, поскольку опорная выборка является восстановленной выборкой в блоке, отличном от блока изображения, подлежащего обработке, горизонтальная координата опорной выборки является значением, полученным путем вычитания заданного отношения положения M из меньшей левой горизонтальной координаты блока изображения, подлежащего обработке, и вертикальная координата опорной выборки совпадает с вертикальной координатой целевой выборки в блоке изображения, подлежащего обработке. Точнее, координаты опорной выборки равны . Конкретные отношения пространственной позиции (конкретные значения M и N) между опорной выборкой и целевой выборкой не ограничиваются в этом варианте осуществления настоящего изобретения.For example, as shown in FIG. 14, the upper left corner of the image is used as the origin of the coordinate system, the X-axis direction of the coordinate system extends to the right along the top side of the image, and the Y-axis direction of the coordinate system extends down the left side of the image. If the coordinates of the target sample in the image block to be processed (the current CU) are , and the coordinates of the upper left sample of the image block to be processed are , then the reference sample of the target sample may be the reconstructed sample in the block above or to the left of the image block to be processed. If the reference sample is a reconstructed sample in a block above the image block to be processed, since the reference sample is a reconstructed sample in a block other than the image block to be processed, then the vertical coordinate of the reference sample is the value obtained by subtracting the given position ratio N from the vertical the coordinates of the top side of the image block to be processed, and the horizontal coordinate of the reference sample is the same as the horizontal coordinate of the target sample in the image block to be processed. More precisely, the coordinates of the reference sample are equal to . If the reference sample is a reconstructed sample in a block to the left of the image block to be processed, since the reference sample is a reconstructed sample in a block other than the image block to be processed, the horizontal coordinate of the reference sample is the value obtained by subtracting the specified position ratio M from the smaller left horizontal the coordinates of the image block to be processed and the vertical coordinate of the reference sample is the same as the vertical coordinate of the target sample in the image block to be processed. More precisely, the coordinates of the reference sample are equal to . Specific spatial position relationships (specific values of M and N) between the reference sample and the target sample are not limited in this embodiment of the present invention.
В возможной реализации значение предсказания целевой выборки может обновляться согласно следующей формуле:In an exemplary implementation, the target sample prediction value may be updated according to the following formula:
где координаты целевой выборки равны, координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляют собой значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки, и представляют восстановленные значения опорных выборок на позициях и координат, соответственно, w1, w2, w3, w4, w5 и w6 являются заданными константами и M1 и M2 являются заданными положительными целыми числами.where the target sample coordinates are , the coordinates of the upper left sample of the image block to be processed are , are the prediction value of the target sample before updating, represents the updated prediction value of the target sample, and represent the reconstructed values of the reference samples at the positions and coordinates, respectively, w1, w2, w3, w4, w5 and w6 are given constants and M1 and M2 are given positive integers.
Ниже описаны конкретные способы вычисления обновленного значения предсказания целевой выборки на основании различных случаев координат левой верхней выборки блока изображения, подлежащего обработке.Specific methods for calculating an updated target sample prediction value based on different coordinate cases are described below. upper left sample of the image block to be processed.
В первом случае, если xN больше 0, yN равно 0, и опорная выборка в позиции была закодирована и восстановлена, обновленное значение предсказания целевой выборки может быть получено согласно следующей формуле :In the first case, if xN is greater than 0, yN is 0, and the reference sample at position has been encoded and reconstructed, the updated target sample prediction value can be obtained according to the following formula:
Например, как показано на фиг. 15, что размер блока изображения, подлежащего обработке, составляет 16 x 16, используется в качестве примера для описания. Если блок изображения, подлежащего обработке, является CU 1, верхняя левая выборка блока изображения, подлежащего обработке (CU 1) равна , и координаты целевой выборки в блоке изображения, подлежащего обработке, равны . Поскольку горизонтальная координата xN левой верхней выборки текущего CU (CU 1) больше 0 и вертикальная координата yN верхней левой выборки текущей CU (CU 1) равна 0, можно определить, что текущий CU расположен в верхней части изображения. Когда выполняется пространственная фильтрация на целевой выборке в текущем CU, поскольку текущий CU расположен в верхней части изображения, и нет восстановленной выборки выше текущего CU, опорная выборка является восстановленной выборкой слева от текущего CU. Опорная выборка имеет ту же вертикальную координату, что и целевая выборка, и может обозначаться как , где M1 представляет собой предварительно заданную пространственную позицию между опорной выборкой и целевой выборкой. Здесь, что M1 равно 1, используется в качестве примера для описания. Когда M1 равно 1, опорная выборка целевой выборки может быть . Таким же образом любой опорной выборкой целевой выборки может быть .For example, as shown in FIG. 15 that the size of the image block to be processed is 16 x 16 is used as an example for description. If the image block to be processed is
Если опорная выборка на позиции была закодирована и восстановлена, вычисление взвешивания может быть выполнено для восстановленного значения опорной выборки и значения предсказания целевой выборки для получения обновленного значения предсказания целевой выборки.If the reference sample is in position has been encoded and recovered, a weighting calculation can be performed on the recovered value reference sample and values target sample predictions to get updated value target sample predictions.
Во втором случае, если xN равно 0, yN больше 0, и опорная выборка на позиции была закодирована и восстановлена, обновленное значение предсказания целевой выборки может быть получено согласно следующей формуле:In the second case, if xN is 0, yN is greater than 0, and the reference sample is at position has been encoded and reconstructed, the updated target sample prediction value can be obtained according to the following formula:
Например, как показано на фиг. 15, если блок изображения, подлежащий обработке, представляет собой CU 2, верхняя левая выборка блока изображения, подлежащего обработке (CU 2), равна , и координаты целевой выборки равны . Поскольку горизонтальная координата xN левой верхней выборки текущего CU (CU 2) равна 0 и вертикальная координата yN верхней левой выборки текущего CU (CU 2) больше 0, можно определить, что текущий CU расположен в левой части изображения. Когда выполняется пространственная фильтрация на целевой выборке в текущем CU, поскольку текущая CU расположена в левой части изображения, и восстановленная выборка отсутствует слева текущего CU, опорная выборка является восстановленной выборкой выше текущего CU. Опорная выборка имеет ту же горизонтальную координату, что и целевая выборка, и может быть обозначен как , где M2 представляет собой предварительно заданную пространственную позицию между опорной выборкой и целевой выборкой. Здесь в качестве примера для описания используется то, что M2 равно 1. Когда M2 равно 1, опорной выборки целевой выборки может быть . Таким же образом любая опорная выборка целевой выборки может быть .For example, as shown in FIG. 15, if the image block to be processed is
Если опорная выборка на позиции была закодирована и восстановлена, вычисление взвешивания может быть выполнено для восстановленного значения опорной выборки и значения предсказания целевой выборки, для получения обновленного значения предсказания целевой выборки.If the reference sample is in position has been encoded and recovered, a weighting calculation can be performed on the recovered value reference sample and values target sample predictions to get an updated value target sample predictions.
В третьем случае, если xN больше 0, yN больше 0 и опорные выборки на позициях и были закодированы и восстановлены, обновленное значение предсказания целевой выборки может быть получено согласно следующей формуле:In the third case, if xN is greater than 0, yN is greater than 0, and the reference samples at positions and have been encoded and reconstructed, the updated target sample prediction value can be obtained according to the following formula:
Например, как показано на фиг. 15, если блок изображения, подлежащий обработке, представляет собой CU 3, верхняя левая выборка блока изображения, подлежащего обработке (CU 3), равна , и координаты целевой выборки равны . Поскольку горизонтальная координата xN левой верхней выборки текущего CU (CU 3) больше 0 и вертикальная координата yN верхней левой выборки текущего CU (CU 3) больше 0, можно определить, что текущий CU не расположен на краю изображения. Когда выполняется пространственная фильтрация для целевой выборки в текущем CU, опорные выборки могут быть восстановленной выборкой над текущим CU и восстановленная выборка слева от текущего CU. Когда опорная выборка является восстановленной выборкой слева от текущего CU, восстановленная выборка имеет ту же вертикальную координату, что и целевая выборка, и может быть ; и, когда опорная выборка является восстановленной выборкой выше текущего CU, восстановленная выборка имеет ту же горизонтальную координату, что и целевая выборка, и может быть , где M1 и M2 каждый представляют собой заданную пространственную позицию отношения между каждой из опорных выборок и целевой выборкой. Здесь то, что и M1, и M2 равны 1, используется в качестве примера для описания. Когда и M1, и M2 равны 1, опорными выборками целевой выборки может быть и . Аналогично, любые опорные выборки целевой выборки могут быть и .For example, as shown in FIG. 15, if the image block to be processed is
Если опорные выборки на позициях и были закодированы и восстановлены, вычисление взвешивания может быть выполнено для восстановленных значений и опорных выборок и значения предсказания целевой выборки, для получения обновленного значения предсказания целевой выборки.If the reference samples at the positions and have been encoded and recovered, a weighting calculation can be performed on the recovered values and reference samples and values target sample predictions to get an updated value target sample predictions.
Следует отметить, что значения взвешенных коэффициентов w1, w2, w3, w4, w5 и w6, а также значения M1 и M2 не ограничиваются в этом варианте осуществления настоящего изобретения, и что как M1, так и M2 равны 1 используется просто в качестве примера.It should be noted that the values of the weighted coefficients w1, w2, w3, w4, w5 and w6, as well as the values of M1 and M2 are not limited in this embodiment of the present invention, and that both M1 and M2 are equal to 1 is used simply as an example.
Например, набор взвешенных коэффициентов (w1, w2), (w3, w4) или (w5, w6, w7) может быть комбинацией значений w1 + w2, w3 + w4 или w5 + w6 + w7. где w1 + w2, w3 + w4 или w5 + w6 + w7 равно 2 в степени целого числа. Таким образом, операция деления больше не выполняется. Например, может использоваться комбинация значений, такая как (6, 2), (5, 3), (4, 4), (6, 1, 1) или (5, 2, 1). Это не ограничено в данном варианте осуществления настоящего изобретения, и комбинация значений, перечисленная в данном документе, просто используется в качестве примера для описания.For example, a set of weighted coefficients (w1, w2), (w3, w4), or (w5, w6, w7) could be a combination of w1 + w2, w3 + w4, or w5 + w6 + w7. where w1 + w2, w3 + w4 or w5 + w6 + w7 is 2 to the power of an integer. Thus, the division operation is no longer performed. For example, a combination of values such as (6, 2), (5, 3), (4, 4), (6, 1, 1) or (5, 2, 1) may be used. This is not limited in this embodiment of the present invention, and the combination of values listed herein is simply used as an example for description.
В другой возможной реализации значение предсказания целевой выборки может обновляться в соответствии со следующей формулой:In another possible implementation, the target sample prediction value may be updated according to the following formula:
где координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляет собой значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки, и представляют восстановленные значения опорных выборок на позициях и координат, соответственно, w1, w2 и w3 являются заданными константами и M1 и M2 являются заданными положительными целыми числами.where the target sample coordinates are , the coordinates of the upper left sample of the image block to be processed are , is the prediction value of the target sample before updating, represents the updated prediction value of the target sample, and represent the reconstructed values of the reference samples at the positions and coordinates, respectively, w1, w2 and w3 are given constants and M1 and M2 are given positive integers.
Например, набор взвешенных коэффициентов (w1, w2, w3) может быть комбинацией значений w1 + w2 + w3, где w1 + w2 + w3 равно 2, возведенному в степень целого числа. Таким образом, операция деления больше не выполняется. Например, может использоваться комбинация значений, такая как (6, 1, 1) или (5, 2, 1). Это не ограничено в данном варианте осуществления настоящего изобретения, и комбинация значений, перечисленная в данном документе, просто используется в качестве примера для описания.For example, the set of weighted coefficients (w1, w2, w3) could be a combination of the values w1 + w2 + w3, where w1 + w2 + w3 is equal to 2 raised to the power of an integer. Thus, the division operation is no longer performed. For example, a combination of values such as (6, 1, 1) or (5, 2, 1) may be used. This is not limited in this embodiment of the present invention, and the combination of values listed herein is simply used as an example for description.
Следует отметить, что разница между этой реализацией и предшествующей реализацией заключается в том, что выборка слева блока изображения, подлежащего обработке, и выборка над блоком изображения, подлежащего обработке, не рассматриваются в этой реализации. Когда эта реализация используется для обновления значения предсказания целевой выборки, и восстановленные значения опорных выборок недоступны, может использоваться способ на следующих этапах S13061 и S13062 для получения новой опорной выборки и обновления значения предсказания целевой выборки на основании нового стандартного выборки.It should be noted that the difference between this implementation and the previous implementation is that fetching the left of the image block to be processed and fetching above the image block to be processed are not considered in this implementation. When this implementation is used to update the target sample prediction value and the recovered reference sample values are not available, the method in the following steps S13061 and S13062 can be used to obtain a new reference sample and update the target sample prediction value based on the new standard sample.
В другой возможной реализации значение предсказания целевой выборки может обновляться в соответствии со следующей формулой:In another possible implementation, the target sample prediction value may be updated according to the following formula:
где координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляет собой значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки, , , и представляют восстановленные значения опорных выборок на позициях , , и координатах, соответственно, w1, w2, w3, w4, w5, w6, w7, w8, w9, w10 и w11 являются заданными константами и M1, M2, M3 и M4 являются заданными положительными целыми числами.where the target sample coordinates are , the coordinates of the upper left sample of the image block to be processed are , is the prediction value of the target sample before updating, represents the updated prediction value of the target sample, , , and represent the reconstructed values of the reference samples at the positions , , and coordinates, respectively, w1, w2, w3, w4, w5, w6, w7, w8, w9, w10 and w11 are given constants and M1, M2, M3 and M4 are given positive integers.
Нижеследующее конкретно описывает способы вычисления обновленного значения предсказания целевой выборки на основании различных случаев координат верхней левой выборки блока изображения, подлежащего обработке.The following specifically describes methods for calculating an updated target sample prediction value based on different coordinate cases. upper left sample of the image block to be processed.
В первом случае, если xN больше 0, yN равно 0, и опорные выборки в позициях и были закодированы и восстановлены, обновленное значение предсказания целевой выборки может быть получено согласно следующей формуле:In the first case, if xN is greater than 0, yN is equal to 0, and the reference samples at positions and have been encoded and reconstructed, the updated target sample prediction value can be obtained according to the following formula:
Можно понять, что разница между этим случаем в этой реализации и первым случаем в первой реализации состоит в том, что в этой реализации используются две опорные выборки. Если блок изображения, подлежащий обработке, является CU 1, верхняя левая выборка блока изображения, подлежащего обработке (CU 1) равна , и координаты целевой выборки в блоке изображения, подлежащего обработке, равны . Опорные выборки представляют собой восстановленные выборки слева от текущего CU. Каждая опорная выборка имеет ту же вертикальную координату, что и целевая выборка, и может быть обозначена как и , где M1 и M2 представляет собой заданную пространственную позицию отношения между каждой из опорных выборок и целевой выборкой. Здесь в качестве примера для описания используется то, что M1 равно 1 и M2 равно 2. Когда M1 равно 1 и M2 равно 2, опорные выборки целевой выборки могут быть и . Аналогично, любые опорные выборки целевой выборки могут быть и .It can be understood that the difference between this case in this implementation and the first case in the first implementation is that two reference samples are used in this implementation. If the image block to be processed is
Если опорные выборки в позициях и были закодированы и восстановлены, вычисление взвешивания может быть выполнено для восстановленных значений и опорных выборок и значения предсказания целевой выборки, для получения обновленного значения предсказания целевой выборки.If pivot samples are in positions and have been encoded and recovered, a weighting calculation can be performed on the recovered values and reference samples and values target sample predictions to get an updated value target sample predictions.
Во втором случае, если xN равно 0, yN больше 0 и опорные выборки на позициях и были закодированы и восстановлены, обновленное значение предсказания целевой выборки может быть получено согласно следующей формуле:In the second case, if xN is equal to 0, yN is greater than 0, and the reference samples at positions and have been encoded and reconstructed, the updated target sample prediction value can be obtained according to the following formula:
Например, разница между этим случаем в этой реализации и вторым случаем в первой реализации состоит в том, что в этой реализации есть две опорные выборки. Если блок изображения, подлежащий обработке, представляет собой CU 2, верхняя левая выборка блока изображения, подлежащего обработке (CU 2), равна , и координаты целевой выборки равны . Опорные выборки представляют собой восстановленные выборки выше текущего CU. Каждая опорная выборка имеет такую же горизонтальную координату, что и целевая выборка, и может быть обозначена как и , где M3 и M4 представляют собой заданную пространственную позицию отношения между каждой из опорных выборок и целевой выборкой. Здесь в качестве примера для описания используется то, что M3 равно 1 и M4 равно 2. Когда M3 равно 1 и M4 равно 2, опорные выборки целевой выборки могут быть и . Аналогично, любые опорные выборки целевой выборки могут быть и .For example, the difference between this case in this implementation and the second case in the first implementation is that there are two reference samples in this implementation. If the image block to be processed is
Если опорные выборки на позициях и были закодированы и восстановлены, выполняться вычисление взвешивания для восстановленных значений и опорных выборок и значения предсказания целевой выборки, для получения обновленного значения предсказания целевой выборки.If the reference samples at the positions and have been encoded and recovered, a weighting calculation is performed for the recovered values and reference samples and values prediction of the target sample, to obtain an updated value of the prediction of the target sample.
В третьем случае, если xN больше 0, yN больше 0 и опорные выборки в позициях , , и были закодированы и восстановлены, обновленное значение предсказания целевой выборки может быть получено согласно следующей формуле:In the third case, if xN is greater than 0, yN is greater than 0, and the reference samples at positions , , and have been encoded and reconstructed, the updated target sample prediction value can be obtained according to the following formula:
Например, разница между этим случаем в этой реализации и третьим случаем в первой реализации заключается в том, что есть две восстановленные выборки в качестве опорных выборок над текущим CU и две восстановленные выборки в качестве опорных выборок слева от текущего CU в этой реализации. Если блок изображения, подлежащий обработке, представляет собой CU 3, то верхняя левая выборка блока изображения, подлежащего обработке (CU 3), равна , и координаты целевой выборки равны . Когда опорные выборки являются восстановленными выборками слева от текущего CU, каждая восстановленная выборка имеет ту же вертикальную координату, что и целевая выборка, и может быть и ; и, когда опорные выборки являются восстановленными выборками выше текущего CU, каждая восстановленная выборка имеет ту же горизонтальную координату, что и целевая выборка, и может быть и , где M1, M2, M3 и M4 каждая представляет собой предварительно заданную пространственную позицию отношений между каждой опорной выборкой и целевой выборкой. Здесь, что оба M1 и M3 равны 1, и оба M2 и M4 равны 2, используется в качестве примера для описания. Когда и M1 и M3 равны 1, и оба M2 и M4 равны 2, опорными выборками целевой выборки могут быть , , и . Аналогично, любые опорные выборки целевой выборки могут быть , , и .For example, the difference between this case in this implementation and the third case in the first implementation is that there are two recovered samples as pivot samples above the current CU and two recovered samples as pivot samples to the left of the current CU in this implementation. If the image block to be processed is
Если опорные выборки на позициях , , и были закодированы и восстановлены, вычисление взвешивания может быть выполнено для восстановленных значений , , и опорных выборок и значения предсказания целевой выборки для получения обновленного значения предсказания целевой выборки.If the reference samples at the positions , , and have been encoded and recovered, a weighting calculation can be performed on the recovered values , , and reference samples and values target sample predictions to get updated value target sample predictions.
Следует отметить, что значения взвешенных коэффициентов w1, w2, w3, w4, w5, w6, w7, w8, w9, w10 и w11 и значения M1, M2, M3 и M4 не ограничены в варианте осуществления настоящего изобретения. То, что и M1, и M3 равны 1 и M2 и M4 равны 2, просто используется в качестве примера для описания. Можно понять, что в реальном применении значения M1 и M3 могут быть одинаковыми или разными, значения M2 и M4 могут быть одинаковыми или разными, значения M1 и M2 могут быть разными и значения M3 и M4 могут быть разными.It should be noted that the values of the weighted coefficients w1, w2, w3, w4, w5, w6, w7, w8, w9, w10 and w11 and the values of M1, M2, M3 and M4 are not limited in the embodiment of the present invention. That both M1 and M3 are equal to 1 and M2 and M4 are equal to 2 is simply used as an example for description. It can be understood that in an actual application, the values of M1 and M3 may be the same or different, the values of M2 and M4 may be the same or different, the values of M1 and M2 may be different, and the values of M3 and M4 may be different.
Например, набор взвешенных коэффициентов (w1, w2, w3), (w4, w5, w6) или (w7, w8, w9, w10, w11) может быть комбинацией значений w1 + w2 + w3, w4 + w5 + w6, или w7 + w8 + w9 + w10 + w11, где w1 + w2 + w3, w4 + w5 + w6 или w7 + w8 + w9 + w10 + w11 равно 2 в степени целого числа. Таким образом, операция деления больше не выполняется. Например, может использоваться комбинация значений, такая как (6, 1, 1), (5, 2, 1) или (3, 2, 1, 1, 1). Это не ограничено в данном варианте осуществления настоящего изобретения, и комбинация значений, перечисленная в данном документе, просто используется в качестве примера для описания.For example, a set of weighted coefficients (w1, w2, w3), (w4, w5, w6), or (w7, w8, w9, w10, w11) could be a combination of the values w1 + w2 + w3, w4 + w5 + w6, or w7 + w8 + w9 + w10 + w11, where w1 + w2 + w3, w4 + w5 + w6 or w7 + w8 + w9 + w10 + w11 equals 2 to the power of an integer. Thus, the division operation is no longer performed. For example, a combination of values such as (6, 1, 1), (5, 2, 1), or (3, 2, 1, 1, 1) may be used. This is not limited in this embodiment of the present invention, and the combination of values listed herein is simply used as an example for description.
В другой реализации значение предсказания целевой выборки может обновляться согласно следующей формуле:In another implementation, the target sample prediction value may be updated according to the following formula:
где координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляют собой значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки, , , и представляют восстановленные значения опорных выборок на позициях , , и , соответственно, w1, w2, w3, w4 и w5 являются заданными константами и M1, M2, M3 и M4 являются заданными положительными целыми числами.where the target sample coordinates are , the coordinates of the upper left sample of the image block to be processed are , are the prediction value of the target sample before updating, represents the updated prediction value of the target sample, , , and represent the reconstructed values of the reference samples at the positions , , and , respectively, w1, w2, w3, w4 and w5 are given constants and M1, M2, M3 and M4 are given positive integers.
Например, набор взвешенных коэффициентов (w1, w2, w3, w4, w5) может быть комбинацией значений w1 + w2 + w3 + w4 + w5, где w1 + w2 + w3 + w4 + w5 равно 2 в степени целого числа. Таким образом, операция деления больше не выполняется. Например, может использоваться комбинация значений, такая как (3, 2, 1, 1, 1). Это не ограничено в данном варианте осуществления настоящего изобретения, и комбинация значений, перечисленная в данном документе, просто используется в качестве примера для описания. Следует отметить, что различие между этой реализацией и предшествующей реализацией заключается в том, что выборка слева от блока изображения, подлежащего обработке, и выборка над блоком изображения, подлежащего обработке, в этой реализации не рассматриваются. Когда эта реализация используется для обновления значения предсказания целевой выборки и восстановленные значения опорных выборок недоступны, способ на следующих этапах S13061 и S13062 может использоваться для получения доступной опорной выборки и обновления значения предсказания целевой выборки на основании доступной опорной выборки.For example, a set of weighted coefficients (w1, w2, w3, w4, w5) could be a combination of the values w1 + w2 + w3 + w4 + w5, where w1 + w2 + w3 + w4 + w5 equals 2 to the power of an integer. Thus, the division operation is no longer performed. For example, a combination of values such as (3, 2, 1, 1, 1) may be used. This is not limited in this embodiment of the present invention, and the combination of values listed herein is simply used as an example for description. It should be noted that the difference between this implementation and the previous implementation is that the fetch to the left of the image block to be processed and the fetch above the image block to be processed are not considered in this implementation. When this implementation is used to update the target sample prediction value and the recovered reference sample values are not available, the method in the following steps S13061 and S13062 may be used to obtain an available reference sample and update the target sample prediction value based on the available reference sample.
В возможной реализации одна или несколько опорных выборок включают в себя одну или несколько из следующих выборок: восстановленная выборка, которая имеет ту же горизонтальную координату, что и целевая выборка, и которая примыкает к верхней стороне будущего блока изображения, подлежащего обработке, восстановленная выборка, которая имеет ту же вертикальную координату, что и целевая выборка, и которая находится рядом с левой стороной блока изображения, подлежащего обработке, верхняя правая восстановленная выборка блока изображения, подлежащего обработке, восстановленная выборка в левом нижнем углу блока изображения, подлежащего обработке, или восстановленная выборка в левом верхнем углу блока изображения, подлежащая обработке.In a possible implementation, one or more reference samples include one or more of the following samples: a reconstructed sample that has the same horizontal coordinate as the target sample and that is adjacent to the top side of the future image block to be processed, a reconstructed sample that has the same vertical coordinate as the target sample and which is adjacent to the left side of the image block to be processed, the top right reconstructed sample of the image block to be processed, the reconstructed sample in the lower left corner of the image block to be processed, or the reconstructed sample in upper left corner of the image block to be processed.
В другой возможной реализации значение предсказания целевой выборки может обновляться в соответствии со следующей формулой:In another possible implementation, the target sample prediction value may be updated according to the following formula:
predQ (xP, yP) = (w1 * predP (xP, yP) + w2 * predP1 (xP, yP) + ((w1 + w2) / 2)) / (w1 + w2)predQ(xP, yP) = (w1 * predP(xP, yP) + w2 * predP1(xP, yP) + ((w1 + w2) / 2)) / (w1 + w2)
где координаты целевого пикселя равны , представляет значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевого пикселя и w1 и w2 являются заданными константами.where the coordinates of the target pixel are , represents the prediction value of the target sample before the update, represents the updated prediction value of the target pixel, and w1 and w2 are given constants.
В частности, второе значение выборки предсказания может быть сначала получено на основании соседней пространственной выборки и планарного (PLANAR) режима внутреннего предсказания. Можно понять, что в режиме PLANAR используются два линейных фильтра в горизонтальном направлении и вертикальном направлении, и среднее значение, полученное двумя линейными фильтрами, используется в качестве значения предсказания выборки в текущем блоке.In particular, the second meaning prediction samples may be first obtained based on adjacent spatial sampling and planar (PLANAR) intra prediction mode. It can be understood that in the PLANAR mode, two linear filters are used in the horizontal direction and the vertical direction, and the average value obtained by the two linear filters is used as the sample prediction value in the current block.
Например, второе значение выборки предсказания может быть получено на основании PLANAR режима:For example, the second value prediction samples can be obtained based on the PLANAR mode:
где, как показано на фиг. 16 координаты верхней левой выборки блока изображения, подлежащего обработке, равны , , , и представляют собой восстановленные значения опорных выборок на позициях , , и координат соответственно, и nTbW и nTbH представляют ширину и высота текущего CU (блока изображения, подлежащего обработке).where, as shown in FIG. 16, the coordinates of the upper left sample of the image block to be processed are , , , and are the restored values of the reference samples at the positions , , and coordinates, respectively, and nTbW and nTbH represent the width and height of the current CU (image unit to be processed).
В другой возможной реализации значение предсказания целевой выборки обновляется согласно следующей формуле:In another possible implementation, the target sample prediction value is updated according to the following formula:
predQ (xP, yP) = (w1 * predP (xP, yP) + w2 * predV (xP, yP) + w3 * predH (xP, yP) + ((w1 + w2 + w3) / 2)) / (w1 + w2 + w3)predQ (xP, yP) = (w1 * predP (xP, yP) + w2 * predV (xP, yP) + w3 * predH (xP, yP) + ((w1 + w2 + w3) / 2)) / (w1 + w2 + w3)
где predV (xP, yP) = ((nTbH - 1 - yP) * p (xP, –1) + (yP + 1) * p (–1, nTbH) + nTbH / 2) >> Log2 (nTbH), predH (xP, yP) = ((nTbW - 1 - xP) * p (–1, yP) + (xP + 1) * p (nTbW, –1) + nTbW / 2) >> Log2 (nTbW), координаты целевой выборки (xP, yP), координаты верхней левой выборки блока изображения, подлежащего обработке, равны (0, 0), predP (xP, yP) представляет значение предсказания целевой выборки перед обновление, predQ (xP, yP) представляет обновленное значение предсказания целевой выборки, p (xP, –1), p (–1, nTbH), p (–1, yP) и p (nTbW, –1) представляют восстановленные значения опорных выборок в координатах (xP, –1), (–1, nTbH), (–1, yP) и (nTbW, –1), соответственно, w1 и w2 являются заданными константами, и nTbW и nTbH представляют ширину и высоту блока изображения, подлежащего обработке.where predV (xP, yP) = ((nTbH - 1 - yP) * p (xP, –1) + (yP + 1) * p (–1, nTbH) + nTbH / 2) >> Log2 (nTbH), predH (xP, yP) = ((nTbW - 1 - xP) * p (-1, yP) + (xP + 1) * p (nTbW, -1) + nTbW / 2) >> Log2 (nTbW), coordinates of the target sample (xP, yP), the coordinates of the upper left sample of the image block to be processed are (0, 0), predP (xP, yP) represents the prediction value of the target sample before updating, predQ (xP, yP) represents the updated prediction value of the target samples, p(xP, –1), p(–1, nTbH), p(–1, yP), and p(nTbW, –1) represent the reconstructed values of the reference samples in coordinates (xP, –1), (–1 , nTbH), (-1, yP) and (nTbW, -1), respectively, w1 and w2 are given constants, and nTbW and nTbH represent the width and height of the image block to be processed.
В другой возможной реализации значение предсказания целевой выборки обновляется согласно следующей формуле:In another possible implementation, the target sample prediction value is updated according to the following formula:
predQ (xP, yP) = (((w1 * predP (xP, yP)) << (Log2 (nTbW) + Log2 (nTbH) + 1)) + w2 * predV (xP, yP) + w3 * predH (xP, yP) + (((w1 + w2 + w3) / 2) << (Log2 (nTbW) + Log2 (nTbH) + 1))) / (((w1 + w2 + w3) << (Log2 (nTbW) + Log2 (nTbH) + 1)))predQ (xP, yP) = (((w1 * predP (xP, yP)) << (Log2 (nTbW) + Log2 (nTbH) + 1)) + w2 * predV (xP, yP) + w3 * predH (xP , yP) + (((w1 + w2 + w3) / 2) << (Log2 (nTbW) + Log2 (nTbH) + 1))) / (((w1 + w2 + w3) << (Log2 (nTbW) + Log2 (nTbH) + 1)))
где predV (xP, yP) = ((nTbH - 1 - yP) * p (xP, –1) + (yP + 1) * p (–1, nTbH)) << Log2 (nTbW), predH (xP, yP) = ((nTbW - 1 - xP) * p (–1, yP) + (xP + 1) * p (nTbW, –1)) << Log2 (nTbH), координаты целевой выборки (xP, yP), координаты верхней левой выборки блока изображения, подлежащего обработке, равны (0, 0), predP (xP, yP) представляет значение предсказания целевой выборки до обновления, predQ (xP, yP) представляет обновленное значение предсказания целевой выборки, p (xP, –1), p (–1, nTbH), p (–1, yP) и p (nTbW, –1) представляют восстановленные значения опорных выборок на позициях (xP, –1), (–1, nTbH), (–1, yP) и (nTbW, –1) координат, соответственно, w1 и w2 являются заданными константами и nTbW и nTbH представляют ширину и высоту блока изображения, подлежащего обработке.where predV (xP, yP) = ((nTbH - 1 - yP) * p (xP, –1) + (yP + 1) * p (–1, nTbH)) << Log2 (nTbW), predH (xP, yP) = ((nTbW - 1 - xP) * p (–1, yP) + (xP + 1) * p (nTbW, –1)) << Log2 (nTbH), target sample coordinates (xP, yP), the top left sample coordinates of the image block to be processed are (0, 0), predP(xP, yP) represents the prediction value of the target sample before updating, predQ(xP, yP) represents the updated prediction value of the target sample, p(xP, -1 ), p (–1, nTbH), p (–1, yP), and p (nTbW, –1) represent the reconstructed values of the reference samples at positions (xP, –1), (–1, nTbH), (–1, yP) and (nTbW, –1) coordinates, respectively, w1 and w2 are given constants, and nTbW and nTbH represent the width and height of the image block to be processed.
Следует отметить, что алгоритм планарного (PLANAR) режима, используемый для генерирования второго значения выборки предсказания, не ограничивается алгоритмом в VTM, и альтернативно может использоваться алгоритм PLANAR в HEVC или H.264. Это не ограничивается данным вариантом выполнения настоящего изобретения.It should be noted that the PLANAR mode algorithm used to generate the second value prediction sampling is not limited to the algorithm in VTM, and the PLANAR algorithm in HEVC or H.264 may alternatively be used. This is not limited to this embodiment of the present invention.
Следует отметить, что значения взвешенных коэффициентов w1 и w2 не ограничиваются в этом варианте осуществления настоящего изобретения. Например, набор взвешенных коэффициентов (w1, w2) может быть комбинацией значений w1 + w2, где w1 + w2 равно 2, возведенному в степень целого числа. Таким образом, операция деления больше не выполняется. Например, может использоваться комбинация значений, такая как (6, 2), (5, 3) или (4, 4). Это не ограничено в данном варианте осуществления настоящего изобретения, и комбинация значений, перечисленная в данном документе, просто используется в качестве примера для описания.It should be noted that the values of the weighted coefficients w1 and w2 are not limited in this embodiment of the present invention. For example, the set of weighted coefficients (w1, w2) could be a combination of the values w1 + w2, where w1 + w2 is equal to 2 raised to the power of an integer. Thus, the division operation is no longer performed. For example, a combination of values such as (6, 2), (5, 3) or (4, 4) may be used. This is not limited in this embodiment of the present invention, and the combination of values listed herein is simply used as an example for description.
В другой возможной реализации значение предсказания целевой выборки может обновляться в соответствии со следующей формулой:In another possible implementation, the target sample prediction value may be updated according to the following formula:
predQ (xP, yP) = (w1 * predP (xP, yP) + w2 * predP1 (xP, yP) + ((w1 + w2) / 2)) / (w1 + w2)predQ(xP, yP) = (w1 * predP(xP, yP) + w2 * predP1(xP, yP) + ((w1 + w2) / 2)) / (w1 + w2)
где where
координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляет значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки, , , и представляют восстановленные значения опорных выборок на позициях , , и координат, соответственно, w1 и w2 являются заданными константами и nTbW и nTbH представляют ширину и высоту блока изображения, подлежащего обработке.target sample coordinates are , the coordinates of the upper left sample of the image block to be processed are , represents the prediction value of the target sample before the update, represents the updated prediction value of the target sample, , , and represent the reconstructed values of the reference samples at the positions , , and coordinates, respectively, w1 and w2 are given constants and nTbW and nTbH represent the width and height of the image block to be processed.
В другой возможной реализации блок внешнего предсказания может обрабатываться с использованием технологии обработки комбинации позиционно-зависимого внутреннего предсказания (Position-dependent intra prediction combination process), которая используется во внутреннем предсказании, и может быть получено обновленное значение предсказания целевой выборки с использованием способа DC режима в технологии обработки комбинации с внутренним предсказанием в VTM. Можно понять, что при использовании DC режима значение предсказания текущего блока может быть получено на основании среднего значения опорных выборок слева и над текущим блоком.In another exemplary implementation, an inter prediction block may be processed using a position-dependent intra prediction combination process that is used in intra prediction, and an updated value may be obtained. predicting the target sample using the DC mode method in the VTM intra-prediction combination processing technology. It can be understood that when using the DC mode, the prediction value of the current block can be obtained based on the average of the reference samples left and above the current block.
Например, обновленное значение предсказания целевой выборки может быть получено согласно следующей формуле:For example, the updated value target sample prediction can be obtained according to the following formula:
гдеwhere
, , , как показано на фиг. 16, координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляет собой значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки,, и представляют восстановленные значения опорных выборок на позициях , и , соответственно, nTbW и nTbH представляют ширину и высоту блока изображения, подлежащего обработке, clip1Cmp представляет операцию отсечения. , , , as shown in FIG. 16, the coordinates of the target sample are , the coordinates of the upper left sample of the image block to be processed are , is the prediction value of the target sample before updating, represents the updated prediction value of the target sample, , and represent the reconstructed values of the reference samples at the positions , and , respectively, nTbW and nTbH represent the width and height of the image block to be processed, clip1Cmp represents the clipping operation.
Следует отметить, что обновленное значение предсказания целевой выборки может быть получено с использованием не только технологии обработки комбинации внутреннего предсказания в VTM, но также алгоритма в JEM.Note that the updated value The target sample prediction can be obtained using not only the intra prediction combination processing technology in VTM, but also the algorithm in JEM.
В возможной реализации блок внешнего предсказания может быть обработан с использованием технологии обработки комбинации позиционно-зависимого внутреннего предсказания, которая используется при внутреннем предсказании, и обновленное значение предсказания целевой выборки может быть получено с использованием режима PLANAR в технологии обработки комбинации внутреннего предсказания в VTM. Используется следующая формула:In an exemplary implementation, the inter prediction block may be processed using the position-dependent intra prediction combination processing technique that is used in intra prediction, and the updated value The target sample prediction can be obtained using the PLANAR mode in the VTM intra prediction combination processing technology. The following formula is used:
где, where,
, , как показано на фиг. 16, координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляет собой значение предсказания целевой выборки до обновления, представляет обновленное значение предсказания целевой выборки, и представляют восстановленные значения опорных выборок на позициях и , соответственно, nTbW и nTbH представляют ширину и высоту блока изображения, подлежащего обработке, clip1Cmp представляет операцию отсечения. , , as shown in FIG. 16, the coordinates of the target sample are , the coordinates of the upper left sample of the image block to be processed are , is the prediction value of the target sample before the update, represents the updated prediction value of the target sample, and represent the reconstructed values of the reference samples at the positions and , respectively, nTbW and nTbH represent the width and height of the image block to be processed, clip1Cmp represents the clipping operation.
Следует отметить, что обновленное значение предсказания целевой выборки может быть получено с использованием не только алгоритма в VTM, но также алгоритма в JEM.Note that the updated value target sample prediction can be obtained using not only the algorithm in VTM, but also the algorithm in JEM.
В возможной реализации обработка фильтрации может выполняться на выборке внешнего предсказания с использованием технологии граничной фильтрации с внутренним предсказанием. Подробнее о технологии граничной фильтрации см. в способе HEVC. Подробности здесь не описаны.In an exemplary implementation, filtering processing may be performed on the inter prediction sample using intra prediction edge filtering technology. See the HEVC method for details on edge filtering technology. Details are not described here.
Следует отметить, что, когда значение предсказания целевой выборки обновляется в любом из указанных выше способов, если восстановленное значение опорной выборки недоступно, этап S1306 может дополнительно включать в себя следующие этапы S13061 и S13062.It should be noted that when the target sample prediction value is updated in any of the above methods, if the recovered reference sample value is not available, step S1306 may further include the following steps S13061 and S13062.
S13061: когда восстановленное значение опорной выборки недоступно, определить в заданном порядке доступность выборок, прилегающих к верхней и левой стороне блока изображения, подлежащего обработке, до тех пор, пока не будет получено заданное количество доступных опорных выборок.S13061: When the recovered reference sample value is not available, determine in a predetermined order the availability of samples adjacent to the top and left side of the image block to be processed until the predetermined number of available reference samples is obtained.
Можно понять, что случай, в котором восстановленное значение опорной выборки недоступно, может включать в себя следующее: когда блок изображения, подлежащий обработке, расположен на верхней стороне изображения, восстановленное значение опорной выборки отсутствует на координатной позиции ; или, когда блок изображения, подлежащий обработке, расположен на левой стороне изображения, восстановленное значение опорной выборки отсутствует на координатной позиции ; или значение реконфигурации не может быть получено для опорной выборки. Конкретный случай, в котором восстановленное значение опорной выборки недоступно, не ограничивается в этом варианте осуществления настоящего изобретения, и случай в данном документе просто используется в качестве примера для описания.It can be understood that the case in which the restored reference sample value is not available may include the following: when the image block to be processed is located on the top side of the image, the restored reference sample value is not available at the coordinate position ; or, when the image block to be processed is located on the left side of the image, the reconstructed reference sample value is not present at the coordinate position ; or the reconfiguration value cannot be obtained for the reference sample. The specific case in which the recovered reference sample value is not available is not limited in this embodiment of the present invention, and the case herein is simply used as an example for description.
В реализации, показанной на фиг. 17, заданный порядок может быть порядком от координат (xN - 1, yN + nTbH - 1) к координатам (xN - 1, yN - 1), а затем от координат (xN, yN - 1) к координатам (xN + nTbW –1, yN - 1). Например, все выборки могут быть пройдены в порядке от координат (xN - 1, yN + nTbH - 1) до координат (xN - 1, yN - 1) и затем от координат (xN, yN - 1) до координаты (xN + nTbW - 1, yN - 1) для поиска доступной опорной выборки из выборок, смежных с верхней и левой стороной блока изображения, подлежащего обработке. Следует отметить, что конкретный заданный порядок не ограничен в этом варианте осуществления настоящего изобретения, и заданный порядок здесь используется просто в качестве примера для описания.In the implementation shown in FIG. 17, the given order can be the order from the coordinates (xN - 1, yN + nTbH - 1) to the coordinates (xN - 1, yN - 1), and then from the coordinates (xN, yN - 1) to the coordinates (xN + nTbW - 1, yN - 1). For example, all samples can be traversed in order from coordinates (xN - 1, yN + nTbH - 1) to coordinates (xN - 1, yN - 1) and then from coordinates (xN, yN - 1) to coordinate (xN + nTbW - 1, yN - 1) to search for an available reference sample from the samples adjacent to the top and left side of the image block to be processed. It should be noted that the specific predetermined order is not limited in this embodiment of the present invention, and the predetermined order is used here simply as an example for description.
Например, когда есть, по меньшей мере, одна доступная опорная выборка во всех опорных выборках, если восстановленное значение опорной выборки (xN - 1, yN + nTbH - 1) недоступно, доступная выборка ищется в заданном порядке от координат (xN - 1, yN + nTbH - 1) к координатам (xN - 1, yN - 1) и затем от координат (xN, yN - 1) к координатам (xN + nTbW - 1, yN - 1). Как только найдена доступная выборка, поиск заканчивается. Если доступная выборка является (x, y), восстановленное значение опорной выборки (xN - 1, yN + nTbH - 1) устанавливается равным восстановленному значению выборки (x, y). Если восстановленное значение опорной выборки (x, y) недоступно в наборе, включающем в себя опорную выборку (xN - 1, yN + nTbH - M), восстановленное значение опорной выборки (x, y) устанавливается на восстановленное значение выборки (x, y + 1), где M больше или равно 2 и меньше или равно nTbH + 1. Если восстановленное значение опорной выборки (x, y) недоступно в наборе, включающим в себя опорную выборку (xN + N, yN - 1), восстановленное значение опорной выборки (x, y) устанавливается равным восстановленному значению опорной выборки (x - 1, y), где N больше или равно 0 и меньше или равно nTbW - 1.For example, when there is at least one pivot sample available in all pivot samples, if the reconstructed pivot sample value (xN - 1, yN + nTbH - 1) is not available, the available sample is searched in the given order from coordinates (xN - 1, yN + nTbH - 1) to coordinates (xN - 1, yN - 1) and then from coordinates (xN, yN - 1) to coordinates (xN + nTbW - 1, yN - 1). As soon as an available sample is found, the search ends. If the available sample is (x, y), the reconstructed reference sample value (xN - 1, yN + nTbH - 1) is set equal to the reconstructed sample value (x, y). If the reconstructed reference sample value (x, y) is not available in the set including the reference sample (xN - 1, yN + nTbH - M), the reconstructed reference sample value (x, y) is set to the reconstructed sample value (x, y + 1), where M is greater than or equal to 2 and less than or equal to
Например, если восстановленное значение опорной выборки (xN - 1, yN + nTbH - M) недоступно, доступная опорная выборка может быть найдена в заданном порядке, начиная с координат (xN - 1, yN + nTbH - M), где M больше или равно 1 и меньше или равно nTbH + 1. Если доступная опорная выборка является B, восстановленное значение опорной выборки (xN - 1, yN + nTbH - M) может быть установлено на восстановленное значение опорной выборки B. Если восстановленное значение опорной выборки с координатами (xN + N, yN - 1) недоступно, доступная опорная выборка может быть найдена в заданном порядке, начиная с координаты (xN + N, yN - 1), где N больше или равно 0 и меньше или равно nTbW - 1. Если доступная опорная выборка является C, восстановленное значение опорной выборки (xN + N, yN - 1) может быть установлено на восстановленное значение опорной выборки C.For example, if the reconstructed reference sample value (xN - 1, yN + nTbH - M) is not available, the available reference sample can be found in the given order, starting at coordinates (xN - 1, yN + nTbH - M), where M is greater than or equal to 1 and less than or equal to
Например, если восстановленное значение опорной выборки (xN - 1, yN + nTbH - 3) недоступно, доступность выборок, смежных с верхней и левой сторонами блока изображения, которое должно быть обработано, может быть определено в порядке от координат (xN - 1, yN + nTbH - 3) до координат (xN - 1, yN - 1) до тех пор, пока не будет получено заданное количество доступных опорных выборок, и восстановленное значение опорной выборки (xN - 1, yN + nTbH - 3) может быть установлено на восстановленное значение доступной опорной выборки. Если восстановленное значение опорной выборки с координатами (xN + 3, yN - 1) недоступно, ищется доступная выборка в порядке от координат (xN + 3, yN - 1) до координат (xN + nTbW - 1, yN - 1), и восстановленное значение опорной выборки (xN + 3, yN - 1) может быть установлено на восстановленное значение доступного опорной выборки.For example, if the reconstructed reference sample value (xN - 1, yN + nTbH - 3) is not available, the availability of samples adjacent to the top and left sides of the image block to be processed can be determined in order from coordinates (xN - 1, yN + nTbH - 3) to coordinates (xN - 1, yN - 1) until the specified number of available reference samples is obtained and the restored reference sample value (xN - 1, yN + nTbH - 3) can be set to the restored value of the available reference sample. If the reconstructed reference sample value with coordinates (xN + 3, yN - 1) is not available, an available sample is searched in order from coordinates (xN + 3, yN - 1) to coordinates (xN + nTbW - 1, yN - 1), and the reconstructed the reference sample value (xN + 3, yN - 1) can be set to the recovered value of the available reference sample.
Например, если восстановленное значение опорной выборки (xN - 1, yN + nTbH - 1) недоступно, доступная выборка ищется в заданном порядке из координат (xN - 1, yN + nTbH - 1) в координаты (xN - 1, yN - 1) и затем из координат (xN, yN - 1) в координаты (xN + nTbW - 1, yN - 1). Как только доступная выборка найдена, поиск заканчивается. Если доступная выборка равна (x, y), восстановленное значение опорной выборки (xN - 1, yN + nTbH - 1) устанавливается равным восстановленному значению выборки (x, y). Если восстановленное значение опорной выборки (xN - 1, yN + nTbH - M) недоступно, можно искать доступную опорную выборку в порядке, обратном заданному, начиная с координат (xN - 1, yN + nTbH - M), где M больше 1 и меньше или равно nTbH + 1. Если доступная опорная выборка является C, восстановленное значение опорной выборки (xN - 1, yN + nTbH - M) может быть установить на восстановленное значение опорной выборки C. Если восстановленное значение опорной выборки с координатами (xN + N, yN - 1) недоступно, доступная опорная выборка может быть найдена в порядке, обратном заданному, начиная с координат (xN + N, yN - 1), где N больше или равно 0 и меньше или равно nTbW - 1. Если доступная опорная выборка является D, восстановленное значение опорной выборки (xN + N, yN - 1) может быть установлено равным восстановленному значению опорной выборки D.For example, if the restored value of the reference sample (xN - 1, yN + nTbH - 1) is not available, the available sample is searched in the given order from the coordinates (xN - 1, yN + nTbH - 1) to the coordinates (xN - 1, yN - 1) and then from coordinates (xN, yN - 1) to coordinates (xN + nTbW - 1, yN - 1). Once an available sample is found, the search ends. If the available sample is equal to (x, y), the reconstructed reference sample value (xN - 1, yN + nTbH - 1) is set equal to the reconstructed sample value (x, y). If the reconstructed reference sample value (xN - 1, yN + nTbH - M) is not available, you can search for the available reference sample in the reverse order of the specified one, starting from coordinates (xN - 1, yN + nTbH - M), where M is greater than 1 and less than or equal to
Например, если восстановленное значение опорной выборки (xN - 1, yN + nTbH - 3) недоступно, доступность выборок, смежных с верхней и левой сторонами блока изображения, которое должно быть обработано, может быть определена в порядке от координат (xN - 1, yN + nTbH - 3) до координат (xN - 1, yN + nTbH - 1) до тех пор, пока не будет получено заданное количество доступных опорных выборок, и восстановленное значение опорной выборки (xN - 1, yN + nTbH - 3) может быть установлено на восстановленное значение доступного опорной выборки. Если восстановленное значение опорной выборки с координатами (xN + 3, yN - 1) недоступно, поиск доступной выборки осуществляется в порядке от координат (xN + 3, yN - 1) до координат (xN, yN - 1) и восстановленное значение опорной выборки (xN + 3, yN - 1) может быть установлено равным восстановленному значению доступной опорной выборки.For example, if the reconstructed reference sample value (xN - 1, yN + nTbH - 3) is not available, the availability of samples adjacent to the top and left sides of the image block to be processed can be determined in order from coordinates (xN - 1, yN + nTbH - 3) to coordinates (xN - 1, yN + nTbH - 1) until the given number of available reference samples is obtained, and the restored value of the reference sample (xN - 1, yN + nTbH - 3) can be set to the restored value of the available reference sample. If the reconstructed reference sample value with coordinates (xN + 3, yN - 1) is not available, the available sample is searched in order from coordinates (xN + 3, yN - 1) to coordinates (xN, yN - 1) and the reconstructed reference sample value ( xN + 3, yN - 1) can be set to the reconstructed value of the available reference sample.
Следует отметить, что новая опорная выборка может быть первой доступной опорной выборкой, найденной в заданном порядке, или может быть любой доступной опорной выборкой, найденной в заданном порядке. Это не ограничивается данным вариантом выполнения настоящего изобретения.It should be noted that the new reference sample may be the first available reference sample found in the given order, or may be any available reference sample found in the given order. This is not limited to this embodiment of the present invention.
Можно понять, что согласно способу, когда опорная выборка недоступна, доступная опорная выборка может быть найдена из выборок, смежных с верхней и левой стороной блока изображения, подлежащего обработке, в заданном порядке, и восстановленное значение доступной опорной выборки используется в качестве восстановленного значения недоступной опорной выборки.It can be understood that, according to the method, when a reference sample is unavailable, an available reference sample can be found from the samples adjacent to the top and left side of the image block to be processed in a given order, and the recovered value of the available reference sample is used as the recovered value of the unavailable reference samples.
S13062: выполнить вычисление взвешивания для восстановленного значения доступной опорной выборки и значения предсказания целевой выборки, для обновления значения предсказания целевой выборки.S13062: Perform a weighting calculation on the recovered reference sample available value and the target sample prediction value to update the target sample prediction value.
Например, значение предсказания целевой выборки может обновляться на основании восстановленного значения новой опорной выборки с использованием любой из вышеупомянутых реализаций.For example, the target sample prediction value may be updated based on the recovered new reference sample value using any of the above implementations.
Следует отметить, что, если восстановленное значение опорной выборки недоступно, и на этапе S13061 определяется, что все выборки, смежные с верхней и левой стороной блока изображения, которое должно быть обработано, недоступны, восстановленное значение опорной выборки может быть установлено равным 1 << (bitDepth - 1), где bitDepth представляет битовую глубину значения выборки опорной выборки. Например, когда блок изображения, подлежащий обработке, расположен в верхнем левом углу изображения, и координаты в верхнем левом углу блока изображения, подлежащего обработке, равны (0, 0), все выборки, прилегающие к верхней и левой стороне блока изображения, подлежащего обработке, недоступны. В этом случае восстановленное значение опорной выборки, соответствующей целевой выборке в блоке изображения, подлежащего обработке, может быть установлено в 1 << (bitDepth - 1).It should be noted that if the restored reference sample value is not available, and it is determined in step S13061 that all samples adjacent to the top and left side of the image block to be processed are not available, the restored reference sample value may be set to 1 << ( bitDepth - 1), where bitDepth represents the bit depth of the sample value of the reference sample. For example, when the image block to be processed is located in the upper left corner of the image, and the coordinates in the upper left corner of the image block to be processed are (0, 0), all samples adjacent to the top and left side of the image block to be processed are not available. In this case, the reconstructed value of the reference sample corresponding to the target sample in the image block to be processed may be set to 1<<(bitDepth - 1).
В вышеупомянутом множестве реализаций выполняется пространственная фильтрация на выборке внешнего предсказания в процессе генерирования выборки внешнего предсказания. По сравнению с традиционной технологией эффективность кодирования повышается.In the aforementioned plurality of implementations, spatial filtering is performed on the inter prediction sample during inter prediction sample generation. Compared with conventional technology, the coding efficiency is improved.
В возможной реализации перед этапом S1306 способ может дополнительно включать в себя этап S1305.In an exemplary implementation prior to step S1306, the method may further include step S1305.
S1305: (Возможно) Выполнить обработку фильтрации на опорной выборке.S1305: (Optional) Perform filtering processing on the reference sample.
Можно понять, что этап S1305 может выполняться блоком 206 фильтра в видеодекодере на фиг. 3.It can be understood that step S1305 may be performed by the
Например, выполнение обработки фильтрации для опорной выборки может включать в себя: когда опорная выборка расположена над блоком изображения, подлежащим обработке, выполнение вычисления взвешивания для восстановленного значения опорной выборки и восстановленных значений левой соседний выборки и правой соседней выборки опорной выборки; когда опорная выборка расположена слева от блока изображения, подлежащего обработке, выполнение вычисления взвешивания восстановленного значения опорной выборки и восстановленных значений верхней соседней выборки и нижней соседней выборки опорной выборки; и обновление восстановленного значения опорной выборки с использованием результата взвешивания.For example, performing filtering processing on the reference sample may include: when the reference sample is located over an image block to be processed, performing a weighting calculation on the restored value of the reference sample and the restored values of the left neighbor sample and the right neighbor sample of the reference sample; when the reference sample is located to the left of the image block to be processed, performing a weighting calculation of the restored value of the reference sample and the restored values of the top neighbor sample and the bottom neighbor sample of the reference sample; and updating the recovered reference sample value using the weighting result.
Можно понять, что после того, как обработка фильтрации выполняется для опорной выборки на этапе S1305, когда выполняется этап S1306, вычисление взвешивания может выполняться для обновленного восстановленного значения опорной выборки после обработки фильтрации и значения предсказания целевой выборки, для обновления значения предсказания целевой выборки.It can be understood that after the filtering processing is performed on the reference sample in step S1305, when step S1306 is performed, the weighting calculation can be performed on the updated recovered value of the reference sample after the filtering processing and the prediction value of the target sample to update the prediction value of the target sample.
Следует отметить, что для конкретного способа выполнения обработки фильтрации на опорной выборке может быть сделана ссылка на способ фильтрации на этапе S1306. Подробности здесь не описаны.It should be noted that, for a particular method of performing the filtering processing on the reference sample, reference may be made to the filtering method in step S1306. Details are not described here.
Можно понять, что обработка фильтрации выполняется на опорной выборке для обновления восстановленного значения опорной выборки, и обработка фильтрации выполняется для целевой выборки на основании обновленного восстановленного значения опорной выборки. Это может дополнительно повысить эффективность кодирования и уменьшить остаток предсказания.It can be understood that filtering processing is performed on the reference sample to update the restored value of the reference sample, and filtering processing is performed on the target sample based on the updated restored value of the reference sample. This can further improve the coding efficiency and reduce the prediction residual.
В возможной реализации перед этапом S1306 или после этапа S1306 может быть дополнительно выполнен этап S1307.In a possible implementation, before step S1306 or after step S1306, step S1307 may be additionally performed.
S1307: (Возможно) Продолжить выполнение внешнего предсказания на основании информации движения и информации битового потока, используя технологию внешнего кодирования, отличную от этого способа.S1307: (Could) Continue performing inter prediction based on motion information and bitstream information using an inter coding technique other than this method.
Можно понять, что этап S1307 может выполняться внешним предиктором 210 в видеодекодере на фиг. 3.It can be understood that step S1307 may be performed by
Например, могут использоваться технологии HEVC или VTM, включающие в себя, помимо прочего, способ двунаправленного оптического потока, способ уточнения вектора движения на стороне декодера, технологию компенсации локальной освещенности (LIC), общее взвешенное предсказание (GBI), компенсация движения перекрывающихся блоков (OBMC) и технология компенсации вектора движения на стороне декодера (DMVD). Может использоваться способ в HEVC или VTM, или другой способ для составления списка кандидатов предсказания вектора движения. Это не ограничивается данным вариантом выполнения настоящего изобретения.For example, HEVC or VTM technologies may be used, including, but not limited to, bi-directional optical flow method, decoder side motion vector refinement method, local illumination compensation (LIC) technology, general weighted prediction (GBI), overlapping block motion compensation (OBMC). ) and Decoder Side Motion Vector Compensation (DMVD) technology. The method in HEVC or VTM, or another method, may be used to list motion vector prediction candidates. This is not limited to this embodiment of the present invention.
Следует отметить, что порядок выполнения этапов с S1301 по S1307 в вышеупомянутом способе не ограничен в этом варианте осуществления настоящего изобретения. Например, этап S1305 может выполняться перед этапом S1307 или может выполняться после этапа S1307. Это не ограничивается данным вариантом выполнения настоящего изобретения.It should be noted that the execution order of steps S1301 to S1307 in the above method is not limited in this embodiment of the present invention. For example, step S1305 may be performed before step S1307 or may be performed after step S1307. This is not limited to this embodiment of the present invention.
В возможной реализации, перед выполнением компенсации движения для блока изображения, подлежащего обработке, на основании информации движения, способ может дополнительно включать в себя: первоначальное обновление информации движения с использованием первого заданного алгоритма; и, соответственно, выполнение компенсации движения блока изображения, подлежащего обработке, на основании информации движения включает в себя: выполнение компенсации движения блока изображения, подлежащего обработке на основании изначально обновленной информации движения.In an exemplary implementation, before performing motion compensation for an image block to be processed based on the motion information, the method may further include: initially updating the motion information using a first predetermined algorithm; and accordingly, performing motion compensation of the image block to be processed based on the motion information includes: performing motion compensation of the image block to be processed based on the initially updated motion information.
В другой возможной реализации, после того как получен блок предсказания блока изображения, подлежащего обработке, способ может дополнительно включать в себя: предварительное обновление блока предсказания с использованием второго заданного алгоритма; и, соответственно, выполнение вычисления взвешивания для одного или нескольких восстановленных значений одной или нескольких опорных выборок и значения предсказания целевой выборки включает в себя: выполнение вычисления взвешивания для одного или нескольких восстановленных значений одной или нескольких опорных выборок и предварительного обновленного значения предсказания целевой выборки.In another possible implementation, after a prediction block of an image block to be processed is obtained, the method may further include: pre-updating the prediction block using a second predetermined algorithm; and accordingly, performing a weight calculation on one or more recovered values of one or more reference samples and a target sample prediction value includes: performing a weight calculation on one or more recovered values of one or more reference samples and a preliminary updated target sample prediction value.
В другой возможной реализации, после выполнения вычисления взвешивания для одного или нескольких восстановленных значений одной или нескольких опорных выборок и значения предсказания целевой выборки, для обновления значения предсказания целевой выборки, способ дополнительно включает в себя: обновление значение предсказания целевой выборки с использованием второго заданного алгоритма.In another possible implementation, after performing a weighting calculation on one or more recovered values of one or more reference samples and a target sample prediction value, to update the target sample prediction value, the method further includes: updating the target sample prediction value using a second predetermined algorithm.
Также следует понимать, что после получения обновленного значения предсказания целевой выборки способ может дополнительно включать в себя: добавление окончательного изображения внешнего предсказания и остаточного изображения, для получения восстановленное изображение текущего блока. В частности, если текущий блок имеет остаток, остаточная информация добавляется к изображению предсказания, для получения восстановленного изображения текущего блока. Если текущий блок не имеет остатка, предсказанное изображение является восстановленным изображением текущего блока. В вышеупомянутом процессе может использоваться тот же способ, что и в HEVC или VTM, или другой способ компенсации движения или восстановления изображения. Это не ограничено.It should also be understood that after obtaining an updated prediction value of the target sample, the method may further include: adding a final inter-prediction image and a residual image to obtain a reconstructed image of the current block. In particular, if the current block has a residual, the residual information is added to the prediction image to obtain a reconstructed image of the current block. If the current block has no remainder, the predicted image is the reconstructed image of the current block. The above process may use the same method as HEVC or VTM, or another method for motion compensation or image restoration. It's not limited.
Согласно способу внешнего предсказания, предоставленному в этом варианте осуществления настоящего изобретения, анализируется битовый поток для получения информации движения блока изображения, подлежащего обработке; выполняется компенсация движения для блока изображения, подлежащего обработке, на основании информации движения, для получения блока предсказания блока изображения, подлежащего обработке; и выполняется вычисление взвешивания для одного или нескольких восстановленных значений одной или нескольких опорных выборок и значения предсказания целевой выборки, для обновления значения предсказания целевой выборки, где опорная выборка имеет заданную взаимосвязь пространственной позиции с целевой выборкой. В этом варианте осуществления настоящего изобретения после получения значения предсказания целевой выборки в блоке изображения, подлежащего обработке, выполняется обработка фильтрации для значения предсказания целевой выборки с использованием соседней восстановленной выборки. Таким образом, эффективность сжатия кодирования может быть улучшена, и PSNR BDrate снижается на 0,5%. По сравнению с традиционной технологией пространственная фильтрация, выполняемая на выборке внешнего предсказания в процессе генерирования выборки внешнего предсказания, повышает эффективность кодирования.According to the inter prediction method provided in this embodiment of the present invention, a bit stream is analyzed to obtain motion information of an image block to be processed; motion compensation is performed for the image block to be processed based on the motion information to obtain a prediction block of the image block to be processed; and performing a weighting calculation on the one or more recovered values of the one or more reference samples and the prediction value of the target sample to update the prediction value of the target sample, where the reference sample has a given spatial position relationship with the target sample. In this embodiment of the present invention, after obtaining the prediction value of the target sample in the block of the image to be processed, filtering processing is performed on the prediction value of the target sample using an adjacent reconstructed sample. Thus, the coding compression efficiency can be improved and the PSNR BDrate is reduced by 0.5%. Compared with the conventional technology, spatial filtering performed on the inter prediction sample during inter prediction sample generation improves coding efficiency.
Вариант осуществления настоящего изобретения предоставляет устройство внешнего предсказания. Устройство может быть видеодекодером. В частности, устройство внешнего предсказания выполнено с возможностью выполнять этапы, выполняемые устройством декодирования в вышеупомянутом способе внешнего предсказания. Устройство внешнего предсказания, предоставленное в этом варианте осуществления настоящего изобретения, может включать в себя модули, соответствующие соответствующим этапам.An embodiment of the present invention provides an inter prediction device. The device may be a video decoder. Specifically, the inter prediction device is configured to perform the steps performed by the decoding device in the above inter prediction method. The inter prediction device provided in this embodiment of the present invention may include modules corresponding to respective steps.
В этом варианте осуществления настоящего изобретения устройство внешнего предсказания может быть разделено на функциональные модули на основании приведенных выше примеров способов. Например, функциональные модули могут быть получены путем разделения на основании соответствующих функций, или две или более функций могут быть интегрированы в один модуль обработки. Интегрированный модуль может быть реализован в виде аппаратных средств или может быть реализован в виде программного функционального модуля. В этом варианте осуществления настоящего изобретения разделение на модули является примером, представляет собой просто разделение логических функций и может быть другим разделением в фактической реализации.In this embodiment of the present invention, the inter prediction device may be divided into functional modules based on the above method examples. For example, functional modules may be obtained by separation based on respective functions, or two or more functions may be integrated into one processing module. An integrated module may be implemented in hardware or may be implemented in a software function module. In this embodiment of the present invention, the division into modules is an example, is simply a division of logical functions, and may be another division in the actual implementation.
Когда функциональные модули получены путем разделения на основании соответствующих функций, фиг. 18 представляет возможную схему устройства 1800 внешнего предсказания в вышеупомянутом варианте осуществления. Как показано на фиг. 18, устройство 1800 внешнего предсказания может включать в себя модуль 1801 синтаксического анализа, модуль 1802 компенсации и модуль 1803 вычислений. В частности, функции модулей следующие:When functional modules are obtained by separation based on respective functions, FIG. 18 shows an exemplary design of the inter predictor 1800 in the above embodiment. As shown in FIG. 18, inter predictor 1800 may include a parsing module 1801, a
Модуль 1801 синтаксического анализа выполнен с возможностью выполнять синтаксический анализ битового потока для получения информации движения блока изображения, подлежащего обработке.The parsing unit 1801 is configured to perform parsing of the bitstream to obtain motion information of the image block to be processed.
Модуль 1802 компенсации выполнен с возможностью выполнять компенсацию движения над блоком изображения, подлежащего обработке, на основании информации движения, для получения блока предсказания блока изображения, подлежащего обработке, где блок предсказания блока изображения, подлежащего обработке, содержит значение предсказания целевой выборки.The
Модуль 1803 вычислений выполнен с возможностью выполнять вычисления взвешивания одного или нескольких восстановленных значений одной или нескольких опорных выборок и значения предсказания целевой выборки для обновления значения предсказания целевой выборки, где опорная выборка имеет заданную пространственную позицию относительно целевой выборки.
В возможной реализации одна или несколько опорных выборок включают в себя восстановленную выборку, которая имеет ту же горизонтальную координату, что и целевая выборка, и имеет заданную разность вертикальных координат с целевой выборкой, или восстановленную выборку, который имеет такую же вертикальную координату, что и целевая выборка и имеет заданную разность горизонтальных координат с целевой выборкой.In a possible implementation, one or more reference samples include a reconstructed sample that has the same horizontal coordinate as the target sample and has a specified difference in vertical coordinates with the target sample, or a reconstructed sample that has the same vertical coordinate as the target sample. sample and has a given difference in horizontal coordinates with the target sample.
В возможной реализации модуль 1803 вычислений обновляет значение предсказания целевой выборки в соответствии со следующей формулой:In an exemplary implementation,
где координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляет собой значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки, и представляют восстановленные значения опорных выборок на позициях и координат, соответственно, w1, w2, w3, w4, w5 и w6 являются заданными константами, M1 и M2 являются заданными положительными целыми числами.where the target sample coordinates are , the coordinates of the upper left sample of the image block to be processed are , is the prediction value of the target sample before updating, represents the updated prediction value of the target sample, and represent the reconstructed values of the reference samples at the positions and coordinates, respectively, w1, w2, w3, w4, w5 and w6 are given constants, M1 and M2 are given positive integers.
В возможной реализации w1 + w2 = R, w3 + w4 = R или w5 + w6 + w7 = R, где R равно 2 в степени n, и n является неотрицательным целым числом.In a possible implementation, w1 + w2 = R, w3 + w4 = R, or w5 + w6 + w7 = R, where R is 2 to the power of n and n is a non-negative integer.
В возможной реализации модуль 1803 вычислений обновляет значение предсказания целевой выборки в соответствии со следующей формулой:In an exemplary implementation,
где координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляет собой значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки, , , и представляют восстановленные значения опорных выборок в координатах , , и , соответственно, w1, w2, w3, w4, w5, w6, w7, w8, w9, w10 и w11 являются заданными константами, M1, M2, M3 и M4 являются заданными положительными целыми числами.where the target sample coordinates are , the coordinates of the upper left sample of the image block to be processed are , is the prediction value of the target sample before updating, represents the updated prediction value of the target sample, , , and represent the restored values of the reference samples in coordinates , , and , respectively, w1, w2, w3, w4, w5, w6, w7, w8, w9, w10 and w11 are given constants, M1, M2, M3 and M4 are given positive integers.
В возможной реализации, w1 + w2 + w3 = S, w4 + w5 + w6 = S или w7 + w8 + w9 + w10 + w11 = S, где S равно 2 в степени n, n является целым неотрицательным числом.In a possible implementation, w1 + w2 + w3 = S, w4 + w5 + w6 = S, or w7 + w8 + w9 + w10 + w11 = S, where S is 2 to the power of n, n is a non-negative integer.
В возможной реализации модуль 1803 вычислений обновляет значение предсказания целевой выборки в соответствии со следующей формулой:In an exemplary implementation,
где координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляет собой значение предсказания целевой выборки до обновления, представляет обновленное значение предсказания целевой выборки, и представляют восстановленные значения опорных выборок на позициях и координат, соответственно, w1, w2 и w3 являются заданными константами, M1 и M2 являются заданными положительными целыми числами.where the target sample coordinates are , the coordinates of the upper left sample of the image block to be processed are , is the prediction value of the target sample before the update, represents the updated prediction value of the target sample, and represent the reconstructed values of the reference samples at the positions and coordinates, respectively, w1, w2 and w3 are given constants, M1 and M2 are given positive integers.
В возможной реализации w1 + w2 + w3 = R, где R равно 2 в степени n, и n является неотрицательным целым числом.In a possible implementation, w1 + w2 + w3 = R, where R is 2 to the power of n, and n is a non-negative integer.
В возможной реализации модуль 1803 вычислений обновляет значение предсказания целевой выборки в соответствии со следующей формулой:In an exemplary implementation,
где координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляет собой значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки, , , и представляют восстановленные значения опорных выборок на позициях , , и , соответственно, w1, w2, w3, w4 и w5 являются заданными константами, M1, M2, M3 и M4 являются заданными положительными целыми числами.where the target sample coordinates are , the coordinates of the upper left sample of the image block to be processed are , is the prediction value of the target sample before updating, represents the updated prediction value of the target sample, , , and represent the reconstructed values of the reference samples at the positions , , and , respectively, w1, w2, w3, w4 and w5 are given constants, M1, M2, M3 and M4 are given positive integers.
В возможной реализации w1 + w2 + w3 + w4 + w5 = S, где S равно 2 в степени n, и n является неотрицательным целым числом.In a possible implementation, w1 + w2 + w3 + w4 + w5 = S, where S is 2 to the power of n and n is a non-negative integer.
В возможной реализации один или несколько опорных выборок включают в себя один или несколько из следующих выборок: восстановленная выборка, которая имеет ту же горизонтальную координату, что и целевая выборка, и которая примыкает к верхней стороне блока изображения, подлежащего обработке, восстановленная выборка, которая имеет ту же вертикальную координату, что и целевая выборка, и которая находится рядом с левой стороной блока изображения, подлежащего обработке, верхняя правая восстановленная выборка блока изображения, подлежащего обработке, восстановленная выборка в левом нижнем углу блока изображения, подлежащего обработке, или восстановленная выборка в левом верхнем углу блока изображения, подлежащая обработке.In a possible implementation, one or more reference samples include one or more of the following samples: a reconstructed sample that has the same horizontal coordinate as the target sample and that is adjacent to the top side of the image block to be processed, a reconstructed sample that has the same vertical coordinate as the target sample and which is adjacent to the left side of the image block to be processed, the top right reconstructed sample of the image block to be processed, the reconstructed sample in the lower left corner of the image block to be processed, or the reconstructed sample in the left upper corner of the image block to be processed.
В возможной реализации модуль 1803 вычислений обновляет значение предсказания целевой выборки в соответствии со следующей формулой:In an exemplary implementation,
predQ (xP, yP) = (w1 * predP (xP, yP) + w2 * predP1 (xP, yP) + ((w1 + w2) / 2)) / (w1 + w2)predQ(xP, yP) = (w1 * predP(xP, yP) + w2 * predP1(xP, yP) + ((w1 + w2) / 2)) / (w1 + w2)
где predP1 (xP, yP) = (predV (xP, yP) + predH (xP, yP) + nTbW * nTbH) >> (Log2 (nTbW) + Log2 (nTbH) + 1), predV (xP, yP) = ((nTbH - 1 - yP) * p (xP, –1) + (yP + 1) * p (–1, nTbH)) << Log2 (nTbW), predH (xP, yP) = ((nTbW - 1 - xP) * p (–1, yP) + (xP + 1) * p (nTbW, –1)) << Log2 (nTbH), координаты целевой выборки равны (xP, yP), координаты верхней левой выборки блока изображения, подлежащего обработке, равны (0, 0), predP (xP, yP) представляет значение предсказания целевой выборки перед обновлением, predQ (xP, yP) представляет обновленное значение предсказания целевой выборки, p (xP, –1), p (–1, nTbH), p (–1, yP) и p (nTbW, –1) представляют восстановленные значения опорных выборок в координатах (xP, –1), (–1, nTbH), (–1, yP) и (nTbW, –1), соответственно, w1 и w2 являются заданными константами, nTbW и nTbH представляют ширину и высоту блока изображения, подлежащего обработке.where predP1 (xP, yP) = (predV (xP, yP) + predH (xP, yP) + nTbW * nTbH) >> (Log2 (nTbW) + Log2 (nTbH) + 1), predV (xP, yP) = ((nTbH - 1 - yP) * p (xP, –1) + (yP + 1) * p (–1, nTbH)) << Log2 (nTbW), predH (xP, yP) = ((nTbW - 1 - xP) * p (–1, yP) + (xP + 1) * p (nTbW, –1)) << Log2 (nTbH), target sample coordinates are (xP, yP), upper left sample coordinates of the image block, to be processed are (0, 0), predP(xP, yP) represents the prediction value of the target sample before updating, predQ(xP, yP) represents the updated prediction value of the target sample, p(xP, –1), p(–1, nTbH), p (–1, yP) and p (nTbW, –1) represent the reconstructed values of the reference samples in the coordinates (xP, –1), (–1, nTbH), (–1, yP) and (nTbW, – 1), respectively, w1 and w2 are given constants, nTbW and nTbH represent the width and height of the image block to be processed.
В возможной реализации значение предсказания целевой выборки обновляется согласно следующей формуле:In a possible implementation, the target sample prediction value is updated according to the following formula:
predQ (xP, yP) = (w1 * predP (xP, yP) + w2 * predV (xP, yP) + w3 * predH (xP, yP) + ((w1 + w2 + w3) / 2)) / (w1 + w2 + w3)predQ (xP, yP) = (w1 * predP (xP, yP) + w2 * predV (xP, yP) + w3 * predH (xP, yP) + ((w1 + w2 + w3) / 2)) / (w1 + w2 + w3)
где predV (xP, yP) = ((nTbH - 1 - yP) * p (xP, –1) + (yP + 1) * p (–1, nTbH) + nTbH / 2) >> Log2 (nTbH), predH (xP, yP) = ((nTbW - 1 - xP) * p (–1, yP) + (xP + 1) * p (nTbW, –1) + nTbW / 2) >> Log2 (nTbW), координаты целевой выборки равны (xP, yP), координаты верхней левой выборки блока изображения, подлежащего обработке, равны (0, 0), predP (xP, yP) представляет значение предсказания целевой выборки перед обновления, predQ (xP, yP) представляет обновленное значение предсказания целевой выборки, p (xP, –1), p (–1, nTbH), p (–1, yP) и p (nTbW, –1) представляют восстановленные значения опорных выборок в координатах (xP, –1), (–1, nTbH), (–1, yP) и (nTbW, –1), соответственно, w1 и w2 являются заданными константами, nTbW и nTbH представляют ширину и высоту блока изображения, подлежащего обработке.where predV (xP, yP) = ((nTbH - 1 - yP) * p (xP, –1) + (yP + 1) * p (–1, nTbH) + nTbH / 2) >> Log2 (nTbH), predH (xP, yP) = ((nTbW - 1 - xP) * p (-1, yP) + (xP + 1) * p (nTbW, -1) + nTbW / 2) >> Log2 (nTbW), coordinates of the target sample are (xP, yP), the coordinates of the upper left sample of the image block to be processed are (0, 0), predP (xP, yP) represents the prediction value of the target sample before updating, predQ (xP, yP) represents the updated prediction value target sample, p(xP, –1), p(–1, nTbH), p(–1, yP), and p(nTbW, –1) represent the reconstructed values of the reference samples in coordinates (xP, –1), (– 1, nTbH), (–1, yP) and (nTbW, –1), respectively, w1 and w2 are given constants, nTbW and nTbH represent the width and height of the image block to be processed.
В возможной реализации значение предсказания целевой выборки обновляется согласно следующей формуле:In a possible implementation, the target sample prediction value is updated according to the following formula:
predQ (xP, yP) = (((w1 * predP (xP, yP)) << (Log2 (nTbW) + Log2 (nTbH) + 1)) + w2 * predV (xP, yP) + w3 * predH (xP, yP) + (((w1 + w2 + w3) / 2) << (Log2 (nTbW) + Log2 (nTbH) + 1))) / (((w1 + w2 + w3) << (Log2 (nTbW) + Log2 (nTbH) + 1)))predQ (xP, yP) = (((w1 * predP (xP, yP)) << (Log2 (nTbW) + Log2 (nTbH) + 1)) + w2 * predV (xP, yP) + w3 * predH (xP , yP) + (((w1 + w2 + w3) / 2) << (Log2 (nTbW) + Log2 (nTbH) + 1))) / (((w1 + w2 + w3) << (Log2 (nTbW) + Log2 (nTbH) + 1)))
где predV (xP, yP) = ((nTbH - 1 - yP) * p (xP, –1) + (yP + 1) * p (–1, nTbH)) << Log2 (nTbW), predH (xP, yP) = ((nTbW - 1 - xP) * p (–1, yP) + (xP + 1) * p (nTbW, –1)) << Log2 (nTbH), координаты целевой выборки равны (xP, yP), координаты верхней левой выборки блока изображения, подлежащего обработке, равны (0, 0), predP (xP, yP) представляет значение предсказания целевой выборки до обновления, predQ (xP, yP) представляет обновленное значение предсказания целевой выборки, p (xP, –1), p (–1, nTbH), p (–1, yP) и p (nTbW, –1) представляют восстановленные значения опорных выборок на позициях (xP, –1), (–1, nTbH), (–1, yP) и (nTbW, –1) координат, соответственно, w1 и w2 являются заданными константами, nTbW и nTbH представляют ширину и высоту блока изображения, подлежащего обработке.where predV (xP, yP) = ((nTbH - 1 - yP) * p (xP, –1) + (yP + 1) * p (–1, nTbH)) << Log2 (nTbW), predH (xP, yP) = ((nTbW - 1 - xP) * p (–1, yP) + (xP + 1) * p (nTbW, –1)) << Log2 (nTbH), target sample coordinates are (xP, yP) , the coordinates of the upper left sample of the image block to be processed are (0, 0), predP(xP, yP) represents the prediction value of the target sample before updating, predQ(xP, yP) represents the updated prediction value of the target sample, p(xP, - 1), p (–1, nTbH), p (–1, yP), and p (nTbW, –1) represent the reconstructed values of the reference samples at positions (xP, –1), (–1, nTbH), (–1 , yP) and (nTbW, –1) coordinates, respectively, w1 and w2 are given constants, nTbW and nTbH represent the width and height of the image block to be processed.
В возможной реализации модуль 1803 вычислений обновляет значение предсказания целевой выборки в соответствии со следующей формулой:In an exemplary implementation,
predQ (xP, yP) = (w1 * predP (xP, yP) + w2 * predP1 (xP, yP) + ((w1 + w2) / 2)) / (w1 + w2)predQ(xP, yP) = (w1 * predP(xP, yP) + w2 * predP1(xP, yP) + ((w1 + w2) / 2)) / (w1 + w2)
где where
координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляет значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки, , , и представляют восстановленные значения опорных выборок на позициях , , и , соответственно, w1 и w2 являются заданными константами, nTbW и nTbH представляют ширину и высоту блока изображения, подлежащего обработке.target sample coordinates are , the coordinates of the upper left sample of the image block to be processed are , represents the prediction value of the target sample before the update, represents the updated prediction value of the target sample, , , and represent the reconstructed values of the reference samples at the positions , , and , respectively, w1 and w2 are given constants, nTbW and nTbH represent the width and height of the image block to be processed.
В возможной реализации сумма w1 и w2 равна 2 в степени n, и n является неотрицательным целым числом.In a possible implementation, the sum of w1 and w2 is 2 to the power of n, and n is a non-negative integer.
В возможной реализации модуль 1803 вычислений обновляет значение предсказания целевой выборки в соответствии со следующей формулой:In an exemplary implementation,
где where
, , , координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляет значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки, , и представляют восстановленные значения опорных выборок на позициях , и , соответственно, nTbW и nTbH представляют ширину и высоту блока изображения, подлежащего обработке, clip1Cmp представляет операцию отсечения. , , , the coordinates of the target sample are , the coordinates of the upper left sample of the image block to be processed are , represents the prediction value of the target sample before the update, represents the updated prediction value of the target sample, , and represent the reconstructed values of the reference samples at the positions , and , respectively, nTbW and nTbH represent the width and height of the image block to be processed, clip1Cmp represents the clipping operation.
В возможной реализации модуль 1803 вычисления обновляет значение предсказания целевой выборки в соответствии со следующей формулой:In an exemplary implementation,
Где , координаты целевой выборки равны , координаты верхней левой выборки блока изображения, подлежащего обработке, равны , представляет значение предсказания целевой выборки перед обновлением, представляет обновленное значение предсказания целевой выборки, и представляют восстановленные значения опорных выборок в координатах и , соответственно, nTbW и nTbH представляют ширину и высоту блока изображения, подлежащего обработке, clip1Cmp представляет операцию отсечения.Where , target sample coordinates are , the coordinates of the upper left sample of the image block to be processed are , represents the prediction value of the target sample before the update, represents the updated prediction value of the target sample, and represent the restored values of the reference samples in coordinates and , respectively, nTbW and nTbH represent the width and height of the image block to be processed, clip1Cmp represents the clipping operation.
В возможной реализации модуль 1803 вычислений дополнительно выполнен с возможностью: когда восстановленное значение опорной выборки недоступно, определять в заданном порядке доступность выборок, смежных с верхней стороной и левой стороной блока изображения, подлежащего обработке, до тех пор, пока не будет получено заданное количество доступных опорных выборок; и выполнить вычисление взвешивания восстановленного значения доступной опорной выборки и предсказанного значения целевой выборки.In an exemplary implementation, the
В возможной реализации модуль 1803 вычислений дополнительно выполнен с возможностью: когда опорная выборка расположена над блоком изображения, подлежащий обработке, выполнять вычисление взвешивания восстановленного значения опорной выборки и восстановленных значений левой соседней выборки и правой соседней выборки опорной выборки; когда опорная выборка расположена слева от блока изображения, подлежащего обработке, выполнять вычисление взвешивания для восстановленного значения опорной выборки и восстановленных значений верхней соседней выборки и нижней соседней выборки опорной выборки; и обновить восстановленное значение опорной выборки, используя результат вычисления взвешивания.In an exemplary implementation, the
В возможной реализации модуль 1803 вычисления дополнительно выполнен с возможностью первоначального обновления информации движения с использованием первого заданного алгоритма. Соответственно, модуль 1802 компенсации специально выполнен с возможностью выполнять компенсацию движения над блоком изображения, подлежащего обработке, на основании первоначально обновленной информации движения.In an exemplary implementation, the
В возможной реализации модуль 1803 вычисления дополнительно выполнен с возможностью предварительно обновлять блок предсказания с использованием второго заданного алгоритма. Соответственно, модуль 1803 вычисления специально выполнен с возможностью выполнять вычисление взвешивания одного или нескольких восстановленных значений одной или нескольких опорных выборок и предварительно обновленного значения предсказания целевой выборки.In an exemplary implementation,
В возможной реализации модуль 1803 вычисления дополнительно выполнен с возможностью обновлять значение предсказания целевой выборки с использованием второго заданного алгоритма.In an exemplary implementation,
В возможной реализации модуль 1801 синтаксического анализа дополнительно выполнен с возможностью: выполнять синтаксический анализ битового потока для получения режима предсказания, соответствующего блоку изображения, подлежащего обработке; и определять, что режим предсказания является режимом слияния (merge) и/или усовершенствованным режимом внешнего предсказания вектора движения (inter-AMVP).In an exemplary implementation, the parsing module 1801 is further configured to: parse the bitstream to obtain a prediction mode corresponding to the image block to be processed; and determine that the prediction mode is a merge mode and/or an advanced inter-motion vector prediction (inter-AMVP) mode.
В возможной реализации модуль 1801 синтаксического анализа дополнительно выполнен с возможностью: выполнять синтаксический анализ битового потока для получения информации указания определения обновления блока изображения, подлежащего обработке; и определять, что информация указания определения обновления используется для указания обновления блока предсказания блока изображения, подлежащего обработке.In an exemplary implementation, the parsing module 1801 is further configured to: perform parsing of the bitstream to obtain update definition information of the image block to be processed; and determining that the update determination indication information is used to indicate an update of the prediction block of the image block to be processed.
В возможной реализации модуль 1803 вычисления дополнительно выполнен с возможностью: получать заданную информацию определения обновления блока изображения, подлежащего обработке; и определять, что информация указания определения обновления используется для указания обновления блока предсказания блока изображения, подлежащего обработке.In an exemplary implementation, the
Фиг. 19 является схемой устройства 1900 внешнего предсказания согласно варианту осуществления настоящего изобретения. В частности, устройство включает в себя процессор 1901 и память 1902, которая соединена с процессором. Процессор 1901 выполнен с возможностью выполнять вариант осуществления и возможных реализаций, показанных на фиг. 13.Fig. 19 is a diagram of an inter prediction device 1900 according to an embodiment of the present invention. In particular, the device includes a processor 1901 and a memory 1902 that is coupled to the processor. Processor 1901 is configured to execute the embodiment and possible implementations shown in FIG. 13.
Процессор 1901 может быть центральным процессором (Central Processing Unit, CPU), процессором общего назначения, процессором цифровых сигналов (Digital Signal Processor, DSP), ASIC, FPGA или другим программируемым логическим устройством, транзисторным логическим устройством, аппаратным компонентом или любой их комбинацией. Процессор 1901 может реализовывать или выполнять различные примерные логические блоки, модули и схемы, описанные со ссылкой на контент, раскрытый в настоящем изобретении. В качестве альтернативы процессор может быть комбинацией процессоров, реализующих вычислительную функцию, например, комбинацией одного или нескольких микропроцессоров или комбинацией DSP и микропроцессора.Processor 1901 may be a Central Processing Unit (CPU), general purpose processor, Digital Signal Processor (DSP), ASIC, FPGA, or other programmable logic device, transistorized logic device, hardware component, or any combination thereof. The processor 1901 may implement or execute various exemplary logical blocks, modules, and circuits described with reference to the content disclosed in the present invention. Alternatively, the processor may be a combination of processors that implement a computing function, such as a combination of one or more microprocessors, or a combination of a DSP and a microprocessor.
Все связанное содержимое каждого сценария в вышеупомянутом варианте осуществления способа может быть процитировано в описаниях функций соответствующих функциональных модулей. Подробности здесь снова не описываются.All related content of each script in the above method embodiment can be cited in the function descriptions of the respective functional modules. The details are again not described here.
Хотя конкретные аспекты настоящего изобретения были описаны со ссылкой на видеокодер 100 и видеодекодер 200, следует понимать, что технологии настоящего изобретения могут использоваться многими другими модулями кодирования и/или декодирования видео, процессорами, блоки обработки и аппаратные блоки кодирования и т.п., например, кодеры/декодеры (CODEC). Дополнительно, следует понимать, что этапы, показанные и описанные на фиг. 13, представлены просто как возможные реализации. Другими словами, этапы, показанные в возможных реализациях на фиг. 13, не обязательно выполняются в порядке, показанном на фиг. 13, и может быть выполнено меньше дополнительных или альтернативных этапов.While specific aspects of the present invention have been described with reference to
Кроме того, следует понимать, что в зависимости от возможных реализаций конкретные действия или события в любом из способов, описанных в этой спецификации, могут выполняться в различных последовательностях, может быть добавлено действие или событие, или действия или события могут быть объединенными или опущенными (например, не все описанные действия или события необходимы для реализации способа). Кроме того, в конкретной возможной реализации действия или события могут (например) подвергаться многопоточной обработке или обработке прерываний или могут обрабатываться множеством процессоров одновременно, а не последовательно. Кроме того, хотя конкретные аспекты настоящего изобретения описаны как выполняемые одним модулем или устройством для ясности, следует понимать, что технологии настоящего изобретения могут выполняться комбинацией модулей или модулей, ассоциированных с видеодекодером.Furthermore, it should be understood that, depending on possible implementations, specific actions or events in any of the ways described in this specification may be performed in different sequences, an action or event may be added, or actions or events may be combined or omitted (e.g. , not all described actions or events are necessary to implement the method). In addition, in a particular possible implementation, actions or events may (for example) be threaded or interrupted, or may be processed by multiple processors simultaneously rather than sequentially. Furthermore, while specific aspects of the present invention are described as being performed by a single module or device for clarity, it should be understood that the technologies of the present invention may be performed by a combination of modules or modules associated with a video decoder.
В одной или нескольких возможных реализациях описанные функции могут быть реализованы с использованием аппаратных средств, программного обеспечения, встроенного программного обеспечения или любой их комбинации. Если функции реализуются с использованием программного обеспечения, функции могут храниться на машиночитаемом носителе в виде одной или нескольких инструкций или кода или передаваться через машиночитаемый носитель и выполняться аппаратным блоком обработки. Машиночитаемый носитель может включать в себя машиночитаемый носитель данных или среду связи. Машиночитаемый носитель данных соответствует материальному носителю, например, носителю данных. Среда связи включает в себя любую среду, которая облегчает передачу компьютерной программы (например) из одного места в другое в соответствии с протоколом связи.In one or more possible implementations, the described functions may be implemented using hardware, software, firmware, or any combination thereof. If the functions are implemented using software, the functions may be stored on a computer-readable medium as one or more instructions or code, or transmitted over a computer-readable medium and executed by a hardware processing unit. The computer-readable medium may include a computer-readable storage medium or communication medium. A computer-readable storage medium corresponds to a tangible medium, such as a storage medium. A communication medium includes any medium that facilitates the transfer of a computer program (for example) from one place to another in accordance with a communication protocol.
Таким образом, машиночитаемый носитель может соответствовать, например, (1) постоянному материальному машиночитаемому носителю данных или (2) среде связи, такой как сигнал или носитель. Носитель данных может быть любым доступным носителем, к которому может получить доступ один или несколько компьютеров или один или несколько процессоров для извлечения инструкций, кода и/или структур данных для реализации технологий, описанных в настоящем изобретении. Компьютерный программный продукт может включать в себя машиночитаемый носитель.Thus, a computer-readable medium may correspond to, for example, (1) a tangible computer-readable storage medium or (2) a communication medium such as a signal or a medium. A storage medium may be any available medium that can be accessed by one or more computers or one or more processors to retrieve instructions, code, and/or data structures for implementing the technologies described in the present invention. The computer program product may include a computer readable medium.
В качестве возможной реализации, а не ограничения, машиночитаемый носитель данных может включать в себя RAM, ROM, EEPROM, CD-ROM или другое устройство хранения на оптическом диске, устройство хранения на магнитном диске или другое магнитное запоминающее устройство, флэш-память или любой другой носитель, который можно использовать для хранения необходимого кода в форме инструкции или структуры данных, и к которому может получить доступ компьютер. Точно так же любое соединение может быть соответственно названо машиночитаемым носителем. Например, если инструкция передается с веб-сайта, сервера или другого удаленного источника через коаксиальный кабель, оптоволоконный кабель, витую пару, цифровую абонентскую линию (DSL) или беспроводные технологии, такие как инфракрасный порт, радио и микроволновый сигнал, коаксиальный кабель, оптоволоконный кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасный порт, радио и микроволновый сигнал используются в качестве среды.As a possible implementation, and not limitation, a computer-readable storage medium may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage device, magnetic disk storage device or other magnetic storage device, flash memory, or any other a medium that can be used to store the required code in the form of an instruction or data structure and that can be accessed by a computer. Similarly, any connection can be appropriately referred to as a computer-readable medium. For example, if an instruction is transmitted from a website, server, or other remote source via coaxial cable, fiber optic cable, twisted pair cable, digital subscriber line (DSL), or wireless technologies such as infrared, radio, microwave, coaxial cable, fiber optic cable , twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are used as the medium.
Однако следует понимать, что машиночитаемый носитель данных и носитель данных могут не включать в себя соединение, носитель, сигнал или другой временный носитель, но альтернативно означают постоянные материальные носители данных. Магнитный диск и оптический диск, используемые в этой спецификации, включают в себя компакт-диск (CD), лазерный диск, оптический диск, универсальный цифровой диск (DVD), гибкий диск и диск Blu-ray. Магнитный диск обычно воспроизводит данные магнитным способом, оптический диск воспроизводит данные оптически с помощью лазера. Комбинация вышеупомянутого магнитного диска и оптического диска также должна рассматриваться в качестве машиночитаемого носителя.However, it should be understood that a computer-readable storage medium and a storage medium may not include a connection, a medium, a signal, or other temporary medium, but alternatively means a permanent tangible storage medium. The magnetic disc and optical disc used in this specification include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disc and Blu-ray disc. A magnetic disk usually reproduces data magnetically, an optical disk reproduces data optically using a laser. The combination of the aforementioned magnetic disk and optical disk should also be considered as a computer-readable medium.
Инструкция может выполняться одним или несколькими процессорами, такими как один или несколько процессоров цифровых сигналов (DSP), микропроцессоры общего назначения, специализированные интегральные схемы (ASIC), программируемые вентильные матрицы (FPGA) или другие эквиваленты. интегральные или дискретные логические схемы. Следовательно, термин «процессор», используемый в этой спецификации, может быть любой из вышеупомянутых структур или другой структурой, которая используется для реализации технологий, описанных в этой спецификации. Дополнительно, в некоторых аспектах функции, описанные в этой спецификации, могут быть предоставлены в рамках выделенных аппаратных и/или программных модулей, выполненных с возможностью кодировать и декодировать или могут быть включены в комбинированный кодек. Кроме того, все технологии могут быть реализованы в одной или нескольких схемах или логических элементах.An instruction may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or other equivalents. integrated or discrete logic circuits. Therefore, the term "processor" as used in this specification may be any of the above structures, or another structure that is used to implement the technologies described in this specification. Additionally, in some aspects, the functions described in this specification may be provided within dedicated hardware and/or software modules capable of encoding and decoding, or may be included in a combined codec. In addition, all technologies can be implemented in one or more circuits or logic elements.
Технологии в настоящем изобретении могут быть реализованы в различных устройствах или устройствах, включающие в себя беспроводной мобильный телефон, интегральную схему (IC) или набор IC (например, набор микросхем). В настоящем изобретении описаны различные компоненты, модули или блоки, чтобы подчеркнуть функциональные аспекты устройства, выполненного с возможностью выполнять раскрытые технологии, но не обязательно, реализованы разными аппаратными блоками. Точнее, как описано выше, различные блоки могут быть объединены в аппаратный блок кодека или обеспечены взаимодействующими аппаратными блоками (включающие в себя один или несколько процессоров, описанных выше) в комбинации с соответствующим набором программного обеспечения и/или встроенного программного обеспечения.The technologies in the present invention may be implemented in various devices or devices including a wireless mobile phone, an integrated circuit (IC), or an IC stack (eg, a chipset). The present invention describes various components, modules, or blocks to emphasize the functional aspects of a device capable of performing the disclosed technologies, but need not be implemented in different hardware blocks. More specifically, as described above, the various blocks may be combined into a codec hardware block or provided with cooperating hardware blocks (including one or more of the processors described above) in combination with an appropriate set of software and/or firmware.
Приведенные выше описания являются просто конкретными реализациями настоящего изобретения, но не предназначены для ограничения объема защиты настоящего изобретения. Любое изменение или замена, легко обнаруживаемые специалистом в данной области техники в рамках технического объема, раскрытого в настоящем изобретении, должны находиться в рамках объема защиты настоящего изобретения. Следовательно, объем защиты настоящего изобретения должен соответствовать объему защиты формулы изобретения.The above descriptions are merely specific implementations of the present invention, but are not intended to limit the protection scope of the present invention. Any change or substitution readily detectable by one of ordinary skill in the art within the technical scope disclosed in the present invention should be within the protection scope of the present invention. Therefore, the scope of protection of the present invention should be consistent with the scope of protection of the claims.
Claims (74)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811109950.2 | 2018-09-21 | ||
CNPCT/CN2018/109233 | 2018-10-01 | ||
CN201811303754.9 | 2018-11-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2021105574A RU2021105574A (en) | 2022-09-05 |
RU2785725C2 true RU2785725C2 (en) | 2022-12-12 |
Family
ID=
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150104116A1 (en) * | 2012-03-05 | 2015-04-16 | Thomason Licensing | Method and apparatus for performing super-resolution |
RU2595592C2 (en) * | 2010-12-28 | 2016-08-27 | Сан Пэтент Траст | Moving image decoding method, moving image encoding method, moving image decoding device, moving image encoding device and apparatus for encoding and decoding |
WO2017065509A2 (en) * | 2015-10-13 | 2017-04-20 | 엘지전자 주식회사 | Image decoding method and apparatus in image coding system |
WO2017075804A1 (en) * | 2015-11-06 | 2017-05-11 | Microsoft Technology Licensing, Llc | Flexible reference picture management for video encoding and decoding |
US20180249156A1 (en) * | 2015-09-10 | 2018-08-30 | Lg Electronics Inc. | Method for processing image based on joint inter-intra prediction mode and apparatus therefor |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2595592C2 (en) * | 2010-12-28 | 2016-08-27 | Сан Пэтент Траст | Moving image decoding method, moving image encoding method, moving image decoding device, moving image encoding device and apparatus for encoding and decoding |
US20150104116A1 (en) * | 2012-03-05 | 2015-04-16 | Thomason Licensing | Method and apparatus for performing super-resolution |
US20180249156A1 (en) * | 2015-09-10 | 2018-08-30 | Lg Electronics Inc. | Method for processing image based on joint inter-intra prediction mode and apparatus therefor |
WO2017065509A2 (en) * | 2015-10-13 | 2017-04-20 | 엘지전자 주식회사 | Image decoding method and apparatus in image coding system |
WO2017075804A1 (en) * | 2015-11-06 | 2017-05-11 | Microsoft Technology Licensing, Llc | Flexible reference picture management for video encoding and decoding |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11356693B2 (en) | Motion vector coding for video coding | |
US10595035B2 (en) | Constraining motion vector information derived by decoder-side motion vector derivation | |
JP7551798B2 (en) | Inter prediction method and apparatus | |
US10979732B2 (en) | Adaptive motion vector precision for video coding | |
TWI761415B (en) | Motion vector reconstructions for bi-directional optical flow (bio) | |
RU2719296C2 (en) | Determining the motion information output mode during video coding | |
KR20200058445A (en) | Low complexity design for FRUC | |
WO2019204297A1 (en) | Limitation of the mvp derivation based on decoder-side motion vector derivation | |
CN112437299B (en) | Inter-frame prediction method, device and storage medium | |
WO2020057648A1 (en) | Inter-frame prediction method and device | |
RU2785725C2 (en) | Device and method for external prediction |