RU2809582C2 - Method and device for encoding and decoding video signals - Google Patents
Method and device for encoding and decoding video signals Download PDFInfo
- Publication number
- RU2809582C2 RU2809582C2 RU2023121992A RU2023121992A RU2809582C2 RU 2809582 C2 RU2809582 C2 RU 2809582C2 RU 2023121992 A RU2023121992 A RU 2023121992A RU 2023121992 A RU2023121992 A RU 2023121992A RU 2809582 C2 RU2809582 C2 RU 2809582C2
- Authority
- RU
- Russia
- Prior art keywords
- current block
- candidate
- vector
- block
- merge
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 145
- 239000013598 vector Substances 0.000 claims abstract description 595
- 230000033001 locomotion Effects 0.000 claims abstract description 514
- 238000006073 displacement reaction Methods 0.000 claims description 85
- 238000004590 computer program Methods 0.000 claims 2
- 230000000694 effects Effects 0.000 abstract description 5
- 239000000126 substance Substances 0.000 abstract 1
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 142
- 230000004927 fusion Effects 0.000 description 105
- 239000000523 sample Substances 0.000 description 61
- 238000000638 solvent extraction Methods 0.000 description 60
- 238000005192 partition Methods 0.000 description 55
- 239000013074 reference sample Substances 0.000 description 51
- 238000013139 quantization Methods 0.000 description 26
- 230000009466 transformation Effects 0.000 description 23
- 238000001914 filtration Methods 0.000 description 21
- 238000006243 chemical reaction Methods 0.000 description 17
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 12
- 230000002457 bidirectional effect Effects 0.000 description 11
- 230000002123 temporal effect Effects 0.000 description 11
- 230000003044 adaptive effect Effects 0.000 description 8
- 238000012937 correction Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000007774 longterm Effects 0.000 description 7
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000004873 anchoring Methods 0.000 description 3
- 238000007499 fusion processing Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000007670 refining Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 101150052795 cbh-1 gene Proteins 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 229940050561 matrix product Drugs 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Abstract
Description
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕFIELD OF TECHNOLOGY TO WHICH THE INVENTION RELATES
[0001] Настоящее изобретение относится к способу и устройству для кодирования и декодирования видеосигналов.[0001] The present invention relates to a method and apparatus for encoding and decoding video signals.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯPREREQUISITES FOR CREATION OF THE INVENTION
[0002] По мере увеличения дисплейных панелей требуется все больше видеоуслуг более высокого качества. Самой большой проблемой видеоуслуг высокой четкости является значительное увеличение объема данных, и для решения этой проблемы активно проводятся исследования по улучшению степени сжатия видео. В качестве иллюстративного примера группа экспертов по кинематографии (MPEG) и группа экспертов по видеокодированию (VCEG) в рамках сектора по стандартизации телекоммуникаций в составе Международного союза электросвязи (ITU-T) сформировали объединенную команду по видеокодированию (JCT-VC) в 2009 году. JCT-VC предложила высокоэффективное видеокодирование (HEVC), которое представляет собой стандарт сжатия видео, имеющий эффективность сжатия примерно вдвое выше, чем эффективность сжатия H.264/AVC, и он одобрен в качестве стандарта 25 января 2013 г. С быстрым развитием видеоуслуг высокой четкости эффективность HEVC постепенно обнаруживает свои ограничения.[0002] As display panels become larger, more and higher quality video services are required. The biggest challenge of high-definition video services is the significant increase in data volume, and to address this issue, research is being actively conducted to improve video compression rates. As an illustrative example, the Motion Picture Experts Group (MPEG) and the Video Coding Experts Group (VCEG) within the telecommunications standards sector of the International Telecommunication Union (ITU-T) formed the Joint Video Coding Team (JCT-VC) in 2009. JCT-VC proposed High Efficiency Video Coding (HEVC), which is a video compression standard that has a compression efficiency approximately twice that of H.264/AVC, and it was approved as a standard on January 25, 2013. With the rapid development of high-definition video services The effectiveness of HEVC is gradually revealing its limitations.
СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION
[0003] Целью настоящего изобретения является предоставление способа уточнения вектора движения, полученного из кандидата на слияние, на основании вектора смещения при кодировании/декодировании видеосигнала и устройства для выполнения способа.[0003] An object of the present invention is to provide a method for refining a motion vector obtained from a fusion candidate based on an offset vector when encoding/decoding a video signal and an apparatus for executing the method.
[0004] Другой целью настоящего изобретения является предоставление способа передачи вектора смещения при кодировании/декодировании видеосигнала и устройства для выполнения способа.[0004] Another object of the present invention is to provide a method for transmitting an offset vector when encoding/decoding a video signal and an apparatus for performing the method.
[0005] Технические задачи, которые должны быть решены в настоящем изобретении, не ограничиваются техническими задачами, упомянутыми выше, и неупомянутые другие задачи могут быть ясно поняты специалистами в данной области техники из следующего описания.[0005] The technical problems to be solved by the present invention are not limited to the technical problems mentioned above, and unmentioned other objects can be clearly understood by those skilled in the art from the following description.
[0006] Способ декодирования/кодирования видеосигнала согласно настоящему изобретению включает следующие этапы: определение того, применяется ли способ кодирования разницы векторов движения при слиянии к текущему блоку; генерирование списка кандидатов на слияние для текущего блока; указание кандидата на слияние для текущего блока на основании списка кандидатов на слияние; и получение вектора движения для текущего блока на основании кандидата на слияние. В этом случае, когда способ кодирования разницы векторов движения при слиянии применяется к текущему блоку, вектор движения текущего блока получают путем добавления вектора смещения к вектору движения кандидата на слияние, когда максимальное количество кандидатов на слияние, которое может содержать список кандидатов на слияние, является множественным, кандидата на слияние текущего блока выбирают на основании информации об индексах, декодированной из битового потока, указывающей любого из кандидатов на слияние, и когда максимальное количество равно 1, кандидата на слияние определяют без декодирования информации об индексах.[0006] A video signal decoding/encoding method according to the present invention includes the following steps: determining whether a merging motion vector difference encoding method is applied to the current block; generating a list of merge candidates for the current block; indicating a merge candidate for the current block based on the list of merge candidates; and obtaining a motion vector for the current block based on the merge candidate. In this case, when the merge motion vector difference encoding method is applied to the current block, the motion vector of the current block is obtained by adding an offset vector to the motion vector of the merge candidate when the maximum number of merge candidates that the merge candidate list can contain is multiple , the merge candidate of the current block is selected based on the index information decoded from the bitstream indicating any of the merge candidates, and when the maximum number is 1, the merge candidate is determined without decoding the index information.
[0007] В способе кодирования и декодирования видеосигналов согласно настоящему изобретению модуль вектора смещения может быть определен на основании первой информации об индексах, указывающей любого из кандидатов на модуль движения.[0007] In the video signal encoding and decoding method of the present invention, a displacement vector magnitude can be determined based on the first index information indicating any of the motion module candidates.
[0008] В способе кодирования и декодирования видеосигналов согласно настоящему изобретению по меньшей мере одно из максимального значения и минимального значения кандидатов на модуль движения может устанавливаться по-другому согласно значению флага, указывающего числовые значения кандидатов на модуль движения.[0008] In the method of encoding and decoding video signals according to the present invention, at least one of the maximum value and minimum value of the motion module candidates may be set differently according to the value of a flag indicating the numerical values of the motion module candidates.
[0009] В способе кодирования и декодирования видеосигналов согласно настоящему изобретению флаг может передаваться на уровне изображения.[0009] In the method for encoding and decoding video signals according to the present invention, the flag may be transmitted at the image level.
[0010] В способе кодирования и декодирования видеосигналов согласно настоящему изобретению по меньшей мере одно из максимального значения и минимального значения кандидатов на модуль движения может быть установлено по-другому согласно точности вектора движения для текущего блока.[0010] In the method of encoding and decoding video signals according to the present invention, at least one of the maximum value and minimum value of motion module candidates can be set differently according to the accuracy of the motion vector for the current block.
[0011] В способе кодирования и декодирования видеосигналов согласно настоящему изобретению модуль вектора смещения может быть получен путем применения операции сдвига к значению, указанному кандидатом на модуль движения, указанным первой информацией об индексах.[0011] In the video signal encoding and decoding method of the present invention, the displacement vector modulus can be obtained by applying a shift operation to the value indicated by the motion modulus candidate indicated by the first index information.
[0012] В способе кодирования и декодирования видеосигналов согласно настоящему изобретению направление вектора смещения может быть определено на основании второй информации об индексах, указывающей любого из кандидатов на направление вектора.[0012] In the method of encoding and decoding video signals according to the present invention, the direction of the offset vector can be determined based on the second index information indicating any of the vector direction candidates.
[0013] Признаки, кратко изложенные выше в отношении настоящего изобретения, являются просто иллюстративными аспектами подробного описания настоящего изобретения, которые будут описаны ниже, и не ограничивают объем настоящего изобретения.[0013] The features summarized above in relation to the present invention are merely illustrative aspects of the detailed description of the present invention, which will be described below, and do not limit the scope of the present invention.
[0014] Согласно настоящему изобретению эффективность предсказания, осуществляемого между изображениями, может быть повышена за счет уточнения вектора движения кандидата на слияние на основании вектора смещения.[0014] According to the present invention, the efficiency of prediction performed between images can be improved by refining the motion vector of a fusion candidate based on the displacement vector.
[0015] Согласно настоящему изобретению эффективность предсказания, осуществляемого между изображениями, может быть повышена за счет адаптивного определения модуля и направления вектора смещения.[0015] According to the present invention, the efficiency of prediction performed between images can be improved by adaptively determining the magnitude and direction of the displacement vector.
[0016] Эффекты, которые могут быть получены из настоящего изобретения, не ограничены упомянутыми выше эффектами, и неупомянутые другие эффекты могут быть ясно поняты специалистами в данной области техники из следующего описания.[0016] The effects that can be obtained from the present invention are not limited to the effects mentioned above, and other effects not mentioned can be clearly understood by those skilled in the art from the following description.
КРАТКОЕ ОПИСАНИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВBRIEF DESCRIPTION OF GRAPHIC MATERIALS
[0017] На фиг. 1 представлена структурная схема, показывающая видеокодер согласно одному варианту осуществления настоящего изобретения.[0017] In FIG. 1 is a block diagram showing a video encoder according to one embodiment of the present invention.
[0018] На фиг. 2 представлена структурная схема, показывающая видеодекодер согласно одному варианту осуществления настоящего изобретения.[0018] In FIG. 2 is a block diagram showing a video decoder according to one embodiment of the present invention.
[0019] На фиг. 3 представлен вид, показывающий базовый элемент кодового дерева согласно одному варианту осуществления настоящего изобретения.[0019] In FIG. 3 is a view showing a code tree base element according to one embodiment of the present invention.
[0020] На фиг. 4 представлен вид, показывающий различные типы разбиения блока кодирования.[0020] In FIG. 4 is a view showing various types of partitioning of a coding block.
[0021] На фиг. 5 представлен вид, показывающий схему разбиения элемента кодового дерева.[0021] In FIG. 5 is a view showing a code tree element partitioning diagram.
[0022] На фиг. 6 представлен вид, показывающий формы базовых элементов данных.[0022] In FIG. 6 is a view showing shapes of basic data items.
[0023] На фиг. 7 и 8 представлены виды, показывающие примеры разбиения блока кодирования на множество подблоков.[0023] In FIG. 7 and 8 are views showing examples of dividing a coding block into a plurality of sub-blocks.
[0024] На фиг. 9 представлена блок-схема, изображающая способ предсказания, осуществляемого между изображениями, согласно одному варианту осуществления настоящего изобретения.[0024] In FIG. 9 is a flowchart illustrating an inter-image prediction method according to one embodiment of the present invention.
[0025] На фиг. 10 представлен вид, показывающий нелинейные движения объекта.[0025] In FIG. 10 is a view showing non-linear movements of an object.
[0026] На фиг. 11 представлена блок-схема, изображающая способ предсказания, осуществляемого между изображениями, на основании аффинного движения согласно одному варианту осуществления настоящего изобретения.[0026] In FIG. 11 is a flowchart illustrating a method for inter-image prediction based on affine motion according to one embodiment of the present invention.
[0027] На фиг. 12 представлен вид, показывающий пример аффинных исходных векторов каждой модели аффинного движения.[0027] In FIG. 12 is a view showing an example of affine source vectors of each affine motion model.
[0028] На фиг. 13 представлен вид, показывающий пример аффинных векторов подблоков в 4-параметрической модели движения.[0028] In FIG. 13 is a view showing an example of sub-block affine vectors in a 4-parameter motion model.
[0029] На фиг. 14 представлена блок-схема, изображающая процесс получения информации о движении текущего блока с использованием режима слияния.[0029] In FIG. 14 is a flowchart showing the process of obtaining movement information of the current block using the merging mode.
[0030] На фиг. 15 представлен вид, показывающий пример кандидатных блоков, используемых для получения кандидата на слияние.[0030] In FIG. 15 is a view showing an example of candidate blocks used to obtain a merge candidate.
[0031] На фиг. 16 представлен вид, показывающий положения опорных отсчетов.[0031] In FIG. 16 is a view showing positions of reference samples.
[0032] На фиг. 17 представлен вид, показывающий пример кандидатных блоков, используемых для получения кандидата на слияние.[0032] In FIG. 17 is a view showing an example of candidate blocks used to obtain a merge candidate.
[0033] На фиг. 18 представлен вид, показывающий пример, в котором положение опорного отсчета изменено.[0033] In FIG. 18 is a view showing an example in which the position of the reference count is changed.
[0034] На фиг. 19 представлен вид, показывающий пример, в котором положение опорного отсчета изменено.[0034] In FIG. 19 is a view showing an example in which the position of the reference count is changed.
[0035] На фиг. 20 представлена блок-схема, изображающая процесс обновления списка информации о движении между участками.[0035] In FIG. 20 is a flowchart showing the process of updating the inter-section traffic information list.
[0036] На фиг. 21 представлен вид, показывающий вариант осуществления обновления списка кандидатов на слияние между участками.[0036] In FIG. 21 is a view showing an embodiment of updating a cross-site merge candidate list.
[0037] На фиг. 22 представлен вид, показывающий пример, в котором индекс ранее сохраненного кандидата на слияние между участками обновлен.[0037] In FIG. 22 is a view showing an example in which the index of a previously stored inter-site merge candidate is updated.
[0038] На фиг. 23 представлен вид, показывающий положение иллюстративного подблока.[0038] In FIG. 23 is a view showing the position of an illustrative sub-block.
[0039] На фиг. 24 представлен вид, показывающий пример, в котором список информации о движении между участками генерируется для каждого режима предсказания, осуществляемого между изображениями.[0039] In FIG. 24 is a view showing an example in which a list of inter-section motion information is generated for each inter-image prediction mode.
[0040] На фиг. 25 представлен вид, показывающий пример, в котором кандидат на слияние между участками, включенный в долговременный список информации о движении, добавляется в список кандидатов на слияние.[0040] In FIG. 25 is a view showing an example in which a cross-section merging candidate included in the long-term traffic information list is added to the merging candidate list.
[0041] На фиг. 26 представлен вид, показывающий пример, в котором контроль по избыточности выполняется только в отношении некоторых из кандидатов на слияние.[0041] In FIG. 26 is a view showing an example in which redundancy checking is performed on only some of the merge candidates.
[0042] На фиг. 27 представлен вид, показывающий пример, в котором контроль по избыточности пропускается для конкретного кандидата на слияние.[0042] In FIG. 27 is a view showing an example in which the redundancy check is skipped for a particular merge candidate.
[0043] На фиг. 28 представлен вид, показывающий вектор смещения согласно значениям distance_idx, указывающей модуль вектора смещения, и direction_idx, указывающей направление вектора смещения.[0043] In FIG. 28 is a view showing a displacement vector according to the values of distance_idx indicating the magnitude of the displacement vector and direction_idx indicating the direction of the displacement vector.
[0044] На фиг. 29 представлен вид, показывающий вектор смещения согласно значениям distance_idx, указывающей модуль вектора смещения, и direction_idx, указывающей направление вектора смещения.[0044] In FIG. 29 is a view showing a displacement vector according to the values of distance_idx indicating the magnitude of the displacement vector and direction_idx indicating the direction of the displacement vector.
[0045] На фиг. 30 представлен вид, показывающий схемы разбиения блока кодирования при применении метода треугольного разбиения.[0045] In FIG. 30 is a view showing partitioning patterns of a coding block when applying the triangular partitioning method.
[0046] На фиг. 31 представлен вид, показывающий пример, в котором векторы смещения каждого из подэлементов установлены по-разному.[0046] In FIG. 31 is a view showing an example in which the offset vectors of each of the sub-elements are set differently.
[0047] На фиг. 32 представлен вид, показывающий кандидатов вектора движения, которые может брать уточненный кандидат на слияние.[0047] In FIG. 32 is a view showing motion vector candidates that the refined merge candidate can take.
[0048] На фиг. 33 представлен вид, показывающий конфигурацию списка смещения с уточнением слияния.[0048] In FIG. 33 is a view showing a configuration of an offset list with merge refinement.
[0049] На фиг. 34 и 35 представлены виды, показывающие векторы смещения, указанные кандидатами на смещение при слиянии.[0049] In FIG. 34 and 35 are views showing displacement vectors indicated by merging displacement candidates.
[0050] На фиг. 36 представлен вид, показывающий кандидатные блоки, используемые для получения кандидатов предсказания вектора движения.[0050] In FIG. 36 is a view showing candidate blocks used for obtaining motion vector prediction candidates.
[0051] На фиг. 37 представлен вид, показывающий кандидатов вектора движения, которые могут быть установлены в качестве уточненного кандидата предсказания вектора движения.[0051] In FIG. 37 is a view showing motion vector candidates that can be set as a refined motion vector prediction candidate.
[0052] На фиг. 38 представлен вид, показывающий конфигурацию списка смещения с уточнением вектора предсказания.[0052] In FIG. 38 is a view showing a configuration of an offset list with prediction vector refinement.
ПОДРОБНОЕ ОПИСАНИЕDETAILED DESCRIPTION
[0053] Далее будет подробно описан вариант осуществления настоящего изобретения со ссылкой на прилагаемые графические материалы.[0053] An embodiment of the present invention will now be described in detail with reference to the accompanying drawings.
[0054] Кодирование и декодирование видео выполняется посредством элемента блока. Например, процесс кодирования/декодирования, такой как преобразование, квантование, предсказание, фильтрование в контуре, восстановление и т.п., может выполняться в отношении блока кодирования, блока преобразования или блока предсказания.[0054] Video encoding and decoding is performed by a block element. For example, an encoding/decoding process such as transform, quantization, prediction, in-loop filtering, reconstruction, and the like may be performed on an encoding block, a transform block, or a prediction block.
[0055] Далее блок, подлежащий кодированию/декодированию, будет называться «текущим блоком». Например, текущий блок может представлять блок кодирования, блок преобразования или блок предсказания согласно текущему этапу процесса кодирования/декодирования.[0055] Hereinafter, the block to be encoded/decoded will be referred to as the “current block”. For example, the current block may represent an encoding block, a transform block, or a prediction block according to the current stage of the encoding/decoding process.
[0056] Кроме того, следует понимать, что термин «элемент», используемый в настоящем описании, обозначает базовый элемент для выполнения конкретного процесса кодирования/декодирования, и термин «блок» указывает массив отсчетов предварительно определенного размера. Если не указано иное, «блок» и «элемент» могут использоваться с одинаковым значением. Например, в варианте осуществления, описанном ниже, следует понимать, что блок кодирования и элемент кодирования имеют одинаковое значение.[0056] In addition, it should be understood that the term “element” as used herein denotes a basic element for performing a particular encoding/decoding process, and the term “block” indicates an array of samples of a predetermined size. Unless otherwise specified, "block" and "element" may be used with the same meaning. For example, in the embodiment described below, it should be understood that a coding block and a coding element have the same meaning.
[0057] На фиг. 1 представлена структурная схема, показывающая видеокодер согласно одному варианту осуществления настоящего изобретения.[0057] In FIG. 1 is a block diagram showing a video encoder according to one embodiment of the present invention.
[0058] Обращаясь к фиг. 1, устройство 100 для кодирования видео может содержать часть 110 для разбиения изображений, части 120 и 125 для предсказания, часть 130 для преобразования, часть 135 для квантования, часть 160 для перестановки, часть 165 для энтропийного кодирования, часть 140 для обратного квантования, часть 145 для обратного преобразования, часть 150 для фильтрации и запоминающее устройство 155.[0058] Referring to FIG. 1, the video encoding apparatus 100 may include an image partitioning portion 110, prediction portions 120 and 125, transform portion 130, quantization portion 135, permutation portion 160, entropy encoding portion 165, inverse quantization portion 140, 145 for deconversion, part 150 for filtering and storage device 155.
[0059] Каждый из компонентов, показанных на фиг. 1, показан независимо, чтобы представить характерные функции, отличающиеся друг от друга в устройстве для кодирования видео, но это не означает, что каждый компонент образован элементом конфигурации отдельного аппаратного обеспечения или одного программного обеспечения. То есть каждый компонент включен в список в качестве компонента для удобства объяснения, и по меньшей мере два из компонентов могут быть объединены для образования единого компонента, или один компонент может быть разделен на множество компонентов для выполнения функции. Варианты осуществления с объединением и варианты осуществления с разделением компонентов также входят в объем настоящего изобретения, если они не выходят за рамки сущности настоящего изобретения.[0059] Each of the components shown in FIG. 1 is shown independently to represent characteristic functions different from each other in a video encoding apparatus, but this does not mean that each component is constituted by a configuration item of a separate hardware or a single software. That is, each component is listed as a component for convenience of explanation, and at least two of the components may be combined to form a single component, or one component may be divided into multiple components to perform a function. Combination embodiments and component separation embodiments are also included within the scope of the present invention as long as they do not depart from the spirit of the present invention.
[0060] Кроме того, некоторые из компонентов не являются важными компонентами, которые выполняют основные функции в настоящем изобретении, но могут быть необязательными компонентами только для повышения эффективности. Настоящее изобретение может быть реализовано путем включения только компонентов, необходимых для реализации сущности настоящего изобретения, за исключением компонентов, используемых для повышения эффективности, и конструкция, содержащая только необходимые компоненты, за исключением необязательных компонентов, используемых для повышения эффективности, также включена в объем настоящего изобретения.[0060] In addition, some of the components are not essential components that perform essential functions in the present invention, but may be optional components only to improve efficiency. The present invention can be implemented by including only the components necessary to implement the essence of the present invention, excluding components used to improve efficiency, and a structure containing only the necessary components, excluding optional components used to increase efficiency, is also included within the scope of the present invention .
[0061] Часть 110 для разбиения изображений может разбивать входное изображение на по меньшей мере один элемент обработки. В этом случае элемент обработки может представлять собой элемент предсказания (PU), элемент преобразования (TU) или элемент кодирования (CU). Часть 110 для разбиения изображений может разбивать изображение на совокупность, состоящую из множества элементов кодирования, элементов предсказания и элементов преобразования, и кодировать изображение за счет выбора совокупности элемента кодирования, элемента предсказания и элемента преобразования на основании предварительно определенного критерия (например, функции стоимости).[0061] The image partitioning portion 110 may partition the input image into at least one processing element. In this case, the processing element may be a prediction element (PU), a transformation element (TU), or a coding element (CU). The image partitioning portion 110 may partition an image into a plurality of encoding elements, prediction elements, and transform elements, and encode the image by selecting a plurality of encoding element, prediction element, and transform element based on a predetermined criterion (eg, a cost function).
[0062] Например, одно изображение может быть разбито на множество элементов кодирования. Для разбиения элементов кодирования в изображении может использоваться структура в виде рекурсивного дерева, такая как структура в виде четверичного дерева. Видео или элемент кодирования, разбитые на разные элементы кодирования с использованием наибольшего элемента кодирования в качестве корня, могут быть разбиты так, чтобы иметь столько же узлов-потомков, сколько разбитых элементов кодирования. Элемент кодирования, который больше не разбивается согласно предварительно определенному ограничению, становится листовым узлом. То есть, если предполагается, что возможно только квадратное разбиение для одного элемента кодирования, один элемент кодирования может быть разбит на не более чем четыре разных элемента кодирования.[0062] For example, one image may be divided into multiple encoding elements. A recursive tree structure, such as a quaternary tree structure, may be used to partition the encoding elements in an image. A video or encoding element split into different encoding elements using the largest encoding element as the root can be split to have as many child nodes as there are split encoding elements. An encoding element that is no longer split according to a predefined constraint becomes a leaf node. That is, if it is assumed that only a square partition is possible for one encoding element, one encoding element can be split into at most four different encoding elements.
[0063] Далее в варианте осуществления настоящего изобретения элемент кодирования может использоваться в значении элемента, выполняющего кодирование, или в значении элемента, выполняющего декодирование.[0063] Further, in an embodiment of the present invention, an encoding element may be used in the value of an element performing encoding or in the value of an element performing decoding.
[0064] Элемент предсказания может представлять собой элемент, разбитый в форме по меньшей мере одного квадрата, прямоугольника или т.п. одинакового размера в пределах одного элемента кодирования, или он может представлять собой любой элемент предсказания из элементов предсказания, разбитых в пределах одного элемента кодирования, который разбит так, что имеет форму и/или размер, отличающиеся от таковых другого элемента предсказания.[0064] The prediction element may be an element laid out in the shape of at least one square, rectangle, or the like. the same size within a single encoding element, or it may be any prediction element of the prediction elements partitioned within a single encoding element that is partitioned to have a different shape and/or size from those of another prediction element.
[0065] Если элемент кодирования не является наименьшим элементом кодирования, когда генерируется элемент предсказания, который выполняет внутреннее предсказание на основании элемента кодирования, внутреннее предсказание может выполняться без разбиения изображения на множество элементов предсказания N×N.[0065] If the encoding element is not the smallest encoding element, when a prediction element that performs intra prediction based on the encoding element is generated, intra prediction can be performed without dividing the image into a plurality of N×N prediction elements.
[0066] Части 120 и 125 для предсказания могут содержать часть 120 для предсказания, осуществляемого между изображениями, которая выполняет предсказание, осуществляемое между изображениями, и часть 125 для внутреннего предсказания, которая выполняет внутреннее предсказание. Может быть определено, использовать ли предсказание, осуществляемое между изображениями, или выполнить внутреннее предсказание для элемента предсказания, и определить конкретную информацию (например, режим внутреннего предсказания, вектор движения, опорное изображение и т.д.) согласно каждому способу предсказания. В этом случае элемент обработки для выполнения предсказания может отличаться от элемента обработки для определения способа предсказания и конкретного содержимого. Например, способ предсказания и режим предсказания могут быть определены в элементе предсказания, и предсказание может выполняться в элементе преобразования. Остаточный коэффициент (остаточный блок) между восстановленным блоком предсказания и первоначальным блоком может быть введен в часть 130 для преобразования. Кроме того, информация о режиме предсказания, информация о векторе движения и т.п., используемые для предсказания, могут быть кодированы посредством части 165 для энтропийного кодирования вместе с остаточным коэффициентом и переданы на декодер. Когда используется конкретный режим кодирования, первоначальный блок может быть кодирован как есть и передан на декодер без генерирования блока предсказания посредством частей 120 и 125 для предсказания.[0066] The prediction portions 120 and 125 may include an inter-picture prediction portion 120 that performs inter-picture prediction and an intra prediction portion 125 that performs intra prediction. It can be determined whether to use inter-picture prediction or perform intra prediction on a prediction element, and determine specific information (eg, intra prediction mode, motion vector, reference image, etc.) according to each prediction method. In this case, the processing element for performing the prediction may be different from the processing element for determining the prediction method and the specific content. For example, a prediction method and a prediction mode may be determined in a prediction element, and prediction may be performed in a transform element. A residual coefficient (residual block) between the reconstructed prediction block and the original block may be input to the transformation portion 130. In addition, prediction mode information, motion vector information, and the like used for prediction can be encoded by the entropy encoding portion 165 together with a residual coefficient and transmitted to the decoder. When a particular encoding mode is used, the original block can be encoded as is and transmitted to the decoder without generating a prediction block by the prediction portions 120 and 125.
[0067] Часть 120 для предсказания, осуществляемого между изображениями, может предсказывать элемент предсказания на основании информации о по меньшей мере одном изображении из изображений перед текущим изображением или после него, и в некоторых случаях она может предсказывать элемент предсказания на основании информации о частичной области, которая была кодирована в текущем изображении. Часть 120 для предсказания, осуществляемого между изображениями, может содержать часть для интерполяции опорного изображения, часть для предсказания движения и часть для компенсации движения.[0067] The inter-picture prediction portion 120 may predict a prediction element based on information about at least one image of the images before or after the current image, and in some cases, it may predict a prediction element based on partial region information. which was encoded in the current image. The inter-image prediction portion 120 may include a reference image interpolation portion, a motion prediction portion, and a motion compensation portion.
[0068] Часть для интерполяции опорного изображения может принимать информацию об опорном изображении от запоминающего устройства 155 и генерировать информацию о пикселе для целого числа пикселей или меньше из опорного изображения. В случае пикселя яркости 8-отводный интерполяционный фильтр на основе DCT с переменным коэффициентом фильтрования может использоваться для генерирования информации о пикселе целого числа пикселей или меньше посредством элемента, состоящего из 1/4 пикселей. В случае сигнала цветности 4-отводный интерполяционный фильтр на основе DCT с переменным коэффициентом фильтрования может использоваться для генерирования информации о пикселе целого числа пикселей или меньше посредством элемента, состоящего из 1/8 пикселей.[0068] The reference image interpolation portion may receive reference image information from the storage device 155 and generate pixel information for an integer number of pixels or less from the reference image. In the case of a luminance pixel, an 8-tap DCT-based interpolation filter with a variable filter coefficient can be used to generate pixel information of an integer number of pixels or less through a 1/4 pixel element. In the case of a chroma signal, a 4-tap DCT-based interpolation filter with a variable filter coefficient can be used to generate pixel information of an integer number of pixels or less through a 1/8 pixel element.
[0069] Часть для предсказания движения может выполнять предсказание движения на основании опорного изображения, интерполированного частью для интерполяции опорного изображения. Различные способы, такие как алгоритм сопоставления блоков на основе полного поиска (FBMA), трехступенчатый поиск (TSS), алгоритм нового трехступенчатого поиска (NTS) и т.п., могут использоваться в качестве способа вычисления вектора движения. Вектор движения может иметь значение вектора движения в виде элемента, состоящего из 1/2 или 1/4 пикселей, на основании интерполированных пикселей. Часть для предсказания движения может предсказывать текущий элемент предсказания за счет изменения режима предсказания движения. Различные способы, такие как режим пропуска, режим слияния, режим усовершенствованного предсказания вектора движения (AMVP), режим внутриблочного копирования и т.п., могут использоваться в качестве режима предсказания движения.[0069] The motion prediction portion may perform motion prediction based on a reference image interpolated by the reference image interpolation portion. Various methods such as Full Search Based Block Matching Algorithm (FBMA), Three Stage Search (TSS), New Three Stage Search (NTS) algorithm, and the like can be used as the motion vector calculation method. The motion vector may have a motion vector value as a 1/2 or 1/4 pixel element based on the interpolated pixels. The motion prediction portion may predict the current prediction element by changing the motion prediction mode. Various methods such as skip mode, merge mode, advanced motion vector prediction (AMVP) mode, intra-block copy mode, etc. can be used as the motion prediction mode.
[0070] Часть 125 для внутреннего предсказания может генерировать элемент предсказания на основании информации об опорных пикселях, расположенных поблизости от текущего блока, которая представляет собой информацию о пикселе в текущем изображении. Когда блок, находящийся поблизости от текущего элемента предсказания, представляет собой блок, в отношении которого было выполнено предсказание, осуществляемое между изображениями, и, таким образом, опорный пиксель представляет собой пиксель, в отношении которого было выполнено предсказание, осуществляемое между изображениями, опорный пиксель, включенный в блок, в отношении которого было выполнено предсказание, осуществляемое между изображениями, может использоваться вместо информации об опорном пикселе блока, находящегося поблизости, в отношении которого было выполнено внутреннее предсказание. То есть, когда опорный пиксель недоступен, по меньшей мере один опорный пиксель из доступных опорных пикселей может использоваться вместо недоступной информации об опорном пикселе.[0070] The intra prediction portion 125 may generate a prediction element based on information about reference pixels located in the vicinity of the current block, which is information about a pixel in the current image. When a block adjacent to the current prediction element is a block on which inter-picture prediction has been performed, and thus the reference pixel is a pixel on which inter-picture prediction has been performed, the reference pixel is included in a block that has been subject to inter-picture prediction may be used in place of the reference pixel information of a nearby block that has been intra-predicted. That is, when a reference pixel is not available, at least one reference pixel among the available reference pixels may be used instead of the unavailable reference pixel information.
[0071] При внутреннем предсказании режим предсказания может предусматривать режим предсказания, основанный на информации об углах, в котором используется информация об опорном пикселе согласно направлению предсказания, и режим предсказания, не основанный на информации об углах, в котором не используется информация о направлении при выполнении предсказания. Режим для предсказания информации о яркости может отличаться от режима для предсказания информации о цветности, и информация о режиме внутреннего предсказания, используемая для предсказания информации о яркости или информации о предсказанном сигнале яркости, может использоваться для предсказания информации о цветности.[0071] In intra prediction, a prediction mode may include a prediction mode based on angle information, which uses reference pixel information according to the prediction direction, and a non-angle information based prediction mode, which does not use direction information when executing predictions. The mode for predicting luminance information may be different from the mode for predicting chrominance information, and the intra prediction mode information used to predict luminance information or information about a predicted luminance signal may be used to predict chrominance information.
[0072] Если размер элемента предсказания такой же, как размер элемента преобразования, когда выполняется внутреннее предсказание, внутреннее предсказание может выполняться для элемента предсказания на основании пикселя на левой стороне, пикселя на верхней левой стороне и пикселя сверху от элемента предсказания. Однако, если размер элемента предсказания отличается от размера элемента преобразования, когда выполняется внутреннее предсказание, внутреннее предсказание может выполняться с использованием опорного пикселя на основании элемента преобразования. Кроме того, внутреннее предсказание с использованием разбиения N×N может использоваться только для наименьшего элемента кодирования.[0072] If the size of the prediction element is the same as the size of the transform element when intra prediction is performed, intra prediction may be performed on the prediction element based on the pixel on the left side, the pixel on the upper left side, and the pixel on top of the prediction element. However, if the size of the prediction element is different from the size of the transformation element when intra prediction is performed, intra prediction may be performed using a reference pixel based on the transformation element. In addition, intra prediction using N×N partitioning can only be used for the smallest coding element.
[0073] Посредством способа внутреннего предсказания можно генерировать блок предсказания после применения фильтра адаптивного внутреннего сглаживания (AIS) к опорному пикселю согласно режиму предсказания. Тип фильтра AIS, применяемого к опорному пикселю, может варьировать. Для выполнения способа внутреннего предсказания режим внутреннего предсказания текущего элемента предсказания может быть предсказан из режима внутреннего предсказания элемента предсказания, существующего поблизости от текущего элемента предсказания. Когда режим предсказания текущего элемента предсказания предсказан с использованием информации о режиме, предсказанной из соседнего элемента предсказания, если режимы внутреннего предсказания текущего элемента предсказания такие же, как элемент предсказания поблизости, то информация, указывающая, что режимы предсказания текущего элемента предсказания такие же, как элемент предсказания поблизости, может передаваться с использованием информации о предварительно определенном флаге, и если режимы предсказания текущего элемента предсказания и элемента предсказания поблизости отличаются друг от друга, информация о режиме предсказания текущего блока может быть кодирована за счет выполнения энтропийного кодирования.[0073] By the intra prediction method, a prediction block can be generated after applying an adaptive intra smoothing (AIS) filter to a reference pixel according to the prediction mode. The type of AIS filter applied to the reference pixel can vary. To perform the intra prediction method, the intra prediction mode of the current prediction element can be predicted from the intra prediction mode of the prediction element existing in the vicinity of the current prediction element. When the prediction mode of the current prediction element is predicted using mode information predicted from a neighboring prediction element, if the intra prediction modes of the current prediction element are the same as the nearby prediction element, then information indicating that the prediction modes of the current prediction element are the same as the element nearby prediction element can be transmitted using the predetermined flag information, and if the prediction modes of the current prediction element and the nearby prediction element are different from each other, the prediction mode information of the current block can be encoded by performing entropy encoding.
[0074] Кроме того, может быть сгенерирован остаточный блок, содержащий элемент предсказания, который выполнил предсказание на основании элемента предсказания, сгенерированного частями 120 и 125 для предсказания, и информации об остаточном коэффициенте, которая представляет собой значение разницы элемента предсказания от первоначального блока. Сгенерированный остаточный блок может быть введен в часть 130 для преобразования.[0074] In addition, a residual block may be generated containing a prediction element that has performed prediction based on the prediction element generated by the prediction portions 120 and 125 and residual coefficient information that is the difference value of the prediction element from the original block. The generated residual block may be input to the conversion portion 130.
[0075] Часть 130 для преобразования может преобразовывать остаточный блок, содержащий первоначальный блок и информацию об остаточном коэффициенте элемента предсказания, сгенерированного посредством частей 120 и 125 для предсказания, с помощью способа преобразования, такого как дискретное косинусное преобразование (DCT) или дискретное синусное преобразование (DST). В этом случае основа преобразования DCT содержит по меньшей мере одно из DCT2 или DCT8, и основа преобразования DST содержит DST7. Применять или не применять DCT или DST для преобразования остаточного блока, может быть определено на основании информации о режиме внутреннего предсказания элемента предсказания, используемого для генерирования остаточного блока. Преобразование в отношении остаточного блока может быть пропущено. Может кодироваться флаг, указывающий, пропускать или не пропускать преобразование в отношении остаточного блока. Пропуск преобразования может быть разрешен для остаточного блока, имеющего размер, который меньше, чем пороговое значение, или равняется ему, компонента яркости или компонента цветности при формате 4:4:4.[0075] The transformation portion 130 may transform a residual block containing the original block and information about the residual coefficient of the prediction element generated by the prediction portions 120 and 125 using a transformation method such as discrete cosine transform (DCT) or discrete sine transform ( DST). In this case, the DCT transform base contains at least one of DCT2 or DCT8, and the DST transform base contains DST7. Whether or not to apply DCT or DST to transform the residual block can be determined based on information about the intra prediction mode of the prediction element used to generate the residual block. The transformation regarding the remainder block may be skipped. A flag may be encoded indicating whether or not to skip the conversion with respect to the remainder block. Skip conversion may be allowed for a residual block having a size that is less than or equal to the threshold, luma component, or chrominance component in a 4:4:4 format.
[0076] Часть 135 для квантования может квантовать значения, преобразованные в частотную область посредством части 130 для преобразования. Коэффициенты квантования могут изменяться в зависимости от блока или важности видео. Значение, вычисленное частью 135 для квантования, может быть предоставлено в часть 140 для обратного квантования и часть 160 для перестановки.[0076] The quantization portion 135 may quantize the values converted to the frequency domain by the conversion portion 130. Quantization factors may vary depending on the block or importance of the video. The value calculated by the quantization portion 135 may be provided to the inverse quantization portion 140 and the permutation portion 160.
[0077] Часть 160 для перестановки может выполнять перестановку значений коэффициентов для квантованных остаточных коэффициентов.[0077] The permutation portion 160 may perform permutation of coefficient values for the quantized residual coefficients.
[0078] Часть 160 для перестановки может изменять коэффициенты двумерной формы блока на одномерную векторную форму посредством способа сканирования коэффициентов. Например, часть 160 для перестановки может сканировать от коэффициентов DC до коэффициентов высокочастотной области с использованием способа зигзагообразного сканирования и менять коэффициенты с приданием им одномерной векторной формы. Согласно размеру элемента преобразования и режиму внутреннего предсказания вместо зигзагообразного сканирования может использоваться вертикальное сканирование в виде сканирования коэффициентов двумерной формы блока в направлении столбцов и горизонтальное сканирование коэффициентов двумерной формы блока в направлении строк. То есть согласно размеру элемента преобразования и режиму внутреннего предсказания может быть определен способ сканирования, который будет использоваться, из зигзагообразного сканирования, сканирования в вертикальном направлении и сканирования в горизонтальном направлении.[0078] The permutation portion 160 may change the coefficients of a two-dimensional block shape to a one-dimensional vector shape through a coefficient scanning method. For example, the permutation portion 160 may scan from the DC coefficients to the high frequency domain coefficients using a zigzag scanning method and change the coefficients into a one-dimensional vector form. According to the size of the transform element and the intra prediction mode, instead of zigzag scanning, vertical scanning in the form of scanning of two-dimensional block shape coefficients in the column direction and horizontal scanning of two-dimensional block shape coefficients in the row direction can be used. That is, according to the transform element size and the intra prediction mode, the scanning method to be used from zigzag scanning, vertical direction scanning, and horizontal direction scanning can be determined.
[0079] Часть 165 для энтропийного кодирования может выполнять энтропийное кодирование на основании значений, вычисленных частью 160 для перестановки. Для энтропийного кодирования могут использоваться различные способы кодирования, такие как кодирование экспоненциальным способом Голомба, контекстно-адаптивное кодирование с переменной длиной слова (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и т.п.[0079] The entropy encoding portion 165 may perform entropy encoding based on the values calculated by the permutation portion 160. For entropy coding, various encoding methods can be used, such as exponential Golomb coding, context-adaptive variable-length coding (CAVLC), context-adaptive binary arithmetic coding (CABAC), and the like.
[0080] Часть 165 для энтропийного кодирования может кодировать различную информацию, такую как информация об остаточном коэффициенте и информация о типе блока элемента кодирования, информация о режиме предсказания, информация об элементе разбиения, информация об элементе предсказания и информация об элементе передачи, информация о векторе движения, информация об опорном кадре, информация об интерполяции блока и информация о фильтрации, которая введена из части 160 для перестановки и частей 120 и 125 для предсказания.[0080] The entropy encoding portion 165 may encode various information such as residual coefficient information and coding element block type information, prediction mode information, split element information, prediction element information and transmission element information, vector information motion, reference frame information, block interpolation information, and filtering information that is input from the permutation portion 160 and the prediction portions 120 and 125.
[0081] Часть 165 для энтропийного кодирования может выполнять энтропийное кодирование значения коэффициента элемента кодирования, введенного из части 160 для перестановки.[0081] The entropy encoding portion 165 may perform entropy encoding of the coefficient value of the encoding element input from the permutation portion 160.
[0082] Часть 140 для обратного квантования и часть 145 для обратного преобразования выполняют обратное квантование значений, квантованных посредством части 135 для квантования, и обратное преобразование значений, преобразованных посредством части 130 для преобразования. Остаточный коэффициент, сгенерированный частью 140 для обратного квантования и частью 145 для обратного преобразования, может быть объединен с элементом предсказания, предсказанным посредством части для оценки движения, часть для компенсации движения и части для внутреннего предсказания, включенных в части 120 и 125 для предсказания, для генерирования восстановленного блока.[0082] The inverse quantization portion 140 and the inverse transform portion 145 perform inverse quantization of the values quantized by the quantization portion 135 and inverse transform of the values transformed by the transform portion 130. The residual coefficient generated by the inverse quantization portion 140 and the inverse transform portion 145 may be combined with a prediction element predicted by the motion estimation portion, the motion compensation portion, and the intra prediction portion included in the prediction portions 120 and 125 to generating a recovered block.
[0083] Часть 150 для фильтрации может содержать по меньшей мере одно из деблочного фильтра, элемента для коррекции смещения и адаптивного контурного фильтра (ALF).[0083] The filtering portion 150 may comprise at least one of a deblocking filter, an offset correction element, and an adaptive loop filter (ALF).
[0084] Деблочный фильтр может удалять искажение блока, генерируемое на границе между блоками в восстановленном изображении. Определение того, выполнять ли удаление блочности, применять ли деблочный фильтр к текущему блоку, может осуществляться на основании пикселей, содержащихся в нескольких столбцах или строках, содержащихся в блоке. Сильный фильтр или слабый фильтр может применяться согласно необходимой степени фильтрации для удаления блочности при применении деблочного фильтра к блоку. Кроме того, когда выполняются фильтрация в вертикальном направлении и фильтрация в горизонтальном направлении при применении деблочного фильтра, фильтрация в вертикальном направлении и фильтрация в горизонтальном направлении могут осуществляться параллельно.[0084] A deblocking filter may remove block distortion generated at a boundary between blocks in a reconstructed image. Determining whether to deblock or apply a deblocking filter to the current block can be made based on the pixels contained in multiple columns or rows contained in the block. A strong filter or a weak filter can be applied according to the required degree of filtering to remove blocking when applying a deblocking filter to a block. In addition, when vertical direction filtering and horizontal direction filtering are performed when using a deblocking filter, vertical direction filtering and horizontal direction filtering can be performed in parallel.
[0085] Элемент для коррекции смещения может корректировать смещение первоначального видео посредством элемента, состоящего из пикселей, для изображения, в отношении которого было выполнено удаление блочности. Для выполнения коррекции смещения для конкретного изображения можно использовать способ разделения пикселей, включенных в видео, на определенное количество областей, определения области для выполнения смещения и применения смещения к области или способ применения смещения, учитывающий информацию о крае каждого пикселя.[0085] The offset correction element may correct the offset of the original video by a pixel element for the image that has been deblocked. To perform offset correction for a particular image, you can use a method of dividing the pixels included in the video into a certain number of regions, defining an area to perform the offset and applying the offset to the area, or a method of applying the offset that takes into account the edge information of each pixel.
[0086] Адаптивная контурная фильтрация (ALF) может выполняться на основании значения, полученного посредством сравнения восстановленного и отфильтрованного видео с первоначальным видео. После разделения пикселей, включенных в изображение, на предварительно определенные группы, может быть определен один фильтр, который должен применяться к соответствующей группе, и фильтрация может выполняться по-разному для каждой группы. Сигнал яркости, который представляет собой информацию, связанную с тем, применять ли ALF, может передаваться для каждого элемента кодирования (CU), и форма и коэффициент фильтрования фильтра ALF, который должен быть применен, могут варьировать в зависимости от каждого блока. Кроме того, фильтр ALF того же типа (фиксированного типа) может применяться независимо от характеристики применяемого блока.[0086] Adaptive loop filtering (ALF) can be performed based on the value obtained by comparing the reconstructed and filtered video with the original video. After dividing the pixels included in the image into predefined groups, a single filter can be defined to be applied to the corresponding group, and filtering can be performed differently for each group. A luminance signal, which is information related to whether to apply ALF, may be transmitted for each coding unit (CU), and the shape and filter coefficient of the ALF filter to be applied may vary depending on each block. In addition, an ALF filter of the same type (fixed type) can be applied regardless of the characteristic of the block used.
[0087] Запоминающее устройство 155 может хранить восстановленный блок или изображение, вычисленные посредством части 150 для фильтрации, и восстановленный и сохраненный блок или изображение могут быть предоставлены в части 120 и 125 для предсказания при выполнении предсказания, осуществляемого между изображениями.[0087] The storage device 155 may store the reconstructed block or image calculated by the filtering portion 150, and the reconstructed and stored block or image may be provided to the prediction portions 120 and 125 when performing inter-image prediction.
[0088] На фиг. 2 представлена структурная схема, показывающая видеодекодер согласно одному варианту осуществления настоящего изобретения.[0088] In FIG. 2 is a block diagram showing a video decoder according to one embodiment of the present invention.
[0089] Обращаясь к фиг. 2, видеодекодер 200 может содержать часть 210 для энтропийного декодирования, часть 215 для перестановки, часть 220 для обратного квантования, часть 225 для обратного преобразования, части 230 и 235 для предсказания, часть 240 для фильтрации и запоминающее устройство 245.[0089] Referring to FIG. 2, video decoder 200 may include an entropy decoding portion 210, a permutation portion 215, an inverse quantization portion 220, an inverse transform portion 225, prediction portions 230 and 235, a filtering portion 240, and a memory 245.
[0090] Когда битовый поток видео вводится из видеокодера, входной битовый поток может быть декодирован согласно процедуре, противоположной процедуре работы видеокодера.[0090] When a video bitstream is input from a video encoder, the input bitstream can be decoded according to a procedure opposite to that of the video encoder.
[0091] Часть 210 для энтропийного декодирования может выполнять энтропийное декодирование согласно процедуре, противоположной процедуре выполнения энтропийного кодирования в части для энтропийного декодирования видеокодера. Например, могут применяться различные способы, соответствующие способу, выполняемому видеокодером, такие как кодирование экспоненциальным способом Голомба, контекстно-адаптивное кодирование с переменной длиной слова (CAVLC) и контекстно-адаптивное двоичное арифметическое кодирование (CABAC).[0091] The entropy decoding portion 210 may perform entropy decoding according to a procedure opposite to the procedure of performing entropy encoding in the entropy decoding portion of the video encoder. For example, various methods corresponding to the method performed by the video encoder may be used, such as exponential Golomb coding, context adaptive variable length coding (CAVLC), and context adaptive binary arithmetic coding (CABAC).
[0092] Часть 210 для энтропийного декодирования может декодировать информацию, связанную с внутренним предсказанием и предсказанием, осуществляемым между изображениями, выполняемыми кодером.[0092] The entropy decoding portion 210 may decode information associated with intra-prediction and inter-picture prediction performed by the encoder.
[0093] Часть 215 для перестановки может выполнять перестановку в отношении битового потока, подвергнутого энтропийному декодированию посредством части 210 для энтропийного декодирования, на основании способа перестановки, выполняемого кодером. Коэффициенты, выраженные в одномерной векторной форме, могут быть восстановлены и переставлены как коэффициенты в двумерной форме блока. Часть 215 для перестановки может принимать информацию, связанную со сканированием коэффициентов, выполняемым частью для кодирования, и выполнять восстановление посредством способа обратного сканирования на основании порядка сканирования, выполняемого соответствующей частью для кодирования.[0093] The permutation portion 215 may perform permutation on the bitstream subjected to entropy decoding by the entropy decoding portion 210 based on the permutation method performed by the encoder. Coefficients expressed in one-dimensional vector form can be recovered and rearranged as coefficients in two-dimensional block form. The permutation portion 215 may receive information related to coefficient scanning performed by the encoding portion and perform reconstruction by an inverse scan method based on the scanning order performed by the corresponding encoding portion.
[0094] Часть 220 для обратного квантования может выполнять обратное квантование на основании параметра квантования, предоставленного кодером, и значения коэффициента переставленного блока.[0094] The inverse quantization portion 220 may perform inverse quantization based on the quantization parameter provided by the encoder and the permuted block coefficient value.
[0095] Часть 225 для обратного преобразования может выполнять обратное преобразование в отношении элемента преобразования, т.е. DCT или DST, выполняемое частью для преобразования в отношении результата квантования, выполняемого видеокодером, т.е. обратное DCT или обратное DST. В этом случае основа преобразования DCT может содержать по меньшей мере одно из DCT2 и DCT8, и основа преобразования DST может содержать DST7. Альтернативно, когда преобразование в видеокодере пропускается, часть 225 для обратного преобразования также может не выполнять обратное преобразование. Обратное преобразование может выполняться на основании элемента передачи, определенного видеокодером. Часть 225 для обратного преобразования видеодекодера может выборочно выполнять метод преобразования (например, DCT или DST) согласно множеству фрагментов информации, такой как способ предсказания, размер текущего блока, направление предсказания и т.п.[0095] The inverse transform portion 225 may perform an inverse transform on the transform element, i.e. DCT or DST performed by the conversion part with respect to the quantization result performed by the video encoder, i.e. reverse DCT or reverse DST. In this case, the DCT transform base may comprise at least one of DCT2 and DCT8, and the DST transform base may comprise DST7. Alternatively, when conversion is skipped in the video encoder, the de-conversion portion 225 may also skip the de-conversion. The inverse conversion may be performed based on the transfer element determined by the video encoder. The video decoder deconversion portion 225 may selectively perform a conversion method (eg, DCT or DST) according to a plurality of pieces of information such as a prediction method, a current block size, a prediction direction, and the like.
[0096] Части 230 и 235 для предсказания могут генерировать блок предсказания на основании информации, относящейся к генерированию блока предсказания, предоставленного энтропийным декодером 210, и информации о ранее декодированном блоке или изображении, предоставленном запоминающим устройством 245.[0096] The prediction parts 230 and 235 may generate a prediction block based on the prediction block generation-related information provided by the entropy decoder 210 and the previously decoded block or image information provided by the storage device 245.
[0097] Как описано выше, если размер элемента предсказания и размер элемента преобразования одинаковы, когда внутреннее предсказание выполняется таким же образом, как операция в видеокодере, внутреннее предсказание выполняется в отношении элемента предсказания на основании пикселя, находящегося на левой стороне, пикселя на верхней левой стороне и пикселя сверху от элемента предсказания. Однако, если размер элемента предсказания и размер элемента преобразования отличаются друг от друга, когда выполняется внутреннее предсказание, внутреннее предсказание может выполняться с использованием опорного пикселя на основании элемента преобразования. Кроме того, внутреннее предсказание с использованием разбиения N×N может использоваться только для наименьшего элемента кодирования.[0097] As described above, if the size of the prediction element and the size of the transform element are the same, when intra prediction is performed in the same way as the operation in a video encoder, intra prediction is performed on the prediction element based on the pixel located on the left side, the pixel on the upper left side side and a pixel above the prediction element. However, if the size of the prediction element and the size of the transformation element are different from each other when intra prediction is performed, intra prediction may be performed using a reference pixel based on the transformation element. In addition, intra prediction using N×N partitioning can only be used for the smallest coding element.
[0098] Части 230 и 235 для предсказания могут содержать часть для определения элемента предсказания, часть для предсказания, осуществляемого между изображениями, и часть для внутреннего предсказания. Часть для определения элемента предсказания может принимать различную информацию, такую как информация об элементе предсказания, введенная из части 210 для энтропийного декодирования, информация о режиме предсказания способа внутреннего предсказания, информация, связанная с предсказанием движения способа предсказания, осуществляемого между изображениями, и т.п. Затем часть для определения элемента предсказания может идентифицировать элемент предсказания из текущего элемента кодирования и определять, выполняет ли элемент предсказания предсказание, осуществляемое между изображениями, или внутреннее предсказание. Часть 230 для предсказания, осуществляемого между изображениями, может выполнять предсказание, осуществляемое между изображениями, в отношении текущего элемента предсказания на основании информации, включенной в по меньшей мере одно изображение из изображений до или после текущего изображения, включая текущий элемент предсказания, за счет использования информации, необходимой для предсказания, осуществляемого между изображениями, текущего элемента предсказания, предоставленного видеокодером. Альтернативно часть 230 для предсказания, осуществляемого между изображениями, может выполнять предсказание, осуществляемое между изображениями, на основании информации о частичной области, ранее восстановленной в текущем изображении, содержащем текущий элемент предсказания.[0098] The prediction portions 230 and 235 may include a prediction element determination portion, an inter-picture prediction portion, and an intra prediction portion. The prediction element determining portion may receive various information such as prediction element information input from the entropy decoding portion 210, prediction mode information of an intra prediction method, information related to motion prediction of an inter-picture prediction method, and the like. . Then, the prediction element determining part may identify the prediction element from the current encoding element and determine whether the prediction element performs inter-picture prediction or intra prediction. The inter-picture prediction portion 230 may perform inter-picture prediction regarding the current prediction element based on information included in at least one image of the images before or after the current image, including the current prediction element, by using the information , necessary for inter-picture prediction of the current prediction element provided by the video encoder. Alternatively, the inter-image prediction portion 230 may perform inter-image prediction based on the partial region information previously reconstructed in the current image containing the current prediction element.
[0099] Для выполнения предсказания, осуществляемого между изображениями, можно определить на основании элемента кодирования, является ли способ предсказания движения элемента предсказания, включенного в соответствующий элемент кодирования, режимом пропуска, режимом слияния, усовершенствованным режимом предсказания вектора движения (режимом AMVP) или режимом копирования внутри блока.[0099] To perform prediction performed between pictures, it can be determined based on the encoding element whether the motion prediction method of the prediction element included in the corresponding encoding element is a skip mode, a merge mode, an advanced motion vector prediction mode (AMVP mode), or a copy mode inside the block.
[00100] Часть 235 для внутреннего предсказания может генерировать блок предсказания на основании информации о пикселе в текущем изображении. Когда элемент предсказания представляет собой элемент предсказания, который выполнил внутреннее предсказание, внутреннее предсказание может быть выполнено на основании информации о режиме внутреннего предсказания элемента предсказания, предоставленного видеокодером. Часть 235 для внутреннего предсказания может содержать фильтр адаптивного внутреннего сглаживания (AIS), часть для интерполяции опорного пикселя и фильтр DC. Фильтр AIS представляет собой часть, которая выполняет фильтрацию в отношении опорного пикселя текущего блока, и может определять, применять ли фильтр согласно режиму предсказания текущего элемента предсказания, и применять фильтр. Фильтрация AIS может выполняться в отношении опорного пикселя текущего блока за счет использования режима предсказания и информации о фильтре AIS элемента предсказания, предоставленного видеокодером. Когда режим предсказания текущего блока представляет собой режим, который не выполняет фильтрацию AIS, фильтр AIS может не применяться.[00100] The intra prediction portion 235 may generate a prediction block based on information about a pixel in the current image. When the prediction element is a prediction element that has performed intra prediction, intra prediction may be performed based on the intra prediction mode information of the prediction element provided by the video encoder. The intra prediction portion 235 may include an adaptive intra-smoothing (AIS) filter, a reference pixel interpolation portion, and a DC filter. The AIS filter is a part that performs filtering on a reference pixel of the current block, and can determine whether to apply a filter according to the prediction mode of the current prediction element, and apply the filter. AIS filtering may be performed on a reference pixel of the current block by using the prediction mode and AIS filter information of the prediction element provided by the video encoder. When the prediction mode of the current block is a mode that does not perform AIS filtering, the AIS filter may not be applied.
[00101] Когда режим предсказания элемента предсказания представляет собой элемент предсказания, который выполняет внутреннее предсказание на основании значения пикселя, полученного посредством интерполяции опорного пикселя, часть для интерполяции опорного пикселя может генерировать опорный пиксель элемента, состоящего из пикселей, который имеет целое значение или значение, которое меньше, чем целое значение, посредством интерполяции опорного пикселя. Когда режим предсказания текущего элемента предсказания представляет собой режим предсказания, который генерирует блок предсказания без интерполяции опорного пикселя, опорный пиксель может не быть интерполирован. Фильтр DC может генерировать блок предсказания посредством фильтрации, когда режим предсказания текущего блока представляет собой режим DC.[00101] When the prediction element prediction mode is a prediction element that performs intra prediction based on a pixel value obtained by interpolating a reference pixel, the reference pixel interpolation part may generate a reference pixel of an element composed of pixels that has an integer value or a value which is less than an integer value by interpolating the reference pixel. When the prediction mode of the current prediction element is a prediction mode that generates a prediction block without interpolating a reference pixel, the reference pixel may not be interpolated. The DC filter may generate a prediction block by filtering when the prediction mode of the current block is a DC mode.
[00102] Восстановленные блок или изображение могут быть предоставлены в часть 240 для фильтрации. Часть 240 для фильтрации может содержать деблочный фильтр, элемент для коррекции смещения и ALF.[00102] The reconstructed block or image may be provided to part 240 for filtering. The filtering portion 240 may include a deblocking filter, an offset correction element, and an ALF.
[00103] Информация о том, применять ли деблочный фильтр к соответствующему блоку или изображению, и информация о том, применять сильный фильтр или слабый фильтр, когда применяется деблочный фильтр, могут быть предоставлены видеокодером. В деблочный фильтр видеодекодера может быть предоставлена информация, связанная с деблочным фильтром, предоставленная видеокодером, и видеодекодер может выполнять фильтрацию для удаления блочности в отношении соответствующего блока.[00103] Information about whether to apply a deblocking filter to the corresponding block or image, and information about whether to apply a strong filter or a weak filter when the deblocking filter is applied may be provided by the video encoder. The video decoder deblocking filter may be provided with information associated with the deblocking filter provided by the video encoder, and the video decoder may perform deblocking filtering on the corresponding block.
[00104] Элемент для коррекции смещения может выполнять коррекцию смещения в отношении восстановленного изображения на основании типа коррекции смещения и информации о значении смещения, применяемых к видео при выполнении кодирования.[00104] The offset correction element may perform offset correction on the reconstructed image based on the offset correction type and offset value information applied to the video when encoding is performed.
[00105] ALF может применяться к элементу кодирования на основании информации о том, следует или нет применять ALF, и информации о коэффициентах ALF, предоставленной кодером. Информация об ALF может быть предоставлена для включения в набор конкретных параметров.[00105] ALF may be applied to an encoding element based on information about whether or not ALF should be applied and information about ALF coefficients provided by the encoder. ALF information can be provided for inclusion in a set of specific parameters.
[00106] Запоминающее устройство 245 может хранить восстановленное изображение или блок и использовать их в качестве опорного изображения или опорного блока и может предоставлять восстановленное изображение на элемент вывода.[00106] Storage device 245 may store the reconstructed image or block and use it as a reference image or reference block, and may provide the reconstructed image to an output element.
[00107] На фиг. 3 представлен вид, показывающий базовый элемент кодового дерева согласно одному варианту осуществления настоящего изобретения.[00107] In FIG. 3 is a view showing a code tree base element according to one embodiment of the present invention.
[00108] Блок кодирования максимального размера может быть задан как блок кодового дерева. Изображение разбивается на множество элементов кодового дерева (CTU). Элемент кодового дерева представляет собой элемент кодирования, имеющий максимальный размер, и может называться большим элементом кодирования (LCU). На фиг. 3 представлен пример, в котором изображение разбивается на множество элементов кодового дерева.[00108] A maximum size coding block may be specified as a code tree block. The image is divided into many code tree units (CTUs). A code tree element is a coding element having a maximum size and may be called a large coding unit (LCU). In fig. Figure 3 shows an example in which an image is divided into many code tree elements.
[00109] Размер элемента кодового дерева может быть задан на уровне изображения или уровне последовательности. Для этого информация, указывающая размер элемента кодового дерева, может быть передана посредством набора параметров изображения или набора параметров последовательности.[00109] The code tree element size can be set at the image level or the sequence level. To do this, information indicating the size of the code tree element may be transmitted by an image parameter set or a sequence parameter set.
[00110] Например, размер элемента кодового дерева для всего изображения в последовательности может быть установлен равным 128×128. Альтернативно на уровне изображения любой размер из 128×128 и 256×256 может быть определен как размер элемента кодового дерева. Например, размер элемента кодового дерева может быть установлен равным 128×128 в первом изображении, и размер элемента кодового дерева может быть установлен равным 256×256 во втором изображении.[00110] For example, the code tree element size for the entire image in the sequence may be set to 128×128. Alternatively, at the image level, any size between 128×128 and 256×256 may be defined as the code tree element size. For example, the code tree element size may be set to 128×128 in the first image, and the code tree element size may be set to 256×256 in the second image.
[00111] Блоки кодирования могут быть сгенерированы посредством разбиения элемента кодового дерева. Блок кодирования указывает базовый элемент для выполнения кодирования/декодирования. Например, предсказание или преобразование может выполняться для каждого блока кодирования, или режим кодирования с предсказанием может быть определен для каждого блока кодирования. В данном случае режим кодирования с предсказанием указывает способ генерирования изображения предсказания. Например, режим кодирования с предсказанием может включать предсказание в пределах изображения (внутреннее предсказание), предсказание между изображениями (предсказание, осуществляемое между изображениями), привязку к текущему изображению (CPR), или внутриблочное копирование (IBC), или комбинированное предсказание. Для блока кодирования блок предсказания может быть сгенерирован за счет использования по меньшей мере одного режима кодирования с предсказанием из внутреннего предсказания, предсказания, осуществляемого между изображениями, привязки к текущему изображению и комбинированного предсказания.[00111] Coding blocks can be generated by splitting a code tree element. The encoding block specifies a base element for performing encoding/decoding. For example, prediction or transformation may be performed for each encoding block, or a predictive encoding mode may be determined for each encoding block. Here, the predictive encoding mode indicates a method for generating a prediction image. For example, the predictive coding mode may include intra-picture prediction (intra-picture prediction), inter-picture prediction (inter-picture prediction), current picture reference (CPR), or intra-block copy (IBC), or combined prediction. For a coding block, a prediction block may be generated by using at least one predictive coding mode of intra prediction, inter-picture prediction, anchor to current picture, and combined prediction.
[00112] Информация, указывающая режим кодирования с предсказанием текущего блока, может передаваться посредством битового потока. Например, информация может представлять собой 1-битный флаг, указывающий, является режим кодирования с предсказанием внутренним режимом или режимом, осуществляемым между изображениями. Только когда режим кодирования с предсказанием текущего блока определен как режим, осуществляемый между изображениями, может использоваться привязка к текущему изображению или комбинированное предсказание.[00112] Information indicating a predictive encoding mode of the current block may be transmitted via a bitstream. For example, the information may be a 1-bit flag indicating whether the predictive coding mode is an intra-picture mode or an inter-picture mode. Only when the predictive encoding mode of the current block is determined to be an inter-picture mode can lock to the current picture or combined prediction be used.
[00113] Привязка к текущему изображению предназначена для установления текущего изображения как опорного изображения и получения блока предсказания текущего блока из области, которая уже была кодирована/декодирована в текущем изображении. В данном случае текущее изображение означает изображение, содержащее текущий блок. Информация, указывающая, применяется ли к текущему блоку привязка к текущему изображению, может быть передана посредством битового потока. Например, информация может представлять собой 1-битный флаг. Когда флаг является истинным (true), режим кодирования с предсказанием текущего блока может быть определен как привязка к текущему изображению, а когда флаг является ложным (false), режим предсказания текущего блока может быть определен как предсказание, осуществляемое между изображениями.[00113] Linking to the current picture is for establishing the current picture as a reference picture and obtaining a prediction block of the current block from a region that has already been encoded/decoded in the current picture. In this case, the current image means the image containing the current block. Information indicating whether the current block is snapped to the current image may be conveyed via a bitstream. For example, the information may be a 1-bit flag. When the flag is true, the predictive encoding mode of the current block can be defined as being tied to the current picture, and when the flag is false, the predictive mode of the current block can be defined as inter-picture prediction.
[00114] Альтернативно режим кодирования с предсказанием текущего блока может быть определен на основании индекса опорного изображения. Например, когда индекс опорного изображения указывает текущее изображение, режим кодирования с предсказанием текущего блока может быть определен как привязка к текущему изображению. Когда индекс опорного изображения указывает изображение, отличающееся от текущего изображения, режим кодирования с предсказанием текущего блока может быть определен как предсказание, осуществляемое между изображениями. То есть привязка к текущему изображению представляет собой способ предсказания, использующий информацию об области, в которой было осуществлено кодирование/декодирование, в текущем изображении, и предсказание, осуществляемое между изображениями, представляет собой способ предсказания, использующий информацию о другом изображении, в котором было осуществлено кодирование/декодирование.[00114] Alternatively, the predictive coding mode of the current block may be determined based on the index of the reference picture. For example, when the reference picture index indicates the current picture, the predictive encoding mode of the current block may be determined to be anchored to the current picture. When the reference picture index indicates a picture different from the current picture, the predictive coding mode of the current block can be defined as prediction performed between pictures. That is, anchoring to the current image is a prediction method using information about the region in which encoding/decoding has been performed in the current image, and prediction performed between images is a prediction method using information about another image in which encoding/decoding has been performed. encoding/decoding.
[00115] Комбинированное предсказание представляет режим кодирования, в котором объединены два или более из внутреннего предсказания, предсказания, осуществляемого между изображениями, и привязки к текущему изображению. Например, при применении комбинированного предсказания первый блок предсказания может быть сгенерирован на основании одного из внутреннего предсказания, предсказания, осуществляемого между изображениями, и привязки к текущему изображению, а второй блок предсказания может быть сгенерирован на основании другого. При генерировании первого блока предсказания и второго блока предсказания, конечный блок предсказания может быть сгенерирован посредством операции усреднения или операции взвешенного суммирования первого блока предсказания и второго блока предсказания. Информация, указывающая, применяется ли комбинированное предсказание, может быть передана посредством битового потока. Информация может представлять собой 1-битный флаг.[00115] Combined prediction represents a coding mode in which two or more of intra-prediction, inter-picture prediction, and current-picture anchoring are combined. For example, when using combined prediction, a first prediction block may be generated based on one of intra prediction, inter-image prediction, and current image anchoring, and a second prediction block may be generated based on the other. When generating the first prediction block and the second prediction block, the final prediction block may be generated by an averaging operation or a weighted addition operation of the first prediction block and the second prediction block. Information indicating whether combined prediction is applied may be transmitted via a bit stream. The information may be a 1-bit flag.
[00116] На фиг. 4 представлен вид, показывающий различные типы разбиения блока кодирования.[00116] In FIG. 4 is a view showing various types of partitioning of a coding block.
[00117] Блок кодирования может быть разбит на множество блоков кодирования на основании разбиения на основе четверичного дерева, разбиения на основе двоичного дерева или разбиения на основе троичного дерева. Разбитый блок кодирования может быть разбит снова на множество блоков кодирования на основании разбиения на основе четверичного дерева, разбиения на основе двоичного дерева или разбиения на основе троичного дерева.[00117] An encoding block may be partitioned into a plurality of encoding blocks based on a quaternary tree partition, a binary tree partition, or a ternary tree partition. The split encoding block may be split again into a plurality of encoding blocks based on a quaternary tree split, a binary tree split, or a ternary tree split.
[00118] Разбиение на основе четверичного дерева относится к методу разбиения, который разбивает текущий блок на четыре блока. В результате разбиения на основе четверичного дерева текущий блок может быть разбит на четыре раздела квадратной формы (см. «SPLIT_QT» на фиг. 4 (a)).[00118] Quaternary tree partitioning refers to a partitioning method that splits the current block into four blocks. As a result of quaternary tree partitioning, the current block can be split into four square-shaped partitions (see “SPLIT_QT” in Fig. 4(a)).
[00119] Разбиение на основе двоичного дерева относится к методу разбиения, который разбивает текущий блок на два блока. Разбиение текущего блока на два блока вдоль вертикального направления (т.е. с использованием вертикальной линии, пересекающей текущий блок) может называться разбиением на основе двоичного дерева в вертикальном направлении, и разбиение текущего блока на два блока вдоль горизонтального направления (т.е. с использованием горизонтальной линии, пересекающей текущий блок) может называться разбиением на основе двоичного дерева в горизонтальном направлении. В результате разбиения на основе двоичного дерева текущий блок может быть разбит на два раздела неквадратной формы. «SPLIT_BT_VER» на фиг. 4 (b) представляет результат разбиения на основе двоичного дерева в вертикальном направлении, а «SPLIT_BT_HOR» на фиг. 4 (c) представляет результат разбиения на основе двоичного дерева в горизонтальном направлении.[00119] Binary tree partitioning refers to a partitioning method that splits the current block into two blocks. Splitting the current block into two blocks along the vertical direction (i.e. using a vertical line intersecting the current block) can be called binary tree splitting in the vertical direction, and splitting the current block into two blocks along the horizontal direction (i.e. with using a horizontal line intersecting the current block) can be called a binary tree partition in the horizontal direction. Binary tree partitioning can split the current block into two non-square partitions. "SPLIT_BT_VER" in Fig. 4(b) represents the result of binary tree splitting in the vertical direction, and “SPLIT_BT_HOR” in FIG. 4(c) presents the result of binary tree partitioning in the horizontal direction.
[00120] Разбиение на основе троичного дерева относится к методу разбиения, который разбивает текущий блок на три блока. Разбиение текущего блока на три блока вдоль вертикального направления (т.е. с использованием двух вертикальных линий, пересекающих текущий блок) может называться разбиением на основе троичного дерева в вертикальном направлении, и разбиение текущего блока на три блока вдоль горизонтального направления (т.е. с использованием двух горизонтальных линий, пересекающих текущий блок) может называться разбиением на основе троичного дерева в горизонтальном направлении. В результате разбиения на основе троичного дерева текущий блок может быть разбит на три раздела неквадратной формы. В этом случае ширина/высота раздела, расположенного в центре текущего блока, может быть вдвое больше ширины/высоты других разделов. «SPLIT_TT_VER» на фиг. 4 (d) представляет результат разбиения на основе троичного дерева в вертикальном направлении, а «SPLIT_TT_HOR» на фиг. 4 (e) представляет результат разбиения на основе троичного дерева в горизонтальном направлении.[00120] Ternary tree partitioning refers to a partitioning method that partitions the current block into three blocks. Splitting the current block into three blocks along the vertical direction (i.e. using two vertical lines crossing the current block) can be called ternary tree splitting in the vertical direction, and splitting the current block into three blocks along the horizontal direction (i.e. using two horizontal lines crossing the current block) can be called ternary tree partitioning in the horizontal direction. As a result of ternary tree partitioning, the current block can be split into three non-square partitions. In this case, the width/height of the section located in the center of the current block can be twice the width/height of other sections. "SPLIT_TT_VER" in Fig. 4(d) represents the result of ternary tree partitioning in the vertical direction, and “SPLIT_TT_HOR” in FIG. 4(e) presents the result of ternary tree partitioning in the horizontal direction.
[00121] Количество разбиений элемента кодового дерева может быть задано как глубина разбиения. Максимальная глубина разбиения элемента кодового дерева может быть определена на уровне последовательности или уровне изображения. Соответственно, максимальная глубина разбиения элемента кодового дерева может отличаться для каждой последовательности или изображения.[00121] The number of splits of a code tree element can be set as a split depth. The maximum split depth of a code tree element can be determined at the sequence level or the image level. Accordingly, the maximum depth of a code tree element may differ for each sequence or image.
[00122] Альтернативно максимальная глубина разбиения для каждого метода разбиения может быть определена отдельно. Например, максимальная глубина разбиения, допускаемая для разбиения на основе четверичного дерева, может быть отличной от максимальной глубины разбиения, допускаемой для разбиения на основе двоичного дерева и/или разбиения на основе троичного дерева.[00122] Alternatively, the maximum partitioning depth for each partitioning method may be determined separately. For example, the maximum partition depth allowed for a quaternary tree partition may be different from the maximum partition depth allowed for a binary tree partition and/or ternary tree partition.
[00123] Кодер может передавать информацию, указывающую по меньшей мере одно из типа разбиения и глубины разбиения текущего блока посредством битового потока. Декодер может определять тип разбиения и глубину разбиения элемента кодового дерева на основании информации, проанализированной из битового потока.[00123] The encoder may transmit information indicating at least one of a split type and a split depth of the current block via a bit stream. The decoder may determine the split type and split depth of a code tree element based on information parsed from the bitstream.
[00124] На фиг. 5 представлен вид, показывающий схему разбиения элемента кодового дерева.[00124] In FIG. 5 is a view showing a code tree element partitioning diagram.
[00125] Разбиение блока кодирования с использованием такого метода разбиения, как разбиение на основе четверичного дерева, разбиение на основе двоичного дерева и/или разбиение на основе троичного дерева, может называться разбиением на основе нескольких деревьев.[00125] Partitioning a coding block using a partitioning method such as quaternary tree partitioning, binary tree partitioning, and/or ternary tree partitioning may be referred to as multi-tree partitioning.
[00126] Блоки кодирования, сгенерированные путем применения разбиения на основе нескольких деревьев к блоку кодирования, могут называться нижними блоками кодирования. Когда глубина разбиения блока кодирования представляет собой k, глубина разбиения нижних блоков кодирования установлена равной k + 1.[00126] Coding blocks generated by applying a multi-tree partition to a coding block may be referred to as lower coding blocks. When the partitioning depth of the encoding block is k, the partitioning depth of the lower encoding blocks is set to k + 1.
[00127] И наоборот, для блоков кодирования, имеющих глубину разбиения k + 1, блок кодирования, имеющий глубину разбиения k, может называться верхним блоком кодирования.[00127] Conversely, for coding blocks having a partition depth k + 1, the encoding block having a partition depth k may be referred to as an upper encoding block.
[00128] Тип разбиения текущего блока кодирования может быть определен на основании по меньшей мере одного из типа разбиения верхнего блока кодирования и типа разбиения соседнего блока кодирования. В данном случае соседний блок кодирования представляет собой блок кодирования, смежный с текущим блоком кодирования, и может включать по меньшей мере один из верхнего соседнего блока и левого соседнего блока текущего блока кодирования, и соседний блок, смежный с верхним левым углом. В данном случае тип разбиения может включать по меньшей мере одно из следующего: применялось или нет разбиение на основе четверичного дерева, применялось или нет разбиение на основе двоичного дерева, направление разбиения на основе двоичного дерева, применялось или нет разбиение на основе троичного дерева и направление разбиения на основе троичного дерева.[00128] The partition type of the current encoding block may be determined based on at least one of the partition type of the upper encoding block and the partition type of the adjacent encoding block. Here, a neighboring encoding block is an encoding block adjacent to the current encoding block, and may include at least one of an upper adjacent block and a left adjacent block of the current encoding block, and an adjacent block adjacent to the upper left corner. Here, the type of splitting may include at least one of the following: whether or not quaternary tree splitting was used, whether or not binary tree splitting was used, the direction of binary tree splitting, whether or not ternary tree splitting was used, and the direction of splitting based on a ternary tree.
[00129] Чтобы определить тип разбиения блока кодирования, информация, указывающая то, может ли быть разбит блок кодирования, может быть передана посредством битового потока. Информация представляет собой 1-битный флаг «split_cu_flag», и, когда флаг является истинным, она указывает, что блок кодирования разбит с помощью метода разбиения на основе нескольких деревьев.[00129] To determine the type of splitting of the encoding block, information indicating whether the coding block can be split may be transmitted by a bitstream. The information is a 1-bit flag "split_cu_flag", and when the flag is true, it indicates that the encoding block is split using a multi-tree splitting method.
[00130] Когда split_cu_flag является истинным, информация, указывающая то, разбит ли блок кодирования на основе четверичного дерева, может быть передана посредством битового потока. Информация представляет собой 1-битный флаг в виде split_qt_flag, и, когда флаг является истинным, блок кодирования может быть разбит на четыре блока.[00130] When split_cu_flag is true, information indicating whether a quaternary tree encoding block is split may be transmitted by the bitstream. The information is a 1-bit flag in the form split_qt_flag, and when the flag is true, the encoding block can be split into four blocks.
[00131] Например, в примере, показанном на фиг. 5, когда элемент кодового дерева разбит на основе четверичного дерева, генерируются четыре блока кодирования, имеющие глубину разбиения 1. Кроме того, показано, что разбиение на основе четверичного дерева применяется снова к первому и четвертому блокам кодирования из четырех блоков кодирования, сгенерированных в результате разбиения на основе четверичного дерева. В результате могут быть сгенерированы четыре блока кодирования, имеющие глубину разбиения 2.[00131] For example, in the example shown in FIG. 5, when a code tree element is partitioned based on the quaternary tree, four encoding blocks having a partition depth of 1 are generated. In addition, it is shown that the partition based on the quaternary tree is applied again to the first and fourth encoding blocks of the four encoding blocks generated by the partitioning based on a quaternary tree. As a result, four coding blocks having a partition depth of 2 can be generated.
[00132] Кроме того, блоки кодирования, имеющие глубину разбиения, равную 3, могут быть сгенерированы путем повторного применения разбиения на основе четверичного дерева к блоку кодирования, имеющему глубину разбиения, равную 2.[00132] In addition, coding blocks having a partition depth of 3 can be generated by repeatedly applying the quaternary tree partition to a coding block having a partition depth of 2.
[00133] Когда разбиение на основе четверичного дерева не применяется к блоку кодирования, может быть определено то, выполняется ли разбиение на основе двоичного дерева или разбиение на основе троичного дерева в отношении блока кодирования, с учетом по меньшей мере одного из следующего: размера блока кодирования, того, расположен ли блок кодирования на границе изображения, максимальной глубины разбиения и типа разбиения соседнего блока. Когда определено, что следует выполнить разбиение на основе двоичного дерева или разбиение на основе троичного дерева в отношении блока кодирования, информация, указывающая направление разбиения, может быть передана посредством битового потока. Информация может представлять собой 1-битный флаг в виде mtt_split_cu_vertical_flag. На основании флага может быть определено, является направление разбиения вертикальным направлением или горизонтальным направлением. Дополнительно информация, указывающая то, применено ли разбиение на основе двоичного дерева или разбиение на основе троичного дерева к блоку кодирования, может быть передана посредством битового потока. Информация может представлять собой 1-битный флаг в виде mtt_split_cu_binary_flag. На основании флага может быть определено то, применено ли разбиение на основе двоичного дерева или разбиение на основе троичного дерева к блоку кодирования.[00133] When the quaternary tree partitioning is not applied to an encoding block, it can be determined whether a binary tree partitioning or a ternary tree partitioning is performed on the encoding block, taking into account at least one of the following: the size of the encoding block , whether the encoding block is located on the image boundary, the maximum partitioning depth, and the type of partitioning of the adjacent block. When it is determined that binary tree partitioning or ternary tree partitioning should be performed on an encoding block, information indicating the direction of partitioning may be transmitted by a bitstream. The information may be a 1-bit flag in the form mtt_split_cu_vertical_flag. Based on the flag, it can be determined whether the dividing direction is the vertical direction or the horizontal direction. Additionally, information indicating whether a binary tree partition or a ternary tree partition is applied to the encoding block may be transmitted by the bitstream. The information can be a 1-bit flag in the form mtt_split_cu_binary_flag. Based on the flag, it can be determined whether a binary tree partition or a ternary tree partition is applied to the encoding block.
[00134] Например, в примере, показанном на фиг. 5, показано, что разбиение на основе двоичного дерева в вертикальном направлении применено к блоку кодирования, имеющему глубину разбиения, равную 1, разбиение на основе троичного дерева в вертикальном направлении применено к левому блоку кодирования из блоков кодирования, сгенерированных в результате разбиения, и разбиение на основе двоичного дерева в вертикальном направлении применено к правому блоку кодирования.[00134] For example, in the example shown in FIG. 5, it is shown that a binary tree partition in the vertical direction is applied to a coding block having a partition depth of 1, a ternary tree partition in the vertical direction is applied to the left encoding block of the encoding blocks generated by the partition, and a partition into the binary tree base in the vertical direction is applied to the right encoding block.
[00135] При реализации устройства для кодирования или декодирования видео существует проблема в том, что участок, который больше, чем пороговое значение, сложно обрабатывать вследствие характеристик аппаратного обеспечения. Например, существует проблема в том, что, когда возможно одновременно обрабатывать вплоть до 4096 отсчетов на основании характеристик аппаратного обеспечения, к элементам данных размером 64×64 должен быть осуществлен избыточный доступ, и они должны быть обработаны, и данные не могут быть обработаны одновременно в случае участков, имеющих отсчеты в количестве больше 4096. Подобно этому, базовый элемент обработки данных может быть задан как базовый элемент данных на основе конвейера (виртуальный блок обработки данных, VPDU, далее по тексту называемый базовым элементом данных).[00135] When implementing an apparatus for video encoding or decoding, there is a problem that a portion that is larger than a threshold value is difficult to process due to the characteristics of the hardware. For example, there is a problem that when it is possible to simultaneously process up to 4096 samples based on hardware characteristics, 64x64 data elements must be redundantly accessed and processed, and the data cannot be processed simultaneously in in the case of sections having samples in number greater than 4096. Similarly, the basic data processing element can be defined as a pipeline-based basic data element (virtual processing unit, VPDU, hereinafter referred to as the basic data element).
[00136] Базовый элемент данных может быть классифицирован как относящийся к квадратному, неквадратному или непрямоугольному типу.[00136] A basic data element may be classified as being of a square, non-square, or non-rectangular type.
[00137] На фиг. 6 представлен вид, показывающий формы базовых элементов данных.[00137] In FIG. 6 is a view showing shapes of basic data items.
[00138] Базовые элементы данных могут содержать максимальное количество отсчетов или меньше максимального количества отсчетов, которые могут быть обработаны одновременно. Например, как показано в примере на фиг. 6 (a), квадратные блоки, имеющие размер 64×64, могут быть установлены в качестве базовых элементов данных. Альтернативно неквадратные блоки могут быть установлены в качестве базовых элементов данных. Например, как показано в примере на фиг. 6 (b) или 6 (c), блок, имеющий размер 32×128, или блок, имеющий размер 64×32, может быть установлен в качестве базового элемента данных.[00138] Basic data elements may contain a maximum number of samples or less than the maximum number of samples that can be processed simultaneously. For example, as shown in the example of FIG. 6(a), square blocks having a size of 64×64 can be set as basic data elements. Alternatively, non-square blocks can be set as base data elements. For example, as shown in the example of FIG. 6(b) or 6(c), a block having a size of 32x128 or a block having a size of 64x32 may be set as the base data element.
[00139] Несмотря на то, что это не показано, могут быть заданы треугольные, L-образные и многоугольные базовые элементы данных.[00139] Although not shown, triangular, L-shaped, and polygonal data elements may be defined.
[00140] Информация для определения базового элемента данных может быть передана посредством битового потока. Информация может быть предназначена для определения по меньшей мере одного из размера и формы базового элемента данных. На основании информации может быть определено, разрешать или нет неквадратный базовый элемент данных, или разрешать или нет непрямоугольный базовый элемент данных.[00140] Information for defining a basic data element may be transmitted via a bitstream. The information may be for determining at least one of a size and a shape of the underlying data element. Based on the information, it can be determined whether or not to allow the non-square baseline data item, or whether to allow the non-rectangular baseline data item.
[00141] Альтернативно по меньшей мере одно из размера и формы базового элемента данных может быть предварительно задано в кодере и декодере.[00141] Alternatively, at least one of the size and shape of the base data element may be predefined in the encoder and decoder.
[00142] То, разрешать или нет тип разбиения блока кодирования, может быть определено с учетом размера базового элемента данных. Например, когда блок кодирования, сгенерированный в результате разбиения блока кодирования, больше, чем базовый элемент данных, разбиение может быть не разрешено. Альтернативно, когда неквадратный блок кодирования, сгенерированный в результате разбиения блока кодирования, больше, чем базовый элемент данных, разбиение может быть не разрешено. Например, когда ширина или высота блока кодирования больше, чем пороговое значение, или когда количество отсчетов, включенных в блок кодирования, больше, чем пороговое значение, разбиение на основе двоичного дерева или троичного дерева может быть не разрешено. Соответственно, кодирование информации, относящейся к разбиению на основе двоичного дерева или троичного дерева, может быть пропущено.[00142] Whether or not to enable the partition type of the encoding block can be determined taking into account the size of the underlying data element. For example, when the encoding block generated by splitting the encoding block is larger than the base data element, the splitting may not be allowed. Alternatively, when the non-square encoding block generated by splitting the encoding block is larger than the base data element, the splitting may not be allowed. For example, when the width or height of an encoding block is greater than a threshold value, or when the number of samples included in an encoding block is greater than a threshold value, binary tree or ternary tree partitioning may not be allowed. Accordingly, encoding of information related to the binary tree or ternary tree partitioning may be skipped.
[00143] Альтернативно может быть установлено обязательно разбивать блок кодирования, который больше, чем базовый элемент данных. Альтернативно может быть установлено обязательно выполнять разбиение на основе двоичного дерева или разбиение на основе троичного дерева в отношении блока кодирования, который больше, чем базовый элемент данных. Соответственно, для блока кодирования, который больше, чем базовый элемент данных, несмотря на то, что флаг split_flag, указывающий на то, разбивать или нет блок кодирования, не закодирован, значение флага может быть получено как 1.[00143] Alternatively, it may be set to be required to split an encoding block that is larger than the base data element. Alternatively, it may be specified to be required to perform binary tree partitioning or ternary tree partitioning on an encoding block that is larger than the base data element. Accordingly, for an encoding block that is larger than the base data element, although the split_flag indicating whether or not to split the encoding block is not encoded, the flag value can be obtained as 1.
[00144] В качестве другого примера, блок кодирования, который больше, чем базовый элемент данных, может быть разбит на множество подблоков. В данном случае подблок может быть установлен в качестве элемента предсказания, который представляет собой базовый элемент для предсказания, или элемента преобразования, который представляет собой базовый элемент для преобразования и/или квантования. В этом случае разбиение блока кодирования на множество элементов предсказания может быть задано как разбиение элемента предсказания VPDU, и разбиение блока кодирования на множество элементов преобразования может быть задано как разбиение элемента преобразования VPDU.[00144] As another example, an encoding block that is larger than a basic data element may be divided into a plurality of sub-blocks. Here, the subblock may be set as a prediction element, which is a base element for prediction, or a transformation element, which is a base element for transformation and/or quantization. In this case, the division of the encoding block into a plurality of prediction elements may be specified as the division of a VPDU prediction element, and the division of the encoding block into a plurality of transform elements may be specified as the division of a VPDU transform element.
[00145] По меньшей мере одно из разбиения элемента предсказания VPDU и разбиения элемента преобразования VPDU может применяться к блоку кодирования. Тип разбиения блока кодирования согласно применению разбиения элемента предсказания VPDU может быть установлен таким же, как тип разбиения блока кодирования согласно применению разбиения элемента преобразования VPDU.[00145] At least one of a VPDU prediction element split and a VPDU transform element split may be applied to a coding block. The coding block splitting type according to the VPDU prediction element splitting application can be set to the same as the coding block splitting type according to the VPDU transform element splitting application.
[00146] Когда только разбиение элемента предсказания VPDU применяется к блоку кодирования, предсказание выполняется для каждого подблока, но преобразование и/или квантование могут выполняться для блока кодирования. В этом случае режим предсказания, такой как режим кодирования предсказания, режим внутреннего предсказания или режим предсказания, осуществляемого между изображениями, может быть определен для блока кодирования.[00146] When only VPDU prediction element partitioning is applied to a coding block, prediction is performed on a per-subblock basis, but transform and/or quantization may be performed on a coding block basis. In this case, a prediction mode such as a prediction encoding mode, an intra prediction mode, or an inter-picture prediction mode may be determined for the encoding block.
[00147] Когда только разбиение элемента преобразования VPDU применяется к блоку кодирования, предсказание выполняется для подблока, но преобразование и/или квантование может выполняться для каждого подблока.[00147] When only VPDU transform element partitioning is applied to a coding block, prediction is performed for the subblock, but transform and/or quantization may be performed for each subblock.
[00148] На фиг. 7 и 8 представлены виды, показывающие примеры разбиения блока кодирования на множество подблоков.[00148] In FIG. 7 and 8 are views showing examples of dividing a coding block into a plurality of sub-blocks.
[00149] На фиг. 7 представлен вид, показывающий схему разбиения, когда разрешен только квадратный базовый элемент данных, и на фиг. 8 представлен вид, показывающий схему разбиения, когда разрешены базовый элемент данных и неквадратный базовый элемент данных.[00149] In FIG. 7 is a view showing a partitioning pattern when only a square datum is allowed, and FIG. 8 is a view showing a partitioning scheme when a base item and a non-square base item are allowed.
[00150] Когда предполагается, что разрешены только квадратные базовые элементы данных, на фиг. 7 (a) и 7 (b), CU0 и CU2 задаются как два разных VPDU, и CU1 задается как четыре разных VPDU. Соответственно, CU0 и CU2 могут быть разбиты на два подблока, и CU1 может быть разбит на четыре подблока.[00150] When it is assumed that only square datums are allowed, FIG. 7(a) and 7(b), CU0 and CU2 are defined as two different VPDUs, and CU1 is defined as four different VPDUs. Accordingly, CU0 and CU2 can be divided into two sub-blocks, and CU1 can be divided into four sub-blocks.
[00151] Когда предполагается, что разрешены квадратные базовые элементы данных и неквадратные базовые элементы данных, на фиг. 8 (a) и 8 (b), CU0 и CU2 могут быть заданы как один VPDU, тогда как CU1 может быть задан с использованием двух разных VPDU. Соответственно, CU0 и CU2 не разбиваются на подблоки, тогда как CU1 может разбиваться на два подблока.[00151] When it is assumed that square datums and non-square datums are allowed, FIG. 8(a) and 8(b), CU0 and CU2 can be defined as one VPDU, while CU1 can be defined using two different VPDUs. Accordingly, CU0 and CU2 are not divided into subblocks, while CU1 can be divided into two subblocks.
[00152] В этом случае CU1 может разбиваться на квадратные подблоки или неквадратные подблоки. Например, CU1 может разбиваться на два квадратных подблока на основании горизонтальной линии, которая разбивает CU1 на верхнюю часть и нижнюю часть. Альтернативно CU1 может разбиваться на два неквадратных подблока на основании вертикальной линии, которая разбивает CU1 на левую часть и правую часть.[00152] In this case, CU1 may be divided into square sub-blocks or non-square sub-blocks. For example, CU1 may be divided into two square subblocks based on a horizontal line that divides CU1 into an upper part and a lower part. Alternatively, CU1 may be partitioned into two non-square sub-blocks based on a vertical line that partitions CU1 into a left part and a right part.
[00153] Когда есть множество кандидатов типа разбиения, применимых к блоку кодирования, информация, указывающая любого из множества кандидатов типа разбиения, может быть передана посредством битового потока. Например, информация может указывать, следует ли разбивать блок кодирования на квадратные подблоки, или следует ли разбивать блок кодирования на неквадратные подблоки.[00153] When there are a plurality of partition type candidates applicable to a coding block, information indicating any of the plurality of partition type candidates may be transmitted by a bit stream. For example, the information may indicate whether the encoding block should be divided into square subblocks, or whether the encoding block should be divided into non-square subblocks.
[00154] Альтернативно разбиение блока кодирования на квадратные подблоки может быть установлено как имеющее приоритет, который выше, чем приоритет разбиения блока кодирования на неквадратные подблоки. Например, разбиение блока кодирования на неквадратные подблоки может быть разрешено, когда не разрешается разбивать блок кодирования на квадратные подблоки.[00154] Alternatively, dividing the encoding block into square subblocks may be set to have a priority that is higher than the priority of dividing the encoding block into non-square subblocks. For example, partitioning an encoding block into non-square sub-blocks may be permitted when partitioning an encoding block into square sub-blocks is not permitted.
[00155] Альтернативно тип разбиения блока кодирования может быть определен на основании типа разбиения блока кодирования порождающего узла. Например, может быть установлено разбивать блок кодирования на квадратные подблоки, когда блок кодирования порождающего узла разбивается на основании троичного дерева. С другой стороны, может быть установлено разбивать блок кодирования на неквадратные подблоки, когда блок кодирования порождающего узла разбивается на основании двоичного дерева или троичного дерева.[00155] Alternatively, the encoding block partition type may be determined based on the encoding block partition type of the parent node. For example, it may be set to partition the encoding block into square sub-blocks when the encoding block of the parent node is partitioned based on the ternary tree. On the other hand, it may be set to partition the encoding block into non-square sub-blocks when the encoding block of the parent node is partitioned based on a binary tree or a ternary tree.
[00156] Предсказание, осуществляемое между изображениями, представляет собой режим кодирования с предсказанием, который предсказывает текущий блок путем использования информации о предшествующем изображении. Например, блок в том же положении, что и текущий блок в предшествующем изображении (далее - совмещаемый блок), может быть установлен как блок предсказания текущего блока. Далее блок предсказания, сгенерированный на основании блока в том же положении, что и текущий блок, будет называться совмещаемым блоком предсказания.[00156] Inter-picture prediction is a predictive coding mode that predicts the current block by using information about the previous picture. For example, a block at the same position as the current block in the previous image (hereinafter referred to as a compatible block) can be set as a prediction block of the current block. Hereinafter, a prediction block generated based on a block at the same position as the current block will be called a compatible prediction block.
[00157] С другой стороны, когда объект, находящийся в предшествующем изображении, переместился в другое положение в текущем изображении, текущий блок может быть эффективным образом предсказан путем использования движения объекта. Например, когда направление движения и размер объекта можно узнать путем сравнения предшествующего изображения и текущего изображения, блок предсказания (или изображение предсказания) текущего блока может быть сгенерирован с учетом информации о движении объекта. Далее блок предсказания, сгенерированный путем использования информации о движении, может называться блоком предсказания движения.[00157] On the other hand, when an object located in a previous image has moved to a different position in the current image, the current block can be efficiently predicted by using the movement of the object. For example, when the motion direction and size of an object can be learned by comparing a previous image and a current image, a prediction block (or prediction image) of the current block can be generated taking into account the motion information of the object. Hereinafter, the prediction block generated by using the motion information may be called a motion prediction block.
[00158] Остаточный блок может быть сгенерирован путем вычитания блока предсказания из текущего блока. В этом случае, когда имеется движение объекта, энергия остаточного блока может быть уменьшена путем использования блока предсказания движения вместо совмещаемого блока предсказания, и, таким образом, эффективность сжатия остаточного блока может быть улучшена.[00158] A residual block may be generated by subtracting a prediction block from a current block. In this case, when there is motion of the object, the energy of the residual block can be reduced by using a motion prediction block instead of a compatible prediction block, and thus the compression efficiency of the residual block can be improved.
[00159] Как описано выше, генерирование блока предсказания с использованием информации о движении может называться предсказанием с компенсацией движения. В большинстве предсказаний, осуществляемых между изображениями, блок предсказания может быть сгенерирован на основании предсказания с компенсацией движения.[00159] As described above, generating a prediction block using motion information may be called motion-compensated prediction. In most inter-image predictions, a prediction block may be generated based on motion compensated prediction.
[00160] Информация о движении может содержать по меньшей мере одно из вектора движения, индекса опорного изображения, направления предсказания и двунаправленного весового индекса. Вектор движения представляет направление движения и размер объекта. Индекс опорного изображения указывает опорное изображение текущего блока из опорных изображений, включенных в список опорных изображений. Направление предсказания указывает любое из однонаправленного предсказания L0, однонаправленного предсказания L1 и двунаправленного предсказания (предсказания L0 и предсказания L1). Согласно направлению предсказания текущего блока может использоваться по меньшей мере одно из информации о движении в направлении L0 и информации о движении в направлении L1. Двунаправленный весовой индекс указывает значение взвешивания, примененное к блоку предсказания L0, и значение взвешивания, примененное к блоку предсказания L1.[00160] The motion information may comprise at least one of a motion vector, a reference image index, a prediction direction, and a bidirectional weight index. The motion vector represents the direction of motion and the size of the object. The reference picture index indicates the reference picture of the current block of the reference pictures included in the reference picture list. The prediction direction indicates any of unidirectional L0 prediction, unidirectional L1 prediction, and bidirectional prediction (L0 prediction and L1 prediction). According to the prediction direction of the current block, at least one of the movement information in the L0 direction and the movement information in the L1 direction may be used. The bidirectional weight index indicates the weighting value applied to the L0 prediction block and the weighting value applied to the L1 prediction block.
[00161] На фиг. 9 представлена блок-схема, изображающая способ предсказания, осуществляемого между изображениями, согласно одному варианту осуществления настоящего изобретения.[00161] In FIG. 9 is a flowchart illustrating an inter-image prediction method according to one embodiment of the present invention.
[00162] Обращаясь к фиг. 9, способ предсказания, осуществляемого между изображениями, включает этапы определения (S901) режима предсказания, осуществляемого между изображениями, текущего блока, получения (S902) информации о движении текущего блока согласно определенному режиму предсказания, осуществляемого между изображениями, и выполнения (S903) предсказания с компенсацией движения для текущего блока на основании полученной информации о движении.[00162] Referring to FIG. 9, the inter-picture prediction method includes the steps of determining (S901) an inter-picture prediction mode of the current block, obtaining (S902) information about the movement of the current block according to the determined inter-picture prediction mode, and performing (S903) the inter-picture prediction motion compensation for the current block based on received motion information.
[00163] В данном случае режим предсказания, осуществляемого между изображениями, представляет различные методы определения информации о движении текущего блока и может включать режим предсказания, осуществляемого между изображениями, который использует информацию о поступательном движении, и режим предсказания, осуществляемого между изображениями, который использует информацию об аффинном движении. Например, режим предсказания, осуществляемого между изображениями, который использует информацию о поступательном движении, может включать режим слияния и усовершенствованный режим предсказания вектора движения, и режим предсказания, осуществляемого между изображениями, который использует информацию об аффинном движении, может включать аффинный режим слияния и усовершенствованный режим предсказания вектора аффинного движения. Информация о движении текущего блока может быть определена на основании соседнего блока, смежного с текущим блоком, или информации, проанализированной из битового потока согласно режиму предсказания, осуществляемого между изображениями.[00163] Here, the inter-picture prediction mode represents various methods for determining motion information of the current block, and may include an inter-picture prediction mode that uses translational motion information, and an inter-picture prediction mode that uses the information about affine motion. For example, an inter-image prediction mode that uses translational motion information may include a fusion mode and an advanced motion vector prediction mode, and an inter-image prediction mode that uses affine motion information may include an affine fusion mode and an advanced mode. affine motion vector predictions. The motion information of the current block may be determined based on a neighboring block adjacent to the current block or information analyzed from the bitstream according to an inter-picture prediction mode.
[00164] Далее способ предсказания, осуществляемого между изображениями, который использует информацию об аффинном движении, будет описан подробно.[00164] Next, an inter-image prediction method that uses affine motion information will be described in detail.
[00165] На фиг. 10 представлен вид, показывающий нелинейные движения объекта.[00165] In FIG. 10 is a view showing non-linear movements of an object.
[00166] Нелинейное движение объекта может быть сгенерировано в видео. Например, как показано в примере на фиг. 10, может происходить такое нелинейное движение объекта, как приближение, отдаление, поворот, аффинное преобразование или т.п. камеры. Когда происходит нелинейное движение объекта, движение объекта не может быть эффективно выражено с помощью вектора поступательного движения. Соответственно, эффективность кодирования может быть улучшена за счет использования аффинного движения вместо поступательного движения в области, где происходит нелинейное движение объекта.[00166] Nonlinear motion of an object can be generated in a video. For example, as shown in the example of FIG. 10, such nonlinear movement of the object as approaching, moving away, rotating, affine transformation, or the like can occur. cameras. When nonlinear motion of an object occurs, the motion of the object cannot be effectively expressed by a translational motion vector. Accordingly, encoding efficiency can be improved by using affine motion instead of translational motion in the region where nonlinear object motion occurs.
[00167] На фиг. 11 представлена блок-схема, изображающая способ предсказания, осуществляемого между изображениями, на основании аффинного движения согласно одному варианту осуществления настоящего изобретения.[00167] In FIG. 11 is a flowchart illustrating a method for inter-image prediction based on affine motion according to one embodiment of the present invention.
[00168] Применяется ли метод предсказания, осуществляемого между изображениями, основанный на аффинном движении, к текущему блоку, может быть определено на основании информации, проанализированной из битового потока. В частности, применяется ли метод предсказания, осуществляемого между изображениями, основанный на аффинном движении, к текущему блоку, может быть определено на основании по меньшей мере одного из флага, указывающего, применяется ли аффинный режим слияния к текущему блоку, и флага, указывающего, применяется ли усовершенствованный режим предсказания вектора аффинного движения к текущему блоку.[00168] Whether the inter-picture prediction method based on affine motion is applied to the current block can be determined based on information analyzed from the bitstream. In particular, whether an inter-image prediction method based on affine motion is applied to the current block can be determined based on at least one of a flag indicating whether the affine fusion mode is applied to the current block and a flag indicating whether There is an improved mode for predicting the affine motion vector to the current block.
[00169] Когда метод предсказания, осуществляемого между изображениями, основанный на аффинном движении, применяется к текущему блоку, может быть определена (S1101) модель аффинного движения текущего блока. Модель аффинного движения может быть определена как по меньшей мере одна из шестипараметрической модели аффинного движения и четырехпараметрической модели аффинного движения. Шестипараметрическая модель аффинного движения выражает аффинное движение с использованием шести параметров, а четырехпараметрическая модель аффинного движения выражает аффинное движение с использованием четырех параметров.[00169] When the inter-image prediction method based on affine motion is applied to the current block, an affine motion model of the current block can be determined (S1101). The affine motion model may be defined as at least one of a six-parameter affine motion model and a four-parameter affine motion model. A six-parameter affine motion model expresses affine motion using six parameters, and a four-parameter affine motion model expresses affine motion using four parameters.
[00170] Уравнение 1 выражает аффинное движение с использованием шести параметров. Аффинное движение представляет непоступательное движение для предварительно определенной области, определенной аффинными исходными векторами.[00170] Equation 1 expresses affine motion using six parameters. Affine motion represents non-translational motion for a predefined region defined by affine source vectors.
[00171] Уравнение 1[00171] Equation 1
[00172] [00172]
[00173] [00173]
[00174] Когда аффинное движение выражено с использованием шести параметров, может быть выражено сложное движение. Однако, поскольку увеличивается количество битов, необходимых для кодирования каждого из параметров, эффективность кодирования может снижаться. Соответственно, аффинное движение может быть выражено с использованием четырех параметров. Уравнение 2 выражает аффинное движение с использованием четырех параметров.[00174] When affine motion is expressed using six parameters, complex motion can be expressed. However, as the number of bits required to encode each parameter increases, the encoding efficiency may decrease. Accordingly, affine motion can be expressed using four parameters. Equation 2 expresses the affine motion using four parameters.
[00175] Уравнение 2[00175] Equation 2
[00176] [00176]
[00177] [00177]
[00178] Информация для определения модели аффинного движения текущего блока может быть кодирована и передана посредством битового потока. Например, информация может представлять собой 1-битный флаг в виде «affine_type_flag». Когда значение флага равно 0, это может указывать, что применяется 4-параметрическая модель аффинного движения, а когда значение флага равно 1, это может указывать, что применяется 6-параметрическая модель аффинного движения. Флаг может быть кодирован посредством элемента в виде слайса, тайла или блока (например, посредством элемента блока кодирования или кодового дерева). Когда флаг передается на уровне слайса, модель аффинного движения, определенная на уровне слайса, может применяться ко всем блокам, принадлежащим к слайсу.[00178] Information for determining the affine motion model of the current block may be encoded and transmitted via a bit stream. For example, the information could be a 1-bit flag in the form "affine_type_flag". When the flag value is 0, it may indicate that a 4-parameter affine motion model is applied, and when the flag value is 1, it may indicate that a 6-parameter affine motion model is applied. The flag may be encoded through a slice, tile, or block element (eg, through an encoding block or encoding tree element). When a flag is passed at the slice level, the affine motion model defined at the slice level can be applied to all blocks belonging to the slice.
[00179] Альтернативно модель аффинного движения текущего блока может быть определена на основании аффинного режима предсказания, осуществляемого между изображениями, текущего блока. Например, когда применяется аффинный режим слияния, модель аффинного движения текущего блока может быть определена как 4-параметрическая модель движения. С другой стороны, когда применяется усовершенствованный режим предсказания вектора аффинного движения, информация для определения модели аффинного движения текущего блока может быть кодирована и передана посредством битового потока. Например, когда усовершенствованный режим предсказания вектора аффинного движения применяется к текущему блоку, модель аффинного движения текущего блока может быть определена на основании 1-битного флага в виде «affine_type_flag».[00179] Alternatively, the affine motion model of the current block may be determined based on the inter-image affine prediction mode of the current block. For example, when the affine merging mode is applied, the affine motion model of the current block can be defined as a 4-parameter motion model. On the other hand, when the advanced affine motion vector prediction mode is applied, information for determining the affine motion model of the current block can be encoded and transmitted by a bit stream. For example, when the advanced affine motion vector prediction mode is applied to the current block, the affine motion model of the current block can be determined based on a 1-bit flag in the form “affine_type_flag”.
[00180] Затем может быть получен (S1102) аффинный исходный вектор текущего блока. Когда выбрана 4-параметрическая модель аффинного движения, могут быть получены векторы движения в двух контрольных точках текущего блока. С другой стороны, когда выбрана 6-параметрическая модель аффинного движения, могут быть получены векторы движения в трех контрольных точках текущего блока. Вектор движения в контрольной точке может называться аффинным исходным вектором. Контрольная точка может включать по меньшей мере один из верхнего левого угла, верхнего правого угла и нижнего левого угла текущего блока.[00180] The affine source vector of the current block can then be obtained (S1102). When a 4-parameter affine motion model is selected, motion vectors at two control points of the current block can be obtained. On the other hand, when the 6-parameter affine motion model is selected, the motion vectors at the three control points of the current block can be obtained. The motion vector at a control point can be called an affine source vector. The reference point may include at least one of the top left corner, top right corner, and bottom left corner of the current block.
[00181] На фиг. 12 представлен вид, показывающий пример аффинных исходных векторов каждой модели аффинного движения.[00181] In FIG. 12 is a view showing an example of affine source vectors of each affine motion model.
[00182] В 4-параметрической модели аффинного движения аффинные исходные векторы могут быть получены для двух из верхнего левого угла, верхнего правого угла и нижнего левого угла. Например, как показано в примере на фиг. 12 (a), когда выбрана 4-параметрическая модель аффинного движения, аффинный вектор может быть получен путем использования аффинного исходного вектора sv0 для верхнего левого угла текущего блока (например, верхний левый отсчет (x0, y0)) и аффинного исходного вектора sv1 для верхнего правого угла текущего блока (например, верхний правый отсчет (x1, y1)). Также можно использовать аффинный исходный вектор для нижнего левого угла вместо аффинного исходного вектора для верхнего левого угла, или использовать аффинный исходный вектор для нижнего левого угла вместо аффинного исходного вектора для верхнего правого угла.[00182] In the 4-parameter affine motion model, affine source vectors can be obtained for two of the upper left corner, upper right corner and lower left corner. For example, as shown in the example of FIG. 12(a), when the 4-parameter affine motion model is selected, the affine vector can be obtained by using the affine source vector sv 0 for the top left corner of the current block (for example, the top left sample (x0, y0)) and the affine source vector sv 1 for the top right corner of the current block (for example, top right count (x1, y1)). You can also use an affine source vector for the bottom left corner instead of an affine source vector for the top left corner, or use an affine source vector for the bottom left corner instead of an affine source vector for the top right corner.
[00183] В 6-параметрической модели аффинного движения аффинные исходные векторы могут быть получены для верхнего левого угла, верхнего правого угла и нижнего левого угла. Например, как показано в примере на фиг. 12 (b), когда выбрана 6-параметрическая модель аффинного движения, аффинный вектор может быть получен путем использования аффинного исходного вектора sv0 для верхнего левого угла текущего блока (например, верхний левый отсчет (x0, y0)), аффинного исходного вектора sv1 для верхнего правого угла текущего блока (например, верхний правый отсчет (x1, y1)) и аффинного исходного вектора sv2 для нижнего левого угла текущего блока (например, нижний левый отсчет (x2, y2)).[00183] In the 6-parameter affine motion model, affine source vectors can be obtained for the upper left corner, upper right corner and lower left corner. For example, as shown in the example of FIG. 12(b), when the 6-parameter affine motion model is selected, the affine vector can be obtained by using the affine source vector sv 0 for the top left corner of the current block (for example, the top left sample (x0, y0)), the affine source vector sv 1 for the top right corner of the current block (eg top right sample (x1, y1)) and an affine source vector sv 2 for the bottom left corner of the current block (eg bottom left sample (x2, y2)).
[00184] В варианте осуществления, описанном ниже, в 4-параметрической модели аффинного движения аффинные исходные векторы верхней левой контрольной точки и верхней правой контрольной точки будут называться первым аффинным исходным вектором и вторым аффинным исходным вектором соответственно. В вариантах осуществления, в которых используются первый аффинный исходный вектор и второй аффинный исходный вектор, описанные ниже, по меньшей мере один из первого аффинного исходного вектора и второго аффинного исходного вектора может быть заменен аффинным исходным вектором нижней левой контрольной точки (третьим аффинным исходным вектором) или аффинным исходным вектором нижней правой контрольной точки (четвертым аффинным исходным вектором).[00184] In the embodiment described below, in the 4-parameter affine motion model, the affine source vectors of the top left control point and the top right control point will be called the first affine source vector and the second affine source vector, respectively. In embodiments that use the first affine seed vector and the second affine seed vector described below, at least one of the first affine seed vector and the second affine seed vector may be replaced by the lower left reference point affine seed vector (third affine seed vector) or the affine source vector of the lower right control point (the fourth affine source vector).
[00185] Кроме того, в 6-параметрической модели аффинного движения аффинные исходные векторы верхней левой контрольной точки, верхней правой контрольной точки и нижней левой контрольной точки будут называться первым аффинным исходным вектором, вторым аффинным исходным вектором и третьим аффинным исходным вектором соответственно. В вариантах осуществления, в которых используется первый аффинный исходный вектор, второй аффинный исходный вектор и третий аффинный исходный вектор, описанные ниже, по меньшей мере один из первого аффинного исходного вектора, второго аффинного исходного вектора и третьего аффинного исходного вектора может быть заменен аффинным исходным вектором нижней правой контрольной точки (четвертым аффинным исходным вектором).[00185] In addition, in the 6-parameter affine motion model, the affine source vectors of the top left control point, top right control point and bottom left control point will be called the first affine source vector, the second affine source vector and the third affine source vector, respectively. In embodiments that use a first affine seed vector, a second affine seed vector, and a third affine seed vector described below, at least one of the first affine seed vector, the second affine seed vector, and the third affine seed vector may be replaced by an affine seed vector bottom right control point (the fourth affine source vector).
[00186] Аффинный вектор может быть получен (S1103) для каждого подблока за счет использования аффинных исходных векторов. В данном случае аффинный вектор представляет вектор поступательного движения, полученный на основании аффинных исходных векторов. Аффинный вектор подблока может называться аффинным вектором движения подблока или вектором движения подблока.[00186] An affine vector can be obtained (S1103) for each sub-block by using affine source vectors. In this case, the affine vector represents the translational motion vector obtained from the affine source vectors. An affine subblock vector may be called an affine subblock motion vector or a subblock motion vector.
[00187] На фиг. 13 представлен вид, показывающий пример аффинных векторов подблоков в 4-параметрической модели движения.[00187] In FIG. 13 is a view showing an example of sub-block affine vectors in a 4-parameter motion model.
[00188] Аффинный вектор подблока может быть получен на основании положения контрольной точки, положения подблока и аффинного исходного вектора. Например, в уравнении 3 показан пример получения аффинного вектора подблока.[00188] The affine subblock vector can be obtained based on the position of the reference point, the position of the subblock, and the affine source vector. For example, Equation 3 shows an example of obtaining an affine subblock vector.
[00189] Уравнение 3[00189] Equation 3
[00190] [00190]
[00191] [00191]
[00192] В уравнении 3 (x, y) обозначает положение подблока. В данном случае положение подблока указывает положение опорного отсчета, включенного в подблок. Опорный отсчет может представлять собой отсчет, расположенный в верхнем левом углу подблока, или отсчет, у которого по меньшей мере одна из координат по оси x и оси y представляет собой центральную точку. (x0, y0) обозначает положение первой контрольной точки и (sv0x, sv0y) обозначает первый аффинный исходный вектор. Кроме того, (x1, y1) обозначает положение второй контрольной точки и (sv1x, sv1y) обозначает второй аффинный исходный вектор.[00192] In Equation 3, (x, y) denotes the position of the subblock. Here, the position of the sub-block indicates the position of the reference sample included in the sub-block. The reference sample may be a sample located in the upper left corner of the subblock, or a sample for which at least one of the x-axis and y-axis coordinates represents a center point. (x 0 , y 0 ) denotes the position of the first control point and (sv 0x , sv 0y ) denotes the first affine source vector. In addition, (x 1 , y 1 ) denotes the position of the second control point and (sv 1x , sv 1y ) denotes the second affine source vector.
[00193] Когда первая контрольная точка и вторая контрольная точка соответствуют верхнему левому углу и верхнему правому углу текущего блока соответственно, x1-x0 может быть установлено на значение, равное ширине текущего блока.[00193] When the first reference point and the second reference point correspond to the top left corner and top right corner of the current block, respectively, x 1 -x 0 can be set to a value equal to the width of the current block.
[00194] После этого может быть выполнено (S1104) предсказание с компенсацией движения для каждого подблока с использованием аффинного вектора каждого подблока. В результате выполнения предсказания с компенсацией движения может быть сгенерирован блок предсказания для каждого подблока. Блоки предсказания подблоков могут быть установлены как блоки предсказания текущего блока.[00194] Thereafter, motion compensated prediction can be performed (S1104) for each sub-block using the affine vector of each sub-block. By performing motion-compensated prediction, a prediction block for each sub-block can be generated. Sub-block prediction blocks can be set as prediction blocks of the current block.
[00195] Затем способ предсказания, осуществляемого между изображениями, использующий информацию о поступательном движении, будет описан подробно.[00195] Next, a prediction method performed between images using translational motion information will be described in detail.
[00196] Информация о движении текущего блока может быть получена из информации о движении другого блока. В данном случае другой блок может представлять собой блок, кодированный/декодированный путем предсказания, осуществляемого между изображениями, перед текущим блоком. Установка информации о движении текущего блока равной информации о движении другого блока может быть определена как режим слияния. Кроме того, установка вектора движения другого блока в качестве значения предсказания вектора движения текущего блока может быть задана в качестве усовершенствованного режима предсказания вектора движения.[00196] Information about the movement of the current block can be obtained from information about the movement of another block. Here, the other block may be a block encoded/decoded by inter-picture prediction before the current block. Setting the motion information of the current block equal to the motion information of another block can be defined as a merging mode. In addition, setting the motion vector of another block as the motion vector prediction value of the current block can be set as an improved motion vector prediction mode.
[00197] На фиг. 14 представлена блок-схема, изображающая процесс получения информации о движении текущего блока с использованием режима слияния.[00197] In FIG. 14 is a flowchart showing the process of obtaining movement information of the current block using the merging mode.
[00198] Может быть получен (S1401) кандидат на слияние текущего блока. Кандидат на слияние текущего блока может быть получен из блока, кодированного/декодированного путем предсказания, осуществляемого между изображениями, перед текущим блоком.[00198] A merge candidate of the current block may be obtained (S1401). The merge candidate of the current block may be obtained from a block encoded/decoded by inter-picture prediction before the current block.
[00199] На фиг. 15 представлен вид, показывающий пример кандидатных блоков, используемых для получения кандидата на слияние.[00199] In FIG. 15 is a view showing an example of candidate blocks used to obtain a merge candidate.
[00200] Кандидатные блоки могут включать по меньшей мере один из соседних блоков, содержащих отсчет, смежный с текущим блоком, или несоседних блоков, содержащих отсчет, который не является смежным с текущим блоком. Далее отсчеты для определения кандидатных блоков задаются в качестве опорных отсчетов. Кроме того, опорный отсчет, смежный с текущим блоком, называется соседним опорным отсчетом, и опорный отсчет, не являющийся смежным с текущим блоком, называется несоседним опорным отсчетом.[00200] Candidate blocks may include at least one of adjacent blocks containing a sample adjacent to the current block or non-adjacent blocks containing a sample that is not adjacent to the current block. Next, the samples for determining candidate blocks are set as reference samples. In addition, a reference sample adjacent to the current block is called an adjacent reference sample, and a reference sample that is not adjacent to the current block is called a non-adjacent reference sample.
[00201] Соседний опорный отсчет может быть включен в соседний столбец самого левого столбца текущего блока или соседнюю строку самой верхней строки текущего блока. Например, когда координаты верхнего левого отсчета текущего блока составляют (0, 0), по меньшей мере один из блока, содержащего опорный отсчет в положении (-1, H-1), блока, содержащего опорный отсчет в положении (W-1, -1), блока, содержащего опорный отсчет в положении (W, -1), блока, содержащего опорный отсчет в положении (-1, H), и блока, содержащего опорный отсчет в положении (-1, -1), может использоваться в качестве кандидатного блока. Обращаясь к графическим материалам, соседние блоки индекса 0-4 могут использоваться в качестве кандидатных блоков.[00201] An adjacent reference sample may be included in an adjacent column of the leftmost column of the current block or an adjacent row of the topmost row of the current block. For example, when the coordinates of the top left sample of the current block are (0, 0), at least one of the block containing the reference sample at position (-1, H-1), the block containing the reference sample at position (W-1, - 1), a block containing a reference count at position (W, -1), a block containing a reference count at position (-1, H), and a block containing a reference count at position (-1, -1) can be used in as a candidate block. Referring to graphics materials, adjacent blocks of index 0-4 can be used as candidate blocks.
[00202] Несоседний опорный отсчет представляет отсчет, в котором по меньшей мере одно из расстояния по оси x и расстояния по оси y от опорного отсчета, смежного с текущим блоком, имеет предварительно заданное значение. Например, по меньшей мере один из блока, содержащего опорный отсчет, в котором расстояние по оси x от левого опорного отсчета представляет собой предварительно заданное значение, блока, содержащего несоседний отсчет, в котором расстояние по оси y от верхнего опорного отсчета представляет собой предварительно заданное значение, и блока, содержащего несоседний отсчет, в котором расстояние по оси x и расстояние по оси y от верхнего левого опорного отсчета представляют собой предварительно заданные значения, может использоваться в качестве кандидатного блока. Предварительно заданные значения могут представлять собой натуральное число, такое как 4, 8, 12, 16 или т.п. Обращаясь к графическим материалам, по меньшей мере один из блоков индекса 5-26 может использоваться в качестве кандидатного блока.[00202] A non-adjacent reference count represents a count in which at least one of the x-axis distance and the y-axis distance from a reference count adjacent to the current block has a predetermined value. For example, at least one of a block containing a reference sample, in which the x-axis distance from the left reference sample is a predetermined value, a block containing a non-adjacent sample, in which the y-axis distance from the top reference sample is a predetermined value , and a block containing a non-adjacent sample in which the x-axis distance and the y-axis distance from the upper left reference sample are preset values, can be used as a candidate block. The preset values may be a natural number such as 4, 8, 12, 16 or the like. Referring to graphics, at least one of the index blocks 5-26 may be used as a candidate block.
[00203] Отсчет, не расположенный на той же вертикальной линии, горизонтальной линии или диагональной линии, что и соседний опорный отсчет, может быть установлен в качестве несоседнего опорного отсчета.[00203] A sample not located on the same vertical line, horizontal line, or diagonal line as an adjacent reference sample may be set as a non-adjacent reference sample.
[00204] На фиг. 16 представлен вид, показывающий положения опорных отсчетов.[00204] In FIG. 16 is a view showing positions of reference samples.
[00205] Как показано в примере по фиг. 16, координаты x верхних несоседних опорных отсчетов могут быть установлены отличающимися от координат x верхних соседних опорных отсчетов. Например, когда положение верхнего соседнего опорного отсчета составляет (W-1, -1), положение верхнего несоседнего опорного отсчета, отдаленного вплоть до N от верхнего соседнего опорного отсчета на оси y, может быть установлено на ((W/2)-1, -1-N), и положение верхнего несоседнего опорного отсчета, отдаленного вплоть до 2N от верхнего соседнего опорного отсчета на оси y, может быть установлено на (0, -1-2N). То есть положение несмежного опорного отсчета может быть определено на основании положения смежного опорного отсчета и расстояния от смежного опорного отсчета.[00205] As shown in the example of FIG. 16, the x-coordinates of the upper non-adjacent reference samples can be set different from the x-coordinates of the upper adjacent reference samples. For example, when the position of the top adjacent reference count is (W-1, -1), the position of the top non-neighboring reference count up to N away from the top adjacent reference count on the y-axis can be set to ((W/2)-1, -1-N), and the position of the top non-adjacent reference count, distant up to 2N from the top adjacent reference count on the y-axis, can be set to (0, -1-2N). That is, the position of the non-adjacent reference sample can be determined based on the position of the adjacent reference sample and the distance from the adjacent reference sample.
[00206] Далее кандидатный блок, содержащий соседний опорный отсчет, из кандидатных блоков называется соседним блоком, и блок, содержащий несоседний опорный отсчет, называется несоседним блоком.[00206] Hereinafter, a candidate block containing an adjacent reference sample of the candidate blocks is called an adjacent block, and a block containing a non-adjacent reference sample is called a non-adjacent block.
[00207] Когда расстояние между текущим блоком и кандидатным блоком больше или равно пороговому значению, кандидатный блок может быть установлен как недоступный в качестве кандидата на слияние. Пороговое значение может быть определено на основании размера элемента кодового дерева. Например, пороговое значение может быть установлено равным высоте (ctu_height) элемента кодового дерева или значению, полученному путем сложения смещения с высотой (например, ctu_height ± N) элемента кодового дерева или вычитания смещения из нее. Смещение N представляет собой значение, предварительно заданное в кодере и декодере, и может быть установлено равным 4, 8, 16, 32 или ctu_height.[00207] When the distance between the current block and a candidate block is greater than or equal to a threshold, the candidate block may be set as unavailable as a merge candidate. The threshold value may be determined based on the size of the code tree element. For example, the threshold may be set to the height (ctu_height) of the code tree element, or a value obtained by adding the offset to or subtracting the offset from the height (eg, ctu_height ± N) of the code tree element. The offset N is a value preset in the encoder and decoder and can be set to 4, 8, 16, 32 or ctu_height.
[00208] Когда разница между координатой по оси y текущего блока и координатой по оси y отсчета, включенного в кандидатный блок, больше, чем пороговое значение, кандидатный блок может быть определен как недоступный в качестве кандидата на слияние.[00208] When the difference between the y-coordinate of the current block and the y-coordinate of a sample included in the candidate block is greater than a threshold value, the candidate block may be determined to be unavailable as a merge candidate.
[00209] Альтернативно кандидатный блок, который не принадлежит тому же элементу кодового дерева, что и текущий блок, может быть установлен как недоступный в качестве кандидата на слияние. Например, когда опорный отсчет отклоняется от верхней границы элемента кодового дерева, к которому принадлежит текущий блок, кандидатный блок, содержащий опорный отсчет, может быть установлен недоступным в качестве кандидата на слияние.[00209] Alternatively, a candidate block that does not belong to the same code tree element as the current block may be set to unavailable as a merge candidate. For example, when a reference sample deviates from the top boundary of a code tree element to which the current block belongs, the candidate block containing the reference sample may be set unavailable as a merge candidate.
[00210] Когда верхняя граница текущего блока является смежной с верхней границей элемента кодового дерева, множество кандидатных блоков определяются как недоступные в качестве кандидата на слияние, и, таким образом, эффективность кодирования/декодирования текущего блока может снижаться. Для решения этой проблемы кандидатные блоки могут быть установлены так, чтобы количество кандидатных блоков, расположенных на левой стороне текущего блока, было больше, чем количество кандидатных блоков, расположенных сверху текущего блока.[00210] When the upper boundary of the current block is adjacent to the upper boundary of a code tree element, a plurality of candidate blocks are determined to be unavailable as a merge candidate, and thus the encoding/decoding efficiency of the current block may be reduced. To solve this problem, candidate blocks can be set so that the number of candidate blocks located on the left side of the current block is greater than the number of candidate blocks located on top of the current block.
[00211] На фиг. 17 представлен вид, показывающий пример кандидатных блоков, используемых для получения кандидата на слияние.[00211] In FIG. 17 is a view showing an example of candidate blocks used to obtain a merge candidate.
[00212] Как показано в примере по фиг. 17, верхние блоки, принадлежащие N верхним столбцам блоков текущего блока, и левые блоки, принадлежащие M левым столбцам блоков текущего блока, могут быть установлены в качестве кандидатных блоков. В этом случае количество левых кандидатных блоков может быть установлено большим, чем количество верхних кандидатных блоков, путем установки M больше, чем N.[00212] As shown in the example of FIG. 17, the top blocks belonging to the N top block columns of the current block and the left blocks belonging to the M left block columns of the current block can be set as candidate blocks. In this case, the number of left candidate blocks can be set to be greater than the number of top candidate blocks by setting M greater than N.
[00213] Например, разница между координатой по оси y опорного отсчета в текущем блоке и координатой по оси y верхнего блока, который может использоваться в качестве кандидатного блока, может быть установлена такой, что не превышает в N раз высоту текущего блока. Кроме того, разница между координатой по оси x опорного отсчета в текущем блоке и координатой по оси x левого блока, который может использоваться в качестве кандидатного блока, может быть установлена такой, что не превышает в M раз ширину текущего блока.[00213] For example, the difference between the y-coordinate of a reference sample in the current block and the y-coordinate of an upper block that can be used as a candidate block can be set to be no greater than N times the height of the current block. In addition, the difference between the x-coordinate of the reference sample in the current block and the x-coordinate of the left block, which can be used as a candidate block, can be set to not exceed M times the width of the current block.
[00214] Например, в примере, показанном на фиг. 17, показано, что блоки, принадлежащие к верхним двум столбцам блоков текущего блока, и блоки, принадлежащие к левым пяти столбцам блоков текущего блока, устанавливаются в качестве кандидатных блоков.[00214] For example, in the example shown in FIG. 17, it is shown that blocks belonging to the top two block columns of the current block and blocks belonging to the left five block columns of the current block are set as candidate blocks.
[00215] В качестве другого примера, когда кандидатный блок не принадлежит к такому же элементу кодового дерева, как текущий блок, кандидат на слияние может быть получен с использованием блока, принадлежащего к такому же элементу кодового дерева, как и текущий блок, или блока, содержащего опорный отсчет, смежный с границей элемента кодового дерева, вместо кандидатного блока.[00215] As another example, when a candidate block does not belong to the same code tree element as the current block, a merge candidate may be obtained using a block belonging to the same code tree element as the current block, or a block containing a reference sample adjacent to the code tree element boundary, instead of a candidate block.
[00216] На фиг. 18 представлен вид, показывающий пример, в котором положение опорного отсчета изменено.[00216] In FIG. 18 is a view showing an example in which the position of the reference count is changed.
[00217] Когда опорный отсчет включен в элемент кодового дерева, отличающийся от текущего блока, и опорный отсчет не является смежным с границей элемента кодового дерева, кандидатный блок может быть определен с использованием опорного отсчета, смежного с границей элемента кодового дерева, вместо опорного отсчета.[00217] When a reference sample is included in a code tree element different from the current block, and the reference sample is not adjacent to the code tree element boundary, a candidate block may be determined using a reference sample adjacent to the code tree element boundary instead of the reference sample.
[00218] Например, в примерах, показанных на фиг. 18 (a) и 18 (b), когда верхняя граница текущего блока и верхняя граница элемента кодового дерева находятся в контакте друг с другом, опорные отсчеты сверху текущего блока принадлежат к элементу кодового дерева, отличающемуся от текущего блока. Из опорных отсчетов, принадлежащих к элементу кодового дерева, отличающемуся от текущего блока, опорный отсчет, не являющийся смежным с верхней границей элемента кодового дерева, может быть заменен отсчетом, смежным с верхней границей элемента кодового дерева.[00218] For example, in the examples shown in FIGS. 18(a) and 18(b), when the upper boundary of the current block and the upper boundary of the code tree element are in contact with each other, the reference samples on top of the current block belong to a code tree element different from the current block. Of the reference samples belonging to a code tree element other than the current block, a reference sample that is not adjacent to the top boundary of the code tree element may be replaced by a sample adjacent to the top boundary of the code tree element.
[00219] Например, как показано в примере на фиг. 18 (a), опорный отсчет в положении 6 заменяется отсчетом в положении 6’, расположенном на верхней границе элемента кодового дерева, и, как показано в примере на фиг. 18 (b), опорный отсчет в положении 15 заменяется отсчетом в положении 15’, расположенном на верхней границе элемента кодового дерева. В этом случае координата y отсчета замены заменяется положением, смежным с элементом кодового дерева, и координата x отсчета замены может быть установлена равной опорному отсчету. Например, отсчет в положении 6’ может иметь такую же координату x, что и отсчет в положении 6, и отсчет в положении 15’ может иметь такую же координату x, что и отсчет в положении 15.[00219] For example, as shown in the example in FIG. 18(a), the reference sample at position 6 is replaced by a sample at position 6' located at the upper boundary of the code tree element, and, as shown in the example in FIG. 18(b), the reference sample at position 15 is replaced by the sample at position 15', located at the upper boundary of the code tree element. In this case, the y-coordinate of the replacement sample is replaced with a position adjacent to the code tree element, and the x-coordinate of the replacement sample can be set equal to the reference sample. For example, a sample at position 6' may have the same x-coordinate as a sample at position 6, and a sample at position 15' may have the same x-coordinate as a sample at position 15.
[00220] Альтернативно значение, полученное путем сложения смещения с координатой x опорного отсчета или вычитания смещения из нее, может быть установлено в качестве координаты x отсчета замены. Например, когда координаты x соседнего опорного отсчета, расположенного сверху текущего блока, и несоседнего опорного отсчета являются одинаковыми, значение, полученное путем сложения смещения с координатой x опорного отсчета или вычитания смещения из нее, может быть установлено в качестве координаты x отсчета замены. Это предназначено для предотвращения размещения отсчета замены, заменяющего несоседний опорный отсчет, в таком же положении, что и другой несоседний опорный отсчет или соседний опорный отсчет.[00220] Alternatively, the value obtained by adding the offset to the x-coordinate of the reference sample or subtracting the offset from it may be set as the x-coordinate of the replacement sample. For example, when the x-coordinates of an adjacent reference sample located on top of the current block and a non-adjacent reference sample are the same, a value obtained by adding the offset to or subtracting the offset from the x-coordinate of the reference sample can be set as the x-coordinate of the replacement sample. This is intended to prevent a replacement sample replacing a non-adjacent reference sample from being placed in the same position as another non-adjacent reference sample or an adjacent reference sample.
[00221] На фиг. 19 представлен вид, показывающий пример, в котором положение опорного отсчета изменено.[00221] In FIG. 19 is a view showing an example in which the position of the reference count is changed.
[00222] При замене опорного отсчета, который включен в элемент кодового дерева, отличающийся от текущего блока, и который не является смежным с границей элемента кодового дерева, отсчетом, расположенным на границе элемента кодового дерева, значение, полученное путем сложения смещения с координатой x опорного отсчета или вычитания смещения из нее, может быть установлено в качестве координаты x отсчета замены.[00222] When replacing a reference sample that is included in a code tree element different from the current block, and which is not adjacent to the code tree element boundary, with a sample located on the code tree element boundary, the value obtained by adding the offset to the x coordinate of the reference reference or subtracting an offset from it, can be set as the x-coordinate of the replacement reference.
[00223] Например, в примере, показанном на фиг. 19, опорный отсчет в положении 6 и опорный отсчет в положении 15 могут быть заменены отсчетом в положении 6’ и отсчетом в положении 15’ соответственно, координаты y которых являются одинаковыми с координатами y строки, смежной с верхней границей элемента кодового дерева. В этом случае координата x отсчета в положении 6’ может быть установлена равной значению, полученному вычитанием W/2 из координаты x опорного отсчета в положении 6, и координата x отсчета в положении 15’ может быть установлена равной значению, полученному вычитанием W-1 из координаты x опорного отсчета в положении 15.[00223] For example, in the example shown in FIG. 19, the reference sample at position 6 and the reference sample at position 15 can be replaced by the sample at position 6' and the sample at position 15', respectively, the y-coordinates of which are the same as the y-coordinates of the row adjacent to the upper boundary of the code tree element. In this case, the x-coordinate of the reference at position 6' can be set equal to the value obtained by subtracting W/2 from the x-coordinate of the reference sample at position 6, and the x-coordinate of the reference at position 15' can be set to the value obtained by subtracting W-1 from x coordinates of the reference reference at position 15.
[00224] В отличие от примеров, показанных на фиг. 18 и 19, координата y строки, расположенной сверху самой верхней строки текущего блока, или координата y верхней границы элемента кодового дерева может быть установлена в качестве координаты y отсчета замены.[00224] Unlike the examples shown in FIGS. 18 and 19, the y-coordinate of the row located on top of the topmost row of the current block, or the y-coordinate of the upper boundary of the code tree element can be set as the y-coordinate of the replacement reference.
[00225] Хотя это не показано, отсчет, заменяющий опорный отсчет, может быть определен на основании левой границы элемента кодового дерева. Например, когда опорный отсчет не включен в такой же элемент кодового дерева, как текущий блок, и не является смежным с левой границей элемента кодового дерева, опорный отсчет может быть заменен отсчетом, смежным с левой границей элемента кодового дерева. В этом случае отсчет замены может иметь координату y, одинаковую с координатой y опорного отсчета, или может иметь координату y, полученную путем сложения смещения с координатой y опорного отсчета или вычитания из нее.[00225] Although not shown, a sample replacing the reference sample may be determined based on the left border of the code tree element. For example, when the reference sample is not included in the same code tree element as the current block and is not adjacent to the left boundary of the code tree element, the reference sample may be replaced by a sample adjacent to the left boundary of the code tree element. In this case, the replacement sample may have a y-coordinate that is the same as the y-coordinate of the reference sample, or may have a y-coordinate obtained by adding the offset to or subtracting from the y-coordinate of the reference sample.
[00226] После этого блок, содержащий отсчет замены, может быть установлен в качестве кандидатного блока, и кандидат на слияние текущего блока может быть получен на основании кандидатного блока.[00226] Thereafter, the block containing the replacement count can be set as a candidate block, and a merge candidate of the current block can be obtained based on the candidate block.
[00227] Кандидат на слияние может также быть получен на основании временного соседнего блока, включенного в изображение, отличающегося от текущего блока. Например, кандидат на слияние может быть получен из совмещаемого блока, включенного в совмещаемое изображение.[00227] A merge candidate may also be obtained based on a temporary neighboring block included in the image that is different from the current block. For example, a fusion candidate may be obtained from a fusion block included in a fusion image.
[00228] Информация о движении кандидата на слияние может быть установлена равной информации о движении кандидатного блока. Например, по меньшей мере одно из вектора движения, индекса опорного изображения, направления предсказания и двунаправленного весового индекса кандидатного блока может быть установлено в качестве информации о движении кандидата на слияние.[00228] The movement information of the merge candidate may be set equal to the movement information of the candidate block. For example, at least one of the motion vector, the reference image index, the prediction direction, and the bidirectional weight index of the candidate block may be set as the motion information of the fusion candidate.
[00229] Может генерироваться (S1402) список кандидатов на слияние, содержащий кандидатов на слияние. Кандидаты на слияние могут быть разделены на смежного кандидата на слияние, полученного из соседнего блока, смежного с текущим блоком, и несмежного кандидата на слияние, полученного из несоседнего блока.[00229] A merge candidate list may be generated (S1402) containing the merge candidates. The merge candidates can be divided into a contiguous merge candidate obtained from an adjacent block adjacent to the current block and a non-adjacent merge candidate obtained from a non-adjacent block.
[00230] Индексы кандидатов на слияние в списке кандидатов на слияние могут быть присвоены в предварительно определенном порядке. Например, индекс, присвоенный смежному кандидату на слияние, может иметь значение, меньше чем в индексе, присвоенном несмежному кандидату на слияние. Альтернативно индекс может быть присвоен каждому из кандидатов на слияние на основании индекса каждого блока, показанного на фиг. 15 или 17.[00230] The indices of the merge candidates in the list of merge candidates may be assigned in a predetermined order. For example, the index assigned to an adjacent merge candidate may have a value less than the index assigned to a non-adjacent merge candidate. Alternatively, an index may be assigned to each of the merge candidates based on the index of each block shown in FIG. 15 or 17.
[00231] Когда множество кандидатов на слияние включены в список кандидатов на слияние, может быть выбран (S1403) по меньшей мере один из множества кандидатов на слияние. В этом случае информация, указывающая на то, получена ли информация о движении текущего блока из смежного кандидата на слияние, может быть передана посредством битового потока. Информация может представлять собой 1-битный флаг. Например, элемент синтаксиса isAdjancentMergeFlag, указывающий на то, получена ли информация о движении текущего блока из смежного кандидата на слияние, может быть передана посредством битового потока. Когда значение элемента синтаксиса isAdjancentMergeFlag равно 1, информация о движении текущего блока может быть получена на основании смежного кандидата на слияние. С другой стороны, когда значение элемента синтаксиса isAdjancentMergeFlag равно 0, информация о движении текущего блока может быть получена на основании несмежного кандидата на слияние.[00231] When a plurality of merger candidates are included in the merger candidate list, at least one of the plurality of merger candidates may be selected (S1403). In this case, information indicating whether movement information of the current block is obtained from an adjacent merge candidate may be transmitted by a bitstream. The information may be a 1-bit flag. For example, the isAdjancentMergeFlag syntax element indicating whether the current block's movement information is derived from an adjacent merge candidate may be conveyed via a bitstream. When the value of the isAdjancentMergeFlag syntax element is 1, information about the movement of the current block can be obtained based on the adjacent merge candidate. On the other hand, when the value of the isAdjancentMergeFlag syntax element is 0, information about the movement of the current block can be obtained based on the non-adjacent merge candidate.
[00232] В таблице 1 показана таблица синтаксиса, содержащая элемент синтаксиса isAdjancentMergeFlag.[00232] Table 1 shows a syntax table containing the isAdjancentMergeFlag syntax element.
[00233] Таблица 1[00233] Table 1
[00234] Информация для указания любого из множества кандидатов на слияние может передаваться посредством битового потока. Например, информация, указывающая индекс любого из кандидатов на слияние, включенных в список кандидатов на слияние, может быть передана посредством битового потока.[00234] Information to indicate any of a plurality of merge candidates may be transmitted via a bitstream. For example, information indicating the index of any of the merge candidates included in the list of merge candidates may be transmitted by a bitstream.
[00235] Когда isAdjacentMergeflag равен 1, может быть передан элемент синтаксиса merge_idx, указывающий любого из смежных кандидатов на слияние. Максимальное значение элемента синтаксиса merge_idx может быть установлено равным значению, полученному путем вычитания 1 из количества смежных кандидатов на слияние.[00235] When isAdjacentMergeflag is 1, a merge_idx syntax element may be passed indicating any of the adjacent merge candidates. The maximum value of the merge_idx syntax element can be set to the value obtained by subtracting 1 from the number of contiguous merge candidates.
[00236] Когда isAdjacentMergeflag равен 0, может быть передан элемент синтаксиса NA_merge_idx, указывающий любого из несмежных кандидатов на слияние. Элемент синтаксиса NA_merge_idx представляет значение, полученное путем вычитания количества смежных кандидатов на слияние из индекса несмежного кандидата на слияние. Декодер может выбрать несмежного кандидата на слияние путем сложения количества смежных кандидатов на слияние с индексом, указанным посредством NA_merge_idx.[00236] When isAdjacentMergeflag is 0, a NA_merge_idx syntax element may be passed indicating any of the non-adjacent merge candidates. The NA_merge_idx syntax element represents the value obtained by subtracting the number of contiguous merge candidates from the index of the non-contiguous merge candidate. The decoder may select a non-contiguous merge candidate by adding the number of contiguous merge candidates with the index specified by NA_merge_idx.
[00237] Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем пороговое значение, кандидат на слияние, включенный в список информации о движении между участками, может быть добавлен в список кандидатов на слияние. В данном случае пороговое значение может представлять собой максимальное количество кандидатов на слияние, которое список кандидатов на слияние может содержать, или значение, полученное путем вычитания смещения из максимального количества кандидатов на слияние. Смещение может представлять собой натуральное число, такое как 1, 2 или т.п. Список информации о движении между участками может содержать кандидата на слияние, полученного на основании блока, кодированного/декодированного перед текущим блоком.[00237] When the number of merge candidates included in the merge candidate list is less than a threshold value, the merge candidate included in the inter-site traffic information list may be added to the merge candidate list. In this case, the threshold may be the maximum number of merge candidates that the list of merge candidates can contain, or a value obtained by subtracting the offset from the maximum number of merge candidates. The offset may be a natural number such as 1, 2, or the like. The list of inter-hop traffic information may include a merge candidate obtained based on a block encoded/decoded before the current block.
[00238] Список информации о движении между участками содержит кандидата на слияние, полученного из блока, кодированного/декодированного на основании предсказания, осуществляемого между изображениями, в текущем изображении. Например, информация о движении кандидата на слияние, включенного в список информации о движении между участками, может быть установлена равной информации о движении блока, кодированного/декодированного на основании предсказания, осуществляемого между изображениями. В данном случае информация о движении может содержать по меньшей мере одно из вектора движения, индекса опорного изображения, направления предсказания и двунаправленного весового индекса.[00238] The inter-section motion information list contains a merge candidate obtained from a block encoded/decoded based on inter-picture prediction in the current picture. For example, the motion information of a fusion candidate included in the inter-section motion information list may be set equal to the motion information of a block encoded/decoded based on inter-picture prediction. Here, the motion information may comprise at least one of a motion vector, a reference image index, a prediction direction, and a bidirectional weight index.
[00239] Для удобства объяснения кандидат на слияние, включенный в список информации о движении между участками, будет называться кандидатом на слияние между участками.[00239] For convenience of explanation, a merge candidate included in the inter-site traffic information list will be referred to as an inter-site merge candidate.
[00240] Максимальное количество кандидатов на слияние, которое может содержать список информации о движении между участками, может быть предварительно задано кодером и декодером. Например, максимальное количество кандидатов на слияние, которое может быть включено в список информации о движении между участками, может составлять 1, 2, 3, 4, 5, 6, 7, 8 или больше (например, 16).[00240] The maximum number of merge candidates that can contain a list of inter-section traffic information can be preset by the encoder and decoder. For example, the maximum number of merge candidates that can be included in the inter-site traffic information list can be 1, 2, 3, 4, 5, 6, 7, 8 or more (eg, 16).
[00241] Альтернативно информация, указывающая максимальное количество кандидатов на слияние в списке информации о движении между участками, может быть передана посредством битового потока. Информация может передаваться на уровне последовательности, изображения или слайса.[00241] Alternatively, information indicating the maximum number of merge candidates in the inter-section traffic information list may be transmitted by a bitstream. Information can be transferred at the sequence, image or slice level.
[00242] Альтернативно максимальное количество кандидатов на слияние списка информации о движении между участками может быть определено согласно размеру изображения, размеру слайса или размеру элемента кодового дерева.[00242] Alternatively, the maximum number of cross-section motion information list merging candidates may be determined according to the image size, slice size, or code tree element size.
[00243] Список информации о движении между участками может быть инициализирован элементом изображения, слайса, тайла, пакета, элементом кодового дерева или линией элементов кодового дерева (строкой или столбцом). Например, когда инициализирован слайс, список информации о движении между участками также инициализирован, и список информации о движении между участками может не содержать какого-либо кандидата на слияние.[00243] The list of inter-section motion information may be initialized by an image element, a slice, a tile, a packet, a code tree element, or a line of code tree elements (row or column). For example, when a slice is initialized, the inter-slice traffic information list is also initialized, and the inter-slice traffic information list may not contain any merge candidate.
[00244] Альтернативно информация, указывающая на то, нужно или нет инициализировать список информации о движении между участками, может быть передана посредством битового потока. Информация может быть передана на уровне слайса, тайла, пакета или блока. Пока информация не укажет об инициализации списка информации о движении между участками, может использоваться предварительно сконфигурированный список информации о движении между участками.[00244] Alternatively, information indicating whether or not to initialize a list of inter-section traffic information may be transmitted via a bit stream. Information can be transferred at the slice, tile, packet or block level. Until the information indicates initialization of the inter-section traffic information list, a preconfigured inter-section traffic information list may be used.
[00245] Альтернативно информация в отношении начального кандидата на слияние между участками может быть передана посредством набора параметров изображения или заголовка слайса. Несмотря на инициализацию слайса, список информации о движении между участками может содержать начального кандидата на слияние между участками. Соответственно кандидат на слияние между участками может использоваться для блока, который представляет собой первую цель кодирования/декодирования в слайсе.[00245] Alternatively, information regarding the initial inter-slice fusion candidate may be conveyed by a set of image parameters or a slice header. Despite slice initialization, the list of inter-partition traffic information may contain an initial inter-partition merge candidate. Accordingly, a cross-section merge candidate may be used for a block that represents the first encoding/decoding target in the slice.
[00246] Блоки кодированы/декодированы согласно порядку кодирования/декодирования, и блоки, кодированные/декодированные на основании предсказания, осуществляемого между изображениями, могут быть последовательно установлены в качестве кандидата на слияние между участками согласно порядку кодирования/декодирования.[00246] The blocks are encoded/decoded according to the encoding/decoding order, and the blocks encoded/decoded based on the prediction performed between pictures can be sequentially set as a fusion candidate between sections according to the encoding/decoding order.
[00247] На фиг. 20 представлена блок-схема, изображающая процесс обновления списка информации о движении между участками.[00247] In FIG. 20 is a flowchart showing the process of updating the inter-section traffic information list.
[00248] Когда предсказание, осуществляемое между изображениями, выполняется (S2001) в отношении текущего блока, кандидат на слияние между участками может быть получен (S2002) на основании текущего блока. Информация о движении кандидата на слияние между участками может быть установлена равной информации о движении текущего блока.[00248] When inter-picture prediction is performed (S2001) on the current block, an inter-patch fusion candidate can be obtained (S2002) based on the current block. The movement information of a merge candidate between blocks may be set equal to the movement information of the current block.
[00249] Когда список информации о движении между участками пуст (S2003), кандидат на слияние между участками, полученный на основании текущего блока, может быть добавлен (S2004) в список информации о движении между участками.[00249] When the inter-section traffic information list is empty (S2003), the inter-section merging candidate obtained based on the current block can be added (S2004) to the inter-section traffic information list.
[00250] Когда список информации о движении между участками уже содержит кандидата на слияние между участками (S2003), в отношении информации о движении текущего блока (или кандидата на слияние между участками, полученного на основании текущего блока) может выполняться (S2005) контроль по избыточности. Контроль по избыточности предназначен для определения того, являются ли одинаковыми информация о движении кандидата на слияние между участками, ранее сохраненного в списке информации о движении между участками, и информация о движении текущего блока. Контроль по избыточности может быть выполнен в отношении всех кандидатов на слияние между участками, ранее сохраненными в списке информации о движении между участками. Альтернативно контроль по избыточности может быть выполнен в отношении кандидатов на слияние между участками, имеющих индекс, который больше, чем пороговое значение, или меньше, чем пороговое значение, из кандидатов на слияние между участками, ранее сохраненных в списке информации о движении между участками.[00250] When the inter-section traffic information list already contains an inter-section merging candidate (S2003), redundancy check can be performed (S2005) on the traffic information of the current block (or the inter-section merging candidate obtained based on the current block) (S2005). . The redundancy check is to determine whether the movement information of the inter-section merge candidate previously stored in the inter-section movement information list and the movement information of the current block are the same. Redundancy checking may be performed on all inter-site merging candidates previously stored in the inter-site traffic information list. Alternatively, redundancy checking may be performed on inter-site fusion candidates having an index that is greater than a threshold value or less than a threshold value from among the inter-site fusion candidates previously stored in the inter-site traffic information list.
[00251] Когда кандидат на слияние между участками, имеющий такую же информацию о движении, как и информация о движении текущего блока, не включен, кандидат на слияние между участками, полученный на основании текущего блока, может быть добавлен (S2008) в список информации о движении между участками. Определение того, являются ли кандидаты на слияние одинаковыми, может быть осуществлено на основании того, является ли одинаковой информация о движении (например, вектор движения и/или индекс опорного изображения) кандидатов на слияние между участками.[00251] When an inter-section fusion candidate having the same motion information as the motion information of the current block is not included, the inter-section fusion candidate obtained based on the current block can be added (S2008) to the list of information about movement between areas. Determining whether the fusion candidates are the same can be made based on whether the motion information (eg, motion vector and/or reference image index) of the fusion candidates is the same between regions.
[00252] В этом случае, когда максимальное количество кандидатов на слияние между участками уже сохранено в списке информации о движении между участками (S2006), наиболее старшие кандидаты на слияние между участками удаляются (S2007), и кандидат на слияние между участками, полученный на основании текущего блока, может быть добавлен (S2008) в список информации о движении между участками.[00252] In this case, when the maximum number of inter-area merging candidates is already stored in the inter-area traffic information list (S2006), the most senior inter-area merging candidates are deleted (S2007), and the inter-area merging candidate obtained based on of the current block can be added (S2008) to the inter-section movement information list.
[00253] Каждый из кандидатов на слияние между участками может быть идентифицирован индексом. Когда кандидат на слияние между участками, полученный из текущего блока, добавляется в список информации о движении между участками, самый низкий индекс (например, 0) присваивается кандидату на слияние между участками, и индексы ранее сохраненных кандидатов на слияние между участками могут быть увеличены на 1. В этом случае, когда максимальное количество кандидатов на слияние между участками уже сохранено в списке информации о движении между участками, кандидат на слияние между участками, имеющий самый большой индекс, удаляется.[00253] Each of the cross-region fusion candidates may be identified by an index. When an inter-site merge candidate obtained from the current block is added to the inter-site traffic information list, the lowest index (for example, 0) is assigned to the inter-site merge candidate, and the indices of previously stored inter-site merge candidates may be incremented by 1 In this case, when the maximum number of inter-site merge candidates has already been stored in the inter-site traffic information list, the inter-site merge candidate having the largest index is deleted.
[00254] Альтернативно, когда кандидат на слияние между участками, полученный из текущего блока, добавляется в список информации о движении между участками, кандидату на слияние между участками может быть присвоен наибольший индекс. Например, когда количество кандидатов на слияние между участками, ранее сохраненных в списке информации о движении между участками, меньше, чем максимальное значение, индекс, имеющий такое же значение, как количество ранее сохраненных кандидатов на слияние между участками, может присваиваться кандидату на слияние между участками. Альтернативно, когда количество кандидатов на слияние между участками, ранее сохраненное в списке информации о движении между участками, является таким же, как максимальное значение, кандидату на слияние между участками может присваиваться индекс, вычитающий 1 из максимального значения. Кроме того, кандидат на слияние между участками, имеющий самый маленький индекс, удаляется, и индексы оставшихся ранее сохраненных кандидатов на слияние между участками могут уменьшаться на 1.[00254] Alternatively, when an inter-site merge candidate obtained from the current block is added to the inter-site traffic information list, the inter-site merge candidate may be assigned the highest index. For example, when the number of inter-site fusion candidates previously stored in the inter-site traffic information list is less than the maximum value, an index having the same value as the number of previously stored inter-site fusion candidates may be assigned to the inter-site fusion candidate . Alternatively, when the number of inter-site fusion candidates previously stored in the inter-site traffic information list is the same as the maximum value, the inter-site fusion candidate may be assigned an index subtracting 1 from the maximum value. Additionally, the inter-site merge candidate having the smallest index is removed, and the indices of the remaining previously stored inter-site merge candidates may be decremented by 1.
[00255] На фиг. 21 представлен вид, показывающий вариант осуществления обновления списка кандидатов на слияние между участками.[00255] In FIG. 21 is a view showing an embodiment of updating a cross-site merge candidate list.
[00256] Предположительно, поскольку кандидат на слияние между участками, полученный из текущего блока, добавляется в список кандидатов на слияние между участками, самый большой индекс присваивается кандидату на слияние между участками. Кроме того, предположительно максимальное количество кандидатов на слияние между участками уже сохранено в списке кандидатов на слияние между участками.[00256] Presumably, since the inter-site merge candidate obtained from the current block is added to the list of inter-site merge candidates, the largest index is assigned to the inter-site merge candidate. In addition, presumably the maximum number of cross-site merge candidates is already stored in the inter-site merge candidate list.
[00257] Когда кандидат на слияние между участками HmvpCand[n + 1], полученный из текущего блока, добавляется в список кандидатов на слияние между участками HmvpCandList, кандидат на слияние между участками HmvpCand[0], имеющий самый маленький индекс среди ранее сохраненных кандидатов на слияние между участками, удаляется, и индексы оставшихся кандидатов на слияние между участками могут быть уменьшены на 1. Кроме того, индекс кандидата на слияние между участками HmvpCand[n + 1], полученного из текущего блока, может быть установлен равным максимальному значению (n в примере, показанном на фиг. 21).[00257] When an inter-site merge candidate HmvpCand[n + 1] obtained from the current block is added to the inter-site merge candidate list HmvpCandList, the inter-site merge candidate HmvpCand[0] having the smallest index among the previously stored inter-site merge candidates inter-chunk merge is removed, and the indices of the remaining inter-chunk merge candidates may be decremented by 1. Additionally, the index of the inter-chunk merge candidate HmvpCand[n + 1] obtained from the current block may be set to the maximum value (n in example shown in Fig. 21).
[00258] Когда кандидат на слияние между участками, являющийся таким же, как кандидат на слияние между участками, полученный на основании текущего блока, сохранен ранее (S2005), кандидат на слияние между участками, полученный на основании текущего блока, может не добавляться (S2009) в список информации о движении между участками.[00258] When an inter-site fusion candidate that is the same as an inter-site fusion candidate obtained based on the current block is stored previously (S2005), the inter-site fusion candidate obtained based on the current block may not be added (S2009 ) to the list of information about movement between sections.
[00259] Альтернативно, поскольку кандидат на слияние между участками, полученный на основании текущего блока, добавляется в список информации о движении между участками, ранее сохраненный кандидат на слияние между участками, который является таким же, как кандидат на слияние между участками, может удаляться. В этом случае достигается эффект, аналогичный обновлению заново индекса ранее сохраненного кандидата на слияние между участками.[00259] Alternatively, since the inter-site fusion candidate obtained based on the current block is added to the inter-site traffic information list, a previously stored inter-site fusion candidate that is the same as the inter-site fusion candidate may be deleted. In this case, an effect similar to updating the index of a previously saved merge candidate between sites is achieved.
[00260] На фиг. 22 представлен вид, показывающий пример, в котором индекс ранее сохраненного кандидата на слияние между участками обновлен.[00260] In FIG. 22 is a view showing an example in which the index of a previously stored inter-site merge candidate is updated.
[00261] Когда индекс ранее сохраненного кандидата на слияние между участками mvCand, который является таким же, как кандидат на слияние между участками mvCand, полученный на основании текущего блока, представляет собой hIdx, ранее сохраненный кандидат на слияние между участками удаляется, и индексы кандидатов на слияние между участками, имеющие индекс, который больше, чем hIdx, могут быть уменьшены на 1. Например, в примере, показанном на фиг. 22, показано, что HmvpCand[2], являющийся таким же, как mvCand, удаляется из списка информации о движении между участками HvmpCandList, и индексы HmvpCand[3]-HmvpCand[n] уменьшаются на 1.[00261] When the index of a previously stored inter-site merge candidate mvCand, which is the same as the inter-site merge candidate mvCand obtained based on the current block, is hIdx, the previously stored inter-site merge candidate is deleted, and the indexes of the inter-site merge candidates merges between regions having an index that is greater than hIdx may be reduced by 1. For example, in the example shown in FIG. 22, it is shown that HmvpCand[2], which is the same as mvCand, is removed from the inter-section traffic information list HvmpCandList, and the indices HmvpCand[3]-HmvpCand[n] are decreased by 1.
[00262] Кроме того, кандидат на слияние между участками mvCand, полученный на основании текущего блока, может добавляться в конец списка информации о движении между участками.[00262] In addition, the inter-site fusion candidate mvCand obtained based on the current block may be added to the end of the inter-site traffic information list.
[00263] Альтернативно индекс, присвоенный ранее сохраненному кандидату на слияние между участками, который является таким же, как кандидат на слияние между участками, полученный на основании текущего блока, может обновляться. Например, индекс ранее сохраненного кандидата на слияние между участками может изменяться до минимального значения или максимального значения.[00263] Alternatively, an index assigned to a previously stored inter-partition merge candidate that is the same as an inter-partition merge candidate obtained based on the current block may be updated. For example, the index of a previously stored cross-site merge candidate may be changed to a minimum value or a maximum value.
[00264] Он может быть установлен не добавлять информацию о движении блоков, включенных в предварительно определенную область, в список информации о движении между участками. Например, кандидат на слияние между участками, полученный на основании информации о движении блока, включенного в область обработки слияния, может не добавляться в список информации о движении между участками. Поскольку порядок кодирования/декодирования не определяется для блоков, включенных в область обработки слияния, неуместно использовать информацию о движении любого из блоков для предсказания, осуществляемого между изображениями, другого блока. Соответственно кандидаты на слияние между участками, полученные на основании блоков, включенных в область обработки слияния, могут не добавляться в список информации о движении между участками.[00264] It may be set not to add movement information of blocks included in a predetermined area to the inter-area movement information list. For example, an inter-area fusion candidate obtained based on the movement information of a block included in the fusion processing area may not be added to the inter-area movement information list. Since the encoding/decoding order is not determined for the blocks included in the fusion processing region, it is inappropriate to use the motion information of any of the blocks for inter-picture prediction of another block. Accordingly, inter-section fusion candidates obtained based on blocks included in the fusion processing area may not be added to the inter-section traffic information list.
[00265] Когда предсказание с компенсацией движения выполняется элементом подблока, кандидат на слияние между участками может быть получен на основании информации о движении иллюстративного подблока из множества подблоков, включенных в текущий блок. Например, когда кандидат на слияние подблока используется для текущего блока, кандидат на слияние между участками может быть получен на основании информации о движении иллюстративного подблока из подблоков.[00265] When motion-compensated prediction is performed by a sub-block element, an inter-region fusion candidate may be obtained based on the motion information of an example sub-block of a plurality of sub-blocks included in the current block. For example, when a subblock merge candidate is used for a current block, an inter-section merge candidate may be obtained based on the motion information of an example subblock of subblocks.
[00266] Векторы движения подблоков могут быть получены в следующем порядке. Сначала выбирается один из кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, и начальный вектор сдвига (shVector) может быть получен на основании вектора движения выбранного кандидата на слияние. Затем сдвинутый подблок, у которого положение опорного отсчета представляет собой (xColSb, yColSb), может быть получен в качестве начального вектора сдвига, который добавляется в положении (xSb, ySb) опорного отсчета (например, верхнего левого отсчета или отсчета в центре) каждого подблока в блоке кодирования. В уравнении 4 показано уравнение для получения сдвинутого подблока.[00266] The motion vectors of the sub-blocks can be obtained in the following order. First, one of the merge candidates included in the list of merge candidates of the current block is selected, and an initial shift vector (shVector) can be obtained based on the motion vector of the selected merge candidate. Then, the shifted subblock whose reference sample position is (xColSb, yColSb) can be obtained as an initial shift vector, which is added at the reference sample position (for example, the top left sample or the center sample) of each subblock in the coding block. Equation 4 shows the equation for obtaining the shifted subblock.
[00267] Уравнение 4[00267] Equation 4
[00268] [00268]
[00269] Затем вектор движения совмещаемого блока, соответствующего центральному положению подблока, имеющего (xColSb, yColSb), может быть установлен в качестве вектора движения подблока, имеющего (xSb, ySb).[00269] Then, the motion vector of the aligned block corresponding to the center position of the subblock having (xColSb, yColSb) can be set as the motion vector of the subblock having (xSb, ySb).
[00270] Иллюстративный подблок может означать подблок, содержащий верхний левый отсчет или отсчет в центре текущего блока.[00270] An exemplary sub-block may refer to a sub-block containing the top left sample or the sample in the center of the current block.
[00271] На фиг. 23 представлен вид, показывающий положение иллюстративного подблока.[00271] In FIG. 23 is a view showing the position of an illustrative sub-block.
[00272] На фиг. 23 (a) показан пример, в котором подблок, расположенный сверху слева от текущего блока, установлен в качестве иллюстративного подблока, и на фиг. 23 (b) показан пример, в котором подблок, расположенный в центре текущего блока, установлен в качестве иллюстративного подблока. Когда предсказание с компенсацией движения выполняется элементом подблока, кандидат на слияние между участками текущего блока может быть получен на основании вектора движения подблока, содержащего верхний левый отсчет текущего блока, или подблока, содержащего отсчет в центре текущего блока.[00272] In FIG. 23(a) shows an example in which a subblock located at the top left of the current block is set as an example subblock, and FIG. 23(b) shows an example in which a subblock located at the center of the current block is set as an example subblock. When motion-compensated prediction is performed by a sub-block element, a candidate for merging between portions of the current block can be obtained based on the motion vector of the sub-block containing the top-left sample of the current block or the sub-block containing the sample in the center of the current block.
[00273] Может быть определено, использовать или нет текущий блок в качестве кандидата на слияние между участками, на основании режима предсказания, осуществляемого между изображениями, текущего блока. Например, блок, кодированный/декодированный на основании модели аффинного движения, может быть установлен недоступным в качестве кандидата на слияние между участками. Соответственно, несмотря на то, что текущий блок является кодированным/декодированным путем предсказания, осуществляемого между изображениями, когда режим предсказания, осуществляемого между изображениями, текущего блока представляет собой режим аффинного предсказания, список информации о движении между участками может не обновляться на основании текущего блока.[00273] It can be determined whether or not to use the current block as a cross-section fusion candidate based on the inter-image prediction mode of the current block. For example, a block encoded/decoded based on an affine motion model may be set unavailable as a candidate for cross-patch merging. Accordingly, although the current block is encoded/decoded by inter-picture prediction, when the inter-picture prediction mode of the current block is an affine prediction mode, the inter-section motion information list may not be updated based on the current block.
[00274] Альтернативно кандидат на слияние между участками может быть получен на основании по меньшей мере одного вектора подблока из подблоков, включенных в блок, кодированный/декодированный на основании модели аффинного движения. Например, кандидат на слияние между участками может быть получен с использованием подблока, расположенного сверху слева, подблока, расположенного в центре, или подблока, расположенного на верхней правой стороне текущего блока. Альтернативно среднее значение векторов подблоков множества подблоков может быть установлено в качестве вектора движения кандидата на слияние между участками.[00274] Alternatively, an inter-region fusion candidate may be obtained based on at least one sub-block vector of the sub-blocks included in the block encoded/decoded based on the affine motion model. For example, a cross-section merge candidate may be obtained using a sub-block located on the top left side, a sub-block located in the center, or a sub-block located on the top right side of the current block. Alternatively, the average of the subblock vectors of the plurality of subblocks may be set as the motion vector of a cross-section fusion candidate.
[00275] Альтернативно кандидат на слияние между участками может быть получен на основании среднего значения аффинных исходных векторов блока, кодированного/декодированного на основании модели аффинного движения. Например, среднее по меньшей мере одного из первого аффинного исходного вектора, второго аффинного исходного вектора и третьего аффинного исходного вектора текущего блока может быть установлено в качестве вектора движения кандидата на слияние между участками.[00275] Alternatively, a cross-section fusion candidate may be obtained based on the average of the affine source vectors of the block encoded/decoded based on the affine motion model. For example, the average of at least one of the first affine source vector, the second affine source vector, and the third affine source vector of the current block may be set as the motion vector of the cross-section fusion candidate.
[00276] Альтернативно список информации о движении между участками может быть сконфигурирован для каждого режима предсказания, осуществляемого между изображениями. Например, может быть определен по меньшей мере один из списка информации о движении между участками для блока, кодированного/декодированного путем внутриблочного копирования, списка информации о движении между участками для блока, кодированного/декодированного на основании модели поступательного движения, и списка информации о движении между участками для блока, кодированного/декодированного на основании модели аффинного движения. Согласно режиму предсказания, осуществляемого между изображениями текущего блока, может быть выбран любой из множества списков информации о движении между участками.[00276] Alternatively, a list of inter-patch motion information may be configured for each inter-picture prediction mode. For example, at least one of a list of inter-lot motion information for a block encoded/decoded by intra-block copying, a list of inter-lot motion information for a block encoded/decoded based on a translational motion model, and a list of inter-lot motion information may be defined. sections for a block encoded/decoded based on the affine motion model. According to the prediction mode performed between images of the current block, any of a plurality of inter-section motion information lists can be selected.
[00277] На фиг. 24 представлен вид, показывающий пример, в котором список информации о движении между участками генерируется для каждого режима предсказания, осуществляемого между изображениями.[00277] In FIG. 24 is a view showing an example in which a list of inter-section motion information is generated for each inter-image prediction mode.
[00278] Когда блок является кодированным/декодированным на основании модели неаффинного движения, кандидат на слияние между участками mvCand, полученный на основании блока, может быть добавлен в список информации о неаффинном движении между участками HmvpCandList. С другой стороны, когда блок является кодированным/декодированным на основании модели аффинного движения, кандидат на слияние между участками mvAfCand, полученный на основании блока, может быть добавлен в список информации об аффинном движении между участками HmvpAfCandList.[00278] When a block is encoded/decoded based on a non-affine motion model, the inter-site fusion candidate mvCand obtained based on the block may be added to the inter-site non-affine motion information list HmvpCandList. On the other hand, when a block is encoded/decoded based on an affine motion model, the inter-site fusion candidate mvAfCand obtained based on the block may be added to the inter-site affine motion information list HmvpAfCandList.
[00279] Аффинные исходные векторы блока, кодированного/декодированного на основании модели аффинного движения, могут быть сохранены в кандидате на слияние между участками, полученном из блока. Соответственно, кандидат на слияние между участками может использоваться в качестве кандидата на слияние для получения аффинного исходного вектора текущего блока.[00279] Affine source vectors of a block encoded/decoded based on the affine motion model may be stored in a cross-section fusion candidate derived from the block. Accordingly, the cross-section merge candidate can be used as a merge candidate to obtain the affine source vector of the current block.
[00280] Дополнительно к списку информации о движении между участками, описанному выше, может быть задан дополнительный список информации о движении между участками. Дополнительно к списку информации о движении между участками, описанному выше (далее называемому первым списком информации о движении между участками), может быть определен долговременный список информации о движении (далее называемый вторым списком информации о движении между участками). В данном случае долговременный список информации о движении содержит долговременных кандидатов на слияние.[00280] In addition to the inter-section traffic information list described above, an additional inter-section traffic information list may be specified. In addition to the inter-section traffic information list described above (hereinafter referred to as the first inter-section traffic information list), a long-term traffic information list (hereinafter referred to as the second inter-section traffic information list) can be defined. In this case, the long-term motion information list contains long-term merge candidates.
[00281] Когда оба из первого списка информации о движении между участками и второго списка информации о движении между участками пусты, сначала кандидаты на слияние между участками могут быть добавлены во второй список информации о движении между участками. Только после того, как количество доступных кандидатов на слияние между участками достигает максимального количества во втором списке информации о движении между участками, кандидаты на слияние между участками могут быть добавлены в первый список информации о движении между участками.[00281] When both of the first inter-area traffic information list and the second inter-site traffic information list are empty, first inter-site merging candidates may be added to the second inter-site traffic information list. Only after the number of available inter-site fusion candidates reaches the maximum number in the second inter-site traffic information list, the inter-site fusion candidates can be added to the first inter-site traffic information list.
[00282] Альтернативно один кандидат на слияние между участками может быть добавлен в оба из второго списка информации о движении между участками и первого списка информации о движении между участками.[00282] Alternatively, one inter-site fusion candidate may be added to both of the second inter-site traffic information list and the first inter-site traffic information list.
[00283] В этом случае второй список информации о движении между участками, конфигурация которого завершена, может больше не обновляться. Альтернативно, когда декодированный участок больше, чем предварительно определенное соотношение слайса или равняется ему, может быть обновлен второй список информации о движении между участками. Альтернативно второй список информации о движении между участками может быть обновлен для каждых N линий элементов кодового дерева.[00283] In this case, the second inter-section traffic information list whose configuration is completed may no longer be updated. Alternatively, when the decoded slice is greater than or equal to the predetermined slice ratio, the second inter-slice motion information list may be updated. Alternatively, the second list of inter-leg traffic information may be updated for every N code tree element lines.
[00284] С другой стороны, первый список информации о движении между участками может обновляться в любое время, когда генерируется блок, кодированный/декодированный путем предсказания, осуществляемого между изображениями. Однако может быть установлено не использовать кандидата на слияние между участками, добавленного во второй список информации о движении между участками, для обновления первого списка информации о движении между участками.[00284] On the other hand, the first list of inter-section motion information may be updated at any time when a block encoded/decoded by inter-picture prediction is generated. However, it may be determined not to use the inter-site fusion candidate added to the second inter-site traffic information list to update the first inter-site traffic information list.
[00285] Информация для выбора любого из первого списка информации о движении между участками и второго списка информации о движении между участками может быть передана посредством битового потока. Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем пороговое значение, кандидаты на слияние, включенные в список информации о движении между участками, указанный информацией, могут быть добавлены в список кандидатов на слияние.[00285] Information for selecting any of the first list of inter-section traffic information and the second list of inter-section traffic information may be transmitted by a bit stream. When the number of merger candidates included in the merger candidate list is less than a threshold value, the merger candidates included in the inter-site traffic information list specified by the information may be added to the merger candidate list.
[00286] Альтернативно список информации о движении между участками может быть выбран на основании размера и формы текущего блока, режима предсказания, осуществляемого между изображениями, того, обеспечено ли двунаправленное предсказание, того, обеспечено ли уточнение вектора движения, или того, обеспечено ли треугольное разбиение.[00286] Alternatively, the list of inter-patch motion information may be selected based on the size and shape of the current block, the prediction mode performed between images, whether bidirectional prediction is provided, whether motion vector refinement is provided, or whether triangular partitioning is provided .
[00287] Альтернативно, несмотря на то, что кандидат на слияние между участками, включенный в первый список информации о движении между участками, добавляется, когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем максимальное количество слияний, кандидаты на слияние между участками, включенные во второй список информации о движении между участками, могут быть добавлены в список кандидатов на слияние.[00287] Alternatively, although an inter-site fusion candidate included in the first inter-site traffic information list is added, when the number of fusion candidates included in the fusion candidate list is less than the maximum number of fusion candidates, the inter-site merging included in the second inter-site traffic information list may be added to the merging candidate list.
[00288] На фиг. 25 представлен вид, показывающий пример, в котором кандидат на слияние между участками, включенный в долговременный список информации о движении, добавляется в список кандидатов на слияние.[00288] In FIG. 25 is a view showing an example in which a cross-section merging candidate included in the long-term traffic information list is added to the merging candidate list.
[00289] Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем максимальное количество, кандидаты на слияние между участками, включенные в первый список информации о движении между участками HmvpCandList, могут быть добавлены в список кандидатов на слияние. Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем максимальное количество, несмотря на то, что кандидаты на слияние между участками, включенные в первый список информации о движении между участками, добавляются в список кандидатов на слияние, кандидаты на слияние между участками, включенные в долговременный список информации о движении HmvpLTCandList, могут добавляться в список кандидатов на слияние.[00289] When the number of fusion candidates included in the fusion candidate list is less than the maximum number, the inter-site fusion candidates included in the first inter-site traffic information list HmvpCandList may be added to the fusion candidate list. When the number of fusion candidates included in the fusion candidate list is less than the maximum number, although inter-site fusion candidates included in the first inter-site traffic information list are added to the fusion candidate list, the fusion candidates between sites included in the long-term traffic information list HmvpLTCandList can be added to the list of merge candidates.
[00290] Таблица 2 показывает процесс добавления кандидатов на слияние между участками, включенных в долговременный список информации о движении, в список кандидатов на слияние.[00290] Table 2 shows the process of adding cross-section fusion candidates included in the long-term traffic information list to the fusion candidate list.
[00291] Таблица 2[00291] Table 2
[00292] Кандидат на слияние между участками может быть установлен содержащим дополнительную информацию, дополнительно к информации о движении. Например, для кандидата на слияние между участками дополнительно может сохраняться размер, форма или информация о разбиении блока. При построении списка кандидатов на слияние текущего блока только кандидаты на слияние между участками, имеющие размер, форму или информацию о разбиении, которые являются такими же, как или подобными с таковыми текущего блока, используются среди кандидатов на слияние между участками, или кандидаты на слияние между участками, имеющие размер, форму или информацию о разбиении, которые являются такими же, как или подобными с таковыми текущего блока, могут добавляться в список кандидатов на слияние в первую очередь.[00292] The cross-section fusion candidate may be set to contain additional information in addition to the traffic information. For example, size, shape, or block splitting information may be additionally stored for a cross-section merge candidate. When constructing a list of merge candidates of the current block, only inter-partition merge candidates having size, shape, or partitioning information that are the same as or similar to those of the current block are used among the inter-partition merge candidates, or inter-partition merge candidates. sections having size, shape, or partitioning information that are the same as or similar to those of the current block may be added to the merge candidate list first.
[00293] Альтернативно список информации о движении между участками может генерироваться для каждого из размера, формы или информации о разбиении блока. Из множества списков информации о движении между участками список кандидатов на слияние текущего блока может генерироваться с использованием списка информации о движении между участками, соответствующего форме, размеру или информации о разбиении текущего блока.[00293] Alternatively, a list of inter-region movement information may be generated for each of the size, shape, or block partition information. From the plurality of inter-lot traffic information lists, a list of candidates for merging a current block may be generated using a list of inter-lot traffic information corresponding to the shape, size or partition information of the current block.
[00294] Когда количество кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, меньше, чем пороговое значение, кандидаты на слияние между участками, включенные в список информации о движении между участками, могут добавляться в список кандидатов на слияние. Процесс добавления выполняется в порядке возрастания или убывания на основании индекса. Например, кандидат на слияние между участками, имеющий самый большой индекс, может сначала быть добавлен в список кандидатов на слияние.[00294] When the number of merge candidates included in the merge candidate list of the current block is less than a threshold value, inter-site merge candidates included in the inter-site traffic information list may be added to the merge candidate list. The adding process is performed in ascending or descending order based on the index. For example, the cross-site merge candidate that has the largest index may be added to the merge candidate list first.
[00295] Когда необходимо добавить кандидата на слияние между участками, включенного в список информации о движении между участками, в список кандидатов на слияние, контроль по избыточности может выполняться между кандидатом на слияние между участками и кандидатами на слияние, ранее сохраненными в списке кандидатов на слияние.[00295] When it is necessary to add an inter-site fusion candidate included in the inter-site traffic information list to the fusion candidate list, redundancy checking may be performed between the inter-site fusion candidate and the fusion candidates previously stored in the fusion candidate list .
[00296] Например, в таблице 3 показан процесс, в котором кандидат на слияние между участками добавляется в список кандидатов на слияние.[00296] For example, Table 3 shows a process in which a cross-site merge candidate is added to a list of merge candidates.
[00297] Таблица 3[00297] Table 3
[00298] Контроль по избыточности может выполняться только в отношении некоторых кандидатов на слияние между участками, включенных в список информации о движении между участками. Например, контроль по избыточности может выполняться только в отношении кандидатов на слияние между участками, имеющих индекс, который больше, чем пороговое значение, или меньше, чем пороговое значение. Альтернативно контроль по избыточности может выполняться только в отношении N кандидатов на слияние, имеющих самый большой индекс, или N кандидатов на слияние, имеющих самый маленький индекс.[00298] Redundancy checking can only be performed on some inter-site merging candidates included in the inter-site traffic information list. For example, redundancy checking may be performed only on cross-site merge candidates having an index that is greater than a threshold value or less than a threshold value. Alternatively, redundancy checking may be performed on only the N merge candidates having the largest index or the N merge candidates having the smallest index.
[00299] Альтернативно контроль по избыточности может выполняться только в отношении некоторых из кандидатов на слияние, ранее сохраненных в списке кандидатов на слияние. Например, контроль по избыточности может выполняться только в отношении кандидата на слияние, имеющего индекс, который больше, чем пороговое значение, или меньше, чем пороговое значение, или в отношении кандидата на слияние, полученного из блока в конкретном положении. В данном случае конкретное положение может содержать по меньшей мере один из левого соседнего блока, верхнего соседнего блока, верхнего правого соседнего блока и нижнего левого соседнего блока текущего блока.[00299] Alternatively, redundancy checking may be performed on only some of the merge candidates previously stored in the merge candidate list. For example, redundancy checking may be performed only on a merge candidate having an index that is greater than a threshold value, or less than a threshold value, or on a merge candidate derived from a block at a particular position. Here, the particular position may comprise at least one of a left adjacent block, an upper adjacent block, an upper right adjacent block, and a lower left adjacent block of the current block.
[00300] На фиг. 26 представлен вид, показывающий пример, в котором контроль по избыточности выполняется только в отношении некоторых из кандидатов на слияние.[00300] In FIG. 26 is a view showing an example in which redundancy checking is performed on only some of the merge candidates.
[00301] Когда необходимо добавить кандидата на слияние между участками HmvpCand[j] в список кандидатов на слияние, контроль по избыточности может выполняться в отношении кандидата на слияние между участками с двумя кандидатами на слияние mergeCandList[NumMerge-2] и mergeCandList[NumMerge-1], имеющими самые большие индексы. В данном случае NumMerge может представлять количество пространственных кандидатов на слияние и временных кандидатов на слияние, которые являются доступными.[00301] When it is necessary to add a site-merge candidate HmvpCand[j] to the merge candidate list, redundancy checking may be performed on the site-merge candidate with two merge candidates mergeCandList[NumMerge-2] and mergeCandList[NumMerge-1 ], having the largest indices. In this case, NumMerge may represent the number of spatial merge candidates and temporal merge candidates that are available.
[00302] В отличие от примера, показанного на графическом материале, когда необходимо добавить кандидата на слияние между участками HmvpCand[j] в список кандидатов на слияние, контроль по избыточности может выполняться в отношении кандидата на слияние между участками не более чем с двумя кандидатами на слияние, имеющими самый маленький индекс. Например, можно проверить, являются ли mergeCandList[0] и mergeCandList[1] такими же, как HmvpCand[j]. Альтернативно контроль по избыточности может выполняться только в отношении кандидатов на слияние, полученных в конкретном положении. Например, контроль по избыточности может выполняться в отношении по меньшей мере одного из кандидата на слияние, полученного из соседнего блока, расположенного на левой стороне текущего блока, и кандидата на слияние, полученного из соседнего блока, расположенного сверху текущего блока. Когда кандидат на слияние, полученный в конкретном положении, не существует в списке кандидатов на слияние, кандидат на слияние между участками может добавляться в список кандидатов на слияние без наличия контроля по избыточности.[00302] Unlike the example shown in the graphic, where it is necessary to add a cross-site merge candidate HmvpCand[j] to the list of merge candidates, redundancy checking can be performed on a cross-site merge candidate with no more than two candidates for merge with the smallest index. For example, you can check whether mergeCandList[0] and mergeCandList[1] are the same as HmvpCand[j]. Alternatively, redundancy checking may be performed only on merger candidates obtained at a particular location. For example, redundancy checking may be performed on at least one of a merge candidate obtained from an adjacent block located on the left side of the current block and a merge candidate obtained from an adjacent block located on top of the current block. When a merge candidate obtained at a particular location does not exist in the merge candidate list, the cross-site merge candidate may be added to the merge candidate list without having a redundancy check.
[00303] Когда кандидат на слияние, являющийся таким же, как первый кандидат на слияние между участками, обнаруживается, и выполняется контроль по избыточности в отношении второго кандидата на слияние между участками, контроль по избыточности с кандидатом на слияние, который является таким же, как первый кандидат на слияние между участками, может пропускаться.[00303] When a fusion candidate that is the same as the first inter-site fusion candidate is detected, and redundancy check is performed on the second inter-site fusion candidate, redundancy check is performed on the fusion candidate that is the same as the first candidate for merging between sites may be skipped.
[00304] На фиг. 27 представлен вид, показывающий пример, в котором контроль по избыточности пропускается для конкретного кандидата на слияние.[00304] In FIG. 27 is a view showing an example in which the redundancy check is skipped for a particular merge candidate.
[00305] Когда необходимо добавить кандидата на слияние между участками HmvpCand[i], имеющего индекс i, в список кандидатов на слияние, контроль по избыточности выполняется между кандидатом на слияние между участками и кандидатами на слияние, ранее сохраненными в списке кандидатов на слияние. В этом случае, когда кандидат на слияние mergeCandList[j], являющийся таким же, как кандидат на слияние между участками HmvpCand[i], обнаруживается, контроль по избыточности может выполняться между кандидатом на слияние между участками HmvpCand[i-1], имеющим индекс i-1, и кандидатами на слияние без добавления кандидата на слияние между участками HmvpCand[i] в список кандидатов на слияние. В этом случае контроль по избыточности между кандидатом на слияние между участками HmvpCand[i-1] и кандидатом на слияние mergeCandList[j] может опускаться.[00305] When it is necessary to add an inter-site merge candidate HmvpCand[i] having index i to the merge candidate list, redundancy checking is performed between the inter-site merge candidate and the merge candidates previously stored in the merge candidate list. In this case, when a merge candidate mergeCandList[j] that is the same as an inter-site merge candidate HmvpCand[i] is detected, redundancy checking may be performed between the inter-site merge candidate HmvpCand[i-1] having the index i-1, and merge candidates without adding the cross-site merge candidate HmvpCand[i] to the list of merge candidates. In this case, the redundancy check between the cross-section merge candidate HmvpCand[i-1] and the merge candidate mergeCandList[j] may be omitted.
[00306] Например, в примере, показанном на фиг. 27, определяется, что HmvpCand[i] и mergeCandList[2] являются одинаковыми. Соответственно, HmvpCand[i] не добавляется в список кандидатов на слияние, и контроль по избыточности может выполняться в отношении HmvpCand[i-1]. В этом случае контроль по избыточности между HvmpCand[i-1] и mergeCandList[2] может опускаться.[00306] For example, in the example shown in FIG. 27, it is determined that HmvpCand[i] and mergeCandList[2] are the same. Accordingly, HmvpCand[i] is not added to the merge candidate list, and redundancy checking can be performed on HmvpCand[i-1]. In this case, the redundancy check between HvmpCand[i-1] and mergeCandList[2] can be omitted.
[00307] Когда количество кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, меньше, чем пороговое значение, по меньшей мере один из парного кандидата на слияние и нулевого кандидата на слияние может быть дополнительно включен, дополнительно к кандидату на слияние между участками. Парный кандидат на слияние означает кандидата на слияние, имеющего среднее значение векторов движения двух или более кандидатов на слияние в качестве вектора движения, и нулевой кандидат на слияние означает кандидата на слияние, имеющего вектор движения, равный 0.[00307] When the number of merge candidates included in the current block's merge candidate list is less than a threshold value, at least one of the paired merge candidate and the null merge candidate may be further included in addition to the inter-block merge candidate . A paired fusion candidate means a fusion candidate having the average of the motion vectors of two or more fusion candidates as a motion vector, and a zero fusion candidate means a fusion candidate having a motion vector of 0.
[00308] Кандидат на слияние может быть добавлен в список кандидатов на слияние текущего блока в следующем порядке.[00308] A merge candidate may be added to the list of merge candidates of the current block in the following order.
[00309] Пространственный кандидат на слияние - Временной кандидат на слияние - Кандидат на слияние между участками - (Кандидат на аффинное слияние между участками) - Парный кандидат на слияние - Нулевой кандидат на слияние.[00309] Spatial merge candidate - Temporal merge candidate - Inter-site merge candidate - (Inter-site affine merge candidate) - Pairwise merge candidate - Null merge candidate.
[00310] Пространственный кандидат на слияние означает кандидата на слияние, полученного из по меньшей мере одного из соседнего блока и несоседнего блока, и временной кандидат на слияние означает кандидата на слияние, полученного из предыдущего опорного изображения. Кандидат на аффинное слияние между участками представляет кандидата на слияние между участками, полученного из блока, кодированного/декодированного моделью аффинного движения.[00310] A spatial merge candidate means a merge candidate obtained from at least one of an adjacent block and a non-neighboring block, and a temporal merge candidate means a merge candidate obtained from a previous reference image. The inter-region affine fusion candidate represents the inter-region fusion candidate obtained from the block encoded/decoded by the affine motion model.
[00311] Список информации о движении между участками может также использоваться в усовершенствованном режиме предсказания вектора движения. Например, когда количество кандидатов предсказания вектора движения, включенных в список кандидатов предсказания вектора движения текущего блока, меньше, чем пороговое значение, кандидат на слияние между участками, включенный в список информации о движении между участками, может быть установлен как кандидат предсказания вектора движения для текущего блока. В частности, вектор движения кандидата на слияние между участками может быть установлен в качестве кандидата предсказания вектора движения.[00311] The list of inter-section motion information may also be used in an advanced motion vector prediction mode. For example, when the number of motion vector prediction candidates included in the motion vector prediction candidate list of the current block is less than a threshold value, an inter-section fusion candidate included in the inter-section motion information list may be set as a motion vector prediction candidate for the current block. block. Specifically, the motion vector of the cross-section fusion candidate may be set as the motion vector prediction candidate.
[00312] Когда выбирается любой из кандидатов предсказания вектора движения, включенных в список кандидатов предсказания вектора движения текущего блока, выбранный кандидат может быть установлен в качестве предсказателя вектора движения текущего блока. Затем после декодирования остаточного коэффициента вектора движения текущего блока вектор движения текущего блока может быть получен путем добавления предсказателя вектора движения и остаточного коэффициента вектора движения.[00312] When any of the motion vector prediction candidates included in the motion vector prediction candidate list of the current block is selected, the selected candidate may be set as the motion vector predictor of the current block. Then, after decoding the residual motion vector coefficient of the current block, the motion vector of the current block can be obtained by adding a motion vector predictor and a residual motion vector coefficient.
[00313] Список кандидатов предсказания вектора движения текущего блока может быть сконфигурирован в следующем порядке.[00313] The motion vector prediction candidate list of the current block may be configured in the following order.
[00314] Пространственный кандидат предсказания вектора движения - Временной кандидат предсказания вектора движения - Кандидат на слияние между участками - (Кандидат на аффинное слияние между участками) - Нулевой кандидат предсказания вектора движения.[00314] Spatial motion vector prediction candidate - Temporal motion vector prediction candidate - Inter-site fusion candidate - (Inter-site affine fusion candidate) - Null motion vector prediction candidate.
[00315] Пространственный кандидат предсказания вектора движения означает кандидата предсказания вектора движения, полученного из по меньшей мере одного из соседнего блока и несоседнего блока, и временной кандидат предсказания вектора движения означает кандидата предсказания вектора движения, полученного из предыдущего опорного изображения. Кандидат на аффинное слияние между участками представляет кандидата предсказания вектора движения между участками, полученного из блока, кодированного/декодированного моделью аффинного движения. Кандидат предсказания нулевого вектора движения представляет кандидата, имеющего значение вектора движения, равное 0.[00315] A spatial motion vector prediction candidate means a motion vector prediction candidate obtained from at least one of an adjacent block and a non-neighboring block, and a temporal motion vector prediction candidate means a motion vector prediction candidate obtained from a previous reference picture. The inter-region affine fusion candidate represents the inter-region motion vector prediction candidate obtained from the block encoded/decoded by the affine motion model. The zero motion vector prediction candidate represents a candidate having a motion vector value of 0.
[00316] После выбора кандидата на слияние текущего блока вектор движения выбранного кандидата на слияние устанавливается как начальный вектор движения, и для текущего блока с использованием вектора движения, полученного путем добавления вектора смещения к начальному вектору движения или вычитания из него, может быть выполнено предсказание с компенсацией движения. Получение нового вектора движения путем добавления вектора смещения к вектору движения кандидата на слияние или вычитания из него можно задать как способ кодирования разницы векторов движения при слиянии.[00316] After selecting a merge candidate of the current block, the motion vector of the selected merge candidate is set as the initial motion vector, and a prediction can be performed for the current block using the motion vector obtained by adding the offset vector to or subtracting from the initial motion vector with motion compensation. Obtaining a new motion vector by adding or subtracting a displacement vector from a fusion candidate's motion vector can be specified as a way to encode the difference in fusion motion vectors.
[00317] Информация, указывающая, использовать ли способ кодирования смещения при слиянии, может передаваться посредством битового потока. Информация может представлять собой флаг merge_offset_vector_flag, состоящий из одного бита. Например, когда значение merge_offset_vector_flag равно 1, это указывает, что к текущему блоку применяется способ кодирования разницы векторов движения при слиянии. Когда способ кодирования разницы векторов движения при слиянии применяется к текущему блоку, вектор движения текущего блока может быть получен путем добавления вектора смещения к вектору движения кандидата на слияние или вычитания из него. Когда значение merge_offset_vector_flag равно 0, это указывает, что способ кодирования разницы векторов движения при слиянии к текущему блоку не применяется. Когда способ кодирования смещения при слиянии не применяется, вектор движения текущего блока может быть установлен как вектор движения кандидата на слияние.[00317] Information indicating whether to use a merge offset encoding method may be transmitted via a bit stream. The information may be a merge_offset_vector_flag consisting of one bit. For example, when the value of merge_offset_vector_flag is 1, it indicates that the merge motion vector difference encoding method is applied to the current block. When the merging motion vector difference encoding method is applied to the current block, the motion vector of the current block can be obtained by adding an offset vector to or subtracting from the motion vector of the merging candidate. When merge_offset_vector_flag is 0, it indicates that the merge motion vector difference encoding method is not applied to the current block. When the merge offset encoding method is not applied, the motion vector of the current block can be set as the motion vector of the merge candidate.
[00318] Флаг может передаваться только тогда, когда значение флага пропуска, указывающее, применяется ли режим пропуска, является истинным, или когда истинным является значение флага слияния, указывающее, применяется ли режим слияния. Например, merge_offset_vector_flag может кодироваться и передаваться, когда значение skip_flag, указывающее, применяется ли к текущему блоку режим пропуска, равно 1, или когда значение merge_flag, указывающее, применяется ли к текущему блоку режим слияния, равно 1.[00318] The flag can be transmitted only when the value of the skip flag indicating whether the skip mode is applied is true, or when the value of the merge flag indicating whether the merge mode is applied is true. For example, merge_offset_vector_flag may be encoded and transmitted when the value of skip_flag indicating whether the current block is in skip mode is 1, or when the value of merge_flag indicating whether the current block is in merge mode is 1.
[00319] Когда определено, что к текущему блоку применяется способ кодирования смещения при слиянии, может дополнительно передаваться по меньшей мере одно из информации, указывающей любого из кандидатов на слияние, включенных в список кандидатов на слияние, информации, указывающей модуль вектора смещения, и информации, указывающей направление вектора смещения.[00319] When it is determined that the merge offset encoding method is applied to the current block, at least one of information indicating any of the merge candidates included in the merge candidate list, information indicating the magnitude of the offset vector, and information , indicating the direction of the displacement vector.
[00320] Информация для определения максимального количества кандидатов на слияние, которое может содержать список кандидатов на слияние, может передаваться посредством битового потока. Например, максимальное количество кандидатов на слияние, которое может содержать список кандидатов на слияние, может быть установлено равным целому числу, равному 6 или меньше.[00320] Information for determining the maximum number of merge candidates that the list of merge candidates can contain may be transmitted via a bit stream. For example, the maximum number of merge candidates that a list of merge candidates can contain can be set to an integer of 6 or less.
[00321] При определении, что способ кодирования смещения при слиянии применяется к текущему блоку, в качестве начального вектора движения текущего блока может быть установлено только максимальное количество кандидатов на слияние, установленное заранее. То есть количество кандидатов на слияние, которые могут использоваться текущим блоком, может определяться адаптивно согласно тому, применяется ли способ кодирования смещения при слиянии. Например, когда значение merge_offset_vector_flag установлено равным 0, максимальное количество кандидатов на слияние, которые могут использоваться текущим блоком, может быть установлено равным М, в то время как, когда значение merge_offset_vector_flag установлено равным 1, максимальное количество кандидатов на слияние, которые могут использоваться текущим блоком, может быть установлено равным N. В данном случае М обозначает максимальное количество кандидатов на слияние, которое может содержать список кандидатов на слияние, и N обозначает целое число, которое меньшее или равняется М.[00321] When determining that the merging offset encoding method is applied to the current block, only the maximum number of merging candidates set in advance can be set as the initial motion vector of the current block. That is, the number of merge candidates that can be used by the current block can be determined adaptively according to whether the merge offset encoding method is applied. For example, when the value of merge_offset_vector_flag is set to 0, the maximum number of merge candidates that can be used by the current block can be set to M, while when the value of merge_offset_vector_flag is set to 1, the maximum number of merge candidates that can be used by the current block , can be set to N. In this case, M denotes the maximum number of merge candidates that the list of merge candidates can contain, and N denotes an integer that is less than or equal to M.
[00322] Например, когда М равно 6, и N равно 2, как доступные для текущего блока могут быть установлены два кандидата на слияние, имеющие наименьший индекс, из кандидатов на слияние, включенных в список кандидатов на слияние. Соответственно, как начальный вектор движения текущего блока может быть установлен вектор движения кандидата на слияние, имеющего значение индекса, равное 0, или вектор движения кандидата на слияние, имеющего значение индекса, равное 1. Когда М и N равны (например, когда M и N равны 2), как доступные для текущего блока могут быть установлены все кандидаты на слияние, включенные в список кандидатов на слияние.[00322] For example, when M is 6 and N is 2, two merge candidates having the smallest index among the merge candidates included in the merge candidate list may be set as available for the current block. Accordingly, the motion vector of a merge candidate having an index value of 0 or the motion vector of a merge candidate having an index value of 1 can be set as the initial motion vector of the current block. When M and N are equal (for example, when M and N are equal to 2), all merge candidates included in the list of merge candidates can be set as available for the current block.
[00323] Альтернативно то, можно ли использовать соседний блок в качестве кандидата на слияние, может быть определено на основании того, применяется ли к текущему блоку способ кодирования разницы векторов движения при слиянии. Например, когда значение merge_offset_vector_flag равно 1, по меньшей мере один из соседнего блока, смежного с верхним правым углом текущего блока, соседнего блока, смежного с верхним левым углом, и соседнего блока, смежного с нижним левым углом, может быть установлен как недоступный в качестве кандидата на слияние. Соответственно, когда способ кодирования разницы векторов движения при слиянии применяется к текущему блоку, вектор движения по меньшей мере одного из соседнего блока, смежного с верхним правым углом текущего блока, соседнего блока, смежного с верхним левым углом, и соседнего блока, смежного с нижним левым углом, может не устанавливаться как начальный вектор движения. Альтернативно, когда значение merge_offset_vector_flag равно 1, временной соседний блок текущего блока может быть установлен как недоступный в качестве кандидата на слияние.[00323] Alternatively, whether a neighboring block can be used as a merging candidate can be determined based on whether a merging motion vector difference encoding method is applied to the current block. For example, when the value of merge_offset_vector_flag is 1, at least one of an adjacent block adjacent to the upper right corner of the current block, an adjacent block adjacent to the upper left corner, and an adjacent block adjacent to the lower left corner may be set as unavailable as merger candidate. Accordingly, when the merging motion vector difference encoding method is applied to the current block, the motion vector of at least one of an adjacent block adjacent to the upper right corner of the current block, an adjacent block adjacent to the upper left corner, and an adjacent block adjacent to the lower left angle, may not be set as the initial motion vector. Alternatively, when the value of merge_offset_vector_flag is 1, a temporary neighbor of the current block may be set to unavailable as a merge candidate.
[00324] Когда способ кодирования разницы векторов движения при слиянии применяется к текущему блоку, может быть установлено не использовать по меньшей мере один из парного кандидата на слияние и нулевого кандидата на слияние. Соответственно, когда значение merge_offset_vector_flag равно 1, по меньшей мере один из парного кандидата на слияние и нулевого кандидата на слияние может не добавляться в список кандидатов на слияние, несмотря на то, что количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше максимального количества.[00324] When the merge motion vector difference encoding method is applied to the current block, it may be set not to use at least one of the paired merge candidate and the null merge candidate. Accordingly, when the value of merge_offset_vector_flag is 1, at least one of the paired merge candidate and the null merge candidate may not be added to the merge candidate list even though the number of merge candidates included in the merge candidate list is less than the maximum quantities.
[00325] Вектор движения кандидата на слияние может быть установлен как начальный вектор движения текущего блока. В этом случае, когда количество кандидатов на слияние, которые могут использоваться текущим блоком, является множественным, посредством битового потока может передаваться информация, указывающая любого из множества кандидатов на слияние. Например, когда максимальное количество кандидатов на слияние, которое может содержать список кандидатов на слияние, больше 1, посредством битового потока может передаваться информация merge_idx, указывающая любого из множества кандидатов на слияние. То есть в способе кодирования смещения при слиянии кандидат на слияние может быть указан информацией merge_idx для указания любого из множества кандидатов на слияние. Начальный вектор движения текущего блока может быть установлен как вектор движения кандидата на слияние, указанного посредством merge_idx.[00325] The motion vector of the merge candidate may be set as the starting motion vector of the current block. In this case, when the number of merge candidates that can be used by the current block is multiple, information indicating any of the plurality of merge candidates can be transmitted by the bit stream. For example, when the maximum number of merge candidates that a list of merge candidates can contain is greater than 1, merge_idx information indicating any of a plurality of merge candidates may be transmitted via the bit stream. That is, in the merge offset encoding method, a merge candidate may be indicated by merge_idx information to indicate any of a plurality of merge candidates. The initial motion vector of the current block can be set to the motion vector of the merge candidate specified by merge_idx.
[00326] С другой стороны, когда количество кандидатов на слияние, которые могут использоваться текущим блоком, равно 1, передача информации для указания кандидата на слияние может быть пропущена. Например, когда максимальное количество кандидатов на слияние, которое может содержать список кандидатов на слияние, не больше 1, может быть пропущена передача информации merge_idx для указания кандидата на слияние. То есть в способе кодирования смещения при слиянии, когда в списке кандидатов на слияние содержится один кандидат на слияние, кодирование информации merge_idx для указания кандидата на слияние может быть пропущено, и начальный вектор движения может быть определен на основании кандидата на слияние, содержащегося в списке кандидатов на слияние. Вектор движения кандидата на слияние может быть установлен как начальный вектор движения текущего блока.[00326] On the other hand, when the number of merge candidates that can be used by the current block is 1, transmission of information to indicate the merge candidate may be skipped. For example, when the maximum number of merge candidates that a list of merge candidates can contain is 1 or less, passing merge_idx information to indicate the merge candidate may be omitted. That is, in the merge offset encoding method, when the merge candidate list contains one merge candidate, encoding of the merge_idx information to indicate the merge candidate can be omitted, and the initial motion vector can be determined based on the merge candidate contained in the candidate list. for the merger. The motion vector of the merge candidate can be set as the initial motion vector of the current block.
[00327] В качестве другого примера, после определения кандидата на слияние текущего блока может определяться то, применять ли к текущему блоку способ кодирования разницы векторов движения при слиянии. Например, когда максимальное количество кандидатов на слияние, которое может содержать список кандидатов на слияние, больше 1, может передаваться информация merge_idx для указания любого из кандидатов на слияние. После выбора кандидата на слияние на основании merge_idx может декодироваться merge_offset_vector_flag, указывающий, применяется ли к текущему блоку способ кодирования разницы векторов движения при слиянии. В таблице 4 представлен вид, показывающий синтаксическую таблицу согласно вышеописанному варианту осуществления.[00327] As another example, after determining a merging candidate of the current block, it may be determined whether to apply a merging motion vector difference encoding method to the current block. For example, when the maximum number of merge candidates that a list of merge candidates can contain is greater than 1, merge_idx information may be passed to indicate any of the merge candidates. After selecting a merge candidate based on merge_idx, a merge_offset_vector_flag may be decoded indicating whether the merge motion vector difference encoding method is applied to the current block. Table 4 is a view showing a syntax table according to the above-described embodiment.
[00328] Таблица 4[00328] Table 4
[00329] В качестве другого примера, после определения кандидата на слияние текущего блока, то, применять ли к текущему блоку способ кодирования разницы векторов движения при слиянии, может определяться только тогда, когда индекс определенного кандидата на слияние меньше максимального количества кандидатов на слияние, которые могут использоваться при применении способа кодирования разницы векторов движения при слиянии. Например, merge_offset_vector_flag, указывающий, применять ли к текущему блоку способ кодирования разницы векторов движения при слиянии, может кодироваться и передаваться только тогда, когда значение информации об индексах merge_idx меньше N. Когда значение информации об индексах merge_idx больше или равно N, кодирование merge_offset_vector_flag может быть пропущено. Когда кодирование merge_offset_vector_flag пропущено, можно определить, что способ кодирования разницы векторов движения при слиянии не применяется к текущему блоку.[00329] As another example, after determining the merge candidate of the current block, whether to apply the merge motion vector difference encoding method to the current block can be determined only when the index of the determined merge candidate is less than the maximum number of merge candidates that can be used when applying the method of encoding the difference in motion vectors when merging. For example, a merge_offset_vector_flag indicating whether to apply the merge motion vector difference encoding method to the current block may be encoded and transmitted only when the merge_idx index information value is less than N. When the merge_idx index information value is greater than or equal to N, the merge_offset_vector_flag encoding may be missed. When the merge_offset_vector_flag encoding is omitted, it can be determined that the way the merge motion vector difference is encoded does not apply to the current block.
[00330] Альтернативно после определения кандидата на слияние текущего блока с учетом того, содержит определенный кандидат на слияние информацию о двунаправленном движении или информацию об однонаправленном движении, можно определить то, применять ли способ кодирования разницы векторов движения при слиянии к текущему блоку. Например, merge_offset_vector_flag, указывающий, применять ли к текущему блоку способ кодирования разницы векторов движения при слиянии, может кодироваться и передаваться только тогда, когда значение информации об индексах merge_idx меньше N, и кандидат на слияние, выбранный с помощью информации об индексах, содержит информацию о двунаправленном движении. Альтернативно merge_offset_vector_flag, указывающий, применять ли к текущему блоку способ кодирования разницы векторов движения при слиянии, может кодироваться и передаваться только тогда, когда значение информации об индексах merge_idx меньше N, и кандидат на слияние, выбранный с помощью информации об индексах, содержит информацию об однонаправленном движении.[00330] Alternatively, after determining the merge candidate of the current block, considering whether the determined merge candidate contains bidirectional motion information or unidirectional motion information, it can be determined whether to apply the merge motion vector difference encoding method to the current block. For example, merge_offset_vector_flag indicating whether to apply the merge motion vector difference encoding method to the current block can be encoded and transmitted only when the value of the merge_idx index information is less than N and the merge candidate selected by the index information contains information about bidirectional movement. Alternatively, a merge_offset_vector_flag indicating whether to apply the merge motion vector difference encoding method to the current block may be encoded and transmitted only when the value of the merge_idx index information is less than N and the merge candidate selected by the index information contains unidirectional information. movement.
[00331] Альтернативно то, применять ли способ кодирования разницы векторов движения при слиянии, может быть определено на основании по меньшей мере одного из размера текущего блока, формы текущего блока и того, находится ли текущий блок в контакте с границей элемента кодового дерева. Когда по меньшей мере одно из размера текущего блока, формы текущего блока и того, находится ли текущий блок в контакте с границей элемента кодового дерева, не удовлетворяет предварительно установленному условию, кодирование merge_offset_vector_flag, указывающего, применять ли к текущему блоку способ кодирования разницы векторов движения при слиянии, может быть пропущено.[00331] Alternatively, whether to apply a merging motion vector difference encoding method may be determined based on at least one of the size of the current block, the shape of the current block, and whether the current block is in contact with a code tree element boundary. When at least one of the current block's size, the current block's shape, and whether the current block is in contact with a code tree element boundary does not satisfy a preset condition, encoding a merge_offset_vector_flag indicating whether to apply the motion vector difference encoding method to the current block merge may be skipped.
[00332] После выбора кандидата на слияние вектор движения кандидата на слияние может быть установлен как начальный вектор движения текущего блока. Тогда вектор смещения может определяться путем декодирования информации, указывающей модуль вектора смещения, и информации, указывающей направление вектора смещения. Вектор смещения может иметь компонент горизонтального направления или компонент вертикального направления.[00332] After selecting a merge candidate, the motion vector of the merge candidate can be set as the initial motion vector of the current block. Then, the displacement vector can be determined by decoding information indicating the magnitude of the displacement vector and information indicating the direction of the displacement vector. The displacement vector may have a horizontal direction component or a vertical direction component.
[00333] Информацией, указывающей модуль вектора смещения, может являться информация об индексах, указывающая любого из кандидатов на модуль движения. Например, информация об индексах distance_idx, указывающая любого из кандидатов на модуль движения, может передаваться посредством битового потока. В таблице 5 показаны преобразование в двоичную форму информации об индексах distance_idx и значения переменной DistFromMergeMV для определения модуля вектора смещения согласно distance_idx.[00333] The information indicating the displacement vector module may be index information indicating any of the motion module candidates. For example, distance_idx index information indicating any of the motion module candidates may be transmitted via a bitstream. Table 5 shows the binary conversion of the distance_idx index information and the values of the DistFromMergeMV variable to determine the magnitude of the displacement vector according to distance_idx.
[00334] Таблица 5[00334] Table 5
[00335] Модуль вектора смещения может быть получен путем деления переменной DistFromMergeMV на предварительно установленное значение. В уравнении 5 показан пример определения модуля вектора смещения.[00335] The magnitude of the displacement vector can be obtained by dividing the DistFromMergeMV variable by a preset value. Equation 5 shows an example of determining the magnitude of the displacement vector.
[00336] Уравнение 5[00336] Equation 5
[00337] [00337]
[00338] Согласно уравнению 5 в качестве модуля вектора смещения может быть установлено значение, полученное путем деления переменной DistFromMegeMV на 4, или значение, полученное путем сдвига переменной DistFromMergeMV влево на 2.[00338] According to Equation 5, the magnitude of the offset vector can be set to the value obtained by dividing the DistFromMegeMV variable by 4, or the value obtained by shifting the DistFromMergeMV variable left by 2.
[00339] Может использоваться большее количество кандидатов на модуль движения или меньшее количество кандидатов на модуль движения, чем в примере, показанном в таблице 5, или диапазон кандидатов на величину смещения вектора движения может быть установлен иначе, чем в примере, показанном в таблице 5. Например, модуль компонента горизонтального направления или компонента вертикального направления вектора смещения может быть установлен как не превышающий 2 расстояния между отсчетами. В таблице 6 показаны преобразование в двоичную форму информации об индексах distance_idx и значения переменной DistFromMergeMV для определения модуля вектора смещения согласно distance_idx.[00339] More motion module candidates or fewer motion module candidates may be used than in the example shown in Table 5, or the range of motion vector offset amount candidates may be set differently than in the example shown in Table 5. For example, the magnitude of the horizontal direction component or the vertical direction component of the displacement vector can be set to not exceed 2 sample distances. Table 6 shows the binary conversion of the distance_idx index information and the values of the DistFromMergeMV variable to determine the magnitude of the displacement vector according to distance_idx.
[00340] Таблица 6[00340] Table 6
[00341] Альтернативно диапазон кандидатов на величину смещения вектора движения может быть установлен по-другому на основании точности вектора движения. Например, когда точность вектора движения для текущего блока равна дробному числу пикселей, значения переменной DistFromMergeMV, соответствующие значениям информации об индексах distance_idx, могут быть установлены равными 1, 2, 4, 8, 16 или т.п. Здесь дробное число пикселей включает по меньшей мере одно из 1/16 пикселя, одной восьмой части пикселя, четверти пикселя и половины пикселя. С другой стороны, когда точность вектора движения для текущего блока равна целому числу пикселей, значения переменной DistFromMergeMV, соответствующие значениям информации об индексах distance_idx, могут быть установлены равными 4, 8, 16, 32, 64 и т.п. То есть таблица, к которой следует обращаться с целью определения переменной DistFromMergeMV, может быть установлена по-разному согласно точности вектора движения для текущего блока.[00341] Alternatively, the candidate range for the amount of motion vector offset may be set differently based on the accuracy of the motion vector. For example, when the precision of the motion vector for the current block is a fractional number of pixels, the values of the DistFromMergeMV variable corresponding to the distance_idx index information values may be set to 1, 2, 4, 8, 16, or the like. Here, the fractional number of pixels includes at least one of 1/16 of a pixel, one-eighth of a pixel, one-quarter of a pixel, and one-half of a pixel. On the other hand, when the precision of the motion vector for the current block is an integer number of pixels, the values of the DistFromMergeMV variable corresponding to the values of the distance_idx index information can be set to 4, 8, 16, 32, 64, etc. That is, the table to be accessed to determine the DistFromMergeMV variable may be set differently according to the precision of the motion vector for the current block.
[00342] Например, когда точность вектора движения текущего блока или кандидата на слияние равна четверти пикселя, переменная DistFromMergeMV, указанная посредством distance_idx, может быть получена с использованием таблицы 5. С другой стороны, когда точность вектора движения текущего блока или кандидата на слияние равна целому числу пикселей, в качестве значения переменной DistFromMergeMV может быть получено значение, полученное путем взятия N-кратной величины (например, 4-кратной величины) значения переменной DistFromMergeMV, указанной посредством distance_idx в таблице 5.[00342] For example, when the motion vector precision of the current block or merge candidate is a quarter pixel, the DistFromMergeMV variable specified by distance_idx can be obtained using Table 5. On the other hand, when the motion vector precision of the current block or merge candidate is an integer number of pixels, the value of the DistFromMergeMV variable can be the value obtained by taking N times the value (e.g., 4 times the value) of the value of the DistFromMergeMV variable specified by distance_idx in Table 5.
[00343] Информация для определения точности вектора движения может передаваться посредством битового потока. Например, информация может передаваться на уровне последовательности, изображения, слайса или блока. Соответственно, диапазон кандидатов на модуль движения может быть установлен по-другому согласно информации, связанной с точностью вектора движения, передаваемой посредством битового потока. Альтернативно точность вектора движения может быть определена на основании кандидата на слияние текущего блока. Например, точность вектора движения текущего блока может быть установлена равной точности вектора движения кандидата на слияние.[00343] Information for determining motion vector accuracy may be transmitted via a bitstream. For example, information can be transferred at the sequence, image, slice, or block level. Accordingly, the range of motion module candidates can be set differently according to information related to motion vector precision transmitted by the bitstream. Alternatively, the accuracy of the motion vector can be determined based on the merge candidate of the current block. For example, the motion vector precision of the current block can be set to be equal to the motion vector precision of the merge candidate.
[00344] Альтернативно информация для определения диапазона поиска вектора смещения может передаваться посредством битового потока. По меньшей мере одно из количества кандидатов на модуль движения, минимального значения из кандидатов на модуль движения и максимального значения из кандидатов на модуль движения может быть определено на основании диапазона поиска. Например, посредством битового потока может передаваться флаг merge_offset_vector_flag для определения диапазона поиска вектора смещения. Информация может передаваться посредством заголовка последовательности, заголовка изображения или заголовка слайса.[00344] Alternatively, information for determining the search range of the offset vector may be transmitted via a bit stream. At least one of the number of motion module candidates, the minimum value of the motion module candidates, and the maximum value of the motion module candidates may be determined based on the search range. For example, a merge_offset_vector_flag may be passed via the bitstream to define the offset vector search range. The information can be conveyed through a sequence header, an image header, or a slice header.
[00345] Например, когда значение merge_offset_extend_range_flag равно 0, модуль вектора смещения может быть установлен так, чтобы он не превышал 2. Соответственно, максимальное значение DistFromMergeMV может быть установлено равным 8. С другой стороны, когда значение merge_offset_extend_range_flag равно 1, модуль вектора смещения может быть установлен так, чтобы он не превышал 32 расстояния между отсчетами. Соответственно, максимальное значение DistFromMergeMV может быть установлено равным 128.[00345] For example, when the value of merge_offset_extend_range_flag is 0, the magnitude of the offset vector can be set to not exceed 2. Accordingly, the maximum value of DistFromMergeMV can be set to 8. On the other hand, when the value of merge_offset_extend_range_flag is 1, the magnitude of the offset vector can be set so that it does not exceed 32 distances between readings. Accordingly, the maximum value of DistFromMergeMV can be set to 128.
[00346] Модуль вектора смещения может быть определен с использованием флага, указывающего, превышает ли модуль вектора смещения пороговое значение. Например, посредством битового потока может передаваться флаг distance_flag, указывающий, превышает ли модуль вектора смещения пороговое значение. Пороговое значение может быть равно 1, 2, 4, 8 или 16. Например, когда distance_flag равен 1, это указывает, что модуль вектора смещения больше 4. С другой стороны, когда distance_flag равен 0, это указывает, что модуль вектора смещения равен 4 или меньше.[00346] The magnitude of the displacement vector may be determined using a flag indicating whether the magnitude of the displacement vector exceeds a threshold value. For example, a distance_flag may be transmitted via the bitstream indicating whether the magnitude of the displacement vector exceeds a threshold value. The threshold value can be 1, 2, 4, 8 or 16. For example, when distance_flag is 1, it indicates that the displacement vector magnitude is greater than 4. On the other hand, when distance_flag is 0, it indicates that the displacement vector magnitude is 4 or less.
[00347] Когда модуль вектора смещения больше порогового значения, с использованием информации об индексах distance_idx может быть получено значение разницы между модулем вектора смещения и пороговым значением. Альтернативно, когда модуль вектора смещения меньше или равен пороговому значению, с использованием информации об индексах distance_idx может быть определен модуль вектора смещения. Таблица 7 представляет собой синтаксическую таблицу, показывающую процесс кодирования distance_flag и distance_idx.[00347] When the magnitude of the displacement vector is greater than the threshold value, the difference value between the magnitude of the displacement vector and the threshold value can be obtained using the distance_idx index information. Alternatively, when the magnitude of the displacement vector is less than or equal to the threshold value, the magnitude of the displacement vector can be determined using the distance_idx index information. Table 7 is a syntax table showing the encoding process of distance_flag and distance_idx.
[00348] Таблица 7[00348] Table 7
[00349] В уравнении 6 показан пример получения переменной DistFromMergeMV для определения модуля вектора смещения с использованием distance_flag и distance_idx.[00349] Equation 6 shows an example of obtaining the DistFromMergeMV variable to determine the magnitude of the displacement vector using distance_flag and distance_idx.
[00350] Уравнение 6[00350] Equation 6
[00351] [00351]
[00352] В уравнении 6 значение distance_flag может быть установлено равным 1 или 0. Значение distance_idx может быть установлено равным 1, 2, 4, 8, 16, 32, 64, 128 или т.п. N обозначает коэффициент, определяемый пороговым значением. Например, когда пороговое значение равно 4, N может быть установлено равным 16.[00352] In Equation 6, the value of distance_flag can be set to 1 or 0. The value of distance_idx can be set to 1, 2, 4, 8, 16, 32, 64, 128, or the like. N denotes the coefficient determined by the threshold value. For example, when the threshold value is 4, N can be set to 16.
[00353] Информацией, указывающей направление вектора смещения, может являться информация об индексах, указывающая любого из кандидатов на направление вектора. Например, информация об индексах direction_idx, указывающая любого из кандидатов на направление вектора, может передаваться посредством битового потока. В таблице 8 показаны преобразование в двоичную форму информации об индексах direction_idx и направления вектора смещения согласно direction_idx.[00353] Information indicating the direction of the offset vector may be index information indicating any of the vector direction candidates. For example, direction_idx index information indicating any of the vector direction candidates may be conveyed via a bit stream. Table 8 shows the binary conversion of the index information direction_idx and the direction of the displacement vector according to direction_idx.
[00354] Таблица 8[00354] Table 8
[00355] В таблице 8 sign[0] указывает горизонтальное направление, и sign[1] указывает вертикальное направление. +1 указывает, что значение компонента x или компонента y вектора смещения является положительным (+), и -1 указывает, что значение компонента x или компонента y вектора смещения является отрицательным (-). В уравнении 7 показан пример определения вектора смещения на основании модуля и направления вектора смещения.[00355] In Table 8, sign[0] indicates the horizontal direction, and sign[1] indicates the vertical direction. +1 indicates that the value of the x component or y component of the offset vector is positive (+), and -1 indicates that the value of the x component or y component of the offset vector is negative (-). Equation 7 shows an example of determining the displacement vector based on the magnitude and direction of the displacement vector.
[00356] Уравнение 7[00356] Equation 7
[00357] [00357]
[00358] В уравнении 7 offsetMV[0] обозначает компонент вертикального направления вектора смещения, и offsetMV[1] обозначает компонент горизонтального направления вектора смещения.[00358] In Equation 7, offsetMV[0] denotes the vertical direction component of the offset vector, and offsetMV[1] denotes the horizontal direction component of the offset vector.
[00359] На фиг. 28 представлен вид, показывающий вектор смещения согласно значениям distance_idx, указывающей модуль вектора смещения, и direction_idx, указывающей направление вектора смещения.[00359] In FIG. 28 is a view showing a displacement vector according to the values of distance_idx indicating the magnitude of the displacement vector and direction_idx indicating the direction of the displacement vector.
[00360] Как показано в примере по фиг. 28, модуль и направление вектора смещения могут быть определены согласно значениям distance_idx и direction_idx. Максимальный модуль вектора смещения может быть установлен так, чтобы он не превышал порогового значения. В данном случае пороговое значение может иметь значение, предварительно заданное в кодере и декодере. Например, пороговое значение может быть равно 32 расстояниям между отсчетами. Альтернативно пороговое значение может быть определено согласно модулю начального вектора движения. Например, пороговое значение для горизонтального направления может быть установлено на основании модуля компонента горизонтального направления начального вектора движения, и пороговое значение для вертикального направления может быть установлено на основании модуля компонента вертикального направления начального вектора движения.[00360] As shown in the example of FIG. 28, the magnitude and direction of the displacement vector can be determined according to the values of distance_idx and direction_idx. The maximum magnitude of the displacement vector can be set so that it does not exceed a threshold value. In this case, the threshold value may have a value preset in the encoder and decoder. For example, the threshold could be 32 sample distances. Alternatively, the threshold value may be determined according to the magnitude of the initial motion vector. For example, a threshold value for the horizontal direction may be set based on the magnitude of the horizontal direction component of the initial motion vector, and a threshold value for the vertical direction may be set based on the magnitude of the vertical direction component of the initial motion vector.
[00361] Когда кандидат на слияние содержит информацию о двунаправленном движении, в качестве начального вектора движения L0 текущего блока может быть установлен вектор движения L0 кандидата на слияние, и в качестве начального вектора движения L1 текущего блока может быть установлен вектор движения L1 кандидата на слияние. В этом случае вектор смещения L0 и вектор смещения L1 могут быть определены с учетом значения разницы в порядке вывода между опорным изображением L0 кандидата на слияние и текущим изображением (далее называемого значением разницы L0), и значения разницы в порядке вывода между опорным изображением L1 кандидата на слияние и текущим изображением (далее называемого значением разницы L1).[00361] When the merge candidate contains bidirectional motion information, the starting motion vector L0 of the current block may be set to the motion vector L0 of the merge candidate, and the starting motion vector L1 of the current block may be set to the motion vector L1 of the merge candidate. In this case, the offset vector L0 and the offset vector L1 can be determined taking into account the output order difference value between the fusion candidate reference image L0 and the current image (hereinafter referred to as the L0 difference value), and the output order difference value between the fusion candidate reference image L1 merge and the current image (hereinafter called the L1 difference value).
[00362] В первую очередь, когда знаки значения разницы L0 и значения разницы L1 совпадают, вектор смещения L0 и вектор смещения L1 могут быть установлены равными друг другу. С другой стороны, когда знаки значения разницы L0 и значения разницы L1 отличаются, вектор смещения L0 может быть установлен в направлении, противоположном вектору смещения L1.[00362] First of all, when the signs of the difference value L0 and the difference value L1 are the same, the offset vector L0 and the offset vector L1 can be set equal to each other. On the other hand, when the signs of the difference value L0 and the difference value L1 are different, the offset vector L0 can be set in the opposite direction to the offset vector L1.
[00363] Модуль вектора смещения L0 и модуль вектора смещения L1 могут быть установлены равными друг другу. Альтернативно модуль вектора смещения L1 может быть определен путем масштабирования вектора смещения L0 на основании значения разницы L0 и значения разницы L1.[00363] The magnitude of the bias vector L0 and the magnitude of the bias vector L1 can be set equal to each other. Alternatively, the magnitude of the offset vector L1 can be determined by scaling the offset vector L0 based on the difference value L0 and the difference value L1.
[00364] Например, в уравнении 8 показаны вектор смещения L0 и вектор смещения L1, когда знаки значения разницы L0 и значения разницы L1 совпадают.[00364] For example, Equation 8 shows the offset vector L0 and the offset vector L1 when the signs of the difference value L0 and the difference value L1 are the same.
[00365] Уравнение 8[00365] Equation 8
[00366] [00366]
[00367] [00367]
[00368] В уравнении 8 offsetMVL0[0] указывает компонент горизонтального направления вектора смещения L0, и offsetMVL0[1] указывает компонент вертикального направления вектора смещения L0. offsetMVL1[0] указывает компонент горизонтального направления вектора смещения L1, и offsetMVL1[1] указывает компонент вертикального направления вектора смещения L1.[00368] In Equation 8, offsetMVL0[0] indicates the horizontal direction component of the offset vector L0, and offsetMVL0[1] indicates the vertical direction component of the offset vector L0. offsetMVL1[0] indicates the horizontal direction component of the L1 offset vector, and offsetMVL1[1] indicates the vertical direction component of the L1 offset vector.
[00369] В уравнении 9 показаны вектор смещения L0 и вектор смещения L1, когда знаки значения разницы L0 и значения разницы L1 отличаются.[00369] Equation 9 shows the L0 offset vector and the L1 offset vector when the signs of the difference value L0 and the difference value L1 are different.
[00370] Уравнение 9[00370] Equation 9
[00371] [00371]
[00372] [00372]
[00373] Может быть задано более четырех кандидатов на направление вектора. В таблицах 9 и 10 показаны примеры, в которых заданы восемь кандидатов на направление вектора.[00373] More than four vector direction candidates may be specified. Tables 9 and 10 show examples in which eight vector direction candidates are given.
[00374] Таблица 9[00374] Table 9
[00375] Таблица 10[00375] Table 10
[00376] В таблицах 9 и 10, когда абсолютные значения sign[0] и sign[1] больше 0, это указывает на то, что вектор смещения проходит в диагональном направлении. При использовании таблицы 9 модули компонентов по оси х и оси y диагонального вектора смещения установлены равными abs(offsetMV), тогда как при использовании таблицы 10 модули компонентов по оси х и оси y диагонального вектора смещения установлены равными abs(offsetMV/2).[00376] In Tables 9 and 10, when the absolute values of sign[0] and sign[1] are greater than 0, it indicates that the displacement vector is in the diagonal direction. When using Table 9, the moduli of the x-axis and y-axis components of the diagonal offset vector are set to abs(offsetMV), whereas when using Table 10, the moduli of the x-axis and y-axis components of the diagonal offset vector are set to abs(offsetMV/2).
[00377] На фиг. 29 представлен вид, показывающий вектор смещения согласно значениям distance_idx, указывающей модуль вектора смещения, и direction_idx, указывающей направление вектора смещения.[00377] In FIG. 29 is a view showing a displacement vector according to the values of distance_idx indicating the magnitude of the displacement vector and direction_idx indicating the direction of the displacement vector.
[00378] На фиг. 29 (а) представлен вид, показывающий пример применения таблицы 9, и на фиг. 29 (b) представлен вид, показывающий пример применения таблицы 10.[00378] In FIG. 29(a) is a view showing an application example of Table 9, and FIG. 29(b) is a view showing an application example of Table 10.
[00379] Информация для определения по меньшей мере одного из количества и размеров кандидатов на направление вектора может передаваться посредством битового потока. Например, флаг merge_offset_direction_range_flag для определения кандидатов на направление вектора может передаваться посредством битового потока. Флаг может передаваться на уровне последовательности, изображения или слайса. Например, когда значение флага равно 0, могут использоваться четыре кандидата на направление вектора, пример которых приведен в таблице 8. С другой стороны, когда значение флага равно 1, могут использоваться восемь кандидатов на направление вектора, пример которых приведен в таблице 9 или таблице 10.[00379] Information for determining at least one of the number and size of vector direction candidates may be transmitted via a bitstream. For example, the merge_offset_direction_range_flag flag for identifying vector direction candidates may be transmitted via a bitstream. The flag can be passed at the sequence, image, or slice level. For example, when the flag value is 0, four vector direction candidates, an example of which is shown in Table 8, can be used. On the other hand, when the flag value is 1, eight vector direction candidates, an example of which is shown in Table 9 or Table 10, can be used. .
[00380] Альтернативно по меньшей мере одно из количества и размеров кандидатов на направление вектора может быть определено на основании модуля вектора смещения. Например, когда значение переменной DistFromMergeMV для определения модуля вектора смещения меньше или равно пороговому значению, могут использоваться восемь кандидатов на направление вектора, пример которых приведен в таблице 9 или таблице 10. С другой стороны, когда значение переменной DistFromMergeMV больше порогового значения, могут использоваться четыре кандидата на направление вектора, пример которых приведен в таблице 8.[00380] Alternatively, at least one of the number and sizes of vector direction candidates may be determined based on the magnitude of the displacement vector. For example, when the value of the DistFromMergeMV variable to determine the magnitude of the displacement vector is less than or equal to a threshold value, eight vector direction candidates can be used, an example of which is shown in Table 9 or Table 10. On the other hand, when the value of the DistFromMergeMV variable is greater than the threshold value, four can be used candidate for vector direction, an example of which is given in Table 8.
[00381] Альтернативно по меньшей мере одно из количества и размеров кандидатов на направление вектора может быть определено на основании значения MVx компонента x и значения MVy компонента у начального вектора движения. Например, когда разница между MVx и MVy или абсолютное значение разницы меньше или равняется пороговому значению, могут использоваться восемь кандидатов на направление вектора, пример которых приведен в таблице 9 или таблице 10. С другой стороны, когда разница между MVx и MVy или абсолютное значение разницы больше порогового значения, могут использоваться четыре кандидата на направление вектора, пример которых приведен в таблице 8.[00381] Alternatively, at least one of the number and size of vector direction candidates may be determined based on the x component value MVx and the y component value MVy of the initial motion vector. For example, when the difference between MVx and MVy or the absolute value of the difference is less than or equal to a threshold value, eight vector direction candidates can be used, an example of which is given in Table 9 or Table 10. On the other hand, when the difference between MVx and MVy or the absolute value of the difference greater than the threshold value, four vector direction candidates can be used, an example of which is given in Table 8.
[00382] Вектор движения текущего блока может быть получен путем добавления вектора смещения к начальному вектору движения. В уравнении 10 показан пример определения вектора движения текущего блока.[00382] The motion vector of the current block can be obtained by adding an offset vector to the initial motion vector. Equation 10 shows an example of determining the motion vector of the current block.
[00383] Уравнение 10[00383] Equation 10
[00384] [00384]
[00385] [00385]
[00386] В уравнении 10 mvL0 обозначает вектор движения L0 текущего блока, и mvL1 обозначает вектор движения L1 текущего блока. mergeMVL0 обозначает начальный вектор движения L0 текущего блока (т.е. вектор движения L0 кандидата на слияние), и mergeMVL1 обозначает начальный вектор движения L1 текущего блока. [0] указывает компонент горизонтального направления вектора движения, и [1] указывает компонент вертикального направления вектора движения.[00386] In Equation 10, mvL0 denotes the L0 motion vector of the current block, and mvL1 denotes the L1 motion vector of the current block. mergeMVL0 denotes the initial L0 motion vector of the current block (ie, the L0 motion vector of the merge candidate), and mergeMVL1 denotes the initial L1 motion vector of the current block. [0] indicates the horizontal direction component of the motion vector, and [1] indicates the vertical direction component of the motion vector.
[00387] Даже когда предсказание, осуществляемое между изображениями, выполняют в отношении каждого из подэлементов после разбиения блока кодирования на множество подэлементов, может быть применен способ кодирования разницы векторов движения при слиянии. Здесь выполнение предсказания, осуществляемого между изображениями, с помощью элемента подэлемента может включать по меньшей мере один из метода усовершенствованного временного предсказания вектора движения (ATMVP), метода пространственного временного предсказания вектора движения (STMVP) и метода треугольного разбиения.[00387] Even when inter-image prediction is performed on each of the sub-elements after dividing the encoding block into a plurality of sub-elements, a merging motion vector difference encoding method can be applied. Here, performing inter-image prediction using a sub-element may include at least one of an advanced temporal motion vector prediction (ATMVP) method, a spatial temporal motion vector prediction (STMVP) method, and a triangular partitioning method.
[00388] Например, начальный вектор движения может быть получен так, как следует из способа ATMVP.[00388] For example, the initial motion vector can be obtained as follows from the ATMVP method.
[00389] Сначала начальный вектор сдвига может быть получен с использованием вектора движения кандидата на слияние, полученного из соседнего блока, смежного с блоком кодирования. Кроме того, блок сдвига подблока, который включен в блок кодирования, может быть получен с использованием начального вектора сдвига. В уравнении 11 показано положение блока сдвига.[00389] First, an initial shift vector may be obtained using a motion vector of a merge candidate obtained from a neighbor block adjacent to the encoding block. In addition, a subblock shift block that is included in a coding block can be obtained using an initial shift vector. Equation 11 shows the position of the shift block.
[00390] Уравнение 11[00390] Equation 11
[00391] [00391]
[00392] В уравнении 11 (xColSb, yColSb) обозначает положение верхнего левого отсчета блока сдвига, и (xSb, ySb) обозначает положение верхнего левого отсчета подблока. shVector обозначает вектор сдвига.[00392] In Equation 11, (xColSb, yColSb) denotes the position of the upper left sample of the shift block, and (xSb, ySb) denotes the position of the upper left sample of the sub-block. shVector denotes the shift vector.
[00393] Когда определяют блок сдвига, вектор движения совмещаемого блока в том же положении, что и блок сдвига в совмещаемом изображении, может быть установлен как вектор движения подблока. То есть вектор движения совмещаемого блока, содержащего отсчет, расположенный в (xColSb, yColSb) в совмещаемом блоке, может быть установлен как вектор движения подблока, содержащего отсчет, расположенный в (xSb, ySb).[00393] When a shift block is determined, the motion vector of a registration block at the same position as the shift block in the registration image can be set as the motion vector of the sub-block. That is, the motion vector of an overlapping block containing a sample located at (xColSb, yColSb) in the overlapping block can be set as the motion vector of a sub-block containing a sample located at (xSb, ySb).
[00394] Когда применяется метод треугольного разбиения, блок кодирования может быть разбит на треугольные подэлементы. Например, блок кодирования может быть разбит на два подэлемента диагональной линией, соединяющей верхний левый и нижний правый углы блока кодирования, или диагональной линией, соединяющей верхний правый и нижний левый углы блока кодирования.[00394] When the triangular partitioning method is used, the encoding block can be partitioned into triangular sub-elements. For example, an encoding block may be divided into two sub-elements by a diagonal line connecting the upper left and lower right corners of the encoding block, or a diagonal line connecting the upper right and lower left corners of the encoding block.
[00395] На фиг. 30 представлен вид, показывающий схемы разбиения блока кодирования при применении метода треугольного разбиения.[00395] In FIG. 30 is a view showing partitioning patterns of a coding block when applying the triangular partitioning method.
[00396] Информация о движении каждого из треугольных подэлементов может быть указана кандидатом на слияние. Для этого информация об индексах, указывающая любого из кандидатов на слияние, может быть передана для каждого подэлемента. Например, информация об индексах merge_1st_idx первого подэлемента может указывать кандидата на слияние первого подэлемента, и информация об индексах merge_2nd_idx второго подэлемента может указывать кандидата на слияние второго подэлемента.[00396] Motion information of each of the triangular sub-elements may be indicated by the fusion candidate. To achieve this, index information indicating any of the merge candidates can be passed for each sub-element. For example, the merge_1st_idx index information of the first sub-element may indicate a merge candidate of the first sub-element, and the merge_2nd_idx index information of the second sub-element may indicate a merge candidate of the second sub-element.
[00397] Начальный вектор движения каждого из подэлементов может быть определен отдельно. Например, когда модель аффинного движения применяется к блоку кодирования, аффинные векторы подблоков, которые получены из аффинных исходных векторов блока кодирования, могут быть установлены как начальные векторы движения подблоков. Вектор движения каждого подблока может быть получен путем добавления вектора смещения к начальному вектору движения или вычитания из него.[00397] The initial motion vector of each of the sub-elements can be determined separately. For example, when an affine motion model is applied to an encoding block, affine vectors of subblocks that are obtained from affine source vectors of the encoding block can be set as initial motion vectors of the subblocks. The motion vector of each sub-block can be obtained by adding or subtracting the displacement vector to the initial motion vector.
[00398] Когда способ кодирования разницы векторов движения при слиянии применяется к блоку кодирования, разбитому на множество подэлементов, множество подэлементов могут быть установлены так, чтобы использовать одинаковый вектор смещения. То есть начальный вектор движения каждого из множества подэлементов может быть изменен с использованием одинакового вектора смещения.[00398] When the merging motion vector difference encoding method is applied to an encoding block divided into a plurality of sub-elements, the plurality of sub-elements may be set to use the same offset vector. That is, the initial motion vector of each of the plurality of sub-elements can be changed using the same displacement vector.
[00399] Альтернативно блок кодирования разбит на множество подэлементов, и вектор смещения каждого подэлемента может быть определен отдельно. Соответственно, вектор смещения по меньшей мере одного из подэлементов может быть установлен отлично от векторов смещения других подэлементов.[00399] Alternatively, the encoding block is divided into a plurality of sub-elements, and the offset vector of each sub-element can be determined separately. Accordingly, the offset vector of at least one of the subelements may be set differently from the offset vectors of the other subelements.
[00400] На фиг. 31 представлен вид, показывающий пример, в котором векторы смещения каждого из подэлементов установлены по-разному.[00400] In FIG. 31 is a view showing an example in which the offset vectors of each of the sub-elements are set differently.
[00401] Как показано в примере по фиг. 31, информация distance_idx, указывающая модуль вектора смещения, и direction_idx, указывающая направление вектора смещения, может быть кодирована и передана для каждого подэлемента.[00401] As shown in the example of FIG. 31, information distance_idx indicating the magnitude of the displacement vector and direction_idx indicating the direction of the displacement vector may be encoded and transmitted for each sub-element.
[00402] Альтернативно модуль вектора смещения может быть установлен одинаково для всех подэлементов, и направление вектора смещения может быть установлено отдельно для подэлементов. Например, может быть установлено совместно использовать значение distance_idx, передаваемое на уровне кодирования, из подэлементов, и direction_idx может быть кодировано и передано для каждого подэлемента.[00402] Alternatively, the magnitude of the offset vector can be set equally for all sub-elements, and the direction of the offset vector can be set separately for sub-elements. For example, the distance_idx value passed at the encoding level may be set to be shared among the subelements, and the direction_idx may be encoded and passed for each subelement.
[00403] Альтернативно направление вектора смещения может быть установлено одинаково для всех подэлементов, и модуль вектора смещения может быть установлен отдельно для подэлементов. Например, может быть установлено совместно использовать значение direction_idx, передаваемое на уровне кодирования, из подэлементов, и distance_idx может быть кодировано и передано для каждого подэлемента.[00403] Alternatively, the direction of the offset vector can be set the same for all sub-elements, and the magnitude of the offset vector can be set separately for sub-elements. For example, the direction_idx value passed at the encoding level could be set to be shared among the subelements, and the distance_idx could be encoded and passed for each subelement.
[00404] Способ кодирования разницы векторов движения при слиянии может быть применен только к некоторым из множества подэлементов, сгенерированных путем разбиения блока кодирования. Например, когда текущий блок разбит на первый подэлемент и второй подэлемент, вектор движения первого подэлемента может быть установлен равным вектору движения кандидата на слияние, и вектор движения второго подэлемента может быть получен путем добавления вектора смещения к вектору движения кандидата на слияние.[00404] The merging motion vector difference encoding method can be applied to only some of the plurality of sub-elements generated by dividing the encoding block. For example, when the current block is divided into a first sub-element and a second sub-element, the motion vector of the first sub-element can be set equal to the motion vector of the merge candidate, and the motion vector of the second sub-element can be obtained by adding a displacement vector to the motion vector of the merge candidate.
[00405] Вместо передачи информации для определения вектора смещения, декодер может получать вектор смещения. Конкретно, вектор смещения может быть получен с использованием среднего значения для градиентов горизонтального направления и среднего значения для градиентов вертикального направления отсчетов предсказания, включенных в подблок.[00405] Instead of transmitting information to determine the offset vector, the decoder may receive the offset vector. Specifically, the displacement vector can be obtained using the average of the horizontal direction gradients and the average of the vertical direction gradients of the prediction samples included in the subblock.
[00406] Здесь градиент может быть получен на основании разницы между восстановленным отсчетом, соответствующим отсчету предсказания в опорном изображении, и соседним отсчетом, смежным с восстановленным отсчетом. Например, градиент горизонтального направления может указывать разницу между восстановленным отсчетом и восстановленным отсчетом, соседствующим с левой и/или правой сторонами, и градиент вертикального направления может указывать разницу между восстановленным отсчетом и восстановленным отсчетом, соседствующим с верхней и/или нижней сторонами.[00406] Here, a gradient can be obtained based on the difference between a reconstructed sample corresponding to a prediction sample in the reference image and a neighboring sample adjacent to the reconstructed sample. For example, the horizontal direction gradient may indicate the difference between the reconstructed sample and the reconstructed sample adjacent to the left and/or right sides, and the vertical direction gradient may indicate the difference between the reconstructed sample and the reconstructed sample adjacent to the top and/or bottom sides.
[00407] Из кандидатов на слияние, включенных в список кандидатов на слияние, кандидат на слияние, имеющий вектор движения, полученный путем добавления вектора смещения к вектору движения опорного кандидата на слияние или вычитания из него, из кандидатов на слияние, включенных в список кандидатов на слияние, может быть добавлен в список кандидатов на слияние. Кандидат на слияние, имеющий вектор движения, полученный путем добавления вектора смещения к вектору движения опорного кандидата на слияние или вычитания из него, может называться уточненным кандидатом на слияние.[00407] Of the fusion candidates included in the fusion candidate list, the fusion candidate having a motion vector obtained by adding or subtracting a displacement vector to or subtracting from the motion vector of the reference fusion candidate, from the fusion candidates included in the fusion candidate list merge can be added to the list of merge candidates. A fusion candidate having a motion vector obtained by adding or subtracting a displacement vector to or subtracting from the motion vector of a reference fusion candidate may be referred to as a refined fusion candidate.
[00408] Остальная информация о движении, за исключением вектора движения уточненного кандидата на слияние, может быть установлена такой же, как для опорного кандидата на слияние.[00408] The remaining motion information, except for the motion vector of the refined fusion candidate, can be set to the same as that of the reference fusion candidate.
[00409] На фиг. 32 представлен вид, показывающий кандидатов вектора движения, которые может брать уточненный кандидат на слияние.[00409] In FIG. 32 is a view showing motion vector candidates that the refined merge candidate can take.
[00410] Когда вектор движения опорного кандидата на слияние равняется (MvLX[0], MvLX[1]), вектор движения уточненного кандидата на слияние может быть получен путем добавления смещения к по меньшей мере одному из компонента x и компонента y вектора движения опорного кандидата на слияние или вычитания из него. Например, вектор движения уточненного кандидата на слияние может быть установлен равным (MvLX[0]+M, MvLX[1]), (MvLX[0]-M, MvLX[1]), (MvLX[0], MvLX[1]+M) или (MvLX[0], MvLX[1]-M). M обозначает модуль вектора смещения.[00410] When the motion vector of the reference fusion candidate is (MvLX[0], MvLX[1]), the motion vector of the refined fusion candidate can be obtained by adding an offset to at least one of the x component and the y component of the motion vector of the reference candidate to merge or subtract from it. For example, the motion vector of the refined merge candidate can be set to (MvLX[0]+M, MvLX[1]), (MvLX[0]-M, MvLX[1]), (MvLX[0], MvLX[1] +M) or (MvLX[0], MvLX[1]-M). M denotes the magnitude of the displacement vector.
[00411] Опорный кандидат на слияние может представлять собой кандидата на слияние, имеющего предварительно заданное значение индекса, в списке кандидатов на слияние. Например, кандидат на слияние, имеющий наименьшее значение индекса (т.е. кандидат на слияние, имеющий значение индекса, равное 0), или кандидат на слияние, имеющий наибольшее значение индекса, из кандидатов на слияние, включенных в список кандидатов на слияние, может быть установлен как опорный кандидат на слияние. Альтернативно кандидат на слияние между участками, имеющий наименьшее значение индекса, или кандидат на слияние между участками, имеющий наибольшее значение индекса, в списке информации о движении между участками может быть установлен как опорный кандидат на слияние.[00411] The reference merge candidate may be a merge candidate having a predetermined index value in the list of merge candidates. For example, the merge candidate having the smallest index value (i.e., the merge candidate having an index value of 0) or the merge candidate having the highest index value of the merge candidates included in the list of merge candidates may be established as a pivotal merger candidate. Alternatively, the inter-site merging candidate having the smallest index value or the inter-site merging candidate having the largest index value in the inter-site traffic information list may be set as the reference merging candidate.
[00412] Альтернативно кандидат на слияние, имеющий наименьшее значение индекса, из кандидатов на слияние, имеющих информацию о двунаправленном движении, может быть установлен как опорный кандидат на слияние. То есть, когда осуществляется последовательный поиск кандидатных блоков, двунаправленный кандидат на слияние, найденный первым, может быть установлен как опорный кандидат на слияние.[00412] Alternatively, the merge candidate having the smallest index value of the merge candidates having bidirectional traffic information may be set as the reference merge candidate. That is, when searching candidate blocks sequentially, the bidirectional merge candidate found first can be set as the reference merge candidate.
[00413] Базовый кандидат на слияние может быть выбран на основании размера текущего блока, формы текущего блока или того, находится ли текущий блок в контакте с границей элемента кодового дерева. Например, когда текущий блок имеет квадратную форму, или текущий блок имеет неквадратную форму, высота которой больше, чем ширина, кандидат на слияние, имеющий индекс, равный 0, или кандидат на слияние, полученный из соседнего блока, расположенного сверху от текущего блока, может быть установлен как опорный кандидат на слияние. Когда текущий блок имеет неквадратную форму, ширина которой больше, чем высота, кандидат на слияние, имеющий индекс, равный 1, или кандидат на слияние, полученный из соседнего блока, расположенного слева от текущего блока, может быть установлен как опорный кандидат на слияние.[00413] A base merge candidate may be selected based on the size of the current block, the shape of the current block, or whether the current block is in contact with a code tree element boundary. For example, when the current block has a square shape, or the current block has a non-square shape whose height is greater than its width, a merge candidate having an index of 0 or a merge candidate derived from a neighboring block located above the current block may be established as a pivotal merger candidate. When the current block has a non-square shape whose width is greater than its height, a merge candidate having an index of 1 or a merge candidate obtained from a neighboring block located to the left of the current block can be set as the reference merge candidate.
[00414] Альтернативно информация, указывающая опорного кандидата на слияние, может быть передана посредством битового потока. Информация может представлять собой информацию об индексах, указывающую любого из кандидатов на слияние, включенных в список кандидатов на слияние.[00414] Alternatively, information indicating a reference merge candidate may be transmitted via a bitstream. The information may be index information indicating any of the merger candidates included in the list of merger candidates.
[00415] Информация, указывающая, использовать ли уточненного кандидата на слияние, может быть передана посредством битового потока. Информация может представлять собой 1-битный флаг. Когда значение флага равняется 1, уточненный кандидат на слияние, сгенерированный на основании опорного кандидата на слияние, может быть добавлен в список кандидатов на слияние. С другой стороны, когда значение флага равняется 0, список кандидатов на слияние может не содержать уточненного кандидата на слияние.[00415] Information indicating whether to use the refined merge candidate may be transmitted via a bitstream. The information may be a 1-bit flag. When the flag value is 1, the refined merge candidate generated based on the reference merge candidate can be added to the list of merge candidates. On the other hand, when the flag value is 0, the list of merge candidates may not contain a refined merge candidate.
[00416] Альтернативно, когда количество кандидатов на слияние, ранее добавленных в список кандидатов на слияние, меньше, чем максимальное количество кандидатов на слияние, которое может содержать список кандидатов на слияние, уточненный кандидат на слияние может быть добавлен в список кандидатов на слияние. Здесь ранее добавленные кандидаты на слияние могут включать по меньшей мере одного из пространственного кандидата на слияние, временного кандидата на слияние, кандидата на слияние между участками и парного кандидата на слияние. Например, когда количество по меньшей мере одних из пространственных кандидатов на слияние, временных кандидатов на слияние и кандидатов на слияние между участками, включенных в список кандидатов на слияние, меньше, чем пороговое значение, или равняется ему, уточненный кандидат на слияние может быть добавлен в список кандидатов на слияние.[00416] Alternatively, when the number of merge candidates previously added to the merge candidate list is less than the maximum number of merge candidates that the merge candidate list can contain, the refined merge candidate may be added to the merge candidate list. Here, the previously added merge candidates may include at least one of a spatial merge candidate, a temporal merge candidate, an inter-site merge candidate, and a pairwise merge candidate. For example, when the number of at least one of spatial merge candidates, temporal merge candidates, and inter-site merge candidates included in the merge candidate list is less than or equal to a threshold value, the refined merge candidate may be added to list of merger candidates.
[00417] Альтернативно, когда количество кандидатов на слияние, ранее добавленных в список кандидатов на слияние, больше, чем пороговое значение, или равняется ему, может использоваться уточненный кандидат на слияние.[00417] Alternatively, when the number of merge candidates previously added to the merge candidate list is greater than or equal to a threshold, a refined merge candidate may be used.
[00418] Максимальное количество кандидатов на слияние, которое может содержать список кандидатов на слияние, может быть установлено по-другому согласно тому, используется ли уточненный кандидат на слияние. Например, когда установлено не использовать уточненного кандидата на слияние, максимальное количество кандидатов на слияние, которое может содержать список кандидатов на слияние, может быть установлено равным N, тогда как, когда установлено использовать уточненный кандидат на слияние, максимальное количество кандидатов на слияние, которое может содержать список кандидатов на слияние, может быть установлено равным N + n.[00418] The maximum number of merge candidates that the list of merge candidates can contain may be set differently according to whether a refined merge candidate is used. For example, when it is set not to use a refined merge candidate, the maximum number of merge candidates that can contain a list of merge candidates can be set to N, whereas when it is set to use a refined merge candidate, the maximum number of merge candidates that can contain a list of merge candidates, can be set to N + n.
[00419] Уточненный кандидат на слияние может иметь индекс, который больше, чем у кандидатов на слияние, ранее добавленных в список кандидатов на слияние. Например, в таблице 11 показан пример конфигурирования списка кандидатов на слияние.[00419] The refined merge candidate may have an index that is greater than the merge candidates previously added to the list of merge candidates. For example, Table 11 shows an example of configuring a list of merge candidates.
[00420] Таблица 11[00420] Table 11
[00421] В таблице 11 mergeCand[X] обозначает кандидата на слияние, имеющего индекс, равный X. mvLx[0] обозначает вектор движения компонента x опорного кандидата на слияние, и mvLx[1] обозначает вектор движения компонента y опорного кандидата на слияние. Например, когда опорный кандидат на слияние равняется mergeCand[0], mvLx[0] и mvLx[1] могут указывать вектор движения mergeCand[0].[00421] In Table 11, mergeCand[X] denotes a merge candidate having an index equal to X. mvLx[0] denotes the motion vector of the x component of the reference merge candidate, and mvLx[1] denotes the motion vector of the y component of the reference merge candidate. For example, when the reference merge candidate is mergeCand[0], mvLx[0] and mvLx[1] may indicate the motion vector of mergeCand[0].
[00422] Модуль M вектора смещения может быть предварительно задан в кодере и декодере. Например, модуль M вектора смещения может быть установлен равным целому числу, которое меньше или равняется 4, например, 1 или 4.[00422] The magnitude M of the offset vector may be preset in the encoder and decoder. For example, the magnitude M of the bias vector can be set to an integer that is less than or equal to 4, such as 1 or 4.
[00423] Альтернативно информация для определения вектора смещения может быть передана посредством битового потока. Информация может быть передана на уровне последовательности, изображения, слайса или блока. Например, вектор смещения может быть определен с использованием по меньшей мере одного из информации distance_idx для определения модуля вектора смещения и информации direction_idx для определения направления вектора смещения, как описано выше.[00423] Alternatively, information for determining the offset vector may be transmitted via a bit stream. Information can be transferred at the sequence, image, slice or block level. For example, the displacement vector may be determined using at least one of distance_idx information for determining the magnitude of the displacement vector and direction_idx information for determining the direction of the displacement vector, as described above.
[00424] Как показано в примере таблицы 11, по меньшей мере один уточненный кандидат на слияние, полученный на основании опорного кандидата на слияние, может быть добавлен в список кандидатов на слияние. Когда имеется кандидат на слияние, имеющий информацию о движении, которая является такой же, как и у уточненного кандидата на слияние, из ранее добавленных кандидатов на слияние, уточненный кандидат на слияние может не добавляться в список кандидатов на слияние. Например, когда уточненный кандидат на слияние, полученный на основании опорного кандидата на слияние mergeCand[0], является таким же, как любой из кандидатов на слияние mergeCand[1] - mergeCand[5], уточненный кандидат на слияние может не добавляться в список кандидатов на слияние.[00424] As shown in the example of Table 11, at least one refined merge candidate derived from the reference merge candidate may be added to the list of merge candidates. When there is a merge candidate having traffic information that is the same as that of the refined merge candidate from the previously added merge candidates, the refined merge candidate may not be added to the list of merge candidates. For example, when the refined merge candidate derived from the reference merge candidate mergeCand[0] is the same as any of the merge candidates mergeCand[1] through mergeCand[5], the refined merge candidate may not be added to the candidate list for the merger.
[00425] Альтернативно, когда имеется кандидат на слияние, имеющий информацию о движении, которая является такой же, как и у уточненного кандидата на слияние, уточненный кандидат на слияние может быть повторно получен путем изменения вектора смещения или повторной установки кандидата на слияние, имеющего информацию о движении, которая является такой же, как и у уточненного кандидата на слияние, как уточненного кандидата на слияние. Например, когда информация о движении уточненного кандидата на слияние mergeCand[6], полученного на основании опорного кандидата на слияние mergeCand[0], является такой же, как и у кандидата на слияние mergeCand[2], вектор движения уточненного кандидата на слияние mergeCand[6] может быть изменен на значение, полученное путем добавления вектора смещения к вектору движения кандидата на слияние [2] или вычитания из него. Например, вектор движения mergeCand[6] может быть изменен с (mergeCand[0]_mxLx[0]+M, mergeCand[0]_mvLx[1]) на (mergeCand[2]_mxLx[0]+M, mergeCand[2]_mvLx[1]). Здесь mergeCand[X]_mvLx обозначает вектор движения кандидата на слияние, имеющего индекс X.[00425] Alternatively, when there is a merge candidate having motion information that is the same as the refined merge candidate, the refined merge candidate can be re-obtained by changing the offset vector or resetting the merge candidate having the information motion, which is the same as the refined merger candidate as the refined merger candidate. For example, when the motion information of the refined merge candidate mergeCand[6] derived from the reference merge candidate mergeCand[0] is the same as that of the merge candidate mergeCand[2], the motion vector of the refined merge candidate mergeCand[ 6] can be changed to a value obtained by adding or subtracting the displacement vector to the fusion candidate motion vector [2]. For example, the motion vector mergeCand[6] can be changed from (mergeCand[0]_mxLx[0]+M, mergeCand[0]_mvLx[1]) to (mergeCand[2]_mxLx[0]+M, mergeCand[2] _mvLx[1]). Here mergeCand[X]_mvLx denotes the motion vector of the merge candidate having index X.
[00426] В качестве другого примера, вектор смещения может быть определен с использованием списка смещения с уточнением слияния, содержащего по меньшей мере одного кандидата на смещение при слиянии. Когда кандидат на слияние, указанный с помощью информации об индексах текущего блока, представляет собой опорный кандидат на слияние, вектор смещения может быть определен с использованием списка смещения с уточнением слияния. Кроме того, вектор движения текущего блока может быть получен путем добавления вектора смещения к вектору движения кандидата на слияние или вычитания из него. Опорный кандидат на слияние может представлять собой кандидата на слияние, имеющего предварительно заданное значение индекса, в списке кандидатов на слияние. Например, из кандидатов на слияние, включенных в список кандидатов на слияние, кандидат на слияние, имеющий наименьшее значение индекса (т.е. кандидат на слияние, имеющий значение индекса, равное 0), или кандидат на слияние, имеющий наибольшее значение индекса, может быть установлен как опорный кандидат на слияние. Альтернативно кандидат на слияние между участками, имеющий наименьшее значение индекса, или кандидат на слияние между участками, имеющий наибольшее значение индекса, в списке информации о движении между участками может быть установлен как опорный кандидат на слияние.[00426] As another example, an offset vector may be determined using a merge refinement offset list containing at least one merge offset candidate. When the merge candidate specified by the current block index information is the reference merge candidate, the offset vector can be determined using the merge refinement offset list. Additionally, the motion vector of the current block can be obtained by adding or subtracting the displacement vector to or subtracting from the motion vector of the merge candidate. The reference merge candidate may be a merge candidate having a predetermined index value in the list of merge candidates. For example, of the merge candidates included in the list of merge candidates, the merge candidate having the smallest index value (i.e., the merge candidate having an index value of 0) or the merge candidate having the highest index value may be established as a pivotal merger candidate. Alternatively, the inter-site merging candidate having the smallest index value or the inter-site merging candidate having the largest index value in the inter-site traffic information list may be set as the reference merging candidate.
[00427] На фиг. 33 представлен вид, показывающий конфигурацию списка смещения с уточнением слияния.[00427] In FIG. 33 is a view showing a configuration of an offset list with merge refinement.
[00428] Как показано на фиг. 33, предполагается, что опорный кандидат на слияние представляет собой кандидата на слияние, имеющего индекс, равный 6.[00428] As shown in FIG. 33, it is assumed that the reference merge candidate is a merge candidate having an index of 6.
[00429] Когда индекс кандидата на слияние, указанный с помощью информации об индексах merge_idx, указывающей любого из кандидатов на слияние, не равняется 6, вектор движения кандидата на слияние может быть установлен как вектор движения текущего блока.[00429] When the merge candidate index indicated by the merge_idx index information indicating any of the merge candidates is not 6, the motion vector of the merge candidate may be set to the motion vector of the current block.
[00430] С другой стороны, когда индекс кандидата на слияние, указанный с помощью информации об индексах merge_idx, равняется 6, вектор смещения может быть получен с использованием списка смещения с уточнением слияния. Информация об индексах MrgOffset_idx, указывающая любого из кандидатов на смещение при слиянии, включенных в список смещения с уточнением слияния, может быть передана посредством битового потока.[00430] On the other hand, when the merge candidate index specified by the merge_idx index information is 6, the offset vector can be obtained using the merge refinement offset list. Index information MrgOffset_idx indicating any of the merge offset candidates included in the merge refinement offset list may be transmitted via a bit stream.
[00431] Когда указывают вектор смещения, вектор движения текущего блока может быть получен путем добавления вектора смещения к вектору движения опорного кандидата слияния или вычитания из него.[00431] When an offset vector is specified, the motion vector of the current block can be obtained by adding the offset vector to or subtracting from the motion vector of the reference merge candidate.
[00432] Список смещения с уточнением слияния может содержать по меньшей мере одного кандидата на смещение при слиянии. Например, количество кандидатов на смещение при слиянии, которое содержит список смещения с уточнением слияния, может равняться 4, 8 или 16.[00432] The merge refinement offset list may contain at least one merge offset candidate. For example, the number of merge offset candidates that contains the merge refinement offset list can be 4, 8, or 16.
[00433] На фиг. 34 и 35 представлены виды, показывающие векторы смещения, указанные кандидатами на смещение при слиянии.[00433] In FIG. 34 and 35 are views showing displacement vectors indicated by merging displacement candidates.
[00434] На фиг. 34 показан пример, в котором количество кандидатов на смещение при слиянии равняется 8, и на фиг. 35 показан пример, в котором количество кандидатов на смещение при слиянии равняется 16.[00434] In FIG. 34 shows an example in which the number of merge offset candidates is 8, and FIG. Figure 35 shows an example in which the number of merge displacement candidates is 16.
[00435] Как показано в примере по фиг. 34 (a), векторы смещения, указанные кандидатами на смещение при слиянии, могут быть установлены так, чтобы абсолютное значение вектора движения горизонтального направления и/или абсолютное значение вектора движения вертикального направления могли иметь фиксированное значение. Альтернативно, как показано в примере по фиг. 35, векторы смещения, указанные кандидатами на смещение при слиянии, имеющими индекс, который меньше, чем пороговое значение, из кандидатов на смещение при слиянии, могут быть установлены так, чтобы абсолютное значение вектора движения горизонтального направления и/или абсолютное значение вектора движения вертикального направления могли иметь первое значение, и векторы смещения, указанные другими кандидатами на смещение при слиянии, могут быть установлены так, чтобы абсолютное значение вектора движения горизонтального направления и/или абсолютное значение вектора движения вертикального направления могли иметь второе значение.[00435] As shown in the example of FIG. 34(a), the offset vectors indicated by the merging offset candidates can be set so that the absolute value of the horizontal direction motion vector and/or the absolute value of the vertical direction motion vector can have a fixed value. Alternatively, as shown in the example of FIG. 35, the displacement vectors indicated by the fusion displacement candidates having an index that is less than the threshold value of the fusion displacement candidates may be set so that the absolute value of the horizontal direction motion vector and/or the absolute value of the vertical direction motion vector could have the first value, and the offset vectors specified by the other merging offset candidates could be set so that the absolute value of the horizontal direction motion vector and/or the absolute value of the vertical direction motion vector could have the second value.
[00436] Альтернативно, как показано на фиг. 34 (b), векторы смещения, указанные кандидатами на смещение при слиянии, могут быть установлены так, чтобы сумма абсолютного значения вектора движения горизонтального направления и абсолютного значения вектора движения вертикального направления могла иметь фиксированное значение.[00436] Alternatively, as shown in FIG. 34(b), the displacement vectors indicated by the merging displacement candidates can be set so that the sum of the absolute value of the horizontal direction motion vector and the absolute value of the vertical direction motion vector can have a fixed value.
[00437] Могут быть установлены множество опорных кандидатов на слияние. Например, из кандидатов на слияние, включенных в список кандидатов на слияние, два кандидата на слияние, имеющих наименьший индекс, могут быть установлены как опорные кандидаты на слияние. Соответственно, когда индекс кандидата на слияние, указанный с помощью информации об индексах merge_idx, равняется 0 или 1, вектор смещения может быть получен с использованием списка смещения с уточнением слияния. Альтернативно кандидат на слияние, имеющий наименьший индекс, из кандидатов на слияние, включенных в список кандидатов на слияние, и кандидат на слияние, имеющий наибольший индекс, из кандидатов на слияние, включенных в список кандидатов на слияние между участками, может быть установлен как опорные кандидаты на слияние.[00437] Multiple reference merge candidates may be established. For example, from the merger candidates included in the list of merger candidates, two merger candidates having the smallest index may be set as the reference merger candidates. Accordingly, when the merge candidate index specified by the merge_idx index information is 0 or 1, the offset vector can be obtained using the merge refinement offset list. Alternatively, the merger candidate having the smallest index among the merger candidates included in the list of merger candidates and the merger candidate having the largest index among the merger candidates included in the list of intersite merger candidates may be set as reference candidates. for the merger.
[00438] В усовершенствованном режиме предсказания вектора движения вектор движения текущего блока может быть получен путем добавления вектора разницы движения к вектору предсказания движения. Вектор предсказания движения текущего блока может быть определен на основании списка кандидатов предсказания вектора движения, содержащего по меньшей мере один вектор-кандидат предсказания движения. Например, любой из векторов-кандидатов предсказания движения может быть установлен как вектор предсказания движения текущего блока.[00438] In the advanced motion vector prediction mode, the motion vector of the current block can be obtained by adding a motion difference vector to the motion prediction vector. A motion prediction vector of the current block may be determined based on a motion vector prediction candidate list containing at least one motion prediction candidate vector. For example, any of the candidate motion prediction vectors may be set as the motion prediction vector of the current block.
[00439] Кандидат предсказания вектора движения может быть получен на основании по меньшей мере одного из соседнего в пространственном отношении блока текущего блока и соседнего во временном отношении блока текущего блока.[00439] A motion vector prediction candidate may be obtained based on at least one of a spatially adjacent block of the current block and a temporally adjacent block of the current block.
[00440] На фиг. 36 представлен вид, показывающий кандидатные блоки, используемые для получения кандидатов предсказания вектора движения.[00440] In FIG. 36 is a view showing candidate blocks used for obtaining motion vector prediction candidates.
[00441] Соседний в пространственном отношении блок может содержать верхние соседние блоки, расположенные сверху от текущего блока, и левые соседние блоки, расположенные слева от текущего блока. Верхние соседние блоки могут содержать по меньшей мере один из блока B0, содержащего отсчет, расположенный в (xCb+CbW, yCb-1), блока B1, содержащего отсчет, расположенный в (xCb+CbW-1, yCb-1), блока B2, содержащего отсчет, расположенный в (xCb-1, yCb-1), и блока B3, содержащего отсчет, расположенный в (xCb, yCb-1). Здесь (xCb, yCb) обозначает положение верхнего левого отсчета текущего блока, и CbW обозначает ширину текущего блока. Левые соседние блоки могут содержать по меньшей мере один из блока A0, содержащего отсчет, расположенный в (xCb-1, yCb+CbH), блока A1, содержащего отсчет, расположенный в (xCb-1, yCb+CbH-1), и блока A2, содержащего отсчет, расположенный в (xCb-1, yCb). Здесь CbH обозначает высоту текущего блока.[00441] A spatially adjacent block may comprise top neighbor blocks located above the current block and left neighbor blocks located to the left of the current block. The upper adjacent blocks may contain at least one of a block B0 containing a sample located at (xCb+CbW, yCb-1), a block B1 containing a sample located at (xCb+CbW-1, yCb-1), a block B2 , containing the sample located at (xCb-1, yCb-1), and block B3 containing the sample located at (xCb, yCb-1). Here (xCb, yCb) denotes the position of the top-left count of the current block, and CbW denotes the width of the current block. The left adjacent blocks may contain at least one of a block A0 containing a sample located at (xCb-1, yCb+CbH), a block A1 containing a sample located at (xCb-1, yCb+CbH-1), and a block A2 containing the sample located at (xCb-1, yCb). Here CbH denotes the height of the current block.
[00442] Соседний во временном отношении блок может содержать по меньшей мере один из блока C0, содержащего отсчет в центре блока, имеющего такие же положение и размер, как и у текущего блока в совмещаемом блоке, и блока C1, содержащего отсчет, смежный с нижним правым углом блока.[00442] A temporally adjacent block may contain at least one of a block C0 containing a sample at the center of the block having the same position and size as the current block in the adjacent block, and a block C1 containing a sample adjacent to the bottom right corner of the block.
[00443] Максимальное количество кандидатов предсказания вектора движения, которое может содержать список кандидатов предсказания вектора движения, может равняться двум. Последовательность получения кандидатов предсказания вектора движения является такой, как описано ниже.[00443] The maximum number of motion vector prediction candidates that can contain the motion vector prediction candidate list can be two. The sequence for obtaining motion vector prediction candidates is as described below.
[00444] 1. Когда по меньшей мере один из левого соседнего блока A0 и левого соседнего блока A1 доступен, вектор движения доступного блока устанавливают как кандидата предсказания вектора движения.[00444] 1. When at least one of the left neighbor block A0 and the left neighbor block A1 is available, the motion vector of the available block is set as a motion vector prediction candidate.
[00445] 2. Когда по меньшей мере один из верхнего соседнего блока B0, верхнего соседнего блока B1 и верхнего соседнего блока B2 доступен, вектор движения доступного блока устанавливают как кандидата предсказания вектора движения.[00445] 2. When at least one of the upper neighboring block B0, the upper neighboring block B1 and the upper neighboring block B2 is available, the motion vector of the available block is set as a motion vector prediction candidate.
[00446] 3. Когда соседний во временном отношении блок доступен, временной вектор движения устанавливают как кандидата предсказания вектора движения.[00446] 3. When a temporally adjacent block is available, a temporal motion vector is set as a motion vector prediction candidate.
[00447] 4. Нулевой вектор движения устанавливают как кандидата предсказания вектора движения.[00447] 4. The zero motion vector is set as a motion vector prediction candidate.
[00448] Альтернативно, когда количество кандидатов предсказания вектора движения, полученных в последовательности от 1 до 3, меньше двух, вектор движения, включенный в список информации о движении между участками может быть установлен как кандидат предсказания вектора движения. Когда список информации о движении между участками доступен, кандидаты предсказания вектора движения могут быть получены в последовательности, описанной ниже.[00448] Alternatively, when the number of motion vector prediction candidates obtained in the sequence 1 to 3 is less than two, the motion vector included in the inter-section motion information list may be set as the motion vector prediction candidate. When a list of inter-section motion information is available, motion vector prediction candidates can be obtained in the sequence described below.
[00449] 1. Когда по меньшей мере один из левого соседнего блока A0 и левого соседнего блока A1 доступен, вектор движения доступного блока устанавливают как кандидата предсказания вектора движения.[00449] 1. When at least one of the left neighbor block A0 and the left neighbor block A1 is available, the motion vector of the available block is set as a motion vector prediction candidate.
[00450] 2. Когда по меньшей мере один из верхнего соседнего блока B0, верхнего соседнего блока B1 и верхнего соседнего блока B2 доступен, вектор движения доступного блока устанавливают как кандидата предсказания вектора движения.[00450] 2. When at least one of the upper neighboring block B0, the upper neighboring block B1 and the upper neighboring block B2 is available, the motion vector of the available block is set as a motion vector prediction candidate.
[00451] 3. Когда соседний во временном отношении блок доступен, временной вектор движения устанавливают как кандидата предсказания вектора движения.[00451] 3. When a temporally adjacent block is available, a temporal motion vector is set as a motion vector prediction candidate.
[00452] 4. Вектор движения, включенный в список информации о движении между участками, устанавливают как кандидата предсказания вектора движения.[00452] 4. A motion vector included in the inter-section motion information list is set as a motion vector prediction candidate.
[00453] 5. Нулевой вектор движения устанавливают как кандидата предсказания вектора движения.[00453] 5. The zero motion vector is set as a motion vector prediction candidate.
[00454] Кандидат предсказания вектора движения, имеющий вектор движения, полученный путем добавления вектора смещения к вектору движения кандидата предсказания опорного вектора движения или вычитания из него, может быть добавлен в список кандидатов предсказания вектора движения. Кандидат предсказания вектора движения, имеющий вектор движения, полученный путем добавления вектора смещения к вектору движения кандидата предсказания опорного вектора движения или вычитания из него, может называться кандидатом предсказания уточненного вектора движения.[00454] A motion vector prediction candidate having a motion vector obtained by adding an offset vector to or subtracting from a motion vector of the reference motion vector prediction candidate may be added to the motion vector prediction candidate list. A motion vector prediction candidate having a motion vector obtained by adding an offset vector to or subtracting from a motion vector of a reference motion vector prediction candidate may be called a refined motion vector prediction candidate.
[00455] На фиг. 37 представлен вид, показывающий кандидатов вектора движения, которые могут быть установлены в качестве уточненного кандидата предсказания вектора движения.[00455] In FIG. 37 is a view showing motion vector candidates that can be set as a refined motion vector prediction candidate.
[00456] Когда вектор движения кандидата предсказания опорного вектора движения равняется (MvpLX[0], MvpLX[1]), вектор движения кандидата предсказания уточненного вектора движения может быть получен путем добавления смещения к по меньшей мере одному из компонента x и компонента y вектора движения кандидата предсказания опорного вектора движения или вычитания из него. Например, вектор движения кандидата предсказания уточненного вектора движения может быть установлен как (MvpLX[0]+M, MvpLX[1]), (MvpLX[0]-M, MvpLX[1]), (MvpLX[0], MvpLX[1]+M) или (MvpLX[0], MvpLX[1]-M). M обозначает модуль вектора смещения.[00456] When the motion vector of the reference motion vector prediction candidate is (MvpLX[0], MvpLX[1]), the motion vector of the refined motion vector prediction candidate can be obtained by adding an offset to at least one of the x component and the y component of the motion vector candidate for predicting or subtracting support vector motion. For example, the motion vector of the refined motion vector prediction candidate can be set as (MvpLX[0]+M, MvpLX[1]), (MvpLX[0]-M, MvpLX[1]), (MvpLX[0], MvpLX[1 ]+M) or (MvpLX[0], MvpLX[1]-M). M denotes the magnitude of the displacement vector.
[00457] Модуль M вектора смещения может быть предварительно задан в кодере и декодере. Например, модуль M вектора смещения может быть установлен равным целому числу, которое меньше или равняется 4, например, 1 или 4.[00457] The magnitude M of the offset vector may be preset in the encoder and decoder. For example, the magnitude M of the bias vector can be set to an integer that is less than or equal to 4, such as 1 or 4.
[00458] Альтернативно информация для определения вектора смещения может быть передана посредством битового потока. Информация может быть передана на уровне последовательности, изображения, слайса или блока. Например, вектор смещения может быть определен с использованием по меньшей мере одного из информации distance_idx для определения модуля вектора смещения и информации direction_idx для определения направления вектора смещения, как описано выше.[00458] Alternatively, information for determining the offset vector may be transmitted via a bitstream. Information can be transferred at the sequence, image, slice or block level. For example, the displacement vector may be determined using at least one of distance_idx information for determining the magnitude of the displacement vector and direction_idx information for determining the direction of the displacement vector, as described above.
[00459] Кандидат предсказания опорного вектора движения может представлять собой кандидата предсказания вектора движения, имеющего предварительно заданное значение индекса, в списке кандидатов предсказания вектора движения. Например, из кандидатов предсказания вектора движения, включенных в список кандидатов предсказания вектора движения, кандидат предсказания вектора движения, имеющий значение индекса, равное 0, или кандидат предсказания вектора движения, имеющий значение индекса, равное 1, может быть установлен как кандидат предсказания опорного вектора движения.[00459] The reference motion vector prediction candidate may be a motion vector prediction candidate having a predetermined index value in the motion vector prediction candidate list. For example, from the motion vector prediction candidates included in the motion vector prediction candidate list, the motion vector prediction candidate having an index value of 0 or the motion vector prediction candidate having an index value of 1 may be set as the reference motion vector prediction candidate .
[00460] В качестве другого примера, вектор смещения может быть определен с использованием списка смещения с уточнением слияния, содержащего по меньшей мере одного кандидата смещения вектора предсказания. Когда кандидат предсказания вектора движения, указанный с помощью информации об индексах текущего блока, представляет собой кандидата предсказания опорного вектора движения, вектор смещения может быть определен с использованием списка смещения с уточнением вектора предсказания. Кроме того, вектор предсказания движения текущего блока может быть получен путем добавления вектора смещения к вектору движения кандидата предсказания вектора движения или вычитания из него. Кандидат предсказания опорного вектора движения может представлять собой кандидата предсказания вектора движения, имеющего предварительно заданное значение индекса, в списке кандидатов предсказания вектора движения. Например, из кандидатов предсказания вектора движения, включенных в список кандидатов предсказания вектора движения, кандидат предсказания вектора движения, имеющий наименьшее значение индекса, или кандидат предсказания вектора движения, имеющий наибольшее значение индекса, может быть установлен как кандидат предсказания опорного вектора движения.[00460] As another example, an offset vector may be determined using a merge refinement offset list containing at least one prediction vector offset candidate. When the motion vector prediction candidate indicated by the current block index information is a reference motion vector prediction candidate, the offset vector can be determined using the prediction vector refinement offset list. In addition, the motion prediction vector of the current block can be obtained by adding or subtracting an offset vector to or subtracting the motion vector prediction candidate motion vector. The reference motion vector prediction candidate may be a motion vector prediction candidate having a predetermined index value in the motion vector prediction candidate list. For example, among the motion vector prediction candidates included in the motion vector prediction candidate list, the motion vector prediction candidate having the smallest index value or the motion vector prediction candidate having the largest index value may be set as the reference motion vector prediction candidate.
[00461] Когда вектор смещения вычисляют с использованием списка уточнения смещения вектора предсказания, максимальное количество векторов-кандидатов предсказания, которое может содержать список векторов-кандидатов предсказания, может быть установлено равным значению, которое больше чем 2.[00461] When an offset vector is calculated using a prediction vector offset refinement list, the maximum number of candidate prediction vectors that can contain the candidate prediction vector list can be set to a value that is greater than 2.
[00462] На фиг. 38 представлен вид, показывающий конфигурацию списка смещения с уточнением вектора предсказания.[00462] In FIG. 38 is a view showing a configuration of an offset list with prediction vector refinement.
[00463] Как показано на фиг. 38, предполагается, что опорный вектор-кандидат предсказания представляет собой вектор-кандидат предсказания, имеющий индекс, равный 2.[00463] As shown in FIG. 38, it is assumed that the prediction candidate reference vector is a prediction candidate vector having an index of 2.
[00464] Когда индекс вектора-кандидата предсказания, указанный с помощью информации об индексах AMVPcand_idx, указывающей любого из векторов-кандидатов предсказания, не равняется 2, вектор движения вектора-кандидата предсказания может быть установлен как вектор предсказания движения текущего блока.[00464] When the index of the prediction candidate vector indicated by the index information AMVPcand_idx indicating any of the prediction candidate vectors is not 2, the motion vector of the prediction candidate vector can be set as the motion prediction vector of the current block.
[00465] С другой стороны, когда индекс вектора-кандидата предсказания, указанный с помощью информации об индексах AMVPcand_idx, равняется 2, вектор смещения может быть получен с использованием списка смещения с уточнением вектора предсказания. Информация об индексах AMVPOffset_idx, указывающая любого из кандидатов смещения вектора предсказания, включенных в список смещения с уточнением вектора предсказания, может быть передана посредством битового потока.[00465] On the other hand, when the index of the candidate prediction vector specified by the index information AMVPcand_idx is 2, the offset vector can be obtained using the offset list with prediction vector refinement. Index information AMVPOffset_idx indicating any of the prediction vector offset candidates included in the prediction vector refinement offset list may be transmitted via a bit stream.
[00466] Когда указывают вектор смещения, вектор предсказания движения текущего блока может быть получен путем добавления вектора смещения к вектору движения опорного вектора-кандидата предсказания или вычитания из него.[00466] When an offset vector is specified, the motion prediction vector of the current block can be obtained by adding the offset vector to or subtracting from the motion vector of the candidate reference prediction vector.
[00467] Даже когда блок кодирования кодируют на основании модели аффинного движения, может использоваться метод уточнения вектора движения. Например, когда применяют режим усовершенствованного предсказания аффинного вектора движения, аффинные исходные векторы блока кодирования могут быть получены путем добавления аффинного исходного вектора разницы к аффинному исходному вектору предсказания. Здесь аффинный исходный вектор предсказания может быть получен на основании аффинного исходного вектора соседнего в пространственном отношении блока или соседнего во временном отношении блока блока кодирования. Аффинный исходный вектор разницы может быть определен на основании информации, переданной из битового потока. В этом случае тот же аффинный исходный вектор разницы может быть применен ко всем контрольным точкам. Альтернативно информация для определения аффинного исходного вектора может быть передана для каждой контрольной точки.[00467] Even when a coding block is encoded based on an affine motion model, a motion vector refinement method can be used. For example, when the advanced affine motion vector prediction mode is applied, the affine source vectors of the encoding block can be obtained by adding the difference affine source vector to the affine prediction source vector. Here, the affine source vector of the prediction can be obtained based on the affine source vector of the spatially adjacent block or the temporally adjacent block of the encoding block. The affine source difference vector can be determined based on the information transmitted from the bit stream. In this case, the same affine source difference vector can be applied to all control points. Alternatively, information to determine the affine source vector may be transmitted for each reference point.
[00468] Когда аффинный вектор для подблока получают на основании аффинных исходных векторов блока кодирования, аффинный вектор может быть установлен как начальный вектор движения, а затем может быть получен вектор смещения. Вектор движения каждого подблока может быть получен путем добавления вектора смещения к начальному вектору движения или вычитания из него.[00468] When an affine vector for a sub-block is obtained based on the affine source vectors of the encoding block, the affine vector can be set as an initial motion vector, and then a displacement vector can be obtained. The motion vector of each sub-block can be obtained by adding or subtracting the displacement vector to the initial motion vector.
[00469] Вместо передачи информации для определения вектора смещения, декодер может получать вектор смещения. Конкретно, вектор смещения может быть получен с использованием среднего значения для градиентов горизонтального направления и среднего значения для градиентов вертикального направления отсчетов предсказания, включенных в подблок.[00469] Instead of transmitting information to determine the offset vector, the decoder may receive the offset vector. Specifically, the displacement vector can be obtained using the average of the horizontal direction gradients and the average of the vertical direction gradients of the prediction samples included in the subblock.
[00470] Внутреннее предсказание предназначено для предсказания текущего блока с использованием восстановленных отсчетов, которые были кодированы/декодированы поблизости от текущего блока. В этом случае отсчеты, восстановленные до применения фильтра в контуре, могут использоваться для внутреннего предсказания текущего блока.[00470] Intra prediction is designed to predict the current block using reconstructed samples that were encoded/decoded in the vicinity of the current block. In this case, the samples reconstructed before applying the filter in the loop can be used for intra-prediction of the current block.
[00471] Метод внутреннего предсказания включает внутреннее предсказание на основе матрицы и общее внутреннее предсказание, учитывающее направленность относительно соседних восстановленных отсчетов. Информация, указывающая метод внутреннего предсказания текущего блока, может передаваться посредством битового потока. Информация может представлять собой 1-битный флаг. Альтернативно метод внутреннего предсказания текущего блока может быть определен на основании по меньшей мере одного из местоположения, размера и формы текущего блока или на основании метода внутреннего предсказания соседнего блока. Например, когда текущий блок находится на границе изображения, может быть установлено, что нет необходимости применять внутреннее предсказание на основе матрицы к текущему блоку.[00471] The intra prediction method includes matrix-based intra prediction and general intra prediction taking into account directionality relative to neighboring reconstructed samples. Information indicating the intra prediction method of the current block may be transmitted via a bitstream. The information may be a 1-bit flag. Alternatively, the intra prediction method of the current block may be determined based on at least one of the location, size and shape of the current block or based on the intra prediction method of the neighboring block. For example, when the current block is on an image boundary, it may be determined that there is no need to apply matrix-based intra prediction to the current block.
[00472] Внутреннее предсказание, представляющее собой внутреннее предсказание на основе матрицы, представляет собой способ получения блока предсказания текущего блока кодером и декодером на основании матричного произведения между ранее сохраненной матрицей и восстановленными отсчетами поблизости от текущего блока. Информация для указания любой из множества ранее сохраненных матриц может передаваться посредством битового потока. Декодер может определять матрицу для внутреннего предсказания текущего блока на основании информации и размера текущего блока.[00472] Intra prediction, which is matrix-based intra prediction, is a method of obtaining a block prediction of a current block by an encoder and decoder based on a matrix product between a previously stored matrix and reconstructed samples in the vicinity of the current block. Information to indicate any of a plurality of previously stored matrices may be transmitted via a bit stream. The decoder may determine a matrix for intra prediction of the current block based on the information and size of the current block.
[00473] Общее внутреннее предсказание представляет собой способ получения блока предсказания для текущего блока на основании режима внутреннего предсказания, не основанного на информации об углах, или режима внутреннего предсказания, основанного на информации об углах.[00473] General intra prediction is a method of obtaining a prediction block for a current block based on an intra prediction mode not based on angle information or an intra prediction mode based on angle information.
[00474] Полученное остаточное изображение может быть получено путем вычитания видео предсказания из первоначального видео. В этом случае, когда остаточное видео изменяется на частотную область, субъективное качество видео существенно не снижается, хотя высокочастотные компоненты удалены из частотных компонентов. Соответственно, когда значения высокочастотных компонентов конвертируются в небольшие или значения высокочастотных компонентов установлены равными 0, имеет место эффект увеличения эффективности сжатия без генерирования существенного визуального искажения. Отражая эту характеристику, текущий блок может быть преобразован для разложения остаточного видео на двумерные частотные компоненты. Преобразование может быть выполнено с использованием метода преобразования, такого как дискретное косинусное преобразование (DCT) или дискретное синусное преобразование (DST).[00474] The resulting residual image can be obtained by subtracting the prediction video from the original video. In this case, when the residual video is changed to the frequency domain, the subjective quality of the video is not significantly reduced although the high-frequency components are removed from the frequency components. Accordingly, when the high-frequency component values are converted to small values or the high-frequency component values are set to 0, the effect of increasing compression efficiency occurs without generating significant visual distortion. Reflecting this characteristic, the current block can be transformed to decompose the residual video into two-dimensional frequency components. The conversion can be done using a transform method such as discrete cosine transform (DCT) or discrete sine transform (DST).
[00475] После преобразования текущего блока с использованием DCT или DST преобразованный текущий блок может быть преобразован повторно. В этом случае преобразование на основании DCT или DST может быть определено как первое преобразование, а повторное преобразование блока, к которому применено первое преобразование, может быть определено как второе преобразование.[00475] After converting the current block using DCT or DST, the converted current block can be re-converted. In this case, the transformation based on the DCT or DST can be defined as the first transform, and the retransformation of the block to which the first transform is applied can be defined as the second transform.
[00476] Первое преобразование может быть выполнено с использованием любой из множества основ-кандидатов преобразования. Например, первое преобразование может быть выполнено с использованием любого из DCT2, DCT8 или DCT7.[00476] The first transformation may be performed using any of a variety of candidate transformation bases. For example, the first conversion may be performed using any of DCT2, DCT8 or DCT7.
[00477] Для горизонтального направления и вертикального направления могут использоваться разные основы преобразования. Информация, указывающая комбинацию основы преобразования в горизонтальном направлении и основы преобразования в вертикальном направлении, может быть передана посредством битового потока.[00477] Different transformation bases may be used for the horizontal direction and the vertical direction. Information indicating a combination of a translation base in the horizontal direction and a transformation basis in the vertical direction may be transmitted by a bit stream.
[00478] Элементы для выполнения первого преобразования и второго преобразования могут быть разными. Например, первое преобразование может быть выполнено в отношении блока 8×8, а второе преобразование может быть выполнено в отношении подблока размером 4×4 из преобразованного блока 8×8. В этом случае коэффициенты преобразования остаточных участков, в отношении которых не было выполнено второе преобразование, могут быть установлены равными 0.[00478] The elements for performing the first transformation and the second transformation may be different. For example, the first transformation may be performed on an 8x8 block, and the second transformation may be performed on a 4x4 subblock of the transformed 8x8 block. In this case, the transformation coefficients of the residual areas for which the second transformation has not been performed can be set to 0.
[00479] Альтернативно первое преобразование может быть выполнено в отношении блока 4×4, а второе преобразование может быть выполнено в отношении участка размером 8×8, содержащего преобразованный блок 4×4.[00479] Alternatively, the first transform may be performed on the 4x4 block and the second transform may be performed on the 8x8 portion containing the transformed 4x4 block.
[00480] Информация, указывающая, было ли выполнено второе преобразование, может быть передана посредством битового потока.[00480] Information indicating whether the second conversion has been performed may be transmitted via a bit stream.
[00481] Декодер может выполнять обратное преобразование второго преобразования (второе обратное преобразование) и может выполнять обратное преобразование первого преобразования (первое обратное преобразование) в отношении результата обратного преобразования. В результате выполнения второго обратного преобразования и первого обратного преобразования могут быть получены остаточные сигналы для текущего блока.[00481] The decoder may inverse the second transform (second inverse transform) and may inverse the first transform (first inverse transform) with respect to the result of the inverse transform. By performing the second deconversion and the first deconversion, residual signals for the current block can be obtained.
[00482] Квантование предназначено для уменьшения энергии блока, и процесс квантования включает процесс разделения коэффициента преобразования на конкретное постоянное значение. Постоянное значение может быть получено с помощью параметра квантования, и параметр квантования может быть определен как значение от 1 до 63.[00482] Quantization is designed to reduce the energy of a block, and the quantization process involves the process of dividing the conversion coefficient into a specific constant value. A constant value can be obtained using a quantization parameter, and the quantization parameter can be defined as a value from 1 to 63.
[00483] Когда кодер выполняет преобразование и квантование, декодер может получать остаточный блок путем обратного квантования и обратного преобразования. Декодер может получать восстановленный блок для текущего блока путем сложения блока предсказания и остаточного блока.[00483] When the encoder performs the transform and quantization, the decoder can obtain the residual block by inverse quantization and inverse transform. The decoder can obtain a reconstructed block for the current block by adding the prediction block and the residual block.
[00484] Когда получают восстановленный блок текущего блока, потеря информации, происходящая в процессе квантования и кодирования, может быть уменьшена посредством фильтрования в контуре. Фильтр в контуре может включать по меньшей мере один из деблочного фильтра, фильтра адаптивного смещения отсчета (SAO) и адаптивного контурного фильтра (ALF).[00484] When the reconstructed block of the current block is obtained, the information loss occurring in the quantization and encoding process can be reduced by in-loop filtering. The filter in the loop may include at least one of a deblocking filter, an adaptive sample offset filter (SAO), and an adaptive loop filter (ALF).
[00485] Применение вариантов осуществления, описанных выше, сфокусированных на процессе декодирования или процессе кодирования, к процессу кодирования или процессу декодирования включено в объем настоящего изобретения. Изменение вариантов осуществления, описанных в предварительно определенном порядке, в порядке, отличающемся от описанного порядка, также включено в объем настоящего изобретения.[00485] The application of the embodiments described above, focused on a decoding process or an encoding process, to an encoding process or a decoding process is included within the scope of the present invention. Changing the embodiments described in a predetermined order in an order different from the described order is also included within the scope of the present invention.
[00486] Хотя приведенные выше варианты осуществления были описаны на основании ряда этапов или блок-схем, это не ограничивает порядок выполнения во времени настоящего изобретения, и они могут быть выполнены одновременно или в другом порядке при необходимости. Кроме того, каждый из компонентов (например, элементы, модули и т.д.), составляющих структурную схему в вариантах осуществления, описанных выше, может быть реализован в виде аппаратного устройства или программного обеспечения, или множество компонентов могут быть скомбинированы для реализации в виде одного аппаратного устройства или программного обеспечения. Варианты осуществления, описанные выше, могут быть реализованы в форме программных команд, которые могут быть исполнены посредством различных компьютерных компонентов и записаны в машиночитаемом носителе данных. Машиночитаемый носитель данных может содержать программные команды, файлы данных, структуры данных и т.п. независимо или в комбинации. Машиночитаемый носитель данных включает, например, магнитные носители, такие как жесткий диск, гибкий диск и магнитную ленту, оптические носители данных, такие как CD-ROM и DVD, магнитно-оптические носители, такие как гибкий оптический диск, и аппаратные устройства, специально выполненные с возможностью хранения и исполнения программных команд, такие как ROM, RAM, флеш-память и т.п. Аппаратные устройства, описанные выше, могут быть выполнены с возможностью работы с использованием одного или более программных модулей для выполнения процесса согласно настоящему изобретению, и наоборот.[00486] Although the above embodiments have been described based on a number of steps or flowcharts, this does not limit the timing of the present invention, and they can be performed simultaneously or in a different order as necessary. In addition, each of the components (eg, elements, modules, etc.) constituting the block diagram in the embodiments described above may be implemented as a hardware device or software, or a plurality of components may be combined to be implemented as one hardware device or software. The embodiments described above may be implemented in the form of program instructions that can be executed by various computer components and recorded in a computer-readable storage medium. The computer-readable storage medium may contain program instructions, data files, data structures, and the like. independently or in combination. Computer readable storage media includes, for example, magnetic media such as hard disk, floppy disk and magnetic tape, optical storage media such as CD-ROM and DVD, magnetic-optical media such as floppy optical disk, and hardware devices specially designed with the ability to store and execute software commands, such as ROM, RAM, flash memory, etc. The hardware devices described above may be configured to operate using one or more software modules to perform a process according to the present invention, and vice versa.
[00487] Настоящее изобретение может быть применено к электронному устройству, которое кодирует и декодирует видео.[00487] The present invention can be applied to an electronic device that encodes and decodes video.
Claims (38)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0136262 | 2018-11-08 | ||
KR10-2018-0167979 | 2018-12-21 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2021116390A Division RU2802731C2 (en) | 2018-11-08 | 2019-11-08 | Method and device for encoding and decoding video signals |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2023121992A RU2023121992A (en) | 2023-09-01 |
RU2809582C2 true RU2809582C2 (en) | 2023-12-14 |
Family
ID=
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2589347C2 (en) * | 2011-07-28 | 2016-07-10 | Квэлкомм Инкорпорейтед | Multiview video coding |
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2589347C2 (en) * | 2011-07-28 | 2016-07-10 | Квэлкомм Инкорпорейтед | Multiview video coding |
Non-Patent Citations (2)
Title |
---|
XU CHEN et al., "CE4: Enhanced Merge Mode (Test 4.2.15)", Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 11th Meeting: Ljubljana, JVET-K0198, опубл. 10.07.2018 на 9 страницах, http://phenix.it-sudparis.eu/jvet/doc_end_user/current_document.php?id=3707. OUDIN S et al., "Block merging for quadtree-based video coding", Multimedia and Expo (ICME), 2011 IEEE International Conference on, IEEE - * |
на 6 страницах. GUICHUN LI et al., "CE4-related: affine merge mode with prediction offsets", JVET meeting; Macao; (the Joint Video Exploration Team of ISO/IEC JTC1/SC29/WG11 and ITU-T SG.16), опубл. 07.10.2018 на 5 страницах. * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2766152C1 (en) | Method and device for encoding/decoding an image signal | |
US11889077B2 (en) | Method for encoding/decoding image signal and device therefor | |
JP7460616B2 (en) | VIDEO ENCODING/DECORDING METHOD, VIDEO ENCODER, VIDEO DECODER, VIDEO ENCODING APPARATUS, VIDEO DECODING APPARATUS, AND COMPUTER-READABLE STORAGE MEDIUM | |
JP2024020503A (en) | Method for coding or decoding video signal and apparatus used for the same | |
JP7305879B2 (en) | Video signal encoding/decoding method and apparatus | |
JP2022501897A (en) | Video signal coding / decoding method and its device | |
RU2809582C2 (en) | Method and device for encoding and decoding video signals | |
RU2810054C2 (en) | Method and device for encoding and decoding video signals | |
RU2802731C2 (en) | Method and device for encoding and decoding video signals | |
RU2809324C2 (en) | Method and device for encoding and decoding video signals | |
RU2813667C2 (en) | Method and device for encoding and decoding video signals | |
RU2819286C2 (en) | Method and device for encoding/decoding image signals | |
RU2819393C2 (en) | Method and device for encoding/decoding image signals | |
RU2806152C2 (en) | Method and device for encoding/decoding image signals | |
RU2819080C2 (en) | Method and device for encoding/decoding image signals | |
RU2808720C2 (en) | Method and device for coding/decoding image signals | |
RU2799079C2 (en) | Method and device for coding/decoding image signals | |
RU2812857C2 (en) | Method and device for encoding/decoding image signals | |
RU2799588C2 (en) | Method and device for coding/decoding image signals |