RU2817331C2 - Method and device for encoding/decoding image signal - Google Patents
Method and device for encoding/decoding image signal Download PDFInfo
- Publication number
- RU2817331C2 RU2817331C2 RU2023125358A RU2023125358A RU2817331C2 RU 2817331 C2 RU2817331 C2 RU 2817331C2 RU 2023125358 A RU2023125358 A RU 2023125358A RU 2023125358 A RU2023125358 A RU 2023125358A RU 2817331 C2 RU2817331 C2 RU 2817331C2
- Authority
- RU
- Russia
- Prior art keywords
- prediction
- block
- affine
- sample
- index
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 115
- 230000033001 locomotion Effects 0.000 claims abstract description 484
- 238000005070 sampling Methods 0.000 claims abstract description 5
- 230000004927 fusion Effects 0.000 claims description 196
- 238000005192 partition Methods 0.000 claims description 59
- 238000012545 processing Methods 0.000 abstract description 15
- 230000000694 effects Effects 0.000 abstract description 3
- 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 560
- 239000013598 vector Substances 0.000 description 539
- 239000000523 sample Substances 0.000 description 291
- 239000013074 reference sample Substances 0.000 description 174
- 238000010586 diagram Methods 0.000 description 70
- 238000006243 chemical reaction Methods 0.000 description 31
- 230000009466 transformation Effects 0.000 description 27
- 238000000638 solvent extraction Methods 0.000 description 24
- 238000001914 filtration Methods 0.000 description 16
- 238000013139 quantization Methods 0.000 description 15
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 12
- 230000002457 bidirectional effect Effects 0.000 description 9
- 230000002123 temporal effect Effects 0.000 description 8
- 230000007774 longterm Effects 0.000 description 7
- 230000003044 adaptive effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 101150052795 cbh-1 gene Proteins 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 238000012935 Averaging Methods 0.000 description 4
- 229910003460 diamond Inorganic materials 0.000 description 4
- 239000010432 diamond Substances 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000007670 refining Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 206010047571 Visual impairment Diseases 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000011426 transformation method Methods 0.000 description 3
- 241000023320 Luma <angiosperm> Species 0.000 description 2
- 238000004873 anchoring Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 239000005441 aurora Substances 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 229940050561 matrix product Drugs 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000000926 separation method 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 or decoding video signals.
Предпосылки изобретенияBACKGROUND OF THE INVENTION
[0002] В связи с тенденцией к увеличению размеров дисплейных панелей растет спрос на видеоуслуги высокой четкости. Самая большая проблема видеоуслуг высокой четкости заключается в том, что объем данных значительно увеличивается, и для решения этой проблемы активно проводились исследования по улучшению степени сжатия видео. В качестве репрезентативного примера в 2009 году была создана Совместная группа по кодированию видео (JCT-VC) в Группе экспертов по кодированию видео (VCEG) в рамках Сектора стандартизации электросвязи Международного союза электросвязи (ITU-T) и Группы экспертов по движущимся изображениям (MPEG). JCT-VC предложила высокоэффективное кодирование видео (HEVC), которое представляет собой стандарт сжатия видео, эффективность сжатия которого примерно в два раза выше, чем у H.264/AVC, и он одобрен в качестве стандарта 25 января 2013 года. С быстрым развитием видеоуслуг высокой четкости производительность HEVC постепенно обнаруживает свои ограничения.[0002] With the trend toward larger display panels, demand for high-definition video services is increasing. The biggest problem of high-definition video services is that the data volume increases significantly, and to solve this problem, research has been actively carried out to improve the video compression ratio. As a representative example, the Joint Video Coding Group (JCT-VC) within the Video Coding Experts Group (VCEG) within the Telecommunication Standardization Sector of the International Telecommunication Union (ITU-T) and the Moving Picture Experts Group (MPEG) was established in 2009. . JCT-VC proposed High Efficiency Video Coding (HEVC), which is a video compression standard whose compression efficiency is approximately twice that of H.264/AVC, and was approved as a standard on January 25, 2013. With the rapid development of high-definition video services, HEVC performance is gradually revealing its limitations.
СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION
Техническая задачаTechnical problem
[0003] Настоящее изобретение направлено на предоставление способа разделения блока кодирования на множество блоков предсказания при кодировании или декодировании видеосигналов и устройства для выполнения способа.[0003] The present invention is directed to providing a method for dividing a coding block into a plurality of prediction blocks when encoding or decoding video signals, and an apparatus for performing the method.
[0004] Настоящее изобретение направлено на предоставление способа получения информации о движении для каждого из множества блоков предсказания при кодировании или декодировании видеосигналов и устройства для выполнения способа.[0004] The present invention is directed to providing a method for obtaining motion information for each of a plurality of prediction blocks when encoding or decoding video signals and an apparatus for performing the method.
[0005] Настоящее изобретение направлено на предоставление способа получения кандидата на слияние с использованием таблицы информации о движении между участками при кодировании или декодировании видеосигналов и устройства для выполнения способа.[0005] The present invention is directed to providing a method for obtaining a merge candidate using a table of inter-section motion information when encoding or decoding video signals and an apparatus for executing the method.
[0006] Технические задачи, которые должны быть решены с помощью настоящего изобретения, не ограничиваются указанными выше задачами, и другие технические задачи, которые не описаны в данном документе, должны быть ясно поняты специалистами в данной области техники из следующего описания.[0006] The technical problems to be solved by the present invention are not limited to the above problems, and other technical problems that are not described herein will be clearly understood by those skilled in the art from the following description.
Техническое решениеTechnical solution
[0007] Способ декодирования или кодирования видеосигнала согласно настоящему изобретению включает определение того, следует ли разбивать блок кодирования на первый элемент предсказания и второй элемент предсказания, определение типа раздела блока кодирования, когда определяют то, что следует разбить блок кодирования, определение индекса второго кандидата на слияние на основании сравнения между значением второй информации об индексах и значением первой информации об индексах, получение первой информации о движении в отношении первого элемента предсказания в блоке кодирования и второй информации о движении в отношении второго элемента предсказания в блоке кодирования и выборку отсчета предсказания в блоке кодирования на основании первой информации о движении и второй информации о движении. В этом случае первая информация о движении в отношении первого элемента предсказания может быть получена от первого кандидата на слияние, указанного с помощью первой информации об индексах, из множества кандидатов на слияние, включенных в список кандидатов на слияние, и вторая информация о движении в отношении второго элемента предсказания может быть получена от второго кандидата на слияние, указанного с помощью второй информации об индексах, из множества кандидатов на слияние, включенных в список кандидатов на слияние.[0007] A method for decoding or encoding a video signal according to the present invention includes determining whether an encoding block should be divided into a first prediction element and a second prediction element, determining a partition type of the encoding block when determining that the encoding block should be divided, determining an index of a second candidate merging based on the comparison between the value of the second index information and the value of the first index information, obtaining first motion information with respect to the first prediction element in the encoding block and second motion information with respect to the second prediction element in the encoding block, and sampling the prediction sample in the encoding block based on the first motion information and the second motion information. In this case, the first motion information with respect to the first prediction element may be obtained from the first merger candidate indicated by the first index information from the plurality of merger candidates included in the merger candidate list, and the second motion information with respect to the second the prediction element may be obtained from a second merge candidate indicated by the second index information from the plurality of merge candidates included in the merge candidate list.
[0008] Когда значение второй информации об индексах больше, чем значение первой информации об индексах, или равняется ему, индекс второго кандидата на слияние равняется значению второй информации об индексах плюс единица.[0008] When the value of the second index information is greater than or equal to the value of the first index information, the index of the second merge candidate is equal to the value of the second index information plus one.
[0009] Когда значение второй информации об индексах меньше, чем значение первой информации об индексах, индекс второго кандидата на слияние равняется значению второй информации об индексах.[0009] When the value of the second index information is less than the value of the first index information, the index of the second merge candidate is equal to the value of the second index information.
[0010] Когда отсчет предсказания включен в граничный участок между первым элементом предсказания и вторым элементом предсказания, отсчет предсказания может быть получен на основании операции взвешенной суммы первого отсчета предсказания, полученного на основании первой информации о движении, и второго отсчета предсказания, полученного на основании второй информации о движении.[0010] When a prediction sample is included in the boundary portion between the first prediction element and the second prediction element, the prediction sample may be obtained based on a weighted sum operation of the first prediction sample obtained based on the first motion information and the second prediction sample obtained based on the second traffic information.
[0011] Первый весовой коэффициент, применяемый к первому отсчету предсказания, может быть определен на основании координаты x и координаты y отсчета предсказания.[0011] The first weight applied to the first prediction sample may be determined based on the x coordinate and y coordinate of the prediction sample.
[0012] Второй весовой коэффициент, применяемый ко второму отсчету предсказания, может быть получен путем вычитания первого весового коэффициента из постоянного значения.[0012] A second weight applied to the second prediction sample may be obtained by subtracting the first weight from a constant value.
[0013] Размер граничного участка может быть определен на основании по меньшей мере одного из размера блока кодирования или формы блока кодирования.[0013] The size of the boundary portion may be determined based on at least one of a coding block size or a coding block shape.
[0014] Признаки, кратко изложенные выше в отношении настоящего изобретения, являются просто иллюстративными аспектами подробного описания настоящего изобретения, описанного ниже, и не ограничивают объем настоящего изобретения.[0014] The features summarized above with respect to the present invention are merely illustrative aspects of the detailed description of the present invention described below and do not limit the scope of the present invention.
Положительные эффектыPositive effects
[0015] Согласно настоящему изобретению путем разделения блока кодирования на множество блоков предсказания и получения информации о движении для каждого из блоков предсказания можно улучшить эффективность предсказания, осуществляемого между изображениями.[0015] According to the present invention, by dividing a coding block into a plurality of prediction blocks and obtaining motion information for each of the prediction blocks, the performance of inter-picture prediction can be improved.
[0016] Согласно настоящему изобретению путем предоставления способа получения кандидата на слияние с использованием таблицы информации о движении между участками можно улучшить эффективность предсказания, осуществляемого между изображениями.[0016] According to the present invention, by providing a method for obtaining a fusion candidate using an inter-section motion information table, the performance of prediction performed between images can be improved.
[0017] Положительные эффекты настоящего изобретения не ограничиваются указанными выше эффектами, и другие положительные эффекты, которые не описаны в данном документе, должны быть ясно поняты специалистами в данной области техники из следующего описания.[0017] The beneficial effects of the present invention are not limited to the above effects, and other beneficial effects that are not described herein will be clearly understood by those skilled in the art from the following description.
КРАТКОЕ ОПИСАНИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВBRIEF DESCRIPTION OF GRAPHIC MATERIALS
[0018] На фиг. 1 представлена структурная схема кодера согласно варианту осуществления настоящего изобретения.[0018] In FIG. 1 is a block diagram of an encoder according to an embodiment of the present invention.
[0019] На фиг. 2 представлена структурная схема декодера согласно варианту осуществления настоящего изобретения.[0019] In FIG. 2 is a block diagram of a decoder according to an embodiment of the present invention.
[0020] На фиг. 3 представлено схематическое изображение, показывающее базовый элемент кодового дерева согласно варианту осуществления настоящего изобретения.[0020] In FIG. 3 is a schematic diagram showing a basic element of a code tree according to an embodiment of the present invention.
[0021] На фиг. 4 представлено схематическое изображение, показывающее различные типы раздела блока кодирования.[0021] In FIG. 4 is a schematic diagram showing various types of encoding block section.
[0022] На фиг. 5 представлено схематическое изображение, иллюстрирующее аспект раздела элемента кодового дерева.[0022] In FIG. 5 is a schematic diagram illustrating an aspect of a code tree element section.
[0023] На фиг. 6 представлена блок-схема способа предсказания, осуществляемого между изображениями, согласно варианту осуществления настоящего изобретения.[0023] In FIG. 6 is a flowchart of an inter-image prediction method according to an embodiment of the present invention.
[0024] На фиг. 7 представлено схематическое изображение, иллюстрирующее нелинейное движение объекта.[0024] In FIG. 7 is a schematic diagram illustrating the nonlinear motion of an object.
[0025] На фиг. 8 представлена блок-схема способа предсказания, осуществляемого между изображениями, на основании аффинного движения согласно варианту осуществления настоящего изобретения.[0025] In FIG. 8 is a flowchart of an inter-image prediction method based on affine motion according to an embodiment of the present invention.
[0026] На фиг. 9 представлено схематическое изображение, иллюстрирующее аффинный исходный вектор для каждой модели аффинного движения.[0026] In FIG. 9 is a schematic diagram illustrating the affine source vector for each affine motion model.
[0027] На фиг. 10 представлено схематическое изображение, иллюстрирующее аффинные векторы подблоков при 4-параметрической модели движения.[0027] In FIG. 10 is a schematic diagram illustrating the affine vectors of subblocks under a 4-parameter motion model.
[0028] На фиг. 11 представлено схематическое изображение, показывающее соседние блоки, которые могут использоваться для получения кандидата на слияние.[0028] In FIG. 11 is a schematic diagram showing neighboring blocks that can be used to obtain a merge candidate.
[0029] На фиг. 12 представлено схематическое изображение, показывающее пример получения аффинного исходного вектора текущего блока на основании аффинного исходного вектора аффинного соседнего блока.[0029] In FIG. 12 is a schematic diagram showing an example of obtaining an affine source vector of a current block based on an affine source vector of an affine neighboring block.
[0030] На фиг. 13 представлено схематическое изображение, показывающее пример установки вектора движения подблока в качестве аффинного исходного вектора аффинного соседнего блока.[0030] In FIG. 13 is a schematic diagram showing an example of setting a motion vector of a sub-block as an affine source vector of an affine neighboring block.
[0031] На фиг. 14-16 представлены схематические изображения, показывающие местоположение опорного отсчета.[0031] In FIG. 14-16 are schematic diagrams showing the location of the reference count.
[0032] На фиг. 17 представлено схематическое изображение, показывающее пример, в котором применяется способ получения модифицированного аффинного вектора слияния.[0032] In FIG. 17 is a schematic diagram showing an example in which a method for obtaining a modified affine fusion vector is applied.
[0033] На фиг. 18 представлено схематическое изображение, показывающее пример получения аффинного исходного вектора аффинного кандидата на слияние на основании векторов движения подблоков, принадлежащих к соседнему блоку.[0033] In FIG. 18 is a schematic diagram showing an example of obtaining an affine source vector of an affine merge candidate based on the motion vectors of subblocks belonging to a neighboring block.
[0034] На фиг. 19 представлено схематическое изображение, показывающее пример получения аффинных исходных векторов аффинного кандидата на слияние на основании векторов движения подблоков, расположенных слева от текущего блока.[0034] In FIG. 19 is a schematic diagram showing an example of obtaining affine seed vectors of an affine merge candidate based on the motion vectors of sub-blocks located to the left of the current block.
[0035] На фиг. 20 представлено схематическое изображение, показывающее пример получения аффинных исходных векторов аффинного кандидата на слияние на основании информации о движении соседнего блока или несоседнего блока, расположенного слева от текущего блока.[0035] In FIG. 20 is a schematic diagram showing an example of obtaining affine source vectors of an affine merge candidate based on motion information of an adjacent block or a non-adjacent block located to the left of the current block.
[0036] На фиг. 21 представлено схематическое изображение, показывающее местоположение блока для получения аффинного исходного вектора аффинного кандидата на слияние.[0036] In FIG. 21 is a schematic diagram showing the location of a block for obtaining an affine source vector of an affine merge candidate.
[0037] На фиг. 22 представлено схематическое изображение для описания примера комбинирования векторов движения множества соседних блоков для получения комбинированного кандидата на слияние.[0037] In FIG. 22 is a schematic diagram for describing an example of combining motion vectors of multiple neighboring blocks to obtain a combined fusion candidate.
[0038] На фиг. 23 представлено схематическое изображение, показывающее недоступный соседний блок.[0038] In FIG. 23 is a schematic diagram showing an inaccessible neighbor block.
[0039] На фиг. 24 представлена блок-схема процесса получения информации о движении текущего блока в режиме слияния.[0039] In FIG. 24 is a flowchart of the process of obtaining information about the movement of the current block in the merge mode.
[0040] На фиг. 25 представлено схематическое изображение для описания аспекта обновления таблицы информации о движении между участками.[0040] In FIG. 25 is a schematic diagram for describing an aspect of updating an inter-section traffic information table.
[0041] На фиг. 26 представлено схематическое изображение, показывающее аспект обновления таблицы кандидатов на слияние между участками.[0041] In FIG. 26 is a schematic diagram showing an aspect of updating an inter-site merge candidate table.
[0042] На фиг. 27 представлено схематическое изображение, показывающее пример, в котором обновлен индекс предварительно сохраненного кандидата на слияние между участками.[0042] In FIG. 27 is a schematic diagram showing an example in which the index of a previously stored inter-site merge candidate is updated.
[0043] На фиг. 28 представлено схематическое изображение, показывающее местоположение репрезентативного подблока.[0043] In FIG. 28 is a schematic diagram showing the location of a representative subblock.
[0044] На фиг. 29 показан пример, в котором таблица информации о движении между участками генерируется для каждого режима предсказания, осуществляемого между изображениями.[0044] In FIG. 29 shows an example in which a table of inter-section motion information is generated for each inter-picture prediction mode.
[0045] На фиг. 30 представлено схематическое изображение, показывающее пример, в котором кандидат на слияние между участками, включенный в долговременную таблицу информации о движении, добавлен в список кандидатов на слияние.[0045] In FIG. 30 is a schematic diagram showing an example in which a cross-section merging candidate included in the long-term traffic information table is added to the merging candidate list.
[0046] На фиг. 31 представлено схематическое изображение, показывающее пример, в котором контроль по избыточности выполняется только в отношении некоторых кандидатов на слияние.[0046] In FIG. 31 is a schematic diagram showing an example in which redundancy checking is performed on only some merge candidates.
[0047] На фиг. 32 представлено схематическое изображение, показывающее пример, в котором пропущен контроль по избыточности в отношении конкретного кандидата на слияние.[0047] In FIG. 32 is a schematic diagram showing an example in which redundancy control is omitted with respect to a particular merger candidate.
[0048] На фиг. 33 представлено схематическое изображение, показывающее пример разделения блока кодирования на множество блоков предсказания с использованием диагональной линии.[0048] In FIG. 33 is a schematic diagram showing an example of dividing a coding block into a plurality of prediction blocks using a diagonal line.
[0049] На фиг. 34 представлено схематическое изображение, показывающее пример разделения блока кодирования на два элемента предсказания.[0049] In FIG. 34 is a schematic diagram showing an example of dividing a coding block into two prediction elements.
[0050] На фиг. 35 показаны примеры, в которых блок кодирования разбивается на множество блоков предсказания разных размеров.[0050] In FIG. 35 shows examples in which a coding block is divided into multiple prediction blocks of different sizes.
[0051] На фиг. 36 представлено схематическое изображение, показывающее соседние блоки, используемые для получения треугольного кандидата на слияние.[0051] In FIG. 36 is a schematic diagram showing adjacent blocks used to obtain a triangular merge candidate.
[0052] На фиг. 37 представлено схематическое изображение для описания примера определения доступности соседнего блока для каждого треугольного элемента предсказания.[0052] In FIG. 37 is a schematic diagram for describing an example of determining the availability of a neighboring block for each triangular prediction element.
[0053] На фиг. 38 и 39 представлены схематические изображения, показывающие пример получения отсчета предсказания на основании операции взвешенной суммы первого отсчета предсказания и второго отсчета предсказания.[0053] In FIG. 38 and 39 are schematic diagrams showing an example of obtaining a prediction sample based on a weighted sum operation of the first prediction sample and the second prediction sample.
[0054] На фиг. 40 представлена блок-схема способа внутреннего предсказания согласно варианту осуществления настоящего изобретения.[0054] In FIG. 40 is a flowchart of an intra prediction method according to an embodiment of the present invention.
[0055] На фиг. 41 представлено схематическое изображение, показывающее режимы внутреннего предсказания.[0055] In FIG. 41 is a schematic diagram showing intra prediction modes.
[0056] На фиг. 42 и 43 представлены схематические изображения, показывающие пример одномерного массива, в котором опорные отсчеты расположены в линию.[0056] In FIG. 42 and 43 are schematic diagrams showing an example of a one-dimensional array in which reference samples are arranged in a line.
[0057] На фиг. 44 представлено схематическое изображение, иллюстрирующее углы, образованные между прямой линией, параллельной оси х, и режимами направленного внутреннего предсказания.[0057] In FIG. 44 is a schematic view illustrating the angles formed between a straight line parallel to the x-axis and the directional intra prediction modes.
[0058] На фиг. 45 представлено схематическое изображение, показывающее аспект, в котором отсчет предсказания получается, когда текущий блок имеет неквадратную форму.[0058] In FIG. 45 is a schematic view showing an aspect in which a prediction count is obtained when the current block has a non-square shape.
[0059] На фиг. 46 представлено схематическое изображение, показывающее широкоугольные режимы внутреннего предсказания.[0059] In FIG. 46 is a schematic diagram showing wide-angle intra prediction modes.
[0060] На фиг. 47 представлена блок-схема, показывающая процесс определения качественного показателя блока.[0060] In FIG. 47 is a flowchart showing the process of determining the quality indicator of a block.
[0061] На фиг. 48 показаны предварительно заданные фильтры-кандидаты.[0061] In FIG. 48 shows predefined candidate filters.
ПОДРОБНОЕ ОПИСАНИЕDETAILED DESCRIPTION
[0062] Далее будут подробно описаны варианты осуществления настоящего изобретения со ссылкой на прилагаемые графические материалы.[0062] Embodiments of the present invention will now be described in detail with reference to the accompanying drawings.
[0063] Изображение кодируется и декодируется в элементах блоков. В качестве примера, обработка кодирования и декодирования, такая как преобразование, квантование, предсказание, фильтрование в контуре или восстановление, может выполняться в отношении блока кодирования, блока преобразования или блока предсказания.[0063] The image is encoded and decoded in block elements. As an example, encoding and decoding processing such as transform, quantization, prediction, in-loop filtering, or reconstruction may be performed on an encoding block, a transform block, or a prediction block.
[0064] Далее блок, подлежащий кодированию или декодированию, будет называться «текущим блоком». В качестве примера, текущий блок может указывать блок кодирования, блок преобразования или блок предсказания в зависимости от текущего этапа обработки кодирования или декодирования.[0064] Hereinafter, the block to be encoded or decoded will be referred to as the “current block”. As an example, the current block may indicate an encoding block, a transform block, or a prediction block depending on the current stage of encoding or decoding processing.
[0065] Кроме того, термин «элемент» в контексте данного документа может пониматься как указывающий базовый элемент для выполнения конкретного процесса кодирования и декодирования, а термин «блок» может пониматься как указывающий массив отсчетов предварительно определенного размера. Если не указано иное, термины «блок» и «элемент» могут использоваться взаимозаменяемо. В качестве примера, в следующих вариантах осуществления блок кодирования и элемент кодирования могут пониматься как имеющие эквивалентные значения.[0065] In addition, the term "element" as used herein may be understood to indicate a base element for performing a particular encoding and decoding process, and the term "block" may be understood to indicate an array of samples of a predetermined size. Unless otherwise noted, the terms "block" and "element" may be used interchangeably. As an example, in the following embodiments, a coding block and a coding element may be understood to have equivalent meanings.
[0066] На фиг. 1 представлена структурная схема кодера согласно варианту осуществления настоящего изобретения.[0066] In FIG. 1 is a block diagram of an encoder according to an embodiment of the present invention.
[0067] Как показано на фиг. 1, устройство 100 кодирования видео может содержать устройство 110 разбиения изображений, предсказатели 120 и 125, преобразователь 130, квантователь 135, устройство 160 для переупорядочивания, энтропийный кодер 165, обратный квантователь 140, обратный преобразователь 145, фильтр 150 и запоминающее устройство 155.[0067] As shown in FIG. 1, the video encoding apparatus 100 may include an image splitter 110, predictors 120 and 125, an inverter 130, a quantizer 135, a reorderer 160, an entropy encoder 165, an inverse quantizer 140, an inverter 145, a filter 150, and a memory 155.
[0068] Элементы на фиг. 1 показаны независимо, чтобы представлять различные характеристические функции в устройстве кодирования видео, и каждый из элементов не предназначен для выполнения в отдельном аппаратном блоке или в качестве одного программного блока. Другими словами, для удобства описания элементы расположены независимо друг от друга. Для выполнения функций по меньшей мере два элемента могут быть объединены в один элемент, или один элемент может быть разделен на множество элементов. В этом случае вариант осуществления для комбинации элементов и вариант осуществления для разделения элемента входят в объем настоящего изобретения без отступления от сущности настоящего изобретения.[0068] Elements in FIG. 1 are shown independently to represent various characteristic functions in a video encoding apparatus, and each of the elements is not intended to be implemented in a separate hardware unit or as a single software unit. In other words, for ease of description, the elements are arranged independently of each other. To perform functions, at least two elements may be combined into one element, or one element may be divided into multiple elements. In this case, the embodiment for combining elements and the embodiment for separating an element are within the scope of the present invention without deviating from the spirit of the present invention.
[0069] Кроме того, некоторые из элементов могут не представлять собой существенные элементы для выполнения существенных функций в настоящем изобретении, а могут представлять собой просто необязательные элементы для повышения производительности. Настоящее изобретение может быть реализовано путем включения только элементов, необходимых для реализации сущности настоящего изобретения, а не элементов, используемых только для повышения производительности. Даже структура, включающая только существенные элементы, а не необязательные элементы, используемые только для повышения производительности, входит в объем настоящего изобретения.[0069] In addition, some of the elements may not be essential elements for performing essential functions in the present invention, but may simply be optional elements to enhance performance. The present invention can be implemented by including only the elements necessary to implement the essence of the present invention, and not elements used only to improve performance. Even a structure including only essential elements and not optional elements used only to improve performance is within the scope of the present invention.
[0070] Устройство 110 разбиения изображений может разбивать входное изображение на по меньшей мере один элемент обработки. В этом случае элемент обработки может представлять собой элемент предсказания (PU), элемент преобразования (TU) или элемент кодирования (CU). Устройство 110 разбиения изображений может разбить одно изображение на множество комбинаций элементов кодирования, элементов предсказания и элементов преобразования и может выбрать одну комбинацию элементов кодирования, элементов предсказания и элементов преобразования в соответствии с предварительно определенным критерием (например, функцией стоимости), чтобы кодировать изображение.[0070] The image splitter 110 may split 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 apparatus 110 may partition one image into a plurality of combinations of encoding elements, prediction elements, and transform elements, and may select one combination of encoding elements, prediction elements, and transform elements according to a predetermined criterion (eg, a cost function) to encode the image.
[0071] Например, одно изображение может быть разбито на множество элементов кодирования. Для разбиения изображения на элементы кодирования может использоваться рекурсивная древовидная структура, такая как структура четвертичного дерева. Элемент кодирования, разбитый на другие элементы кодирования с использованием одного изображения или наибольшего элемента кодирования в качестве корня, может иметь количество дочерних узлов, соответствующее количеству разбитых элементов кодирования. Элемент кодирования, который больше не разбивается вследствие предварительно определенного ограничения, служит листовым узлом. То есть, когда предполагается, что для одного элемента кодирования возможно только квадратное разделение, один элемент кодирования может быть разбит на не более чем четыре других элемента кодирования.[0071] For example, one image may be divided into multiple encoding elements. A recursive tree structure, such as a quaternary tree structure, can be used to partition the image into encoding elements. An encoding element split into other encoding elements using a single image or the largest encoding element as the root may have a number of child nodes corresponding to the number of encoding elements split. An encoding element that is no longer split due to a predefined constraint serves as a leaf node. That is, when it is assumed that only a square division is possible for one encoding element, one encoding element can be divided into at most four other encoding elements.
[0072] В следующих вариантах осуществления настоящего изобретения элемент кодирования может относиться к элементу, выполненному с возможностью выполнения кодирования, или элементу, выполненному с возможностью выполнения декодирования.[0072] In further embodiments of the present invention, an encoding element may refer to an element configured to perform encoding or an element configured to perform decoding.
[0073] Один элемент кодирования может быть разбит на по меньшей мере один или более элементов предсказания одинакового размера квадратной или прямоугольной формы и может быть разбит на элементы предсказания таким образом, чтобы один из элементов предсказания отличался от другого элемента предсказания по форме и/или размеру.[0073] One coding element may be divided into at least one or more equally sized square or rectangular shaped prediction elements, and may be divided into prediction elements such that one of the prediction elements differs from another prediction element in shape and/or size .
[0074] Когда генерируется элемент предсказания, подвергаемый внутреннему предсказанию, на основании элемента кодирования, и элемент кодирования не является минимальным элементом кодирования, внутреннее предсказание может выполняться без разделения элемента кодирования на множество элементов предсказания N×N.[0074] When a prediction element subject to intra prediction is generated based on a coding element, and the coding element is not a minimum coding element, intra prediction can be performed without dividing the coding element into a plurality of N×N prediction elements.
[0075] Предсказатели 120 и 125 могут содержать предсказатель 120, осуществляющий предсказание между изображениями, выполненный с возможностью выполнения предсказания, осуществляемого между изображениями, и внутренний предсказатель 125, выполненный с возможностью выполнения внутреннего предсказания. Предсказатели 120 и 125 могут определить, следует ли выполнять внутреннее предсказание или использовать предсказание, осуществляемое между изображениями, в отношении элементов предсказания, и могут определить подробную информацию (например, режим внутреннего предсказания, вектор движения, опорное изображение и т. п.), соответствующую каждому способу предсказания. В этом случае элемент обработки, в котором выполняется предсказание, может отличаться от элемента обработки, в котором определяются способ предсказания и конкретные подробности. Например, способ предсказания, режим предсказания и т. п. могут определяться элементом предсказания, а предсказание может выполняться элементом преобразования. Остаточное значение (остаточный блок) между сгенерированным блоком предсказания и исходным блоком может вводиться в преобразователь 130. Кроме того, информация о векторе движения, информация о режиме предсказания и т. п., которые используются для предсказания, в дополнение к остаточному значению, могут быть кодированы энтропийным кодером 165 и переданы в декодер. Когда используется конкретный режим кодирования, исходный блок может быть без изменений кодирован и передан в декодер без генерирования при этом блока предсказания.[0075] Predictors 120 and 125 may include an inter-picture prediction predictor 120 configured to perform inter-picture prediction, and an internal predictor 125 configured to perform intra-prediction. Predictors 120 and 125 can determine whether to perform intra prediction or use inter-picture prediction with respect to prediction elements, and can determine detailed information (eg, intra prediction mode, motion vector, reference picture, etc.) corresponding each method of prediction. In this case, the processing element in which the prediction is performed may be different from the processing element in which the prediction method and specific details are determined. For example, a prediction method, a prediction mode, etc. may be determined by a prediction element, and the prediction may be performed by a transform element. A residual value (residual block) between the generated prediction block and the original block may be input to the converter 130. Moreover, motion vector information, prediction mode information, etc., which are used for prediction, in addition to the residual value, may be encoded by entropy encoder 165 and transferred to the decoder. When a particular encoding mode is used, the original block can be encoded unchanged and passed to the decoder without generating a prediction block.
[0076] Предсказатель 120, осуществляющий предсказание между изображениями, может предсказывать элемент предсказания на основании информации о по меньшей мере одном из предшествующего изображения или следующего изображения относительно текущего изображения, и в некоторых случаях элемент предсказания может быть предсказан на основании информации о частичном участке текущего изображения, в которой осуществлено кодирование. Предсказатель 120, осуществляющий предсказание между изображениями, может содержать интерполятор опорного изображения, предсказатель движения и компенсатор движения.[0076] The inter-picture predictor 120 may predict a prediction element based on information about at least one of the previous image or the next image relative to the current image, and in some cases, the prediction element may be predicted based on information about a partial portion of the current image , in which the encoding is carried out. The inter-image predictor 120 may include a reference image interpolator, a motion predictor, and a motion compensator.
[0077] Интерполятор опорного изображения может получать информацию об опорном изображении из запоминающего устройства 155 и может генерировать информацию о пикселях, количество которых меньше или равно целому числу пикселей, из опорного изображения. В случае пикселей яркости фильтр интерполяции по 8-ми точкам на основании DCT, имеющий разные коэффициенты фильтрования, может использоваться для генерирования информации о пикселях, количество которых меньше или равно целому числу пикселей в элементах, состоящих из 1/4 пикселей. В случае сигналов цветности фильтр интерполяции по 4-м точкам на основании DCT, имеющий разные коэффициенты фильтрования, может использоваться для генерирования информации о пикселях, количество которых меньше или равно целому числу пикселей в элементах, состоящих из 1/8 пикселей.[0077] The reference image interpolator can obtain information about the reference image from the memory 155 and can generate information about pixels whose number is less than or equal to an integer number of pixels from the reference image. In the case of luminance pixels, a DCT-based 8-point interpolation filter having different filter coefficients can be used to generate information about pixels whose number is less than or equal to the integer number of pixels in 1/4-pixel elements. For chrominance signals, a DCT-based 4-point interpolation filter having different filter coefficients can be used to generate information about pixels whose number is less than or equal to the integer number of pixels in 1/8-pixel elements.
[0078] Предсказатель движения может выполнить предсказание движения на основании опорного изображения, интерполированного с помощью интерполятора опорного изображения. В качестве способа вычисления вектора движения могут использоваться различные способы, такие как алгоритм сопоставления блоков на основании полного поиска (FBMA), алгоритм трехэтапного поиска (TSS) и алгоритм нового трехэтапного поиска (NTS). Вектор движения может иметь значение вектора движения в элементах, состоящих из 1/2 или 1/4 пикселей, на основании интерполированных пикселей. Элемент предсказания движения может предсказывать текущий элемент предсказания путем использования другого способа предсказания движения. В качестве способа предсказания движения могут использоваться различные способы, такие как способ пропуска, способ слияния, способ усовершенствованного предсказания вектора движения (AMVP) и способ внутриблочного копирования.[0078] The motion predictor may perform motion prediction based on a reference image interpolated by a reference image interpolator. As a method for calculating the motion vector, various methods may be used, such as the Full Block Matching Algorithm (FBMA), the Three-Stage Search (TSS) algorithm, and the New Three-Stage Search (NTS) algorithm. The motion vector can have a motion vector value in 1/2 or 1/4 pixel elements based on the interpolated pixels. The motion prediction element may predict the current prediction element by using another motion prediction method. As the motion prediction method, various methods such as a skip method, a merging method, an advanced motion vector prediction (AMVP) method, and an intra-block copy method can be used.
[0079] Внутренний предсказатель 125 может генерировать элемент предсказания на основании информации об опорном пикселе рядом с текущим блоком, которая представляет собой информации о пикселе в текущем изображении. Когда ближайший блок текущего элемента предсказания представляет собой блок, подвергаемый предсказанию, осуществляемому между изображениями, и, таким образом, опорный пиксель представляет собой пиксель, подвергаемый предсказанию, осуществляемому между изображениями, информация об опорном пикселе ближайшего блока, подвергаемого внутреннему предсказанию, может быть использована вместо опорного пикселя, включенного в блок, подвергаемый предсказанию, осуществляемому между изображениями. То есть, когда опорный пиксель недоступен, по меньшей мере один доступный опорный пиксель может быть использован вместо недоступной информации об опорном пикселе.[0079] The internal predictor 125 may generate a prediction element based on information about a reference pixel adjacent to the current block, which is information about a pixel in the current image. When the nearest block of the current prediction element is a block subject to inter-picture prediction, and thus the reference pixel is a pixel subject to inter-picture prediction, the reference pixel information of the nearest block subject to intra-prediction may be used instead a reference pixel included in a block subject to inter-image prediction. That is, when a reference pixel is not available, at least one available reference pixel can be used instead of the unavailable reference pixel information.
[0080] Режимы предсказания при внутреннем предсказании могут включать в себя режим направленного предсказания, в котором используется информация об опорных пикселях в зависимости от направления предсказания, и ненаправленный режим, который не использует информацию о направленности при выполнении предсказания. Режим для предсказания информации о яркости и режим для предсказания информации о цветности могут быть разными, и информация о режиме внутреннего предсказания, используемая для предсказания информации о яркости, или информация о предсказываемом сигнале яркости может использоваться для предсказания информации о цветности.[0080] Intra prediction prediction modes may include a directional prediction mode that uses reference pixel information depending on the prediction direction, and an omnidirectional mode that does not use directionality information when making prediction. The mode for predicting luminance information and the mode for predicting chrominance information may be different, and information about the intra prediction mode used to predict luminance information or information about a predicted luminance signal may be used to predict chrominance information.
[0081] Когда выполняется внутреннее предсказание, и размер элемента предсказания равен размеру элемента преобразования, внутреннее предсказание может выполняться в отношении элемента предсказания на основании пикселей, расположенных слева от элемента предсказания, пикселей, расположенных в верхнем левом углу элемента предсказания, и пикселей, расположенных в верхней части элемента предсказания. Однако, когда выполняется внутреннее предсказание, и элемент предсказания отличается по размеру от элемента преобразования, внутреннее предсказание может быть выполнено с использованием опорного пикселя на основании элемента преобразования. Кроме того, может использоваться внутреннее предсказание с использованием разделения N×N только для минимального элемента кодирования.[0081] When intra prediction is performed and the size of the prediction element is equal to the size of the transform element, intra prediction may be performed on the prediction element based on pixels located to the left of the prediction element, pixels located in the upper left corner of the prediction element, and pixels located in the top of the prediction element. However, when intra prediction is performed and the prediction element is different in size from the transform element, intra prediction can be performed using a reference pixel based on the transform element. In addition, intra prediction using N×N partitioning only for the minimum coding element can be used.
[0082] В способе внутреннего предсказания блок предсказания может быть сгенерирован после применения фильтра адаптивного внутреннего сглаживания (AIS) к опорному пикселю в зависимости от режима предсказания. Тип фильтра AIS, применяемого к опорному пикселю, может меняться. С целью выполнения способа внутреннего предсказания режим внутреннего предсказания текущего элемента предсказания может быть предсказан из режима внутреннего предсказания элемента предсказания, находящегося рядом с текущим элементом предсказания. При предсказании режима предсказания текущего элемента предсказания с использованием информации о режиме, предсказанной из ближайшего элемента предсказания, информация, указывающая, что текущий элемент предсказания и ближайший элемент предсказания имеют одинаковый режим предсказания, может передаваться с использованием информации о предварительно определенном флаге, когда режим внутреннего предсказания текущего элемента предсказания такой же, как режим внутреннего предсказания ближайшего элемента предсказания, и энтропийное кодирование может выполняться для кодирования информации о режиме предсказания текущего блока, когда режим предсказания текущего элемента предсказания отличается от режима предсказания ближайшего элемента предсказания.[0082] In the intra prediction method, a prediction block may be generated after applying an adaptive intra smoothing (AIS) filter to a reference pixel depending on the prediction mode. The type of AIS filter applied to the reference pixel may vary. For the purpose of executing 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 adjacent to the current prediction element. When predicting the prediction mode of the current prediction element using mode information predicted from the nearest prediction element, information indicating that the current prediction element and the nearest prediction element have the same prediction mode can be transmitted using the predetermined flag information when the intra prediction mode the current prediction element is the same as the intra prediction mode of the nearest prediction element, and entropy encoding may be performed to encode prediction mode information of the current block when the prediction mode of the current prediction element is different from the prediction mode of the nearest prediction element.
[0083] Кроме того, остаточный блок, содержащий информацию об остаточном значении, которое представляет собой разницу между элементом предсказания, подвергаемым предсказанию, и исходным блоком элемента предсказания, может быть сгенерирован на основании элементов предсказания, сгенерированных предсказателями 120 и 125. Сгенерированный остаточный блок может быть введен в преобразователь 130.[0083] In addition, a residual block containing information about a residual value that represents the difference between a prediction element being predicted and an original prediction element block may be generated based on the prediction elements generated by predictors 120 and 125. The generated residual block may be introduced into the converter 130.
[0084] Преобразователь 130 может преобразовывать остаточный блок, содержащий информацию об остаточном значении между исходным блоком и элементами предсказания, сгенерированными предсказателями 120 и 125 путем использования способа преобразования, такого как дискретное косинусное преобразование (DCT) или дискретное синусное преобразование (DST). В этом случае основа преобразования DCT содержит по меньшей мере одно из DCT2 или DCT8, и основа преобразования DST содержит DST7. То, применять ли DCT или DST для преобразования остаточного блока, может быть определено на основании информации о режиме внутреннего предсказания элемента предсказания, используемого для генерирования остаточного блока. Преобразование остаточного блока может быть пропущено. Флаг, указывающий то, следует ли пропустить преобразование остаточного блока, может быть кодирован. Пропуск преобразования может быть разрешен для остаточных блоков, размер которых меньше, чем пороговое значение, или равняется ему, компонента яркости или компонента цветности при формате 4:4:4.[0084] Transformer 130 may transform a residual block containing residual value information between the original block and the prediction elements generated by predictors 120 and 125 by 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 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 remainder block conversion can be skipped. A flag indicating whether conversion of the remainder block should be skipped may be encoded. Skip conversion may be allowed for residual blocks whose size is less than or equal to the threshold value of the luma component or the chrominance component in a 4:4:4 format.
[0085] Квантователь 135 может квантовать значения, которые преобразованы в частотную область преобразователем 130. Коэффициенты квантования могут меняться в зависимости от блока или важности изображения. Значения, вычисленные квантователем 135, могут быть переданы в обратный квантователь 140 и устройство 160 для переупорядочивания.[0085] Quantizer 135 may quantize values that are converted to the frequency domain by converter 130. Quantization factors may vary depending on the block or importance of the image. The values calculated by quantizer 135 may be passed to inverse quantizer 140 and reorderer 160.
[0086] Устройство 160 для переупорядочивания может выполнять переупорядочивание значений коэффициентов в отношении квантованных остаточных значений.[0086] Reorderer 160 may perform reordering of coefficient values with respect to the quantized residual values.
[0087] Устройство 160 для переупорядочивания может изменять коэффициенты с двумерной блочной формы на одномерную векторную форму с помощью способа сканирования коэффициентов. Например, устройство 160 для переупорядочивания может сканировать коэффициенты DC и даже высокочастотные коэффициенты, используя способ зигзагообразного сканирования, чтобы преобразовать коэффициенты в одномерную векторную форму. В зависимости от режима внутреннего предсказания и размера элемента преобразования, вместо зигзагообразного сканирования может использоваться вертикальное сканирование, при котором двумерные коэффициенты блочного типа сканируются в направлении столбца, или горизонтальное сканирование, при котором двумерные коэффициенты блочного типа сканируются в направлении строки. То есть устройство для переупорядочивания может определить способ сканирования, который будет использоваться, из зигзагообразного сканирования, вертикального сканирования и горизонтального сканирования, в зависимости от размера элемента преобразования и режима внутреннего предсказания.[0087] The rearranger 160 can change the coefficients from a two-dimensional block form to a one-dimensional vector form using a coefficient scanning method. For example, reorderer 160 may scan DC coefficients and even high frequency coefficients using a zigzag scanning technique to convert the coefficients into one-dimensional vector form. Depending on the intra prediction mode and the size of the transform element, instead of zigzag scanning, vertical scanning may be used, in which 2D block type coefficients are scanned in the column direction, or horizontal scanning, in which 2D block type coefficients are scanned in the row direction. That is, the reordering apparatus can determine the scanning method to be used from zigzag scanning, vertical scanning, and horizontal scanning, depending on the transform element size and the intra prediction mode.
[0088] Энтропийный кодер 165 может выполнять энтропийное кодирование на основании значений, вычисленных устройством 160 для переупорядочивания. Для энтропийного кодирования могут использоваться, например, различные способы кодирования, такие как экспоненциальный способ Голомба, контекстно-адаптивное кодирование с переменной длиной слова (CAVLC) и контекстно-адаптивное двоичное арифметическое кодирование (CABAC).[0088] Entropy encoder 165 may perform entropy encoding based on values calculated by reordering apparatus 160. For entropy coding, various encoding methods can be used, for example, such as exponential Golomb, context-adaptive variable-length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC).
[0089] Энтропийный кодер 165 может кодировать различную информацию, такую как информация о коэффициенте остаточного значения и информация о типе блока элемента кодирования, информация о режиме предсказания, информация о разделении, информация об элементе предсказания, информация об элементе передачи, информация о векторе движения, информация об опорном кадре, информация об интерполяции блока и информация о фильтрации, из устройства 160 для переупорядочивания и предсказателей 120 и 125.[0089] The entropy encoder 165 can encode various information such as residual coefficient information and coding element block type information, prediction mode information, division information, prediction element information, transmission element information, motion vector information, reference frame information, block interpolation information, and filtering information from reorderer 160 and predictors 120 and 125.
[0090] Энтропийный кодер 165 может выполнять энтропийное кодирование в отношении значений коэффициентов элемента кодирования, введенных из устройства 160 для переупорядочивания.[0090] The entropy encoder 165 may perform entropy encoding on the values of the coding element coefficients input from the reordering device 160.
[0091] Обратный квантователь 140 может обратно квантовать значения, квантованные квантователем 135, а обратный преобразователь 145 может обратно преобразовывать значения, преобразованные преобразователем 130. Остаточное значение, сгенерированное обратным квантователем 140 и обратным преобразователем 145, может быть объединено с элементом предсказания, предсказанным посредством устройства оценки движения, компенсатора движения и внутреннего предсказателя из предсказателей 120 и 125, для генерирования восстановленного блока.[0091] Inverse quantizer 140 may inversely quantize values quantized by quantizer 135, and inverse transformer 145 may inversely transform values transformed by transformer 130. The residual value generated by inverse quantizer 140 and inverse transformer 145 may be combined with a prediction element predicted by the device motion estimation, motion compensator, and internal predictor from predictors 120 and 125 to generate a reconstructed block.
[0092] Фильтр 150 может применять по меньшей мере одно из деблочного фильтра, корректора смещения и адаптивного контурного фильтра.[0092] Filter 150 may employ at least one of a deblocking filter, an offset corrector, and an adaptive loop filter.
[0093] Деблочный фильтр может удалять искажение блоков, которое произошло из-за границы между блоками восстановленного изображения. С целью определения того, выполнять ли удаление блочности, можно определить, следует ли применять деблочный фильтр к текущему блоку, на основании пикселей, включенных в несколько строк или столбцов в блоке. Когда деблочный фильтр применяется к блоку, может применяться сильный фильтр или слабый фильтр в зависимости от требуемой силы фильтрации удаления блочности. Кроме того, когда применяется деблочный фильтр, вертикальная фильтрация и горизонтальная фильтрация могут выполняться таким образом, чтобы горизонтальная фильтрация и вертикальная фильтрация обрабатывались параллельно.[0093] The deblocking filter can remove block distortion that occurred due to boundaries between blocks of the reconstructed image. For the purpose of determining whether to perform deblocking, you can determine whether to apply a deblocking filter to the current block based on the pixels included in multiple rows or columns in the block. When a deblocking filter is applied to a block, a strong filter or a weak filter may be applied depending on the required deblocking filtering strength. In addition, when a deblock filter is applied, vertical filtering and horizontal filtering can be performed such that horizontal filtering and vertical filtering are processed in parallel.
[0094] Корректор смещения может корректировать смещение из исходного изображения в изображении, подвергаемом удалению блочности, в элементах пикселей. Способ деления пикселей, включенных в изображение, на определенное количество участков, определения участка, который должен быть подвергнут смещению, и применения смещения к определенному участку или способ применения смещения с учетом информации о краях каждого пикселя может быть использован для выполнения коррекции смещения в отношении конкретного изображения.[0094] The offset corrector can correct the offset from the original image in the deblocked image in pixel elements. A method of dividing pixels included in an image into a certain number of areas, determining an area to be shifted, and applying the offset to the specific area, or a method of applying the offset taking into account the edge information of each pixel can be used to perform offset correction on a particular image. .
[0095] Адаптивная контурная фильтрация (ALF) может выполняться на основании значений, полученных путем сравнения отфильтрованного восстановленного изображения и исходного изображения. Путем деления пикселей, включенных в изображение, на предварительно определенные группы и определения фильтра, который должен применяться к каждой из групп, для каждой группы может выполняться дифференциальная фильтрация. Информация о том, применять ли ALF, может передаваться для каждого элемента кодирования (CU), а форма и коэффициенты фильтрования фильтра ALF, который должен применяться, могут меняться в зависимости от блока. Кроме того, фильтр ALF в той же самой форме (фиксированной форме) может применяться независимо от характеристики блока, который должен быть подвергнут фильтрации.[0095] Adaptive contour filtering (ALF) can be performed based on values obtained by comparing the filtered reconstructed image and the original image. By dividing the pixels included in the image into predefined groups and defining a filter to be applied to each group, differential filtering can be performed on each group. Information about whether to apply ALF may be transmitted on a per coding unit (CU) basis, and the shape and filter coefficients of the ALF filter to be applied may vary from block to block. Moreover, the ALF filter in the same form (fixed form) can be applied regardless of the characteristic of the block to be filtered.
[0096] Запоминающее устройство 155 может хранить восстановленный блок или изображение, вычисленное посредством фильтра 150. Сохраненный восстановленный блок или изображение могут быть предоставлены предсказателям 120 и 125 при выполнении предсказания, осуществляемого между изображениями.[0096] Memory 155 may store the reconstructed block or image calculated by filter 150. The stored reconstructed block or image may be provided to predictors 120 and 125 when performing inter-image prediction.
[0097] На фиг. 2 представлена структурная схема декодера согласно варианту осуществления настоящего изобретения.[0097] In FIG. 2 is a block diagram of a decoder according to an embodiment of the present invention.
[0098] Как показано на фиг. 2, видеодекодер 200 может содержать энтропийный декодер 210, устройство 215 для переупорядочивания, обратный квантователь 220, обратный преобразователь 225, предсказатели 230 и 235, фильтр 240 и запоминающее устройство 245.[0098] As shown in FIG. 2, video decoder 200 may include an entropy decoder 210, a reorderer 215, an inverse quantizer 220, an inverse transformer 225, predictors 230 and 235, a filter 240, and a memory 245.
[0099] Когда битовый поток видео вводится из кодера, входной битовый поток может быть декодирован согласно процедуре, противоположной процедуре кодера.[0099] When a video bitstream is input from an encoder, the input bitstream can be decoded according to a procedure opposite to that of the encoder.
[0100] Энтропийный декодер 210 может выполнять энтропийное декодирование согласно процедуре, противоположной процедуре, в которой энтропийный кодер кодера выполняет энтропийное кодирование. Например, для соответствия способу, выполняемому кодером, могут применяться различные способы, такие как экспоненциальный способ Голомба, контекстно-адаптивное кодирование с переменной длиной слова (CAVLC) и контекстно-адаптивное двоичное арифметическое кодирование (CABAC).[0100] The entropy decoder 210 may perform entropy decoding according to a procedure opposite to the procedure in which the entropy encoder of the encoder performs entropy encoding. For example, various methods such as exponential Golomb method, context-adaptive variable-length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC) may be used to match the method performed by the encoder.
[0101] Энтропийный декодер 210 может декодировать информацию, относящуюся к внутреннему предсказанию и предсказанию, осуществляемому между изображениями, выполняемому кодером.[0101] The entropy decoder 210 can decode information related to intra and inter-picture prediction performed by the encoder.
[0102] Устройство 215 для переупорядочивания может выполнять переупорядочивание в отношении битового потока, подвергаемого энтропийному декодированию энтропийным декодером 210, на основании способа переупорядочивания, используемого кодером. Устройство 215 для переупорядочивания может восстанавливать коэффициенты, выраженные в одномерной векторной форме, в двумерные коэффициенты блочного типа для переупорядочивания двумерных коэффициентов блочного типа. Устройство 215 для переупорядочивания может принимать информацию, относящуюся к сканированию коэффициентов, выполняемому кодером, и выполнять переупорядочивание посредством способа обратного сканирования на основании порядка сканирования кодера.[0102] The reordering apparatus 215 may perform reordering on the bitstream subjected to entropy decoding by the entropy decoder 210 based on the reordering method used by the encoder. Reorderer 215 may recover coefficients expressed in one-dimensional vector form into two-dimensional block type coefficients to reorder the two-dimensional block type coefficients. The reordering apparatus 215 may receive information related to coefficient scanning performed by the encoder and perform reordering by an inverse scanning method based on the scanning order of the encoder.
[0103] Обратный квантователь 220 может выполнять обратное квантование на основании значений коэффициентов переупорядоченного блока и параметров квантования, предоставленных кодером.[0103] Inverse quantizer 220 may perform inverse quantization based on the values of the reordered block coefficients and quantization parameters provided by the encoder.
[0104] Обратный преобразователь 225 может выполнять обратное DCT или обратное DST в отношении результата квантования, выполняемого кодером, при этом обратное DCT или обратное DST представляет собой преобразование, обратное преобразованию, которое было выполнено элементом преобразования, то есть DCT или DST. В этом случае основа преобразования DCT может содержать по меньшей мере одно из DCT2 или DCT8, и основа преобразования DST может содержать DST7. Альтернативно, когда преобразование пропускается в кодере, обратный преобразователь 225 может не выполнять обратное преобразование. Обратное преобразование может выполняться на основании элемента передачи, определенного кодером. В обратном преобразователе 225 декодера методы преобразования (например, DCT и DST) могут выборочно выполняться в зависимости от множества частей информации, таких как способ предсказания, размер текущего блока и направление предсказания.[0104] The inverse transformer 225 may perform an inverse DCT or an inverse DST on a quantization result performed by the encoder, wherein the inverse DCT or inverse DST is a transform inverse to the transform that was performed by the transform element, that is, the DCT or DST. In this case, the DCT transform base may comprise at least one of DCT2 or DCT8, and the DST transform base may comprise DST7. Alternatively, when the transform is skipped in the encoder, the inverter 225 may not perform the inverse transform. The inverse transform may be performed based on the transmission element determined by the encoder. In the decoder inverter 225, transform methods (eg, DCT and DST) may be selectively performed depending on multiple pieces of information such as prediction method, current block size, and prediction direction.
[0105] Предсказатели 230 и 235 могут генерировать блок предсказания на основании информации, относящейся к генерированию блока предсказания, которая предоставляется энтропийным декодером 210, и информации о ранее декодированном блоке или изображении, которая предоставляется запоминающим устройством 245.[0105] Predictors 230 and 235 may generate a prediction block based on information related to prediction block generation that is provided by entropy decoder 210 and information about a previously decoded block or image that is provided by storage device 245.
[0106] Как описано выше, когда внутреннее предсказание выполняется таким же образом, как и в кодере, и элемент предсказания равен по размеру элементу преобразования, внутреннее предсказание может выполняться в отношении элемента предсказания на основании пикселей, расположенных слева от элемента предсказания, пикселей, расположенных в верхнем левом углу элемента предсказания, и пикселей, расположенных в верхней части элемента предсказания. С другой стороны, когда выполняется внутреннее предсказание, и элемент предсказания отличается по размеру от элемента преобразования, внутреннее предсказание может быть выполнено с использованием опорного пикселя на основании элемента преобразования. Кроме того, может использоваться внутреннее предсказание с использованием разделения N×N только для минимального элемента кодирования.[0106] As described above, when intra prediction is performed in the same manner as in the encoder, and the prediction element is equal in size to the transform element, intra prediction may be performed on the prediction element based on pixels located to the left of the prediction element, pixels located in the upper left corner of the prediction element, and pixels located at the top of the prediction element. On the other hand, when intra prediction is performed and the prediction element is different in size from the transform element, intra prediction can be performed using a reference pixel based on the transform element. In addition, intra prediction using N×N partitioning only for the minimum coding element can be used.
[0107] Предсказатели 230 и 235 могут содержать определитель элемента предсказания, предсказатель, осуществляющий предсказание между изображениями, и внутренний предсказатель. Определитель элемента предсказания может принимать различную информацию, такую как информация об элементе предсказания, информация о режиме предсказания для способа внутреннего предсказания и информация, относящаяся к предсказанию движения, для способа предсказания, осуществляемого между изображениями, от энтропийного декодера 210, классифицировать элемент предсказания в текущем элементе кодирования и определять, выполняет ли элемент предсказания предсказание, осуществляемое между изображениями, или внутреннее предсказание. Используя информацию, необходимую для предсказания, осуществляемого между изображениями, текущего элемента предсказания, предоставленную кодером, предсказатель 230, осуществляющий предсказание между изображениями, может выполнять предсказание, осуществляемое между изображениями, в отношении текущего элемента предсказания на основании информации, включенной в по меньшей мере одно из изображения, предшествующего текущему изображению, включающему текущий элемент предсказания, или изображения, следующего за текущим изображением. Альтернативно предсказание, осуществляемое между изображениями, может выполняться на основании информации о некоторых предварительно восстановленных участках в текущем изображении, включающем текущий элемент предсказания.[0107] Predictors 230 and 235 may include a prediction element qualifier, an inter-image prediction predictor, and an internal predictor. The prediction element determiner may receive various information such as information about the prediction element, information about the prediction mode for the intra prediction method, and information related to motion prediction for the inter-picture prediction method from the entropy decoder 210, classify the prediction element in the current element encoding and determine whether the prediction element performs inter-picture prediction or intra prediction. Using information necessary for inter-picture prediction of the current prediction element provided by the encoder, inter-picture predictor 230 can perform inter-picture prediction regarding the current prediction element based on information included in at least one of an image preceding the current image including the current prediction element, or an image following the current image. Alternatively, inter-image prediction may be performed based on information about some previously reconstructed regions in the current image including the current prediction element.
[0108] Предсказатель 230, осуществляющий предсказание между изображениями, может определять, является ли способ предсказания движения для элемента предсказания, который включен в соответствующий элемент кодирования, режимом пропуска, режимом слияния, режимом AMVP или режимом внутриблочного копирования, на основании элемента кодирования с целью выполнения предсказания, осуществляемого между изображениями.[0108] The inter-picture prediction predictor 230 can determine whether a motion prediction method for a prediction element that is included in a corresponding encoding element is a skip mode, a merge mode, an AMVP mode, or an intra-block copy mode based on the encoding element to perform prediction carried out between images.
[0109] Внутренний предсказатель 235 может генерировать блок предсказания на основании информации о пикселях в текущем изображении. Когда элемент предсказания представляет собой элемент предсказания, подвергаемый внутреннему предсказанию, внутренний предсказатель 235 может выполнять внутреннее предсказание на основании информации о режиме внутреннего предсказания элемента предсказания, предоставленной кодером. Внутренний предсказатель 235 может содержать фильтр AIS, интерполятор опорных пикселей и фильтр DC. Фильтр AIS, который представляет собой часть, которая выполняет фильтрацию в отношении опорного пикселя текущего блока, может определить, следует ли применять фильтр, в зависимости от режима предсказания текущего элемента предсказания. Фильтр AIS может выполнять фильтрацию AIS в отношении опорного пикселя текущего блока с использованием информации о фильтре AIS и режима предсказания элемента предсказания, предоставленных кодером. Когда режим предсказания текущего блока представляет собой режим, в котором фильтрация AIS не выполняется, фильтр AIS может не применяться.[0109] The internal predictor 235 may generate a prediction block based on information about the pixels in the current image. When the prediction element is a prediction element subject to intra prediction, the intra predictor 235 may perform intra prediction based on the intra prediction mode information of the prediction element provided by the encoder. The internal predictor 235 may include an AIS filter, a reference pixel interpolator, and a DC filter. The AIS filter, which is a part that performs filtering on a reference pixel of the current block, can determine whether to apply a filter depending on the prediction mode of the current prediction element. The AIS filter may perform AIS filtering on a reference pixel of the current block using the AIS filter information and prediction mode of the prediction element provided by the encoder. When the prediction mode of the current block is a mode in which AIS filtering is not performed, the AIS filter may not be applied.
[0110] Когда режим предсказания блока предсказания представляет собой режим предсказания, в котором внутреннее предсказание выполняется на основании значения пикселя, полученного путем интерполяции опорного пикселя, интерполятор опорного пикселя может интерполировать опорный пиксель для генерирования опорного пикселя в элементе пикселя, меньшем или равном целому числу. Когда режим предсказания текущего элемента предсказания представляет собой режим предсказания, в котором блок предсказания генерируется без интерполяции опорного пикселя, опорный пиксель не может быть интерполирован. Когда режим предсказания текущего блока представляет собой режим DC, фильтр DC может генерировать блок предсказания посредством фильтрации.[0110] When the prediction mode of the prediction block is a prediction mode in which intra prediction is performed based on a pixel value obtained by interpolating a reference pixel, a reference pixel interpolator may interpolate the reference pixel to generate a reference pixel at a pixel element less than or equal to an integer. When the prediction mode of the current prediction element is a prediction mode in which a prediction block is generated without interpolating a reference pixel, the reference pixel cannot be interpolated. When the prediction mode of the current block is the DC mode, the DC filter can generate the prediction block by filtering.
[0111] Восстановленный блок или изображение могут быть предоставлены фильтру 240. Фильтр 240 может содержать деблочный фильтр, корректор смещения и фильтр ALF.[0111] The reconstructed block or image may be provided to filter 240. Filter 240 may include a deblocking filter, an offset corrector, and an ALF filter.
[0112] Фильтр 240 может принимать от кодера информацию о том, применяется ли деблочный фильтр к соответствующему блоку или изображению, или информацию о том, применяется ли сильный фильтр или слабый фильтр при применении деблочного фильтра. Деблочный фильтр декодера может принимать информацию, относящуюся к деблочному фильтру, которая предоставляется кодером, и декодер может выполнять фильтрацию для удаления блочности в отношении соответствующего блока.[0112] Filter 240 may receive from the encoder information about whether a deblocking filter is applied to a corresponding block or image, or information about whether a strong filter is applied or a weak filter is applied when applying the deblocking filter. The deblocking filter of the decoder may receive information related to the deblocking filter that is provided by the encoder, and the decoder may perform deblocking filtering on the corresponding block.
[0113] Корректор смещения может выполнять коррекцию смещения в отношении восстановленного изображения на основании типа коррекции смещения, информации о значении смещения и т. п., которые применяются к изображению при кодировании.[0113] The offset corrector can perform offset correction on the reconstructed image based on the type of offset correction, offset value information, etc. that is applied to the image during encoding.
[0114] ALF может применяться к элементу кодирования на основании информации о том, применять ли ALF, информации о коэффициенте ALF и т. п., которые предоставляются из кодера. Информация ALF может быть предоставлена путем включения в конкретный набор параметров.[0114] ALF may be applied to an encoding element based on information about whether to apply ALF, ALF coefficient information, etc., which is provided from the encoder. ALF information may be provided by inclusion in a specific parameter set.
[0115] Запоминающее устройство 245 может хранить восстановленное изображение или блок таким образом, чтобы изображение или блок могли быть использованы в качестве опорного изображения или опорного блока, а также может предоставить восстановленное изображение в выходной элемент.[0115] Memory 245 may store the reconstructed image or block such that the image or block can be used as a reference image or reference block, and may also provide the reconstructed image to an output element.
[0116] На фиг. 3 представлено схематическое изображение, показывающее базовый элемент кодового дерева согласно варианту осуществления настоящего изобретения.[0116] In FIG. 3 is a schematic diagram showing a basic element of a code tree according to an embodiment of the present invention.
[0117] Элемент кодирования наибольшего размера может быть задан в качестве блока кодового дерева. Одно изображение разбивается на множество элементов кодового дерева (CTU). Элемент кодового дерева, который представляет собой элемент кодирования наибольшего размера, может называться наибольшим элементом кодирования (LCU). На фиг. 3 показан пример, в котором одно изображение разбито на множество элементов кодового дерева.[0117] The largest encoding element may be defined as a code tree block. A single image is divided into many code tree units (CTUs). The code tree element that represents the largest coding element may be called the largest coding unit (LCU). In fig. Figure 3 shows an example in which one image is divided into many code tree elements.
[0118] Размер элемента кодового дерева может быть задан на уровне изображения или уровне последовательности. С этой целью информация, указывающая размер элемента кодового дерева, может передаваться посредством набора параметров изображения или набора параметров последовательности.[0118] The code tree element size may be specified at the image level or the sequence level. To this end, information indicating the size of a code tree element may be conveyed by an image parameter set or a sequence parameter set.
[0119] В качестве примера, размер элемента кодового дерева для всего изображения в последовательности может быть установлен равным 128×128. Альтернативно один из размеров 128×128 или 256×256 может быть определен как размер элемента кодового дерева на уровне изображения. В качестве примера, размер элемента кодового дерева в первом изображении может быть установлен равным 128×128, а размер элемента кодового дерева во втором изображении может быть установлен равным 256×256.[0119] As an example, the code tree element size for the entire image in the sequence may be set to 128×128. Alternatively, one of the sizes 128×128 or 256×256 may be defined as the size of the image-level code tree element. As an example, the code tree element size in the first image may be set to 128×128, and the code tree element size in the second image may be set to 256×256.
[0120] Элемент кодового дерева может быть разбит для генерирования блока кодирования. Блок кодирования указывает базовый элемент для обработки кодирования или декодирования. В качестве примера, предсказание или преобразование может выполняться для каждого блока кодирования, или режим предсказательного кодирования может определяться для каждого блока кодирования. В этом случае режим предсказательного кодирования указывает способ генерирования изображения предсказания. В качестве примера, режим предсказательного кодирования может включать внутреннее предсказание, предсказание, осуществляемое между изображениями, привязку к текущему изображению (CPR) (или внутриблочное копирование (IBC)) или комбинированное предсказание. Блок предсказания для блока кодирования может быть сгенерирован с использованием по меньшей мере одного режима предсказательного кодирования из внутреннего предсказания, предсказания, осуществляемого между изображениями, привязки к текущему изображению или комбинированного предсказания для блока кодирования.[0120] A code tree element may be split to generate a coding block. The encoding block specifies a base element for encoding or decoding processing. As an example, prediction or transformation may be performed for each encoding block, or a predictive encoding mode may be determined for each encoding block. In this case, the predictive coding mode specifies a method for generating a prediction image. As an example, the predictive coding mode may include intra prediction, inter-picture prediction, current picture reference (CPR) (or intra block copy (IBC)), or combined prediction. A prediction block for a coding block may be generated using at least one predictive coding mode of intra prediction, inter-picture prediction, anchor to current picture, or combined prediction for the coding block.
[0121] Информация, указывающая режим предсказательного кодирования текущего блока, может передаваться в битовом потоке. В качестве примера, информация может представлять собой 1-битный флаг, указывающий, является ли режим предсказательного кодирования внутренним режимом или режимом, осуществляемым между изображениями. Привязка к текущему изображению или комбинированное предсказание могут быть доступны только тогда, когда определено, что режим предсказательного кодирования текущего блока является режимом, осуществляемым между изображениями.[0121] Information indicating the predictive encoding mode of the current block may be transmitted in the bit stream. As an example, the information may be a 1-bit flag indicating whether the predictive encoding mode is an intra-image mode or an inter-picture mode. Lock to the current picture or combined prediction may be available only when it is determined that the predictive encoding mode of the current block is an inter-picture mode.
[0122] Привязка к текущему изображению предназначена для установки текущего изображения в качестве опорного изображения и получения блока предсказания текущего блока из участка текущего изображения, где осуществлено кодирование или декодирование. В этом случае текущее изображение относится к изображению, содержащему текущий блок. Информация, указывающая, что привязка к текущему изображению применяется к текущему блоку, может передаваться в битовом потоке. В качестве примера, информация может представлять собой 1-битный флаг. Может быть определено, что режим предсказательного кодирования текущего блока представляет собой привязку к текущему изображению, когда флаг имеет значение true (истина), и может быть определено, что режим предсказания текущего блока представляет собой предсказание, осуществляемое между изображениями, когда флаг имеет значение false (ложь).[0122] Linking to the current picture is for setting the current picture as a reference picture and obtaining a current block prediction block from a portion of the current picture where encoding or decoding has been performed. In this case, the current image refers to the image containing the current block. Information indicating that the current image anchor applies to the current block may be carried in the bitstream. As an example, the information may be a 1-bit flag. The predictive encoding mode of the current block may be determined to be an anchor to the current image when the flag is true, and the prediction mode of the current block may be determined to be an inter-image prediction when the flag is false ( lie).
[0123] Альтернативно режим предсказательного кодирования текущего блока может быть определен на основании индекса опорного изображения. В качестве примера, когда индекс опорного изображения указывает текущее изображение, может быть определено, что режим предсказательного кодирования текущего блока представляет собой привязку к текущему изображению. Когда индекс опорного изображения указывает на изображение, отличное от текущего изображения, может быть определено, что режим предсказательного кодирования текущего блока представляет собой предсказание, осуществляемое между изображениями. То есть привязка к текущему изображению представляет собой способ предсказания, который использует информацию об участке текущего изображения, где осуществлено кодирование или декодирование, а предсказание, осуществляемое между изображениями, представляет собой способ предсказания, который использует информацию другого изображения, где осуществлено кодирование или декодирование.[0123] Alternatively, the predictive coding mode of the current block may be determined based on the index of the reference picture. As an example, when the reference picture index indicates the current picture, it may be determined that the predictive encoding mode of the current block is a reference to the current picture. When the reference picture index points to a picture other than the current picture, it can be determined that the predictive coding mode of the current block is inter-picture prediction. That is, anchoring to the current image is a prediction method that uses information about a portion of the current image where encoding or decoding is performed, and inter-image prediction is a prediction method that uses information about another image where encoding or decoding is performed.
[0124] Комбинированное предсказание указывает режим кодирования, полученный путем комбинирования двух или более из внутреннего предсказания, предсказания, осуществляемого между изображениями, и привязки к текущему изображению. В качестве примера, когда применяется комбинированное предсказание, первый блок предсказания может быть сгенерирован на основании одного из внутреннего предсказания, предсказания, осуществляемого между изображениями, или привязки к текущему изображению, а второй блок предсказания может быть сгенерирован на основании другого. Когда генерируются первый блок предсказания и второй блок предсказания, окончательный блок предсказания может быть сгенерирован посредством операции усреднения или операции взвешенной суммы между первым блоком предсказания и вторым блоком предсказания. Информация, указывающая, применяется ли комбинированное предсказание, может передаваться в битовом потоке. Информация может представлять собой 1-битный флаг.[0124] Combined prediction indicates a coding mode obtained by combining two or more of intra prediction, inter-picture prediction, and reference to the current picture. As an example, when combined prediction is applied, the first prediction block may be generated based on one of intra-prediction, inter-image prediction, or current image anchoring, and the second prediction block may be generated based on the other. When the first prediction block and the second prediction block are generated, the final prediction block may be generated by an averaging operation or a weighted sum operation between the first prediction block and the second prediction block. Information indicating whether combined prediction is applied may be carried in the bit stream. The information may be a 1-bit flag.
[0125] На фиг. 4 представлено схематическое изображение, показывающее различные типы раздела блока кодирования.[0125] In FIG. 4 is a schematic diagram showing various types of encoding block section.
[0126] Блок кодирования может быть разбит на множество блоков кодирования на основании разделения на основе четвертичного дерева, разделения на основе двоичного дерева или разделения на основе троичного дерева. Блок кодирования, полученный посредством разделения, может быть повторно разбит на множество блоков кодирования на основании разделения на основе четвертичного дерева, разделения на основе двоичного дерева или разделения на основе троичного дерева.[0126] A coding block may be divided into a plurality of coding blocks based on a quaternary tree division, a binary tree division, or a ternary tree division. The encoding block obtained by dividing may be re-partitioned into a plurality of encoding blocks based on a quaternary tree division, a binary tree division, or a ternary tree division.
[0127] Разделение на основе четвертичного дерева указывает на метод разделения для разбиения текущего блока на четыре блока. В результате разделения на основе четвертичного дерева текущий блок может быть разбит на четыре квадратных раздела (см. «SPLIT_QT» на фиг. 4A).[0127] Quaternary tree-based partitioning indicates a partitioning method for dividing the current block into four blocks. As a result of quaternary tree partitioning, the current block can be split into four square partitions (see "SPLIT_QT" in Fig. 4A).
[0128] Разделение на основе двоичного дерева указывает на метод разделения для разбиения текущего блока на два блока. Разделение текущего блока на два блока в вертикальном направлении (т. е. с использованием вертикальной линии поперек текущего блока) может называться вертикальным разделением на основе двоичного дерева, и разделение текущего блока на два блока в горизонтальном направлении (т. е. с использованием горизонтальной линии поперек текущего блока) может называться горизонтальным разделением на основе двоичного дерева. В результате разделения на основе двоичного дерева текущий блок может быть разбит на два неквадратных раздела. На фиг. 4B «SPLIT_BT_VER» представляет результат вертикального разделения на основе двоичного дерева. На фиг. 4C «SPLIT_BT_HOR» представляет результат горизонтального разделения на основе двоичного дерева.[0128] Binary tree-based partitioning indicates a partitioning method for splitting the current block into two blocks. Splitting the current block into two blocks in the vertical direction (i.e., using a vertical line across the current block) can be called a vertical binary tree-based split, and dividing the current block into two blocks in the horizontal direction (i.e., using a horizontal line across the current block) can be called a horizontal binary tree partition. As a result of binary tree partitioning, the current block can be split into two non-square partitions. In fig. 4B "SPLIT_BT_VER" represents the result of vertical splitting based on a binary tree. In fig. 4C "SPLIT_BT_HOR" represents the result of horizontal splitting based on a binary tree.
[0129] Разделение на основе троичного дерева указывает на метод разделения для разбиения текущего блока на три блока. Разделение текущего блока на три блока в вертикальном направлении (т. е. с использованием двух вертикальных линий поперек текущего блока) может называться вертикальным разделением на основе троичного дерева, и разделение текущего блока на три блока в горизонтальном направлении (т. е. с использованием двух горизонтальных линий поперек текущего блока) может называться горизонтальным разделением на основе троичного дерева. В результате разделения на основе троичного дерева текущий блок может быть разбит на три неквадратных раздела. В этом случае ширина или высота раздела, расположенного в центре текущего блока, может быть вдвое больше, чем у других разделов. На фиг. 4D «SPLIT_TT_VER» представляет результат вертикального разделения на основе троичного дерева. На фиг. 4E «SPLIT_TT_HOR» представляет результат горизонтального разделения на основе троичного дерева.[0129] Ternary tree-based partitioning indicates a partitioning method for dividing the current block into three blocks. Dividing the current block into three blocks in the vertical direction (i.e., using two vertical lines across the current block) can be called a ternary tree-based vertical division, and dividing the current block into three blocks in the horizontal direction (i.e., using two horizontal lines across the current block) can be called horizontal division based on a ternary tree. As a result of ternary tree partitioning, the current block can be split into three non-square partitions. In this case, the width or height of the section located in the center of the current block can be twice as large as the other sections. In fig. 4D "SPLIT_TT_VER" represents the result of a vertical split based on a ternary tree. In fig. 4E "SPLIT_TT_HOR" represents the result of a horizontal split based on a ternary tree.
[0130] Количество раз, которое разбивается элемент кодового дерева, можно задать как глубину раздела (глубину разделения). Максимальная глубина раздела элемента кодового дерева может быть определена на уровне последовательности или уровне изображения. Таким образом, максимальная глубина раздела элемента кодового дерева может меняться в зависимости от последовательности или изображения.[0130] The number of times that a code tree element is split can be set as a section depth (split depth). The maximum section depth of a code tree element can be defined at the sequence level or the image level. Thus, the maximum section depth of a code tree element may vary depending on the sequence or image.
[0131] Альтернативно максимальная глубина раздела может определяться индивидуально для каждого метода разделения. В качестве примера, максимальная глубина раздела, разрешенная для разделения на основе четвертичного дерева, может отличаться от максимальной глубины раздела, разрешенной для разделения на основе двоичного дерева и/или разделения на основе троичного дерева.[0131] Alternatively, the maximum section depth may be determined individually for each separation method. As an 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.
[0132] Кодер может передавать информацию, указывающую по меньшей мере одно из типов раздела или глубины раздела текущего блока в битовом потоке. Декодер может определять тип раздела и глубину раздела элемента кодового дерева на основании информации, проанализированной из битового потока.[0132] The encoder may transmit information indicating at least one of the section types or section depths of the current block in the bit stream. The decoder may determine the section type and section depth of the code tree element based on the information parsed from the bitstream.
[0133] На фиг. 5 представлено схематическое изображение, иллюстрирующее аспект разделения элемента кодового дерева.[0133] In FIG. 5 is a schematic diagram illustrating the division aspect of a code tree element.
[0134] Разделение блока кодирования с использованием такого метода разделения, как разделение на основе четвертичного дерева, разделение на основе двоичного дерева и/или разделение на основе троичного дерева, может называться разделением на основе нескольких деревьев (разделением на основе нескольких деревьев).[0134] Dividing a coding block using a division method such as a quaternary tree division, a binary tree division, and/or a ternary tree division may be referred to as a multi-tree division (multi-tree division).
[0135] Блоки кодирования, сгенерированные путем применения разделения на основе нескольких деревьев к блоку кодирования, могут называться нижними блоками кодирования. Когда глубина раздела блока кодирования представляет собой k, глубина раздела нижних блоков кодирования установлена равной k+1.[0135] Coding blocks generated by applying multi-tree partitioning to a coding block may be referred to as lower coding blocks. When the section depth of the coding block is k , the section depth of the lower coding blocks is set to k+1 .
[0136] И наоборот, относительно блоков кодирования с глубиной раздела k+1, блок кодирования с глубиной раздела k может называться верхним блоком кодирования.[0136] Conversely, with respect to coding blocks with section depth k+1 , a coding block with section depth k may be referred to as an upper coding block.
[0137] Тип раздела текущего блока кодирования может быть определен на основании по меньшей мере одного из типов раздела верхнего блока кодирования или типа раздела соседнего блока кодирования. В этом случае соседний блок кодирования является смежным с текущим блоком кодирования и может содержать по меньшей мере один из соседнего блока, расположенного над текущим блоком кодирования, соседнего блока, расположенного слева от текущего блока кодирования, или соседнего блока, смежного с верхним левым углом текущего блока кодирования. В этом случае тип раздела может включать в себя по меньшей мере одно из наличия разделения на основе четвертичного дерева, наличия разделения на основе двоичного дерева, направления разделения на основе двоичного дерева, наличия разделения на основе троичного дерева или направления разделения на основе троичного дерева.[0137] The section type of the current encoding block may be determined based on at least one of the section types of the upper coding block or the section type of the adjacent coding block. In this case, the adjacent encoding block is adjacent to the current encoding block and may contain at least one of an adjacent block located above the current encoding block, an adjacent block located to the left of the current encoding block, or an adjacent block adjacent to the upper left corner of the current block coding. In this case, the partition type may include at least one of having a quaternary tree partition, having a binary tree partition, having a binary tree partition direction, having a ternary tree partition, or having a ternary tree partition direction.
[0138] С целью определения типа раздела блока кодирования, информация, указывающая, разбит ли блок кодирования, может передаваться в битовом потоке. Информация представляет собой 1-битный флаг «split_cu_flag», и значение флага true указывает, что блок кодирования разбит с помощью метода разделения на основе нескольких деревьев.[0138] For the purpose of determining the partition type of an encoding block, information indicating whether the encoding block is divided may be transmitted in a bitstream. The information is a 1-bit flag "split_cu_flag", and the flag value true indicates that the encoding block is split using a multi-tree splitting method.
[0139] Когда split_cu_flag имеет значение true, информация, указывающая, разбит ли блок кодирования посредством разделения на основе четвертичного дерева, может передаваться в битовом потоке. Информация представляет собой 1-битовый флаг «split_qt_flag», и, когда флаг имеет значение true, блок кодирования может быть разбит на четыре блока.[0139] When split_cu_flag is true, information indicating whether a coding block is split by a quaternary tree split may be transmitted in the bitstream. The information is a 1-bit flag "split_qt_flag", and when the flag is true, the encoding block can be split into four blocks.
[0140] Например, на фиг. 5 показано, что четыре блока кодирования с глубиной раздела, равной единице, генерируются, потому что элемент кодового дерева разбит посредством разделения на основе четвертичного дерева. Также показано, что разделение на основе четвертичного дерева повторно применяется к первому блоку кодирования и четвертому блоку кодирования из четырех блоков кодирования, сгенерированных посредством выполнения разделения на основе четвертичного дерева. В результате могут быть сгенерированы четыре блока кодирования с глубиной раздела, равной двум.[0140] For example, in FIG. 5 shows that four encoding blocks with a partition depth of one are generated because the code tree element is split by a quaternary tree-based partition. It is also shown that the quaternary tree division is reapplied to the first encoding block and the fourth encoding block of the four encoding blocks generated by performing the quaternary tree division. As a result, four coding blocks with a section depth of two can be generated.
[0141] Также, повторно применяя разделение на основе четвертичного дерева к блоку кодирования с глубиной раздела, равной двум, может быть сгенерирован блок кодирования с глубиной раздела, равной трем.[0141] Also, by reapplying the quaternary tree division to a coding block with a section depth of two, a coding block with a section depth of three can be generated.
[0142] Когда разделение на основе четвертичного дерева не применяется к блоку кодирования, тогда то, следует ли выполнять разделение на основе двоичного дерева или разделение на основе троичного дерева в отношении блока кодирования, может быть определено с учетом по меньшей мере одного из размера блока кодирования, того, расположен ли блок кодирования на краю изображения, максимальной глубины раздела или аспекта разделения соседнего блока. Когда определено, что в отношении блока кодирования выполнено разделение на основе двоичного дерева или разделение на основе троичного дерева, информация, указывающая направление разделения, может передаваться в битовом потоке. Информация может представлять собой 1-битный флаг mtt_split_cu_vertical_flag. На основании флага может быть определено, является ли направление разделения вертикальным или горизонтальным. Кроме того, информация, указывающая, какое из разделения на основе двоичного дерева и разделения на основе троичного дерева применено к блоку кодирования, может передаваться в битовом потоке. Информация может представлять собой 1-битный флаг mtt_split_cu_binary_flag. На основании флага может быть определено, применено ли к блоку кодирования разделение на основе двоичного дерева или разделение на основе троичного дерева.[0142] When a quaternary tree division is not applied to a coding block, then whether a binary tree division or a ternary tree division should be performed on the coding block can be determined taking into account at least one of the encoding block size , whether the encoding block is located at the edge of the image, the maximum section depth, or the division aspect of an adjacent block. When it is determined that a binary tree division or a ternary tree division has been performed on an encoding block, information indicating the division direction may be transmitted in the bit stream. The information may be a 1-bit mtt_split_cu_vertical_flag. Based on the flag, it can be determined whether the dividing direction is vertical or horizontal. In addition, information indicating which of the binary tree division and the ternary tree division is applied to the encoding block may be transmitted in the bitstream. The information may be a 1-bit mtt_split_cu_binary_flag. Based on the flag, it can be determined whether a binary tree-based partition or a ternary tree-based partition is applied to the encoding block.
[0143] Например, на фиг. 5 показано, что вертикальное разделение на основе двоичного дерева применяется к блоку кодирования с глубиной раздела, равной единице, вертикальное разделение на основе троичного дерева применяется к левому блоку кодирования из блоков кодирования, сгенерированных в результате вертикального разделения на основе двоичного дерева, и вертикальное разделение на основе двоичного дерева применяется к правому блоку кодирования.[0143] For example, in FIG. 5 shows that the binary tree-based vertical partitioning is applied to a coding block with a partition depth of one, the ternary tree-based vertical partitioning is applied to the left encoding block from the encoding blocks generated by the binary tree-based vertical partitioning, and the vertical partitioning on The binary tree base is applied to the right encoding block.
[0144] Предсказание, осуществляемое между изображениями, представляет собой режим предсказательного кодирования, в котором текущий блок предсказывается с использованием информации о предшествующем изображении. В качестве примера, блок, включенный в предшествующее изображение и размещенный в таком же местоположении, что и текущий блок (далее называемый совмещаемым блоком), может быть установлен в качестве блока предсказания текущего блока. Блок предсказания, сгенерированный на основании блока, размещенного в таком же местоположении, что и текущий блок, будет называться совмещаемым блоком предсказания.[0144] Inter-picture prediction is a predictive coding mode in which the current block is predicted using information about the previous picture. As an example, a block included in the previous image and located at the same location as the current block (hereinafter referred to as a compatible block) can be set as a prediction block of the current block. A prediction block generated based on a block located at the same location as the current block will be called a compatible prediction block.
[0145] Между тем, когда объект, присутствующий в предшествующем изображении, перемещается в другое местоположение в текущем изображении, текущий блок может быть эффективно предсказан с использованием движения объекта. Например, когда направление движения и размер объекта могут быть найдены путем сравнения предшествующего изображения с текущим изображением, блок предсказания (или изображение предсказания) текущего блока может быть сгенерирован с учетом информации о движении объекта. Далее блок предсказания, сгенерированный с использованием информации о движении, может называться блоком предсказания движения.[0145] Meanwhile, when an object present in the previous image moves to another location in the current image, the current block can be effectively predicted using the movement of the object. For example, when the motion direction and size of an object can be found by comparing a previous image with 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 using the motion information may be called a motion prediction block.
[0146] Остаточный блок может быть сгенерирован путем вычитания блока предсказания из текущего блока. В это время, когда присутствует движение объекта, можно уменьшить энергию остаточного блока и, соответственно, можно улучшить эффективность сжатия остаточного блока путем использования блока предсказания движения вместо совмещаемого блока предсказания.[0146] A residual block may be generated by subtracting a prediction block from a current block. At this time, when motion of the object is present, the energy of the residual block can be reduced, and accordingly, the compression efficiency of the residual block can be improved by using a motion prediction block instead of a fusion prediction block.
[0147] Как описано выше, генерирование блока предсказания с использованием информации о движении может называться предсказанием с компенсацией движения. В большинстве предсказаний, осуществляемых между изображениями, блок предсказания может быть сгенерирован на основании предсказания с компенсацией движения.[0147] 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.
[0148] Информация о движении может содержать по меньшей мере одно из вектора движения, индекса опорного изображения, направления предсказания или двунаправленного весового индекса. Вектор движения указывает направление движения и размер объекта. Индекс опорного изображения указывает опорное изображение текущего блока из опорных изображений, включенных в список опорных изображений. Направление предсказания указывает одно из однонаправленного предсказания L0, однонаправленного предсказания L1 или двунаправленного предсказания (предсказания L0 и предсказания L1). По меньшей мере одна из информации о движении в направлении L0 или информации о движении в направлении L1 может использоваться в зависимости от направления предсказания текущего блока. Двунаправленный весовой индекс указывает весовой коэффициент, применяемый к блоку предсказания L0, и весовой коэффициент, применяемый к блоку предсказания L1.[0148] The motion information may comprise at least one of a motion vector, a reference image index, a prediction direction, or a bidirectional weight index. The motion vector indicates 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 one of unidirectional L0 prediction, unidirectional L1 prediction, or bidirectional prediction (L0 prediction and L1 prediction). At least one of the movement information in the L0 direction or the movement information in the L1 direction may be used depending on the prediction direction of the current block. The bidirectional weight index indicates a weight applied to the L0 prediction block and a weight applied to the L1 prediction block.
[0149] На фиг. 6 представлена блок-схема способа предсказания, осуществляемого между изображениями, согласно варианту осуществления настоящего изобретения.[0149] In FIG. 6 is a flowchart of an inter-image prediction method according to an embodiment of the present invention.
[0150] Как показано на фиг. 6, способ предсказания, осуществляемого между изображениями, включает определение (S601) режима предсказания, осуществляемого между изображениями, текущего блока, получение (S602) информации о движении текущего блока в соответствии с определенным режимом предсказания, осуществляемого между изображениями, и выполнение предсказания с компенсацией движения (S603) в отношении текущего блока на основании полученной информации о движении.[0150] As shown in FIG. 6, the inter-picture prediction method includes determining (S601) an inter-picture prediction mode of the current block, obtaining (S602) motion information of the current block according to the determined inter-picture prediction mode, and performing motion compensation prediction (S602). (S603) regarding the current block based on the received motion information.
[0151] В этом случае режим предсказания, осуществляемого между изображениями, который представляет различные методы для определения информации о движении текущего блока, может включать режим предсказания, осуществляемого между изображениями, с использованием информации о поступательном движении и режим предсказания, осуществляемого между изображениями, с использованием информации об аффинном движении. В качестве примера, режим предсказания, осуществляемого между изображениями, с использованием информации о поступательном движении может включать режим слияния и режим предсказания вектора движения, а режим предсказания, осуществляемого между изображениями, с использованием информации об аффинном движении может включать аффинный режим слияния и режим предсказания вектора аффинного движения. Информация о движении текущего блока может быть определена на основании информации, проанализированной из битового потока или блоков, соседних с текущим блоком, в соответствии с режимом предсказания, осуществляемого между изображениями.[0151] In this case, an inter-picture prediction mode that represents various methods for determining motion information of the current block may include an inter-picture prediction mode using translational motion information and an inter-picture prediction mode using information about affine motion. As an example, an inter-image prediction mode using translational motion information may include a fusion mode and a motion vector prediction mode, and an inter-image prediction mode using affine motion information may include an affine fusion mode and a vector prediction mode. affine movement. Motion information of the current block can be determined based on information analyzed from the bit stream or blocks adjacent to the current block in accordance with the inter-picture prediction mode.
[0152] Способ предсказания, осуществляемого между изображениями, с использованием информации об аффинном движении будет подробно описан ниже.[0152] An inter-image prediction method using affine motion information will be described in detail below.
[0153] На фиг. 7 представлено схематическое изображение, иллюстрирующее нелинейное движение объекта.[0153] In FIG. 7 is a schematic diagram illustrating the nonlinear motion of an object.
[0154] Движение объекта в изображении может происходить нелинейно. Например, как и в примере, показанном на фиг. 7, может происходить такое нелинейное движение объекта, как приближение, отдаление, поворот и аффинное преобразование. Когда происходит нелинейное движение объекта, вектор поступательного движения не может эффективно представлять движение объекта. Соответственно, можно улучшить эффективность кодирования путем использования аффинного движения в части, где происходило нелинейное движение объекта вместо поступательного движения.[0154] The movement of an object in an image may occur non-linearly. For example, as in the example shown in FIG. 7, such nonlinear movement of an object as approaching, moving away, rotating and affine transformation can occur. When nonlinear motion of an object occurs, the translational motion vector cannot effectively represent the motion of the object. Accordingly, it is possible to improve the encoding efficiency by using affine motion in the part where nonlinear motion of the object occurred instead of translational motion.
[0155] На фиг. 8 представлена блок-схема способа предсказания, осуществляемого между изображениями, на основании аффинного движения согласно варианту осуществления настоящего изобретения.[0155] In FIG. 8 is a flowchart of an inter-image prediction method based on affine motion according to an embodiment of the present invention.
[0156] Применяется ли метод предсказания, осуществляемого между изображениями, основанный на аффинном движении, к текущему блоку, может быть определено на основании информации, проанализированной из битового потока. Подробно, применяется ли метод предсказания, осуществляемого между изображениями, основанный на аффинном движении, к текущему блоку, может быть определено на основании по меньшей мере одно из флага, указывающего, применяется ли аффинный режим слияния к текущему блоку, или флага, указывающего, применяется ли режим предсказания вектора аффинного движения к текущему блоку.[0156] 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 detail, whether the affine motion-based inter-image prediction method 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 or a flag indicating whether mode for predicting the affine motion vector to the current block.
[0157] Когда метод предсказания, осуществляемого между изображениями, основанный на аффинном движении, применяется к текущему блоку, может быть определена (S801) модель аффинного движения текущего блока. По меньшей мере одна из 6-параметрической модели аффинного движения или 4-параметрической модели аффинного движения может быть определена в качестве модели аффинного движения. 6-параметрическая модель аффинного движения выражает аффинную модель с использованием шести параметров, а 4-параметрическая модель аффинного движения выражает аффинную модель с использованием четырех параметров.[0157] When the inter-image prediction method based on affine motion is applied to the current block, the affine motion model of the current block can be determined (S801). At least one of the 6-parameter affine motion model or the 4-parameter affine motion model may be defined as an affine motion model. A 6-parameter affine motion model expresses an affine model using six parameters, and a 4-parameter affine motion model expresses an affine model using four parameters.
[0158] Уравнение 1 выражает аффинное движение с использованием шести параметров. Аффинное движение представляет поступательное движение для заданного участка, определенного аффинными исходными векторами.[0158] Equation 1 expresses affine motion using six parameters. Affine motion represents translational motion for a given region defined by affine source vectors.
[0159] [Уравнение 1][0159] [Equation 1]
[0160] Когда аффинное движение выражено с использованием шести параметров, может быть выражено полное движение, но количество бит, необходимое для кодирования параметров, может увеличиться, что тем самым снижает эффективность кодирования. Соответственно, аффинное движение может быть выражено с использованием четырех параметров. Уравнение 2 выражает аффинное движение с использованием четырех параметров.[0160] When affine motion is expressed using six parameters, the complete motion can be expressed, but the number of bits required to encode the parameters may increase, thereby reducing the encoding efficiency. Accordingly, affine motion can be expressed using four parameters. Equation 2 expresses the affine motion using four parameters.
[0161] [Уравнение 2][0161] [Equation 2]
[0162] Информация для определения модели аффинного движения текущей модели может быть кодирована и передана в битовом потоке. В качестве примера, информация может представлять собой 1-битный флаг «affine_type_flag». Значение флага, равное 0, может указывать, что применяется 4-параметрическая модель аффинного движения, и значение флага, равное 1, может указывать, что применяется 6-параметрическая модель аффинного движения. Флаг может быть кодирован в элементах слайсов, тайлов или блоков (например, блоках кодирования или элементах кодового дерева). Когда флаг передается на уровне слайса, модель аффинного движения, определенная на уровне слайса, может применяться ко всем блокам, принадлежащим к слайсу.[0162] Information for determining the affine motion model of the current model may be encoded and transmitted in a bit stream. As an example, the information may be a 1-bit flag "affine_type_flag". A flag value of 0 may indicate that a 4-parameter affine motion model is applied, and a flag value of 1 may indicate that a 6-parameter affine motion model is applied. The flag may be encoded in slice, tile, or block elements (for example, encoding blocks or code tree elements). 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.
[0163] Альтернативно модель аффинного движения текущего блока может быть определена на основании аффинного режима предсказания, осуществляемого между изображениями, текущего блока. В качестве примера, когда применяется аффинный режим слияния, может быть определено, что модель аффинного движения текущего блока представляет собой 4-параметрическую модель движения. С другой стороны, когда применяется режим предсказания вектора аффинного движения, информация для определения модели аффинного движения текущего блока может быть кодирована и передана в битовом потоке. В качестве примера, когда режим предсказания вектора аффинного движения применяется к текущему блоку, модель аффинного движения текущего блока может быть определена на основании 1-битного флага «affine_type_flag».[0163] Alternatively, the affine motion model of the current block may be determined based on the inter-image affine prediction mode of the current block. As an example, when the affine merging mode is applied, the affine motion model of the current block may be determined to be a 4-parameter motion model. On the other hand, when the affine motion vector prediction mode is applied, information for determining the affine motion model of the current block can be encoded and transmitted in a bit stream. As an example, when the affine motion vector prediction mode is applied to the current block, the affine motion model of the current block can be determined based on the 1-bit flag “affine_type_flag”.
[0164] Затем может быть получен (S802) аффинный исходный вектор текущего блока. Когда выбрана 4-параметрическая модель аффинного движения, могут быть получены векторы движения в двух контрольных точках текущего блока. С другой стороны, когда выбрана 6-параметрическая модель аффинного движения, могут быть получены векторы движения в трех контрольных точках текущего блока. Вектор движения в контрольной точке может называться аффинным исходным вектором. Контрольная точка может включать по меньшей мере один из верхнего левого угла, верхнего правого угла или нижнего левого угла текущего блока.[0164] The affine source vector of the current block can then be obtained (S802). 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, or bottom left corner of the current block.
[0165] На фиг. 9 представлено схематическое изображение, иллюстрирующее аффинный исходный вектор для каждой модели аффинного движения.[0165] In FIG. 9 is a schematic diagram illustrating the affine source vector for each affine motion model.
[0166] В 4-параметрической модели аффинного движения аффинные исходные векторы могут быть получены для двух из верхнего левого угла, верхнего правого угла или нижнего левого угла. Например, как и в примере, показанном на фиг. 9A, когда выбрана 4-параметрическая модель аффинного движения, аффинный вектор может быть получен с использованием аффинного исходного вектора sv0 для верхнего левого угла текущего блока (например, верхний левый отсчет (x0, y0)) и аффинного исходного вектора sv1 для верхнего правого угла текущего блока (например, верхний правый отсчет (x1, y1)). Аффинный исходный вектор для нижнего левого угла может использоваться вместо аффинного исходного вектора для верхнего левого угла, или аффинный исходный вектор для нижнего левого угла может использоваться вместо аффинного исходного вектора для верхнего правого угла.[0166] In the 4-parameter affine motion model, affine source vectors can be obtained for two of the upper left corner, upper right corner, or lower left corner. For example, as in the example shown in FIG. 9A, when the 4-parameter affine motion model is selected, the affine vector can be obtained using the affine source vector sv 0 for the top left corner of the current block (for example, the top left sample (x 0 , y 0 )) and the affine source vector sv 1 for top-right corner of the current block (for example, top-right count (x 1 , y 1 )). An affine source vector for the lower left corner can be used instead of an affine source vector for the upper left corner, or an affine source vector for the lower left corner can be used instead of an affine source vector for the upper right corner.
[0167] В 6-параметрической модели аффинного движения аффинные исходные векторы могут быть получены для верхнего левого угла, верхнего правого угла и нижнего левого угла. Например, как и в примере, показанном на фиг. 9B, когда выбрана 6-параметрическая модель аффинного движения, аффинный вектор может быть получен с использованием аффинного исходного вектора sv0 для верхнего левого угла текущего блока (например, верхний левый отсчет (x0, y0)), аффинного исходного вектора sv1 для верхнего правого угла текущего блока (например, верхний правый отсчет (x1, y1)) и аффинного исходного вектора sv2 для верхнего левого угла текущего блока (например, верхний левый отсчет (x2, y2)).[0167] 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 in the example shown in FIG. 9B, when the 6-parameter affine motion model is selected, the affine vector can be obtained using the affine source vector sv 0 for the top left corner of the current block (for example, the top left sample (x 0 , y 0 )), the affine source vector sv 1 for the top right corner of the current block (for example, the top right sample (x 1 , y 1 )) and the affine source vector sv 2 for the top left corner of the current block (for example, the top left sample (x 2 , y 2 )).
[0168] В следующем варианте осуществления при 4-параметрической модели аффинного движения аффинные исходные векторы для верхней левой контрольной точки и верхней правой контрольной точки будут называться первым аффинным исходным вектором и вторым аффинным исходным вектором соответственно. В следующих вариантах осуществления, в которых используются первый аффинный исходный вектор и второй аффинный исходный вектор, по меньшей мере один из первого аффинного исходного вектора и второго аффинного исходного вектора может быть заменен аффинным исходным вектором (третьим аффинным исходным вектором) для нижней левой контрольной точки или аффинным исходным вектором (четвертым аффинным исходным вектором) для нижней правой контрольной точки.[0168] In the following embodiment, under the 4-parameter affine motion model, the affine source vectors for 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 further embodiments in which a first affine seed vector and a second affine seed vector are used, at least one of the first affine seed vector and the second affine seed vector may be replaced by an affine seed vector (third affine seed vector) for the lower left reference point, or affine source vector (fourth affine source vector) for the bottom right control point.
[0169] Кроме того, при 6-параметрической модели аффинного движения аффинные исходные векторы верхней левой контрольной точки, верхней правой контрольной точки и нижней левой контрольной точки будут называться первым аффинным исходным вектором, вторым аффинным исходным вектором и третьим аффинным исходным вектором соответственно. В следующих вариантах осуществления, в которых используются первый аффинный исходный вектор, второй аффинный исходный вектор и третий аффинный исходный вектор, по меньшей мере один из первого аффинного исходного вектора, второго аффинного исходного вектора и третьего аффинного исходного вектора может быть заменен аффинным исходным вектором (четвертым аффинным исходным вектором) для нижней правой контрольной точки.[0169] In addition, under 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 further embodiments in which a first affine source vector, a second affine source vector, and a third affine source vector are used, at least one of the first affine source vector, the second affine source vector, and the third affine source vector may be replaced by an affine source vector (the fourth affine source vector) for the lower right control point.
[0170] Аффинный вектор может быть получен (S803) для каждого подблока с использованием аффинных исходных векторов. В этом случае аффинный вектор указывает вектор поступательного движения, полученный на основании аффинных исходных векторов. Аффинный вектор подблока может называться аффинным вектором движения подблока или вектором движения подблока.[0170] An affine vector can be obtained (S803) for each sub-block using the affine source vectors. In this case, the affine vector indicates the translational vector obtained from the affine source vectors. An affine subblock vector may be called an affine subblock motion vector or a subblock motion vector.
[0171] На фиг. 10 представлено схематическое изображение, иллюстрирующее аффинные векторы подблоков при 4-параметрической модели движения.[0171] In FIG. 10 is a schematic diagram illustrating the affine vectors of subblocks under a 4-parameter motion model.
[0172] Аффинный вектор подблока может быть получен на основании местоположения контрольной точки, местоположения подблока и аффинного исходного вектора. В качестве примера, в уравнении 3 показан пример получения аффинного вектора подблока.[0172] The affine subblock vector can be obtained based on the reference point location, the subblock location, and the affine source vector. As an example, Equation 3 shows an example of obtaining an affine subblock vector.
[0173] [Уравнение 3][0173] [Equation 3]
[0174] В уравнении 3 (x, y) представляет местоположение подблока. В этом случае местоположение подблока указывает местоположение опорного отсчета, включенного в подблок. Опорный отсчет может представлять собой отсчет, который расположен в верхнем левом углу подблока, или отсчет, у которого по меньшей мере координата x или координата y расположена по центру. (x0, y0) представляет местоположение первой контрольной точки, и (sv0x, sv0y) представляет первый аффинный исходный вектор. Кроме того, (x1, y1) представляет местоположение второй контрольной точки, и (sv1x, sv1y) представляет второй аффинный исходный вектор.[0174] In Equation 3, (x, y) represents the location of the sub-block. In this case, the location of the subblock indicates the location of the reference sample included in the subblock. The reference sample may be a sample that is located in the upper left corner of the subblock, or a sample that has at least an x coordinate or a y coordinate located in the center. (x 0 , y 0 ) represents the location of the first control point, and (sv 0x , sv 0y ) represents the first affine source vector. In addition, (x 1 , y 1 ) represents the location of the second control point, and (sv 1x , sv 1y ) represents the second affine source vector.
[0175] Когда первая контрольная точка и вторая контрольная точка соответствуют верхнему левому углу и верхнему правому углу текущего блока соответственно, x1-x0 может быть установлено на значение, равное ширине текущего блока.[0175] When the first reference point and the second reference point correspond to the upper left corner and upper 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.
[0176] После этого может быть выполнено (S804) предсказание с компенсацией движения для каждого подблока с использованием аффинного вектора соответствующего подблока. В результате выполнения предсказания с компенсацией движения может быть сгенерирован блок предсказания для каждого подблока. Блоки предсказания подблоков могут быть установлены как блок предсказания текущего блока.[0176] Thereafter, motion compensated prediction can be performed (S804) for each sub-block using the affine vector of the corresponding 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 the current block prediction block.
[0177] Аффинный исходный вектор текущего блока может быть получен на основании аффинного исходного вектора блока, соседнего с текущим блоком. Когда режим предсказания, осуществляемого между изображениями, текущего блока представляет собой аффинный режим слияния, аффинный исходный вектор кандидата на слияние, включенного в список кандидатов на слияние, может быть определен как аффинный исходный вектор текущего блока. Кроме того, когда режим предсказания, осуществляемого между изображениями, текущего блока представляет собой аффинный режим слияния, информация о движении, включающая по меньшей мере одно из индекса опорного изображения, флага предсказания конкретного направления или двунаправленного весового коэффициента текущего блока, может быть также установлена такой же, как кандидат на слияние.[0177] The affine source vector of the current block can be obtained based on the affine source vector of the block adjacent to the current block. When the inter-image prediction mode of the current block is an affine fusion mode, an affine source vector of a fusion candidate included in the fusion candidate list can be defined as an affine source vector of the current block. In addition, when the inter-picture prediction mode of the current block is an affine fusion mode, motion information including at least one of a reference image index, a specific direction prediction flag, or a bidirectional weight of the current block may also be set to the same , as a candidate for merger.
[0178] Кандидат на слияние может быть получен на основании соседнего блока текущего блока. Соседний блок может включать по меньшей мере один из пространственного соседнего блока, смежного в пространственном отношении с текущим блоком, и временного соседнего блока, включенного в изображение, отличающееся от текущего изображения.[0178] A merge candidate may be obtained based on a neighboring block of the current block. The neighbor block may include at least one of a spatial neighbor block spatially adjacent to the current block and a temporary neighbor block included in an image different from the current image.
[0179] На фиг. 11 представлено схематическое изображение, показывающее соседние блоки, которые могут использоваться для получения кандидата на слияние.[0179] In FIG. 11 is a schematic diagram showing neighboring blocks that can be used to obtain a merge candidate.
[0180] Соседний блок текущего блока может включать по меньшей мере один из соседнего блока (A), смежного с левой стороной текущего блока, соседнего блока (B), соседнего с верхней стороной текущего блока, соседнего блока (C), смежного с верхним правым углом текущего блока, соседнего блока (D), смежного с нижним левым углом текущего блока, или соседнего блока (E), смежного с верхним левым углом текущего блока. Когда верхний левый отсчет текущего блока имеет координаты (x0, y0), левый соседний блок A содержит отсчет, расположенный в (x0-1, y0+H-1), и верхний соседний блок B содержит отсчет, расположенный в (x0+W-1, y0-1). В этом случае W и H представляют ширину и высоту текущего блока соответственно. Верхний правый соседний блок C содержит отсчет, расположенный в (x0+W, y0-1), и нижний левый соседний блок D содержит отсчет, расположенный в (x0-1, y0+H). Верхний левый соседний блок E содержит отсчет, расположенный в (x0-1, y0-1).[0180] An adjacent block of a current block may include at least one of an adjacent block (A) adjacent to the left side of the current block, an adjacent block (B) adjacent to the top side of the current block, an adjacent block (C) adjacent to the top right the corner of the current block, an adjacent block (D) adjacent to the lower left corner of the current block, or an adjacent block (E) adjacent to the upper left corner of the current block. When the top left sample of the current block has coordinates (x 0 , y 0 ), the left neighbor block A contains the sample located at (x 0 -1, y 0 +H-1), and the top neighbor block B contains the sample located at ( x 0 +W-1, y 0 -1). In this case, W and H represent the width and height of the current block, respectively. The upper right adjacent block C contains a sample located at (x 0 +W, y 0 -1), and the lower left adjacent block D contains a sample located at (x 0 -1, y 0 +H). The top left adjacent block E contains a sample located at (x 0 -1, y 0 -1).
[0181] Когда соседний блок кодирован в аффинном режиме предсказания, осуществляемого между изображениями, аффинный исходный вектор кандидата на слияние может быть получен на основании аффинного исходного вектора соответствующего соседнего блока. Далее соседний блок, кодированный в аффинном режиме предсказания, осуществляемого между изображениями, будет называться аффинным соседним блоком, и кандидат на слияние, полученный из аффинного соседнего блока, будет называться аффинным кандидатом на слияние.[0181] When a neighbor block is encoded in an affine inter-picture prediction mode, the affine source vector of a merge candidate can be obtained based on the affine source vector of the corresponding neighbor block. Hereinafter, a neighbor block encoded in the affine inter-image prediction mode will be called an affine neighbor block, and a merge candidate obtained from an affine neighbor block will be called an affine merge candidate.
[0182] Соседние блоки могут быть обнаружены в предварительно заданном порядке сканирования для генерирования аффинного кандидата на слияние для текущего блока. Порядок сканирования может быть предварительно задан в кодере и декодере. В качестве примера, обнаружение соседних блоков может осуществляться в следующем порядке: A, B, C, D и E. Кроме того, кандидаты на аффинное слияние могут быть последовательно получены из обнаруженных аффинных соседних блоков. Альтернативно порядок сканирования может быть адаптивно определен на основании по меньшей мере одного из размера, формы или модели аффинного движения текущего блока. То есть порядки сканирования для блоков, у которых отличается по меньшей мере одно из размера, формы и модели аффинного движения, могут отличаться друг от друга.[0182] Neighboring blocks can be detected in a predefined scan order to generate an affine merge candidate for the current block. The scanning order can be preset in the encoder and decoder. As an example, neighboring blocks can be detected in the following order: A, B, C, D, and E. In addition, affine merge candidates can be sequentially obtained from the detected affine neighboring blocks. Alternatively, the scanning order may be adaptively determined based on at least one of the size, shape, or affine motion model of the current block. That is, scan orders for blocks that differ in at least one of size, shape, and affine motion pattern may differ from each other.
[0183] Альтернативно может осуществляться последовательное обнаружение блоков, расположенных сверху текущего блока, для получения одного аффинного кандидата на слияние из аффинного соседнего блока, обнаруженного первым, и может осуществляться последовательное обнаружение блоков, расположенных слева от текущего блока, для получения одного аффинного кандидата на слияние из аффинного соседнего блока, найденного первым. В этом случае соседние блоки, расположенные сверху текущего блока, могут включать по меньшей мере один из соседнего блока E, соседнего блока B или соседнего блока C, и блоки, расположенные слева от текущего блока, могут включать по меньшей мере один из блока A или блока D. В этом случае соседний блок E может быть классифицирован как блок, расположенный слева от текущего блока.[0183] Alternatively, blocks located on top of the current block may be sequentially discovered to obtain one affine merge candidate from the affine neighboring block discovered first, and blocks located to the left of the current block may be sequentially discovered to obtain one affine merge candidate from the affine neighboring block found first. In this case, neighboring blocks located on top of the current block may include at least one of adjacent block E, adjacent block B, or adjacent block C, and blocks located to the left of the current block may include at least one of block A or block D. In this case, the adjacent block E can be classified as the block located to the left of the current block.
[0184] Хотя это не показано, аффинный кандидат на слияние может быть получен из временного соседнего блока текущего блока. В этом случае временной соседний блок может включать блок, расположенный в том же местоположении в совмещаемом изображении, что и текущий блок или блок, смежный с текущим блоком. Подробно, когда временной соседний блок текущего блока кодирован в аффинном режиме предсказания, осуществляемого между изображениями, аффинный кандидат на слияние может быть получен на основании аффинного исходного вектора временного аффинного кандидата на слияние.[0184] Although not shown, an affine merge candidate may be obtained from a temporary neighbor of the current block. In this case, the temporary neighboring block may include a block located at the same location in the fusion image as the current block or a block adjacent to the current block. In detail, when a temporal neighbor block of a current block is encoded in an affine inter-picture prediction mode, an affine merge candidate can be obtained based on the affine source vector of the temporal affine merge candidate.
[0185] Может быть сгенерирован список кандидатов на слияние, содержащий аффинных кандидатов на слияние, и аффинный исходный вектор одного из кандидатов на слияние, включенных в список кандидатов на слияние, может быть определен как аффинный исходный вектор текущего блока. Для этого информация об индексах для идентификации одного из кандидатов на слияние может быть кодирована и передана в битовом потоке.[0185] A merge candidate list containing affine merge candidates may be generated, and an affine source vector of one of the merge candidates included in the merge candidate list may be determined to be the affine source vector of the current block. To achieve this, index information for identifying one of the merge candidates may be encoded and transmitted in a bit stream.
[0186] В качестве другого примера, пока осуществляется обнаружение соседних блоков в порядке сканирования, аффинный исходный вектор текущего блока может быть получен из аффинного исходного вектора аффинного соседнего блока, найденного первым.[0186] As another example, while neighboring blocks are detected in scan order, the affine source vector of the current block can be obtained from the affine source vector of the affine neighbor block found first.
[0187] Аффинный исходный вектор текущего блока может быть получен с использованием аффинного исходного вектора соседнего блока в аффинном режиме слияния.[0187] The affine source vector of the current block can be obtained using the affine source vector of the neighboring block in affine merge mode.
[0188] Когда режим предсказания, осуществляемого между изображениями, текущего блока представляет собой режим предсказания вектора аффинного движения, аффинный исходный вектор кандидата на предсказание вектора движения, включенного в кандидата на предсказание вектора движения, может быть определен как значение предсказания аффинного исходного вектора текущего блока. Аффинный исходный вектор текущего блока может быть получен путем добавления значения разницы аффинных исходных векторов к значению предсказания аффинного исходного вектора.[0188] When the inter-picture prediction mode of the current block is an affine motion vector prediction mode, the affine source vector of the motion vector prediction candidate included in the motion vector prediction candidate can be determined as the affine source vector prediction value of the current block. The affine source vector of the current block can be obtained by adding the difference value of the affine source vectors to the prediction value of the affine source vector.
[0189] Кандидат на предсказание аффинного исходного вектора может быть получен на основании соседнего блока текущего блока. Подробно обнаружение соседних блоков, расположенных сверху текущего блока, осуществляется в предварительно определенном порядке сканирования, и первый кандидат на предсказание аффинного исходного вектора может быть получен из аффинного соседнего блока, найденного первым. Также обнаружение соседних блоков, расположенных слева от текущего блока, осуществляется в предварительно определенном порядке сканирования, и второй кандидат на предсказание аффинного исходного вектора может быть получен из аффинного соседнего блока, найденного первым.[0189] An affine source vector prediction candidate can be obtained based on a neighboring block of the current block. In detail, the detection of neighboring blocks located on top of the current block is carried out in a predetermined scanning order, and the first candidate for affine seed vector prediction can be obtained from the affine neighboring block found first. Also, the detection of neighboring blocks located to the left of the current block is carried out in a predetermined scan order, and the second candidate for affine seed vector prediction can be obtained from the affine neighboring block found first.
[0190] Информация для определения значения разницы аффинных исходных векторов может быть кодирована и передана в битовом потоке. Информация может включать информацию о размере, указывающую размер значения разницы аффинных исходных векторов, и информацию о знаке, указывающую знак значения разницы аффинных исходных векторов. Значение разницы аффинных исходных векторов для каждой контрольной точки может быть установлено равным одинаковому значению. Альтернативно значение разницы аффинных исходных векторов может быть установлено по-разному в зависимости от контрольной точки.[0190] Information for determining the difference value of the affine source vectors may be encoded and transmitted in the bit stream. The information may include size information indicating the size of the difference value of the affine source vectors, and sign information indicating the sign of the difference value of the affine source vectors. The difference value of the affine source vectors for each control point can be set to the same value. Alternatively, the difference value of the affine source vectors can be set differently depending on the reference point.
[0191] Как описано выше, аффинный исходный вектор аффинного кандидата на слияние или кандидата на предсказание аффинного исходного вектора получен из аффинного исходного вектора аффинного соседнего блока, и аффинный исходный вектор текущего блока может быть получен с использованием полученного аффинного исходного вектора аффинного кандидата на слияние или кандидата на предсказание аффинного исходного вектора. Альтернативно после осуществления обнаружения аффинных соседних блоков в предварительно определенном порядке сканирования, аффинный исходный вектор текущего блока может быть получен из аффинного исходного вектора аффинного соседнего блока, найденного первым.[0191] As described above, the affine source vector of the affine merge candidate or the affine source vector prediction candidate is obtained from the affine source vector of the affine neighboring block, and the affine source vector of the current block can be obtained using the obtained affine source vector of the affine merge candidate or candidate for predicting the affine source vector. Alternatively, after performing affine neighbor detection in a predetermined scanning order, the affine source vector of the current block can be obtained from the affine source vector of the affine neighbor block found first.
[0192] Ниже будет подробно описан способ получения аффинного исходного вектора текущего блока, аффинного кандидата на слияние или кандидата на предсказание аффинного исходного вектора из аффинного исходного вектора аффинного соседнего блока. В следующих вариантах осуществления получение аффинного исходного вектора текущего блока может также пониматься как получение аффинного исходного вектора аффинного кандидата на слияние или получение аффинного исходного вектора кандидата на предсказание аффинного исходного вектора.[0192] A method for obtaining an affine source vector of a current block, an affine merge candidate, or a prediction candidate affine source vector from an affine source vector of an affine neighboring block will be described in detail below. In further embodiments, obtaining the affine source vector of the current block may also be understood as obtaining the affine source vector of the affine merge candidate or obtaining the affine source vector of the prediction affine source vector.
[0193] На фиг. 12 представлено схематическое изображение, показывающее пример получения аффинного исходного вектора текущего блока на основании аффинного исходного вектора аффинного соседнего блока.[0193] In FIG. 12 is a schematic diagram showing an example of obtaining an affine source vector of a current block based on an affine source vector of an affine neighboring block.
[0194] Когда первый аффинный исходный вектор nv0 для верхней левой контрольной точки и второй аффинный исходный вектор nv1 для верхней правой контрольной точки сохраняются для аффинного соседнего блока, третий аффинный исходный вектор nv2 для нижней левой контрольной точки аффинного соседнего блока может быть получен на основании первого аффинного исходного вектора и второго аффинного исходного вектора. В уравнении 4 показан пример получения третьего аффинного исходного вектора.[0194] When the first affine source vector nv 0 for the top left control point and the second affine source vector nv 1 for the top right control point are stored for the affine neighbor block, the third affine source vector nv 2 for the bottom left control point of the affine neighbor block can be obtained based on the first affine seed vector and the second affine seed vector. Equation 4 shows an example of obtaining a third affine seed vector.
[0195] [Уравнение 4][0195] [Equation 4]
[0196] В уравнении 4 (nv0x, nv0y) представляет первый аффинный исходный вектор nv0, (nv1x, nv1y) представляет второй аффинный исходный вектор nv1, и (nv2x, nv2y) представляет третий аффинный исходный вектор nv2. Кроме того, (xn0, xn0) представляет местоположение первой контрольной точки, (xn1, xn1) представляет местоположение второй контрольной точки, и (xn2, xn2) представляет местоположение третьей контрольной точки.[0196] In Equation 4, (nv 0x , nv 0y ) represents the first affine source vector nv 0 , (nv 1x , nv 1y ) represents the second affine source vector nv 1 , and (nv 2x , nv 2y ) represents the third affine source vector nv 2 . In addition, (x n0 , x n0 ) represents the location of the first control point, (x n1 , x n1 ) represents the location of the second control point, and (x n2 , x n2 ) represents the location of the third control point.
[0197] После этого аффинный исходный вектор текущего блока может быть получен с использованием первого аффинного исходного вектора, второго аффинного исходного вектора и третьего аффинного исходного вектора. В уравнении 5 показан пример получения первого аффинного исходного вектора v0 текущего блока, и в уравнении 6 показан пример получения второго аффинного исходного вектора v1 текущего блока.[0197] Thereafter, the affine source vector of the current block can be obtained using the first affine source vector, the second affine source vector, and the third affine source vector. Equation 5 shows an example of obtaining the first affine source vector v 0 of the current block, and Equation 6 shows an example of obtaining the second affine source vector v 1 of the current block.
[0198] [Уравнение 5][0198] [Equation 5]
[0199] [Уравнение 6][0199] [Equation 6]
[0200] В уравнении 5 и уравнении 6 (v0x, v0y) представляет первый аффинный исходный вектор sv0 текущего блока, и (v1x, v1y) представляет второй аффинный исходный вектор sv1 текущего блока. Кроме того, (x0, y0) представляет местоположение первой контрольной точки, и (x1, y1) представляет местоположение второй контрольной точки. Например, первая контрольная точка указывает верхний левый угол текущего блока, и вторая контрольная точка указывает верхний правый угол текущего блока.[0200] In Equation 5 and Equation 6, (v 0x , v 0y ) represents the first affine source vector sv 0 of the current block, and (v 1x , v 1y ) represents the second affine source vector sv 1 of the current block. In addition, (x 0 , y 0 ) represents the location of the first control point, and (x 1 , y 1 ) represents the location of the second control point. For example, the first control point indicates the top left corner of the current block, and the second control point indicates the top right corner of the current block.
[0201] В примере, описанном выше, было описано, что аффинные исходные векторы текущего блока получены с использованием трех аффинных исходных векторов для аффинного соседнего блока. В качестве другого примера аффинные исходные векторы текущего блока могут быть получены с использованием только двух из аффинных исходных векторов аффинного соседнего блока.[0201] In the example described above, it was described that the affine source vectors of the current block are obtained using three affine source vectors for the affine neighboring block. As another example, the affine source vectors of the current block can be obtained using only two of the affine source vectors of an affine neighboring block.
[0202] Альтернативно аффинные исходные векторы текущего блока могут быть получены с использованием четвертого аффинного исходного вектора для нижнего правого угла вместо первого аффинного исходного вектора для верхнего левого угла, второго аффинного исходного вектора для верхнего правого угла или третьего аффинного исходного вектора для нижнего левого угла относительно аффинного соседнего блока.[0202] Alternatively, the affine source vectors of the current block can be obtained using a fourth affine source vector for the lower right corner instead of the first affine source vector for the upper left corner, the second affine source vector for the upper right corner, or the third affine source vector for the lower left corner relative to affine neighboring block.
[0203] В частности, когда верхний край текущего блока прилегает к верхнему краю элемента кодового дерева, и предполагается использовать аффинный исходный вектор для верхней контрольной точки (например, верхний левый угол или верхний правый угол) аффинного соседнего блока, смежного с верхней стороной текущего блока (далее называемого верхним аффинным соседним блоком), этот аффинный исходный вектор необходимо предварительно сохранить в запоминающем устройстве. Соответственно, может возникнуть проблема увеличения количества линейных буферов. Таким образом, когда верхний край текущего блока прилегает к верхнему краю элемента кодового дерева, установка может быть осуществлена таким образом, что аффинный исходный вектор для нижней контрольной точки (например, нижний левый угол или нижний правый угол) вместо аффинного исходного вектора для верхней контрольной точки используется для верхнего аффинного соседнего блока. В качестве примера, аффинные исходные векторы текущего блока могут быть получены с использованием третьего аффинного исходного вектора для нижнего левого угла и четвертого аффинного исходного вектора для нижнего правого угла относительно верхнего аффинного соседнего блока. В этом случае аффинные исходные векторы для нижних углов могут быть получены путем копирования аффинных исходных векторов для верхних углов или из аффинных исходных векторов для верхних углов. В качестве примера, четвертый аффинный исходный вектор для нижнего правого угла может быть использован посредством преобразования или замены первого аффинного исходного вектора, второго аффинного исходного вектора или третьего аффинного исходного вектора.[0203] Specifically, when the top edge of the current block is adjacent to the top edge of a code tree element, and it is intended to use an affine source vector for the top reference point (e.g., top left corner or top right corner) of an affine neighbor block adjacent to the top side of the current block (hereinafter referred to as the upper affine neighbor block), this affine source vector must first be stored in a storage device. Accordingly, the problem of increasing the number of linear buffers may arise. Thus, when the top edge of the current block is adjacent to the top edge of a code tree element, the setting can be made such that the affine source vector for the bottom reference point (e.g. bottom left corner or bottom right corner) instead of the affine source vector for the top reference point used for the top affine neighbor block. As an example, the affine source vectors of the current block can be obtained using a third affine source vector for the lower left corner and a fourth affine source vector for the lower right corner relative to the upper affine adjacent block. In this case, the affine source vectors for the bottom corners can be obtained by copying the affine source vectors for the top corners or from the affine source vectors for the top corners. As an example, a fourth affine source vector for the lower right corner may be used by transforming or replacing the first affine source vector, the second affine source vector, or the third affine source vector.
[0204] В уравнении 7 и уравнении 8 показаны примеры получения первого аффинного исходного вектора и второго аффинного исходного вектора текущего блока с использованием третьего аффинного исходного вектора для нижней левой контрольной точки соседнего аффинного вектор и четвертого аффинного исходного вектора для нижней правой контрольной точки соседнего аффинного вектора.[0204] Equation 7 and Equation 8 show examples of obtaining a first affine source vector and a second affine source vector of the current block using a third affine source vector for the lower left control point of an adjacent affine vector and a fourth affine source vector for the lower right control point of an adjacent affine vector .
[0205] [Уравнение 7][0205] [Equation 7]
[0206] [Уравнение 8][0206] [Equation 8]
[0207] В уравнении 7 и уравнении 8 (xn2, yn2) представляет координаты нижней левой контрольной точки аффинного соседнего блока, и (xn3, yn3) представляет координаты нижней правой контрольной точки аффинного соседнего блока. (x0, y0) представляет координаты верхней левой контрольной точки текущего блока, и (x1, y1) представляет координаты верхней правой контрольной точки текущего блока. (nv2x, nv2y) представляет аффинный исходный вектор для нижней левой контрольной точки (т. е. третьего аффинного исходного вектора) аффинного соседнего блока, и (nv3x, nv3y) представляет аффинный исходный вектор для нижней правой контрольной точки (т. е. четвертого аффинного исходного вектора) аффинного соседнего блока. (v0x, v0y) представляет аффинный исходный вектор для верхней левой контрольной точки (т. е. первого аффинного исходного вектора) текущего блока, и (v1x, v1y) представляет аффинный исходный вектор для верхней правой контрольной точки (т. е. второго аффинного исходного вектора) текущего блока.[0207] In Equation 7 and Equation 8, (x n2 , y n2 ) represents the coordinates of the bottom left control point of the affine neighbor block, and (x n3 , y n3 ) represents the coordinates of the bottom right control point of the affine neighbor block. (x 0 , y 0 ) represents the coordinates of the top left control point of the current block, and (x 1 , y 1 ) represents the coordinates of the top right control point of the current block. (nv 2x , nv 2y ) represents the affine source vector for the bottom left reference point (i.e., the third affine source vector) of the affine neighbor block, and (nv 3x , nv 3y ) represents the affine source vector for the bottom right reference point (i.e. e. the fourth affine source vector) of the affine neighboring block. (v 0x , v 0y ) represents the affine source vector for the top left control point (i.e., the first affine source vector) of the current block, and (v 1x , v 1y ) represents the affine source vector for the top right control point (i.e. . second affine source vector) of the current block.
[0208] Операция деления, включенная в уравнение 7 и уравнение 8, может быть изменена на операцию битового сдвига. Операция битового сдвига может быть выполнена на основании значения, полученного из ширины (т. е. xn3-xn2) между нижней левой контрольной точкой и нижней правой контрольной точкой.[0208] The division operation included in Equation 7 and Equation 8 may be changed to a bit shift operation. A bit shift operation can be performed based on the value obtained from the width (i.e. x n3 -x n2 ) between the bottom left reference point and the bottom right reference point.
[0209] Как и в примере, представленном выше, аффинные исходные векторы текущего блока могут быть получены из аффинных исходных векторов аффинного соседнего блока, где осуществлено кодирование или декодирование. Для этого аффинные исходные векторы аффинного соседнего блока, где осуществлено кодирование или декодирование, должны сохраняться в запоминающем устройстве. Однако, поскольку аффинные исходные векторы аффинного соседнего блока сохраняются в запоминающем устройстве в дополнение к векторам поступательного движения (т. е. аффинным векторам) подблоков, включенных в аффинный соседний блок, существует проблема увеличения объема использования запоминающего устройства. Для решения этой проблемы аффинный исходный вектор текущего блока может быть получен с использованием вектора движения подблока, смежного с контрольной точкой аффинного соседнего блока, вместо аффинного исходного вектора аффинного соседнего блока. То есть вектор движения подблока, смежного с контрольной точкой аффинного соседнего блока, может быть установлен как аффинный исходный вектор аффинного соседнего блока. В этом случае подблок может представлять собой блок с предварительно заданными размером или формой в кодере и декодере и может представлять собой блок с базовыми размером или формой, где сохраняется вектор движения. В качестве примера, подблок может представлять собой квадратный блок 4×4. Альтернативно вектор движения для конкретного местоположения отсчета может быть установлен как аффинный исходный вектор аффинного соседнего блока.[0209] As in the example presented above, the affine source vectors of the current block can be obtained from the affine source vectors of the affine neighboring block where encoding or decoding is performed. To do this, the affine source vectors of the affine neighboring block where encoding or decoding is performed must be stored in a storage device. However, since the affine source vectors of the affine neighbor block are stored in the memory in addition to the translational vectors (ie, affine vectors) of the sub-blocks included in the affine neighbor block, there is a problem of increasing the storage usage. To solve this problem, the affine source vector of the current block can be obtained using the motion vector of the subblock adjacent to the reference point of the affine neighbor block, instead of the affine source vector of the affine neighbor block. That is, the motion vector of a subblock adjacent to the reference point of an affine neighbor block can be set as the affine source vector of the affine neighbor block. In this case, a sub-block may be a block with a predetermined size or shape in the encoder and decoder, and may be a block with a basic size or shape where the motion vector is stored. As an example, the subblock may be a 4x4 square block. Alternatively, the motion vector for a particular sample location can be set to the affine source vector of the affine neighbor block.
[0210] На фиг. 13 представлено схематическое изображение, показывающее пример установки вектора движения подблока в качестве аффинного исходного вектора аффинного соседнего блока.[0210] In FIG. 13 is a schematic diagram showing an example of setting a motion vector of a sub-block as an affine source vector of an affine neighboring block.
[0211] Вектор движения подблока, смежного с контрольной точкой, может быть установлен как аффинный исходный вектор соответствующей контрольной точки. В качестве примера, как и в примере, показанном на фиг. 13, вектор движения (nv4x, nv4y) подблока, смежного с нижним левым углом (нижнего левого подблока) аффинного соседнего блока, может быть установлен как аффинный исходный вектор (nv2x, nv2x) для нижней левой контрольной точки, и вектор движения (nv5x, nv5y) подблока, смежного с нижним правым углом (нижнего правого подблока), может быть установлен как аффинный исходный вектор (nv3x, nv3y) для контрольной точки в нижнем правом углу. В этом случае нижний левый подблок может означать подблок, содержащий отсчет, смежный с нижней левой контрольной точкой (xn2, yn2) в соседнем аффинном блоке, (например, отсчет, расположенный в (xn2, yn2-1)) и нижний правый подблок может означать блок, содержащий отсчет, смежный с нижней правой контрольной точкой (xn3, yn3) в соседнем аффинном блоке (например, отсчет, расположенный в (xn3-1, yn3-1)). Когда аффинные исходные векторы текущего блока получены на основании уравнения 7 и уравнения 8, третий аффинный исходный вектор аффинного соседнего блока может быть заменен вектором движения нижнего левого подблока, и четвертый аффинный исходный вектор может быть заменен вектором движения нижнего правого подблока.[0211] The motion vector of a subblock adjacent to a reference point may be set as an affine source vector of the corresponding reference point. As an example, as in the example shown in FIG. 13, the motion vector (nv 4x , nv 4y ) of the sub-block adjacent to the lower left corner (lower left sub-block) of the affine neighboring block can be set as the affine source vector (nv 2x , nv 2x ) for the lower left control point, and the motion vector (nv 5x , nv 5y ) of the subblock adjacent to the lower right corner (lower right subblock) can be set as an affine source vector (nv 3x , nv 3y ) for the control point in the lower right corner. In this case, the lower left subblock may mean the subblock containing a sample adjacent to the lower left control point (x n2 , y n2 ) in an adjacent affine block, (for example, a sample located at (x n2 , y n2 -1)) and the lower right sub-block may mean a block containing a sample adjacent to the lower right control point (x n3 , y n3 ) in an adjacent affine block (for example, a sample located at (x n3 -1, y n3 -1)). When the affine source vectors of the current block are obtained based on Equation 7 and Equation 8, the third affine source vector of the affine neighboring block can be replaced by the motion vector of the lower left sub-block, and the fourth affine source vector can be replaced by the motion vector of the lower right sub-block.
[0212] В следующем варианте осуществления подблок, используемый как аффинный исходный вектор аффинного соседнего блока, будет называться аффинным подблоком.[0212] In the following embodiment, a subblock used as an affine source vector of an affine neighbor block will be called an affine subblock.
[0213] Согласно варианту осуществления настоящего изобретения аффинный подблок может быть определен на основании отсчета, расположенного в конкретном местоположении. В качестве примера, подблок, содержащий отсчет, расположенный в конкретном местоположении, может быть установлен как аффинный подблок. Далее отсчет, расположенный в конкретном местоположении, будет называться опорным отсчетом. Кроме того, опорный отсчет, используемый для определения аффинного подблока для нижней левой контрольной точки, будет называться нижним левым опорным отсчетом, и опорный отсчет, используемый для определения аффинного подблока для нижней правой контрольной точки, будет называться нижним правым опорным отсчетом.[0213] According to an embodiment of the present invention, an affine subblock can be determined based on a sample located at a specific location. As an example, a subblock containing a sample located at a particular location may be set as an affine subblock. In the following, the sample located at a specific location will be called the reference sample. In addition, the reference sample used to determine the affine subblock for the lower left reference point will be referred to as the lower left reference sample, and the reference sample used to determine the affine subblock for the lower right reference point will be referred to as the lower right reference sample.
[0214] Нижний левый опорный отсчет и нижний правый опорный отсчет могут быть выбраны из отсчетов, включенных в аффинный соседний блок. В качестве примера по меньшей мере один из верхнего левого отсчета, нижнего левого отсчета, верхнего правого отсчета или нижнего левого отсчета нижнего левого подблока установлен в качестве нижнего левого опорного отсчета, и по меньшей мере один из верхнего левого отсчета, нижнего левого отсчета, верхнего правого отсчета или нижнего левого отсчета нижнего правого подблока установлен в качестве нижнего правого опорного отсчета. Соответственно, векторы движения нижнего левого подблока, содержащего нижний левый опорный отсчет, и нижнего правого подблока, содержащего нижний правый опорный отсчет, могут быть установлены как аффинный исходный вектор для нижней левой контрольной точки и аффинный исходный вектор для нижней правой контрольной точки соответственно.[0214] The lower left reference sample and the lower right reference sample may be selected from samples included in the affine adjacent block. As an example, at least one of the upper left sample, lower left sample, upper right sample, or lower left sample of the lower left subblock is set as the lower left reference sample, and at least one of the upper left sample, lower left sample, upper right reference or the lower left sample of the lower right subblock is set as the lower right reference sample. Accordingly, the motion vectors of the lower left sub-block containing the lower left reference sample and the lower right sub-block containing the lower right reference sample can be set as an affine source vector for the lower left reference point and an affine source vector for the lower right reference point, respectively.
[0215] В качестве другого примера по меньшей мере один из нижнего левого опорного отсчета или нижнего правого опорного отсчета может быть установлен как отсчет, расположенный за пределами аффинного соседнего блока. Это будет описано подробно ниже со ссылкой на фиг. 14-16.[0215] As another example, at least one of the lower left reference sample or the lower right reference sample may be set to be a sample located outside the affine neighbor block. This will be described in detail below with reference to FIG. 14-16.
[0216] На фиг. 14-16 представлены схематические изображения, показывающие местоположение опорного отсчета.[0216] In FIG. 14-16 are schematic diagrams showing the location of the reference count.
[0217] Как и в примере, показанном на фиг. 14A, для нижней левой контрольной точки верхний левый отсчет нижнего левого подблока может быть установлен как опорный отсчет (xn4, yn4). Таким образом, нижний левый подблок, содержащий опорный отсчет (xn4, yn4), может быть установлен как аффинный подблок для нижней левой контрольной точки.[0217] As in the example shown in FIG. 14A, for the lower left reference point, the upper left sample of the lower left sub-block may be set as the reference sample (x n4 , y n4 ). Thus, the lower left subblock containing the reference sample (x n4 , y n4 ) can be set as an affine subblock for the lower left reference point.
[0218] Для нижней правой контрольной точки отсчет, расположенный справа от верхнего правого отсчета нижнего правого подблока, может быть установлен как опорный отсчет (xn5, yn5). Таким образом, подблок, смежный с правой стороной нижнего правого подблока, содержащего опорный отсчет (xn5, yn5), может быть установлен как аффинный подблок для нижней правой контрольной точки.[0218] For the lower right reference point, a sample located to the right of the upper right sample of the lower right sub-block may be set as the reference sample (x n5 , y n5 ). Thus, a subblock adjacent to the right side of the lower right subblock containing the reference sample (x n5 , y n5 ) can be set as an affine subblock for the lower right reference point.
[0219] Альтернативно, как и в примере, показанном на фиг. 14B, для нижней левой контрольной точки отсчет, расположенный слева от верхнего левого отсчета нижнего левого подблока, может быть установлен как опорный отсчет (xn4, yn4). Таким образом, подблок, смежный с левой стороной нижнего левого подблока, содержащего опорный отсчет (xn4, yn4), может быть установлен как аффинный подблок для нижней левой контрольной точки.[0219] Alternatively, as in the example shown in FIG. 14B, for the lower left reference point, a sample located to the left of the upper left sample of the lower left sub-block may be set as a reference sample (x n4 , y n4 ). Thus, a subblock adjacent to the left side of the lower left subblock containing the reference sample (x n4 , y n4 ) can be set as an affine subblock for the lower left reference point.
[0220] Для нижней правой контрольной точки верхний правый отсчет нижнего правого подблока может быть установлен как опорный отсчет (xn5, yn5). Таким образом, нижний правый подблок, содержащий опорный отсчет (xn5, yn5), может быть установлен как аффинный подблок для нижней правой контрольной точки.[0220] For the lower right reference point, the upper right sample of the lower right subblock may be set as the reference sample (x n5 , y n5 ). Thus, the lower right subblock containing the reference sample (x n5 , y n5 ) can be set as an affine subblock for the lower right reference point.
[0221] Альтернативно, как и в примере, показанном на фиг. 15A, для нижней левой контрольной точки нижний левый отсчет нижнего левого подблока может быть установлен как опорный отсчет (xn4, yn4). Таким образом, нижний левый подблок, содержащий опорный отсчет (xn4, yn4), может быть установлен как аффинный подблок для нижней левой контрольной точки.[0221] Alternatively, as in the example shown in FIG. 15A, for the lower left reference point, the lower left count of the lower left sub-block may be set as the reference count (x n4 , y n4 ). Thus, the lower left subblock containing the reference sample (x n4 , y n4 ) can be set as an affine subblock for the lower left reference point.
[0222] Для нижней правой контрольной точки отсчет, расположенный справа от нижнего правого отсчета нижнего правого подблока, может быть установлен как опорный отсчет (xn5, yn5). Таким образом, подблок, смежный с правой стороной нижнего правого подблока, содержащего опорный отсчет (xn5, yn5), может быть установлен как аффинный подблок для нижней правой контрольной точки.[0222] For the lower right reference point, a sample located to the right of the lower right sample of the lower right subblock may be set as the reference sample (x n5 , y n5 ). Thus, a subblock adjacent to the right side of the lower right subblock containing the reference sample (x n5 , y n5 ) can be set as an affine subblock for the lower right reference point.
[0223] Альтернативно, как и в примере, показанном на фиг. 15B, для нижней левой контрольной точки отсчет, расположенный слева от нижнего левого отсчета нижнего левого подблока, может быть установлен как опорный отсчет (xn4, yn4). Таким образом, подблок, смежный с левой стороной нижнего левого подблока, содержащего опорный отсчет (xn4, yn4), может быть установлен как аффинный подблок для нижней левой контрольной точки.[0223] Alternatively, as in the example shown in FIG. 15B, for the lower left reference point, a sample located to the left of the lower left sample of the lower left sub-block may be set as a reference sample (x n4 , y n4 ). Thus, a subblock adjacent to the left side of the lower left subblock containing the reference sample (x n4 , y n4 ) can be set as an affine subblock for the lower left reference point.
[0224] Для нижней правой контрольной точки нижний правый отсчет нижнего правого подблока может быть установлен как опорный отсчет (xn5, yn5). Таким образом, нижний правый подблок, содержащий опорный отсчет (xn5, yn5), может быть установлен как аффинный подблок для нижней правой контрольной точки.[0224] For the lower right reference point, the lower right sample of the lower right subblock may be set as the reference sample (x n5 , y n5 ). Thus, the lower right subblock containing the reference sample (x n5 , y n5 ) can be set as an affine subblock for the lower right reference point.
[0225] Альтернативно, как и в примере, показанном на фиг. 16A, для нижней левой контрольной точки отсчет, расположенный между верхним левым отсчетом и нижним левым отсчетом нижнего левого подблока (например, средний левый отсчет), может быть установлен как опорный отсчет (xn4, yn4). Таким образом, нижний левый подблок, содержащий опорный отсчет (xn4, yn4), может быть установлен как аффинный подблок для нижней левой контрольной точки.[0225] Alternatively, as in the example shown in FIG. 16A, for the lower left reference point, a sample located between the upper left sample and the lower left sample of the lower left sub-block (eg, the middle left sample) may be set as the reference sample (x n4 , y n4 ). Thus, the lower left subblock containing the reference sample (x n4 , y n4 ) can be set as an affine subblock for the lower left reference point.
[0226] Для нижней правой контрольной точки отсчет, расположенный справа от отсчета, расположенного между верхним правым отсчетом и нижним правым отсчетом нижнего правого подблока (например, средний правый отсчет), может быть установлен как опорный отсчет (xn5, yn5). Таким образом, подблок, смежный с правой стороной нижнего правого подблока, содержащего опорный отсчет (xn5, yn5), может быть установлен как аффинный подблок для нижней правой контрольной точки.[0226] For the lower right reference point, a sample located to the right of a sample located between the upper right sample and the lower right sample of the lower right subblock (eg, the middle right sample) may be set as the reference sample (x n5 , y n5 ). Thus, a subblock adjacent to the right side of the lower right subblock containing the reference sample (x n5 , y n5 ) can be set as an affine subblock for the lower right reference point.
[0227] Альтернативно, как и в примере, показанном на фиг. 16B, для нижней левой контрольной точки отсчет, расположенный слева от отсчета, расположенного между верхним левым отсчетом и нижним левым отсчетом нижнего левого подблока, может быть установлен как опорный отсчет (xn4, yn4). Таким образом, подблок, смежный с левой стороной нижнего левого подблока, содержащего опорный отсчет (xn4, yn4), может быть установлен как аффинный подблок для нижней левой контрольной точки.[0227] Alternatively, as in the example shown in FIG. 16B, for the lower left reference point, a sample located to the left of a sample located between the upper left sample and the lower left sample of the lower left sub-block may be set as the reference sample (x n4 , y n4 ). Thus, a subblock adjacent to the left side of the lower left subblock containing the reference sample (x n4 , y n4 ) can be set as an affine subblock for the lower left reference point.
[0228] Для нижней правой контрольной точки отсчет, расположенный между верхним правым отсчетом и нижним правым отсчетом нижнего правого подблока, может быть установлен как опорный отсчет (xn5, yn5). Таким образом, нижний правый подблок, содержащий опорный отсчет (xn5, yn5), может быть установлен как аффинный подблок для нижней правой контрольной точки.[0228] For the lower right reference point, a sample located between the upper right sample and the lower right sample of the lower right subblock may be set as the reference sample (x n5 , y n5 ). Thus, the lower right subblock containing the reference sample (x n5 , y n5 ) can be set as an affine subblock for the lower right reference point.
[0229] Когда аффинные исходные векторы текущего блока получены на основании уравнения 7 и уравнения 8, третий аффинный исходный вектор аффинного соседнего блока может быть заменен вектором движения аффинного подблока для нижней левой контрольной точки, и четвертый аффинный исходный вектор может быть заменен вектором движения аффинного подблока для нижней правой контрольной точки. Кроме того, местоположение нижней левой контрольной точки может быть заменено местоположением нижнего левого опорного отсчета, и местоположение нижней правой контрольной точки может быть заменено местоположением нижнего правого опорного отсчета.[0229] When the affine source vectors of the current block are obtained based on Equation 7 and Equation 8, the third affine source vector of the affine neighboring block can be replaced by the motion vector of the affine sub-block for the lower left control point, and the fourth affine source vector can be replaced by the motion vector of the affine sub-block for the bottom right control point. In addition, the location of the lower left reference point may be replaced by the location of the lower left reference sample, and the location of the lower right reference point may be replaced by the location of the lower right reference sample.
[0230] В отличие от описанного выше со ссылкой на фиг. 14-16, подблок, содержащий отсчет, смежный с опорным отсчетом, может быть установлен как аффинный подблок. Подробно отсчет, расположенный за пределами аффинного соседнего подблока, может быть установлен как опорный отсчет, и подблок, содержащийся в аффинном соседнем блоке, может быть установлен как аффинный подблок. Например, в примере, показанном на фиг. 14A, отсчет, расположенный справа от верхнего правого отсчета нижнего правого подблока, может быть установлен как опорный отсчет (xn5, yn5), и нижний правый подблок может быть установлен как аффинный подблок для нижнего правого угла. Альтернативно в примере, показанном на фиг. 14B, отсчет, расположенный слева от верхнего левого отсчета нижнего левого подблока, может быть установлен как опорный отсчет (xn4, yn4), и нижний левый подблок может быть установлен как аффинный подблок для нижнего левого угла.[0230] Unlike described above with reference to FIG. 14-16, a subblock containing a sample adjacent to a reference sample may be set as an affine subblock. In detail, a sample located outside the affine neighbor sub-block may be set as a reference sample, and a sub-block contained in the affine neighbor block may be set as the affine sub-block. For example, in the example shown in FIG. 14A, a sample located to the right of the upper right sample of the lower right sub-block can be set as a reference sample (x n5 , y n5 ), and the lower right sub-block can be set as an affine sub-block for the lower right corner. Alternatively, in the example shown in FIG. 14B, a sample located to the left of the upper left sample of the lower left sub-block can be set as a reference sample (x n4 , y n4 ), and the lower left sub-block can be set as an affine sub-block for the lower left corner.
[0231] Вышеописанные варианты осуществления могут также применяться к фиг. 15 и 16. То есть в примере, показанном на фиг. 15A или 16A, отсчет, расположенный справа от нижнего правого отсчета или среднего правого отсчета нижнего правого подблока, может быть установлен как опорный отсчет (xn5, yn5), и нижний правый подблок может быть установлен как аффинный подблок для нижнего правого угла. Альтернативно в примере, показанном на фиг. 15B или 16B, отсчет, расположенный слева от нижнего левого отсчета или среднего левого отсчета нижнего левого подблока, может быть установлен как опорный отсчет (xn4, yn4), и нижний левый подблок может быть установлен как аффинный подблок для нижнего левого угла.[0231] The above-described embodiments may also apply to FIGS. 15 and 16. That is, in the example shown in FIG. 15A or 16A, a sample located to the right of the lower right sample or middle right sample of the lower right subblock may be set as a reference sample (x n5 , y n5 ), and the lower right subblock may be set as an affine subblock for the lower right corner. Alternatively, in the example shown in FIG. 15B or 16B, a sample located to the left of the lower left sample or middle left sample of the lower left subblock may be set as a reference sample (x n4 , y n4 ), and the lower left subblock may be set as an affine subblock for the lower left corner.
[0232] Как и в примере, представленном выше, аффинный исходный вектор аффинного соседнего блока может быть получен с использованием вектора движения аффинного подблока. Для этого в случае блока, где осуществлено кодирование или декодирование, вектор движения может сохраняться в элементах подблоков.[0232] As in the example presented above, the affine source vector of the affine neighbor block can be obtained using the motion vector of the affine subblock. For this purpose, in the case of a block where encoding or decoding is carried out, the motion vector can be stored in the elements of the subblocks.
[0233] В качестве другого примера после сохранения минимального количества аффинных исходных векторов для аффинного соседнего блока вектор движения аффинного подблока может быть получен с использованием сохраненных аффинных исходных векторов.[0233] As another example, after storing a minimum number of affine source vectors for an affine neighbor block, the motion vector of the affine sub-block can be obtained using the stored affine source vectors.
[0234] В уравнении 9 и уравнении 10 показан пример получения вектора движения аффинного подблока с использованием аффинных исходных векторов аффинного соседнего блока.[0234] Equation 9 and Equation 10 show an example of obtaining the motion vector of an affine sub-block using the affine source vectors of the affine neighboring block.
[0235] [Уравнение 9][0235] [Equation 9]
[0236] [Уравнение 10][0236] [Equation 10]
[0237] В уравнении 9 и уравнении 10 (nv4x, nv4y) представляет вектор движения аффинного подблока для нижней левой контрольной точки, и (nv5x, nv5y) представляет вектор движения аффинного подблока для нижней правой контрольной точки. Поскольку вектор движения аффинного подблока и аффинный исходный вектор контрольной точки установлены равными друг другу, (nv4x, nv4y) может быть заменен аффинным исходным вектором (nv2x, nv2y) для нижней левой контрольной точки, и (nv5x, nv5y) может быть заменен аффинным исходным вектором (nv3x, nv3y) для нижней правой контрольной точки.[0237] In Equation 9 and Equation 10, (nv 4x , nv 4y ) represents the motion vector of the affine subblock for the lower left control point, and (nv 5x , nv 5y ) represents the motion vector of the affine subblock for the lower right control point. Since the motion vector of the affine subblock and the affine source vector of the control point are set equal to each other, (nv 4x , nv 4y ) can be replaced by the affine source vector (nv 2x , nv 2y ) for the bottom left control point, and (nv 5x , nv 5y ) can be replaced by an affine source vector (nv 3x , nv 3y ) for the lower right control point.
[0238] (xn4, yn4) представляет местоположение опорного отсчета относительно нижнего левого подблока. Альтернативно вместо него может использоваться центральное местоположение нижнего левого подблока или местоположение нижней левой контрольной точки. (xn5, yn5) представляет местоположение опорного отсчета относительно нижнего правого подблока. Альтернативно вместо него может использоваться центральное местоположение нижнего правого подблока или местоположение нижней правой контрольной точки.[0238] (x n4 , y n4 ) represents the location of the reference sample relative to the lower left subblock. Alternatively, the center location of the bottom left subblock or the location of the bottom left control point may be used instead. (x n5 , y n5 ) represents the location of the reference sample relative to the lower right subblock. Alternatively, the center location of the lower right subblock or the location of the lower right control point may be used instead.
[0239] Уравнение 9 и уравнение 10 могут применяться к случаю, в котором текущий блок не прилегает к краю элемента кодового дерева. Когда текущий блок прилегает к верхнему краю элемента кодового дерева, вместо использования уравнения 9 и уравнения 10, вектор поступательного движения аффинного подблока, определенный на основании нижнего левого опорного отсчета, может быть установлен как третий аффинный исходный вектор, и вектор поступательного движения аффинного подблока, определенный на основании нижнего правого опорного отсчета, может быть установлен как четвертый аффинный исходный вектор.[0239] Equation 9 and Equation 10 may be applied to the case in which the current block is not adjacent to the edge of a code tree element. When the current block is adjacent to the top edge of a code tree element, instead of using Equation 9 and Equation 10, the translation vector of the affine subblock determined based on the lower left reference sample can be set as the third affine source vector, and the translation vector of the affine subblock determined based on the lower right reference sample, can be set as the fourth affine source vector.
[0240] В уравнении 7 и уравнении 8 (xn3-xn2) представляет ширину между нижней левой контрольной точкой и нижней правой контрольной точкой. Как описано выше, xn3 может быть заменено местоположением xn5 нижнего правого опорного отсчета, и xn2 может быть заменено местоположением xn4 нижнего левого опорного отсчета. Далее (xn3-xn2) или значение (например, (xn5-xn4)), полученное путем замены местоположения в вышеупомянутом уравнении местоположением опорных отсчетов, будет задано как переменная Wseed, и переменная будет называться шириной исходного подвектора.[0240] In Equation 7 and Equation 8, (x n3 -x n2 ) represents the width between the lower left reference point and the lower right reference point. As described above, xn3 may be replaced by the lower right reference sample location xn5 , and xn2 may be replaced by the lower left reference sample location xn4 . Next, (x n3 -x n2 ) or the value (for example, (x n5 -x n4 )) obtained by replacing the location in the above equation with the location of the reference samples will be specified as the variable W seed , and the variable will be called the width of the original subvector.
[0241] В зависимости от местоположения опорных отсчетов, ширина исходного подвектора может не быть показателем степени числа 2 (например, 2n). В качестве примера, когда нижний левый отсчет нижнего левого подблока установлен как нижний левый опорный отсчет, и нижний правый отсчет нижнего правого подблока установлен как нижний правый опорный отсчет, ширина исходного подвектора не кратна числу 2. Когда ширина исходного подвектора не является показателем степени числа 2, ширина исходного подвектора может быть преобразована в показатель степени числа 2. Преобразование может включать добавление смещения к ширине исходного подвектора или вычитание смещения из нее или использование местоположения отсчета, смежного с опорным отсчетом, вместо местоположения опорного отсчета. В качестве примера, преобразованная ширина исходного подвектора может быть получена путем добавления единицы к ширине между нижним левым опорным отсчетом и нижним правым опорным отсчетом. Альтернативно ширина между нижним левым опорным отсчетом и соседним опорным отсчетом, смежным с правой стороной нижнего правого опорного отсчета, может быть установлена как преобразованная ширина исходного подвектора. После этого аффинный исходный вектор текущего блока может быть получен путем применения преобразованной ширины исходного подвектора к уравнению 7 и уравнению 8.[0241] Depending on the location of the reference samples, the width of the original subvector may not be an exponent of the number 2 (eg, 2 n ). As an example, when the lower left sample of the lower left sub-block is set as the lower left reference sample, and the lower right sample of the lower right sub-block is set as the lower right reference sample, the width of the original sub-vector is not a multiple of 2. When the width of the original sub-vector is not a power of 2 , the width of the original subvector may be converted to an exponent of 2. The transformation may involve adding an offset to or subtracting an offset from the width of the original subvector, or using a sample location adjacent to the reference sample instead of the reference sample location. As an example, the transformed width of the original subvector can be obtained by adding one to the width between the lower left reference sample and the lower right reference sample. Alternatively, the width between the lower left reference sample and an adjacent reference sample adjacent to the right side of the lower right reference sample may be set as the transformed width of the original subvector. After this, the affine source vector of the current block can be obtained by applying the transformed width of the source subvector to Equation 7 and Equation 8.
[0242] Операция деления, включенная в уравнение 7 и уравнение 8, может быть изменена на операцию битового сдвига. Операция битового сдвига может быть выполнена на основании значения, полученного из преобразованной ширины исходного подвектора (т. е. значения, выраженного как показатель степени числа 2).[0242] The division operation included in Equation 7 and Equation 8 may be changed to a bit shift operation. A bit shift operation can be performed based on the value obtained from the converted width of the original subvector (ie, the value expressed as an exponent of 2).
[0243] Когда опорный отсчет, используемый для определения аффинного подблока, не принадлежит к аффинному соседнему блоку, аффинный исходный вектор аффинного соседнего блока может быть получен на основании отсчета, смежного с опорным отсчетом, из отсчетов, включенных в аффинный соседний блок. В частности, вектор поступательного движения подблока, содержащего отсчет, смежный с опорным отсчетом (далее называемым соседним опорным отсчетом) в аффинном соседнем блоке, может быть установлен как аффинный исходный вектор аффинного соседнего блока. Как описано выше, способ получения аффинного исходного вектора с использованием соседнего опорного отсчета может быть задан как модифицированный способ получения аффинного вектора слияния.[0243] When the reference sample used to determine the affine subblock does not belong to the affine neighbor block, the affine source vector of the affine neighbor block can be obtained based on the sample adjacent to the reference sample from the samples included in the affine neighbor block. Specifically, a translation vector of a subblock containing a sample adjacent to a reference sample (hereinafter referred to as a neighboring reference sample) in an affine neighbor block can be set as an affine source vector of the affine neighbor block. As described above, a method for obtaining an affine source vector using a neighboring reference sample can be specified as a modified method for obtaining an affine fusion vector.
[0244] На фиг. 17 представлено схематическое изображение, показывающее пример, в котором применяется способ получения модифицированного аффинного вектора слияния.[0244] In FIG. 17 is a schematic diagram showing an example in which a method for obtaining a modified affine fusion vector is applied.
[0245] Когда нижний правый опорный отсчет (xn5, yn5) аффинного соседнего блока E не принадлежит к аффинному ближайшему блоку, аффинный исходный вектор может быть получен на основании отсчета (xn5-1, yn5), смежного с левой стороной нижнего правого опорного отсчета, из отсчетов, включенных в аффинный соседний блок. В частности, вектор поступательного движения подблока, содержащего соседний опорный отсчет (xn5-1, yn5), может быть установлен как аффинный исходный вектор нижней правой контрольной точки.[0245] When the lower right reference sample (x n5 , y n5 ) of the affine neighbor block E does not belong to the affine nearest block, the affine reference vector can be obtained based on the sample (x n5 -1, y n5 ) adjacent to the left side of the lower right reference sample, from the samples included in the affine adjacent block. In particular, the translation vector of the subblock containing the adjacent reference sample (x n5 -1, y n5 ) can be set as the affine source vector of the lower right reference point.
[0246] В примере, показанном на фиг. 17, показано, что отсчет, смежный с правой стороной верхнего правого отсчета нижнего правого подблока, представляет собой нижний правый опорный отсчет. Даже когда отсчет, смежный с правой стороной нижнего правого отсчета нижнего правого подблока, или отсчет, смежный с правой стороной среднего правого отсчета нижнего правого подблока, установлен как нижний правый опорный отсчет, аффинный исходный вектор может быть получен на основании отсчета, смежного с левой стороной соседнего опорного отсчета.[0246] In the example shown in FIG. 17, it is shown that the sample adjacent to the right side of the upper right sample of the lower right sub-block is the lower right reference sample. Even when a sample adjacent to the right side of the lower right sample of the lower right sub-block, or a sample adjacent to the right side of the middle right sample of the lower right sub-block, is set as the lower right reference sample, an affine source vector can be obtained based on the sample adjacent to the left side adjacent reference reading.
[0247] Кроме того, даже когда нижний левый опорный отсчет не принадлежит к аффинному соседнему блоку, согласно варианту осуществления, описанному выше, аффинный исходный вектор может быть получен на основании отсчета, смежного с правой стороной нижнего левого опорного отсчета.[0247] In addition, even when the lower left reference sample does not belong to an affine neighbor block, according to the embodiment described above, an affine source vector can be obtained based on a sample adjacent to the right side of the lower left reference sample.
[0248] Поскольку местоположение опорного отсчета и подблока для получения аффинного исходного вектора установлено по-разному, ширина исходного подвектора может быть установлена равной показателю степени числа 2.[0248] Since the location of the reference sample and the sub-block for obtaining the affine source vector are set differently, the width of the source sub-vector can be set to an exponent of 2.
[0249] Альтернативно аффинные исходные векторы могут быть получены на основании ширины соседнего блока, когда используются векторы движения нижнего левого подблока и нижнего правого подблока.[0249] Alternatively, affine source vectors can be obtained based on the width of the adjacent block when the motion vectors of the lower left subblock and the lower right subblock are used.
[0250] На фиг. 18 представлено схематическое изображение, показывающее пример получения аффинного исходного вектора аффинного кандидата на слияние на основании векторов движения подблоков, принадлежащих к соседнему блоку.[0250] In FIG. 18 is a schematic diagram showing an example of obtaining an affine source vector of an affine merge candidate based on the motion vectors of subblocks belonging to a neighboring block.
[0251] Когда верхний край текущего блока прилегает к краю элемента кодового дерева, аффинный исходный вектор аффинного кандидата на слияние может быть получен на основании векторов движения нижнего левого подблока и нижнего правого подблока верхнего соседнего блока, расположенного над текущим блоком. Когда предполагается, что местоположение верхнего левого отсчета верхнего соседнего блока представляет собой (xNb, yNb), и ширина и высота верхнего соседнего блока представляют собой NbW и NbH соответственно, нижний левый подблок может содержать отсчет, расположенный в (xNb, yNb+yNbH-1), и нижний правый подблок может содержать отсчет, расположенный в (xNb+NbW-1, yNb+NbH-1).[0251] When the top edge of the current block is adjacent to the edge of a code tree element, the affine source vector of the affine merge candidate can be obtained based on the motion vectors of the bottom left sub-block and the bottom right sub-block of the top adjacent block located above the current block. When the location of the upper left sample of the upper neighboring block is assumed to be (xNb, yNb), and the width and height of the upper neighboring block are NbW and NbH, respectively, the lower left sub-block may contain a sample located at (xNb, yNb+yNbH-1 ), and the lower right sub-block may contain a sample located at (xNb+NbW-1, yNb+NbH-1).
[0252] Аффинные исходные блоки аффинного кандидата на слияние могут быть получены на основании ширины соседнего блока и разницы в координатах между текущим блоком и соседним блоком. В качестве примера, аффинные исходные векторы аффинного кандидата на слияние могут быть получены на основании уравнений 11-13 ниже.[0252] The affine source blocks of an affine merge candidate can be obtained based on the width of the neighboring block and the difference in coordinates between the current block and the neighboring block. As an example, affine source vectors of an affine fusion candidate can be obtained based on equations 11-13 below.
[0253] [Уравнение 11][0253] [Equation 11]
[0254] [Уравнение 12][0254] [Equation 12]
[0255] [Уравнение 13][0255] [Equation 13]
[0256] В уравнениях 11-13 (v0x, v0y) представляет первый аффинный исходный вектор, (v1x, v1y) представляет второй аффинный исходный вектор, и (v2x, v2y) представляет третий аффинный исходный вектор. VLBx представляет вектор горизонтального составляющего движения нижнего левого подблока, и VLBy представляет вектор вертикального составляющего движения нижнего левого подблока. VRBx представляет вектор горизонтального составляющего движения нижнего правого подблока, и VRBy представляет вектор вертикального составляющего движения нижнего правого подблока. NbW представляет ширину соседнего блока, и xCbW и xCbH представляют ширину и высоту текущего блока соответственно. xCb представляет координату x верхнего левого отсчета текущего блока, и xNb представляет координату x верхнего левого отсчета соседнего блока.[0256] In equations 11-13, (v 0x , v 0y ) represents the first affine source vector, (v 1x , v 1y ) represents the second affine source vector, and (v 2x , v 2y ) represents the third affine source vector. V LBx represents the horizontal motion component vector of the lower left sub-block, and V LBy represents the vertical motion component vector of the lower left sub-block. V RBx represents the horizontal motion component vector of the lower right sub-block, and V RBy represents the vertical motion component vector of the lower right sub-block. NbW represents the width of the adjacent block, and xCbW and xCbH represent the width and height of the current block, respectively. xCb represents the x-coordinate of the top-left sample of the current block, and xNb represents the x-coordinate of the top-left sample of the adjacent block.
[0257] Аффинный кандидат на слияние может быть сгенерирован для комбинирования вектора движения второго соседнего блока с аффинными исходными векторами, полученными из первого соседнего блока. Например, в примере, показанном на фиг. 18, третий аффинный исходный вектор аффинного кандидата на слияние может быть получен на основании вектора движения подблока, расположенного слева от текущего блока, а не на основании векторов движения нижнего левого подблока и нижнего правого подблока.[0257] An affine merge candidate may be generated to combine the motion vector of the second adjacent block with the affine source vectors derived from the first adjacent block. For example, in the example shown in FIG. 18, the third affine source vector of the affine merge candidate can be obtained based on the motion vector of the sub-block located to the left of the current block, rather than based on the motion vectors of the lower-left sub-block and the lower-right sub-block.
[0258] На фиг. 19 представлено схематическое изображение, показывающее пример получения аффинных исходных векторов аффинного кандидата на слияние на основании векторов движения подблоков, расположенных слева от текущего блока.[0258] In FIG. 19 is a schematic diagram showing an example of obtaining affine seed vectors of an affine merge candidate based on the motion vectors of sub-blocks located to the left of the current block.
[0259] Аффинные исходные векторы аффинного кандидата на слияние могут быть получены на основании векторов движения нижнего левого подблока и нижнего правого подблока верхнего соседнего блока, расположенного над текущим блоком. Подробно первый аффинный исходный вектор и второй аффинный исходный вектор аффинного кандидата на слияние могут быть получены на основании векторов движения нижнего левого подблока и нижнего правого подблока. В качестве примера, первый аффинный исходный вектор и второй аффинный исходный вектор аффинного кандидата на слияние могут быть получены на основании уравнений 11 и 12.[0259] The affine source vectors of the affine merge candidate can be obtained based on the motion vectors of the lower left sub-block and the lower right sub-block of the upper neighboring block located above the current block. In detail, the first affine source vector and the second affine source vector of the affine merger candidate can be obtained based on the motion vectors of the lower left sub-block and the lower right sub-block. As an example, the first affine seed vector and the second affine seed vector of the affine fusion candidate can be obtained based on Equations 11 and 12.
[0260] Третий аффинный исходный вектор аффинного кандидата на слияние может быть получен на основании вектора движения соседнего блока, смежного с левой стороной текущего блока. В качестве примера, вектор движения соседнего блока, смежного с левой стороной текущего блока, или соседнего блока, смежного с нижним левым углом текущего блока, может быть установлен как третий аффинный исходный вектор. Соседний блок, смежный с левой стороной текущего блока, может содержать отсчет, расположенный в (xCb-1, yCb+CbH-1), и соседний блок, смежный с нижним левым углом текущего блока, может содержать отсчет, расположенный в (xCb-1, yCb+CbH). В уравнении 14 и уравнении 15 показан пример установки вектора движения соседнего блока, расположенного слева от текущего блока, в качестве третьего аффинного исходного вектора.[0260] The third affine source vector of the affine merge candidate may be obtained based on the motion vector of a neighboring block adjacent to the left side of the current block. As an example, the motion vector of an adjacent block adjacent to the left side of the current block, or an adjacent block adjacent to the lower left corner of the current block, can be set as the third affine source vector. An adjacent block adjacent to the left side of the current block may contain a sample located at (xCb-1, yCb+CbH-1), and an adjacent block adjacent to the lower left corner of the current block may contain a sample located at (xCb-1 , yCb+CbH). Equation 14 and Equation 15 show an example of setting the motion vector of a neighboring block located to the left of the current block as the third affine source vector.
[0261] [Уравнение 14][0261] [Equation 14]
[0262] [Уравнение 15][0262] [Equation 15]
[0263] В уравнении 14 VLeftx представляет вектор горизонтального движения соседнего блока, смежного с левой стороной текущего блока, и VLefty представляет вектор вертикального движения соседнего блока, смежного с левой стороной текущего блока. В уравнении 15 VLBx представляет вектор горизонтального движения соседнего блока, смежного с нижним левым углом текущего блока, и VLBy представляет вектор вертикального движения соседнего блока, смежного с нижним левым углом текущего блока.[0263] In Equation 14, V Leftx represents the horizontal motion vector of an adjacent block adjacent to the left side of the current block, and V Lefty represents the vertical motion vector of an adjacent block adjacent to the left side of the current block. In Equation 15, V LBx represents the horizontal motion vector of an adjacent block adjacent to the lower left corner of the current block, and V LBy represents the vertical motion vector of an adjacent block adjacent to the lower left corner of the current block.
[0264] Третий аффинный исходный вектор может быть получен с использованием вектора движения соседнего блока, смежного с нижним левым углом текущего блока, только тогда, когда вектор движения соседнего блока, смежного с левой стороной текущего блока, не является доступным.[0264] The third affine source vector can be obtained using the motion vector of an adjacent block adjacent to the lower left corner of the current block only when the motion vector of an adjacent block adjacent to the left side of the current block is not available.
[0265] Способ получения третьего аффинного исходного вектора аффинного кандидата на слияние может быть установлен по-разному в зависимости от того, доступен ли вектор движения соседнего блока, расположенного слева от текущего блока. В качестве примера, когда вектор движения соседнего блока, расположенного слева от текущего блока (например, подблока, смежного с левой стороной текущего блока, или подблока, смежного с нижним левым углом текущего блока), доступен, третий аффинный исходный вектор может быть получен с использованием уравнения 14 или уравнения 15. С другой стороны, когда вектор движения соседнего блока, расположенного слева от текущего блока, не является доступным, третий аффинный исходный вектор может быть получен с использованием уравнения 13.[0265] The method for obtaining the third affine source vector of the affine merge candidate may be set differently depending on whether the motion vector of a neighboring block located to the left of the current block is available. As an example, when the motion vector of a neighboring block located to the left of the current block (e.g., a subblock adjacent to the left side of the current block, or a subblock adjacent to the lower left corner of the current block) is available, a third affine source vector can be obtained using Equation 14 or Equation 15. On the other hand, when the motion vector of a neighboring block located to the left of the current block is not available, a third affine source vector can be obtained using Equation 13.
[0266] Третий аффинный исходный вектор может быть получен на основании вектора движения несоседнего блока, имеющего опорный отсчет, который не является смежным с текущим блоком. Чтобы получить третий аффинный исходный вектор, то, следует ли использовать вектор движения соседнего блока, имеющего опорный отсчет, смежный с текущим блоком, или использовать вектор движения несоседнего блока, имеющего опорный отсчет, который не является смежным с текущим блоком, может быть определено на основании местоположения верхнего соседнего блока, используемого для получения аффинного кандидата на слияние.[0266] The third affine source vector may be obtained based on the motion vector of a non-adjacent block having a reference reference that is not adjacent to the current block. To obtain the third affine source vector, whether to use the motion vector of an adjacent block having a reference reference adjacent to the current block or use the motion vector of a non-neighboring block having a reference reference which is not adjacent to the current block can be determined based on the location of the top neighbor block used to obtain the affine merge candidate.
[0267] На фиг. 20 представлено схематическое изображение, показывающее пример получения аффинных исходных векторов аффинного кандидата на слияние на основании информации о движении соседнего блока или несоседнего блока, расположенного слева от текущего блока.[0267] In FIG. 20 is a schematic diagram showing an example of obtaining affine source vectors of an affine merge candidate based on motion information of an adjacent block or a non-adjacent block located to the left of the current block.
[0268] Путем сравнения местоположения верхнего левого отсчета текущего блока с местоположением верхнего левого отсчета верхнего соседнего блока, используемого для получения аффинного кандидата на слияние, может быть определено местоположение блока для получения третьего аффинного исходного вектора. Например, как и в примере, показанном на фиг. 20A, когда координата x (xNb) верхнего левого отсчета верхнего соседнего блока меньше, чем координата x (xCb) верхнего левого отсчета текущего блока, третий аффинный исходный вектор может быть получен на основании вектора движения несоседнего блока, который не является смежным с левой стороной текущего блока. Подробно третий аффинный исходный вектор может быть получен на основании вектора движения нижнего левого несоседнего блока, содержащего отсчет, расположенный в (xNb, yCb+CbH), или левого несоседнего блока, содержащего отсчет, расположенный в (xNb, yCb+CbH-1), при этом отсчеты имеют такую же координату x, как и верхний левый отсчет верхнего соседнего блока. В уравнении 16 и уравнении 17 показан пример получения третьего аффинного исходного вектора на основании вектора движения несоседнего блока.[0268] By comparing the location of the top left sample of the current block with the location of the top left sample of the top adjacent block used to obtain the affine merge candidate, the location of the block to obtain the third affine source vector can be determined. For example, as in the example shown in FIG. 20A, when the x-coordinate (xNb) of the top left sample of the top adjacent block is less than the x-coordinate (xCb) of the top left sample of the current block, the third affine source vector can be obtained based on the motion vector of a non-neighboring block that is not adjacent to the left side of the current block block. In detail, the third affine seed vector can be obtained based on the motion vector of the lower left non-adjacent block containing the sample located at (xNb, yCb+CbH) or the left non-adjacent block containing the sample located at (xNb, yCb+CbH-1), in this case, the samples have the same x coordinate as the upper left sample of the upper adjacent block. Equation 16 and Equation 17 show an example of obtaining a third affine seed vector based on the motion vector of a non-neighboring block.
[0269] [Уравнение 16][0269] [Equation 16]
[0270] [Уравнение 17][0270] [Equation 17]
[0271] В уравнении 16 VLeft2x представляет вектор горизонтального движения левого несоседнего блока, и VLeft2y представляет вектор вертикального движения левого несоседнего блока. В уравнении 17 VLB2x представляет вектор горизонтального движения нижнего левого несоседнего блока, и VLB2y представляет вектор вертикального движения нижнего левого несоседнего блока.[0271] In Equation 16, V Left2x represents the horizontal motion vector of the left non-adjacent block, and V Left2y represents the vertical motion vector of the left non-adjacent block. In Equation 17, V LB2x represents the horizontal motion vector of the lower left non-adjacent block, and V LB2y represents the vertical motion vector of the lower left non-adjacent block.
[0272] Третий аффинный исходный вектор может быть получен с использованием вектора движения нижнего левого несоседнего блока только тогда, когда вектор движения левого несоседнего блока не является доступным.[0272] The third affine source vector can be obtained using the motion vector of the lower left non-adjacent block only when the motion vector of the left non-adjacent block is not available.
[0273] Как и в примере, показанном на фиг. 20B, когда координата x (xNb) верхнего левого отсчета верхнего соседнего блока больше, чем координата x (xCb) верхнего левого отсчета текущего блока, или равняется ей, третий аффинный исходный вектор может быть получен на основании вектора движения соседнего блока, который является смежным с нижним левым углом текущего блока или с его левой стороной. Подробно третий аффинный исходный вектор может быть получен на основании вектора движения левого соседнего блока, содержащего отсчет (xCb, yCb+CbH-1), смежный с левой стороной текущего блока, или нижнего левого соседнего блока, содержащего отсчет, расположенный в (xCb, yCb+CbH), смежный с нижним левым углом текущего блока.[0273] As in the example shown in FIG. 20B, when the x-coordinate (xNb) of the upper left sample of the upper adjacent block is greater than or equal to the x-coordinate (xCb) of the upper left sample of the current block, the third affine source vector can be obtained based on the motion vector of the adjacent block that is adjacent to the bottom left corner of the current block or its left side. In detail, the third affine source vector can be obtained based on the motion vector of the left neighbor block containing the sample (xCb, yCb+CbH-1) adjacent to the left side of the current block, or the lower left neighbor block containing the sample located at (xCb, yCb +CbH), adjacent to the lower left corner of the current block.
[0274] Местоположение опорного отсчета левого соседнего блока или левого несоседнего блока может быть установлено отлично от показанного на фиг. 18-20. В качестве примера, блок, содержащий отсчет (xCb-1, yCb+subH-1), смежный с текущим блоком, может быть установлен в качестве левого соседнего блока, и блок, содержащий отсчет (xNb, yCb+subH-1), который не является смежным с текущим блоком, может быть установлен в качестве левого несоседнего блока. В этом случае subH представляет минимальную высоту блока, в котором сохраняется информация о движении, и может представлять собой натуральное число, такое как 2, 4 или 8.[0274] The location of the reference sample of the left adjacent block or the left non-adjacent block may be set differently from that shown in FIG. 18-20. As an example, a block containing a sample (xCb-1, yCb+subH-1) adjacent to the current block may be set as the left adjacent block, and a block containing a sample (xNb, yCb+subH-1) which is not adjacent to the current block, can be set as a left non-adjacent block. In this case, subH represents the minimum height of the block in which motion information is stored, and can be a natural number such as 2, 4, or 8.
[0275] На фиг. 21 представлено схематическое изображение, показывающее местоположение блока для получения аффинного исходного вектора аффинного кандидата на слияние.[0275] In FIG. 21 is a schematic diagram showing the location of a block for obtaining an affine source vector of an affine merge candidate.
[0276] Например, как и в примере, показанном на фиг. 21A, когда координата x (xNb) верхнего левого отсчета верхнего соседнего блока меньше, чем координата x (xCb) верхнего левого отсчета текущего блока, третий аффинный исходный вектор может быть получен на основании вектора движения несоседнего блока, который не является смежным с левой стороной текущего блока. Подробно третий аффинный исходный вектор может быть получен на основании вектора движения левого несоседнего блока, содержащего отсчет (xNb, yCb+subH-1), который имеет такую же координату x, как и верхний левый отсчет верхнего соседнего блока, и который расположен на предварительно определенном расстоянии (например, subH) от нижнего левого отсчета верхнего соседнего блока. В уравнении 18 показан пример получения третьего аффинного исходного вектора на основании вектора движения несоседнего блока.[0276] For example, as in the example shown in FIG. 21A, when the x-coordinate (xNb) of the top left sample of the top adjacent block is less than the x-coordinate (xCb) of the top left sample of the current block, the third affine source vector can be obtained based on the motion vector of a non-neighboring block that is not adjacent to the left side of the current block block. In detail, the third affine source vector can be obtained based on the motion vector of the left non-adjacent block containing a sample (xNb, yCb+subH-1) which has the same x-coordinate as the top left sample of the upper adjacent block, and which is located on a predetermined distance (for example, subH) from the bottom left reference of the top adjacent block. Equation 18 shows an example of obtaining a third affine seed vector based on the motion vector of a non-adjacent block.
[0277] [Уравнение 18][0277] [Equation 18]
[0278] В уравнении 18 VLeftT2x представляет вектор горизонтального движения левого несоседнего блока, содержащего отсчет, расположенный на предварительно определенном расстоянии от нижнего левого отсчета верхнего соседнего блока. VLeftT2y представляет вектор вертикального движения левого несоседнего блока, содержащего отсчет, расположенный на предварительно определенном расстоянии от нижнего левого отсчета верхнего соседнего блока.[0278] In Equation 18, V LeftT2x represents the horizontal motion vector of the left non-adjacent block containing a sample located at a predetermined distance from the lower left sample of the upper adjacent block. V LeftT2y represents the vertical motion vector of the left non-adjacent block containing a sample located at a predetermined distance from the lower left sample of the upper adjacent block.
[0279] Альтернативно, как и в примере, показанном на фиг. 21B, когда координата x (xNb) верхнего левого отсчета верхнего соседнего блока больше, чем координата x (xCb) верхнего левого отсчета текущего блока, или равняется ей, третий аффинный исходный вектор может быть получен на основании вектора движения левого соседнего блока, который является смежным с левой стороной текущего блока и который содержит отсчет (xCb-1, yCb+subH-1), горизонтально расположенный на предварительно определенном расстоянии (например, subH-1) от верхнего левого отсчета текущего блока. В уравнении 19 показан пример получения третьего аффинного исходного вектора на основании вектора движения соседнего блока.[0279] Alternatively, as in the example shown in FIG. 21B, when the x-coordinate (xNb) of the top left sample of the top adjacent block is greater than or equal to the x-coordinate (xCb) of the top left sample of the current block, the third affine source vector can be obtained based on the motion vector of the left neighbor block that is adjacent with the left side of the current block and which contains a sample (xCb-1, yCb+subH-1) horizontally located at a predetermined distance (for example, subH-1) from the top left sample of the current block. Equation 19 shows an example of obtaining a third affine seed vector based on the motion vector of an adjacent block.
[0280] [Уравнение 19][0280] [Equation 19]
[0281] В уравнении 19 VLeftTx представляет вектор горизонтального движения левого соседнего блока, который является смежным с левой стороной текущего блока и который содержит отсчет, вертикально расположенный на предварительно определенном расстоянии от верхнего левого отсчета текущего блока. VLeftTy представляет вектор вертикального движения левого соседнего блока, который является смежным с левой стороной текущего блока и который содержит отсчет, вертикально расположенный на предварительно определенном расстоянии от верхнего левого отсчета текущего блока.[0281] In Equation 19, V LeftTx represents a horizontal motion vector of a left adjacent block that is adjacent to the left side of the current block and that contains a sample vertically located at a predetermined distance from the top left sample of the current block. V LeftTy represents the vertical motion vector of a left adjacent block that is adjacent to the left side of the current block and that contains a sample vertically located at a predetermined distance from the top left sample of the current block.
[0282] Альтернативно опорный отсчет может быть установлен в местоположении, отличном от показанных на фиг. 18-21. В качестве примера, отсчет (xCb-1, yCb), который является смежным с левой стороной текущего блока и который имеет такую же координату y, как и верхний левый отсчет текущего блока, или отсчет (xNb, yCb), который не является смежным с левой стороной текущего блока и который имеет такую же координату y, как и верхний левый отсчет текущего блока, может быть установлен в качестве опорного отсчета.[0282] Alternatively, the reference count may be set at a location other than those shown in FIG. 18-21. As an example, a sample (xCb-1, yCb) that is adjacent to the left side of the current block and which has the same y-coordinate as the top left sample of the current block, or a sample (xNb, yCb) that is not adjacent to left side of the current block and which has the same y coordinate as the top left reference of the current block can be set as the reference reference.
[0283] Как и в описанном примере, первый аффинный исходный вектор и второй аффинный исходный вектор аффинного кандидата на слияние могут быть получены из соседнего блока, расположенного над текущим блоком, и третий аффинный исходный вектор аффинного кандидата на слияние может быть получен из соседнего блока, расположенного слева от текущего блока. Первый аффинный исходный вектор и третий аффинный исходный вектор аффинного кандидата на слияние могут быть получены из соседнего блока, расположенного слева от текущего блока, и второй аффинный исходный вектор аффинного кандидата на слияние может быть получен из соседнего блока, расположенного над текущим блоком.[0283] As in the described example, the first affine source vector and the second affine source vector of the affine merge candidate can be obtained from a neighboring block located above the current block, and the third affine source vector of the affine merge candidate can be obtained from the neighboring block, located to the left of the current block. The first affine seed vector and the third affine seed vector of the affine merge candidate may be obtained from a neighboring block located to the left of the current block, and the second affine seed vector of the affine merge candidate may be obtained from a neighboring block located above the current block.
[0284] В примерах, показанных в уравнениях 11-13, аффинный исходный вектор аффинного кандидата на слияние может быть получен на основании значения разницы между вектором VLB движения нижнего левого подблока верхнего соседнего блока и вектора VRB движения нижнего правого подблока верхнего соседнего блока. В этом случае аффинный исходный вектор аффинного кандидата на слияние может быть получен с использованием вектора движения другого блока вместо вектора движения нижнего левого подблока или нижнего правого подблока. В качестве примера, когда вектор VLB движения нижнего левого подблока верхнего соседнего блока имеет такое же значение, как и вектор VRB движения нижнего правого подблока верхнего соседнего блока, VRB может быть заменен вектором движения блока, содержащего отсчет, расположенный справа от нижнего правого подблока или под ним. В качестве примера, вектор движения аффинного кандидата на слияние может быть получен с использованием вектора движения блока, содержащего отсчет, расположенный в (xNb+NbW, yNb+NbH-1), вместо использования вектора VRB движения нижнего правого подблока.[0284] In the examples shown in Equations 11-13, the affine source vector of the affine merge candidate can be obtained based on the difference value between the motion vector V LB of the bottom left subblock of the top adjacent block and the motion vector V RB of the bottom right subblock of the top neighbor block. In this case, the affine source vector of the affine merge candidate can be obtained using the motion vector of another block instead of the motion vector of the lower left subblock or the lower right subblock. As an example, when the motion vector V LB of the lower left subblock of the upper adjacent block has the same value as the motion vector V RB of the lower right subblock of the upper adjacent block, V RB can be replaced by the motion vector of the block containing the sample located to the right of the lower right subblock or under it. As an example, the motion vector of the affine merge candidate can be obtained using the motion vector of the block containing the sample located at (xNb+NbW, yNb+NbH-1) instead of using the motion vector V RB of the lower right sub-block.
[0285] Альтернативно, когда вектор VLB движения нижнего левого подблока верхнего соседнего блока имеет такое же значение, как и вектор VRB движения нижнего правого подблока верхнего соседнего блока, VLB может быть заменен вектором движения блока, содержащего отсчет, расположенный слева от нижнего левого подблока или под ним. В качестве примера, вектор движения аффинного кандидата на слияние может быть получен с использованием вектора движения блока, содержащего отсчет, расположенный в (xNb, yNb+NbH-1+offset), вместо использования вектора VLB движения нижнего левого подблока. В этом случае смещение (offset) может представлять собой целое число, которое больше чем или равняется 1.[0285] Alternatively, when the motion vector V LB of the lower left subblock of the upper adjacent block has the same value as the motion vector V RB of the lower right subblock of the upper adjacent block, V LB can be replaced by the motion vector of the block containing the sample located to the left of the lower left subblock or below it. As an example, the motion vector of the affine merge candidate can be obtained using the motion vector of the block containing the sample located at (xNb, yNb+NbH-1+offset) instead of using the motion vector V LB of the lower left sub-block. In this case, the offset can be an integer that is greater than or equal to 1.
[0286] Альтернативно VRB может быть заменен вектором движения блока, содержащего отсчет, расположенный слева от нижнего левого подблока или под ним, или VLB может быть заменен вектором движения блока, содержащего отсчет, расположенный справа от нижнего правого подблока или под ним.[0286] Alternatively, V RB may be replaced by the motion vector of a block containing a sample located to the left of or below the lower left subblock, or V LB may be replaced by the motion vector of a block containing a sample located to the right of or below the lower right subblock.
[0287] Кандидат на слияние может быть получен путем комбинирования векторов движения множества соседних векторов, смежных с текущим блоком. Кандидат на слияние, сгенерированный путем комбинирования векторов движения множества соседних векторов, может называться комбинированным кандидатом на слияние. Когда получают комбинированного кандидата на слияние, аффинный исходный вектор для контрольной точки может быть получен из одного соседнего блока, смежного с окрестностями контрольной точки.[0287] A merge candidate can be obtained by combining the motion vectors of a plurality of neighboring vectors adjacent to the current block. A fusion candidate generated by combining the motion vectors of a plurality of neighboring vectors may be called a combined fusion candidate. When a combined merge candidate is obtained, the affine seed vector for a checkpoint can be obtained from one neighboring block adjacent to the checkpoint's neighborhood.
[0288] На фиг. 22 представлено схематическое изображение для описания примера комбинирования векторов движения множества соседних блоков для получения комбинированного кандидата на слияние.[0288] In FIG. 22 is a schematic diagram for describing an example of combining motion vectors of multiple neighboring blocks to obtain a combined fusion candidate.
[0289] Множество соседних блоков могут содержать верхние соседние блоки, расположенные над текущим блоком, и левые соседние блоки, расположенные слева от текущего блока. Верхние соседние блоки могут содержать по меньшей мере один из блока B0, содержащего отсчет, расположенный в (xCb+CbW, yCb-1), блока B1, содержащего отсчет, расположенный в (xCb+CbW-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 представляет высоту текущего блока.[0289] The plurality of neighbor blocks may include 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), or a block B3 containing the sample located at (xCb, yCb-1). In this case, (xCb, yCb) represents the location of the top-left count of the current block, and CbW represents 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), or a block A2 containing the sample located at (xCb-1, yCb). In this case, CbH represents the height of the current block.
[0290] Кроме того, множество соседних блоков могут дополнительно содержать временные соседние блоки текущего блока.[0290] In addition, the plurality of neighboring blocks may further comprise temporary neighboring blocks of the current block.
[0291] Комбинированный кандидат на слияние может быть получен путем комбинирования частей информации о движении двух или более из множества соседних блоков. Комбинированный кандидат на слияние может быть получен путем комбинирования частей информации о движении двух или трех соседних блоков. Подробно комбинированный кандидат на слияние может быть получен путем комбинирования по меньшей мере двух или более из элементов информации о движении соседнего блока, смежного с первой контрольной точкой, элементов информации о движении соседнего блока, смежного со второй контрольной точкой, или элементов информации о движении соседнего блока, смежного с третьей контрольной точкой.[0291] A combined merge candidate may be obtained by combining parts of the motion information of two or more of a plurality of adjacent blocks. A combined merge candidate can be obtained by combining parts of the motion information of two or three adjacent blocks. In detail, the combined merge candidate may be obtained by combining at least two or more of motion information elements of an adjacent block adjacent to the first reference point, motion information elements of an adjacent block adjacent to the second reference point, or motion information elements of an adjacent block , adjacent to the third control point.
[0292] В качестве примера, комбинированный кандидат на слияние может быть получен путем комбинирования векторов движения по меньшей мере двух или более из соседнего блока A2, B2 или B3, смежного с верхней левой контрольной точкой CP0, соседнего блока B1 или B0, смежного с верхней правой контрольной точкой CP1, или временного соседнего блока T для нижней левой контрольной точки CP2.[0292] As an example, a combined merge candidate may be obtained by combining the motion vectors of at least two or more of an adjacent block A2, B2 or B3 adjacent to the top left reference point CP0, an adjacent block B1 or B0 adjacent to the top the right control point CP1, or the temporary adjacent block T for the lower left control point CP2.
[0293] В этом случае вектор движения доступного соседнего блока, который находят первым, когда соседние блоки, смежные с контрольной точкой, сканируют в предварительно заданном порядке сканирования, может быть установлен в качестве аффинного исходного вектора для контрольной точки. В качестве примера, первый аффинный исходный вектор комбинированного кандидата на слияние для CP0 может быть установлен равным вектору движения доступного соседнего блока, который находят первым, когда соседние блоки обнаруживают в порядке B2, B3 и A2. Второй аффинный исходный вектор комбинированного кандидата на слияние для CP1 может быть установлен равным вектору движения доступного соседнего блока, который находят первым, когда соседние блоки обнаруживают в порядке B1 и B0. Третий аффинный исходный вектор комбинированного кандидата на слияние для CP2 может быть установлен равным вектору движения доступного соседнего блока, который находят первым, когда соседние блоки обнаруживают в порядке A1 и A0.[0293] In this case, the motion vector of an available neighboring block that is found first when neighboring blocks adjacent to a reference point are scanned in a predetermined scanning order can be set as the affine source vector for the reference point. As an example, the first affine source vector of the combined merge candidate for CP0 can be set equal to the motion vector of the available neighbor block that is found first when the neighbor blocks are found in the order B2, B3 and A2. The second affine source vector of the combined merge candidate for CP1 can be set equal to the motion vector of the available neighboring block that is found first when neighboring blocks are found in the order B1 and B0. The third affine source vector of the combined merge candidate for CP2 can be set equal to the motion vector of the available neighbor block that is found first when the neighbor blocks are found in the order of A1 and A0.
[0294] Когда получают комбинированного кандидата на слияние, соседний блок, кодированный с помощью модели аффинного движения, или соседний блок, полученный в качестве аффинного кандидата на слияние, может быть установлен как недоступный.[0294] When a combined merge candidate is obtained, a neighboring block encoded by the affine motion model or a neighboring block obtained as an affine merge candidate may be set as unavailable.
[0295] На фиг. 23 представлено схематическое изображение, показывающее недоступный соседний блок.[0295] In FIG. 23 is a schematic diagram showing an inaccessible neighbor block.
[0296] Когда получают аффинного кандидата на слияние из соседнего блока B1, расположенного над текущим блоком, может быть определено то, что соседний блок B1 не является доступным для получения комбинированного кандидата на слияние. Таким образом, когда получают аффинный исходный вектор комбинированного кандидата на слияние для CP1, вектор движения B1 может не использоваться.[0296] When an affine merge candidate is obtained from a neighboring block B1 located above the current block, it may be determined that the neighboring block B1 is not available to obtain the combined merge candidate. Thus, when the affine source vector of the combined fusion candidate for CP1 is obtained, the motion vector B1 may not be used.
[0297] Альтернативно, когда соседний блок кодируют в модели аффинного движения, комбинированный кандидат на слияние может быть получен на основании аффинного вектора подблока, содержащего опорный отсчет. В качестве примера, когда соседний блок, содержащий отсчет, расположенный в B1, кодируют в модели аффинного движения, комбинированный кандидат на слияние может быть получен с использованием аффинного вектора подблока соседнего блока, содержащего отсчет, расположенный в B1.[0297] Alternatively, when a neighboring block is encoded in an affine motion model, a combined merge candidate can be obtained based on the affine vector of the subblock containing the reference sample. As an example, when a neighboring block containing a sample located in B1 is encoded in an affine motion model, a combined merge candidate can be obtained using the affine subblock vector of the neighboring block containing a sample located in B1.
[0298] Альтернативно порядок сканирования может быть определен с учетом того, кодирую ли соседний блок с помощью модели аффинного движения или получают ли соседний блок в качестве аффинного кандидата на слияние. В качестве примера, соседний блок, кодированный с помощью модели аффинного движения, или соседний блок, кодированный с помощью аффинного кандидата на слияние, может быть установлен равным последнему сканированному. В качестве примера, когда соседний блок, расположенный в B1, кодируют с помощью модели аффинного движения, второй аффинный исходный вектор комбинированного кандидата на слияние для CP2 может быть получен путем обнаружения соседних блоков в порядке B0 и B1.[0298] Alternatively, the scan order may be determined based on whether the adjacent block is encoded using an affine motion model or whether the adjacent block is obtained as an affine merge candidate. As an example, a neighboring block encoded with an affine motion model or a neighboring block encoded with an affine merge candidate may be set equal to the last scanned one. As an example, when a neighboring block located in B1 is encoded using an affine motion model, the second affine source vector of the combined merge candidate for CP2 can be obtained by detecting neighboring blocks in the order of B0 and B1.
[0299] Когда соседние блоки имеют разные индексы опорного изображения, векторы движения могут масштабироваться в отношении опорного изображения с наибольшим индексом или опорного изображения с наименьшим индексом. Масштабирование может быть выполнено на основании значения разницы порядкового номера изображения (POC) между опорным изображением и текущим изображением.[0299] When neighboring blocks have different reference picture indices, the motion vectors may be scaled with respect to the reference picture with the largest index or the reference picture with the smallest index. Scaling can be performed based on the difference value of a picture order number (POC) between the reference picture and the current picture.
[0300] Альтернативно комбинирование соседних блоков может быть выполнено с использованием только соседних блоков, имеющих одинаковый индекс опорного изображения, из соседних блоков. В качестве примера, когда по меньшей мере один из соседних блоков имеет отличный индекс опорного изображения, комбинирование может быть установлено как недоступное в качестве комбинированного кандидата на слияние. Кроме того, доступность комбинирования может быть определена вне зависимости от того, имеют ли соседние блоки одинаковые информацию о движении или вектор движения. В качестве примера, комбинированный кандидат на слияние может быть получен путем комбинирования соседних блоков, имеющих одинаковый индекс опорного изображения, даже когда соседние блоки имеют одинаковый вектор движения (например, аффинный исходный вектор CP0 и аффинный исходный вектор CP1). Альтернативно порядок сканирования соседних блоков может быть определен с учетом индексов опорного изображения соседних блоков. Альтернативно комбинирование может быть выполнено с использованием только соседних блоков, имеющих одинаковое направление предсказания, из соседних блоков.[0300] Alternatively, neighboring block combining can be performed using only neighboring blocks having the same reference image index from the neighboring blocks. As an example, when at least one of the neighboring blocks has a different reference picture index, the combine may be set to unavailable as a combined merge candidate. In addition, combination availability can be determined regardless of whether adjacent blocks have the same motion information or motion vector. As an example, a combined fusion candidate can be obtained by combining neighboring blocks having the same reference image index, even when the neighboring blocks have the same motion vector (eg, affine source vector CP0 and affine source vector CP1). Alternatively, the scanning order of neighboring blocks may be determined taking into account the reference image indices of the neighboring blocks. Alternatively, combining can be performed using only adjacent blocks having the same prediction direction from adjacent blocks.
[0301] Кандидат на слияние может быть сгенерирован в предварительно определенном порядке комбинирования. В качестве примера порядок комбинирования может быть установлен следующим образом.[0301] A merge candidate may be generated in a predetermined combining order. As an example, the combination order can be set as follows.
[0302] 1. {аффинный исходный вектор CP0, аффинный исходный вектор CP1, аффинный исходный вектор CP2}[0302] 1. {affine source vector CP0, affine source vector CP1, affine source vector CP2}
[0303] 2. {аффинный исходный вектор CP0, аффинный исходный вектор CP1, аффинный исходный вектор CP3}[0303] 2. {affine source vector CP0, affine source vector CP1, affine source vector CP3}
[0304] 3. {аффинный исходный вектор CP0, аффинный исходный вектор CP2, аффинный исходный вектор CP3}[0304] 3. {affine source vector CP0, affine source vector CP2, affine source vector CP3}
[0305] 4. {аффинный исходный вектор CP1, аффинный исходный вектор CP2, аффинный исходный вектор CP3}[0305] 4. {affine source vector CP1, affine source vector CP2, affine source vector CP3}
[0306] 5. {аффинный исходный вектор CP0, аффинный исходный вектор CP1}[0306] 5. {affine source vector CP0, affine source vector CP1}
[0307] 6. {аффинный исходный вектор CP0, аффинный исходный вектор CP2}[0307] 6. {affine source vector CP0, affine source vector CP2}
[0308] Хотя показаны шесть примеров комбинирования, также можно использовать меньшее или большее количество примеров комбинирования.[0308] Although six combination examples are shown, fewer or more combination examples can also be used.
[0309] Комбинированный кандидат на слияние, сгенерированный путем комбинирования трех аффинных исходных векторов, может называться 6-параметрическим комбинированным кандидатом на слияние, и комбинированный кандидат на слияние, сгенерированный путем комбинирования двух аффинных исходных векторов, может называться 4-параметрическим комбинированным кандидатом на слияние.[0309] A combined fusion candidate generated by combining three affine source vectors may be referred to as a 6-parameter combined fusion candidate, and a combined fusion candidate generated by combining two affine source vectors may be referred to as a 4-parameter combined fusion candidate.
[0310] Порядок комбинирования может быть предварительно задан в кодере и декодере. Альтернативно порядок комбинирования может быть определен на основании по меньшей мере одного из размера, формы, формы раздела или модели аффинного движения текущего блока, местоположения текущего блока в элементе кодового дерева или POC опорного изображения. В качестве примера, когда 4-параметрическая модель аффинного движения применяется к текущему блоку, установка может быть выполнена таким образом, что примеры комбинирования для 4-параметрического комбинированного кандидата на слияние имеют более высокий приоритет, чем примеры комбинирования для 6-параметрического комбинированного кандидата на слияние.[0310] The combining order may be preset in the encoder and decoder. Alternatively, the combining order may be determined based on at least one of the size, shape, partition shape or affine motion model of the current block, the location of the current block in a code tree element, or the POC of the reference image. As an example, when a 4-parameter affine motion model is applied to the current block, the setting may be made such that combination examples for a 4-parameter combined merge candidate have higher priority than combination examples for a 6-parameter combined merge candidate .
[0311] Хотя комбинированный кандидат на слияние генерируется в порядке комбинирования, только кандидат на слияние, сгенерированный путем комбинирования соседних блоков, имеющих одинаковое опорное изображение, может быть определен как доступный. Альтернативно, когда по меньшей мере один из соседних блоков имеет отличное опорное изображение, векторы движения могут масштабироваться в отношении опорного изображения с наибольшим индексом или опорного изображения с наименьшим индексом для получения кандидата на слияние. Масштабирование может быть выполнено на основании разницы POC между опорным изображением и текущим изображением. Альтернативно, когда два из соседних блоков имеют одинаковое опорное изображение, а другой соседний блок имеет отличное опорное изображение, вектор движения соседнего блока, имеющего отличное опорное изображение, может масштабироваться в отношении опорного изображения, применяемого в общем к двумя соседним блокам, для получения комбинированного кандидата на слияние.[0311] Although the combined merge candidate is generated in the order of combining, only the merge candidate generated by combining adjacent blocks having the same reference image can be determined to be available. Alternatively, when at least one of the neighboring blocks has a different reference image, the motion vectors may be scaled with respect to the highest index reference image or the lowest index reference image to obtain a merge candidate. Scaling can be performed based on the POC difference between the reference image and the current image. Alternatively, when two of the adjacent blocks have the same reference image and the other adjacent block has a different reference image, the motion vector of the adjacent block having a different reference image can be scaled with respect to the reference image applied in common to the two adjacent blocks to obtain a combined candidate for the merger.
[0312] Количество комбинированных кандидатов на слияние, добавляемых в список кандидатов на слияние, может быть определено на основании по меньшей мере одного из максимального количества кандидатов на слияние или количества кандидатов на слияние, ранее включенных в список кандидатов на слияние. Альтернативно, в зависимости от модели аффинного движения текущего блока, только 6-параметрические комбинированные кандидаты на слияние могут быть добавлены в список кандидатов на слияние, или только 4-параметрические комбинированные кандидаты на слияние могут быть добавлены в список комбинированных кандидатов на слияние.[0312] The number of combined merger candidates added to the merger candidate list may be determined based on at least one of the maximum number of merger candidates or the number of merger candidates previously included in the merger candidate list. Alternatively, depending on the affine motion model of the current block, only 6-parameter combined merge candidates may be added to the merge candidate list, or only 4-parameter combined merge candidates may be added to the combined merge candidate list.
[0313] В качестве примера, когда количество комбинированных кандидатов на слияние, подлежащих добавлению в список кандидатов на слияние, равняется единице, и 6-параметрическая модель движения применяется к текущему блоку, один 6-параметрический комбинированный кандидат на слияние может быть добавлен в список кандидатов на слияние в предварительно установленном порядке комбинирования. Подробно, когда все из аффинного исходного вектора CP0, аффинного исходного вектора CP1 и аффинного исходного вектора CP2 доступны, комбинированный кандидат на слияние {аффинный исходный вектор CP0, аффинный исходный вектор CP1 и аффинный исходный вектор CP2} может быть добавлен в список кандидатов на слияние. Альтернативно, когда аффинный исходный вектор CP2 не является доступным, и аффинный исходный вектор CP3 доступен, комбинированный кандидат на слияние {аффинный исходный вектор CP0, аффинный исходный вектор CP1 и аффинный исходный вектор CP3} может быть добавлен в список кандидатов на слияние.[0313] As an example, when the number of combined merge candidates to be added to the merge candidate list is one, and a 6-parameter motion model is applied to the current block, one 6-parameter combined merge candidate can be added to the candidate list for merger in a pre-established combination order. In detail, when all of the affine source vector CP0, affine source vector CP1 and affine source vector CP2 are available, the combined merge candidate {affine source vector CP0, affine source vector CP1 and affine source vector CP2} can be added to the list of merge candidates. Alternatively, when affine source vector CP2 is not available and affine source vector CP3 is available, the combined fusion candidate {affine source vector CP0, affine source vector CP1 and affine source vector CP3} may be added to the list of fusion candidates.
[0314] Альтернативно, когда количество комбинированных кандидатов на слияние, подлежащих добавлению в список кандидатов на слияние, равняется единице, и 6-параметрическая модель движения применяется к текущему блоку, один 4-параметрический комбинированный кандидат на слияние может быть добавлен в список кандидатов на слияние в предварительно установленном порядке комбинирования.[0314] Alternatively, when the number of combined merge candidates to be added to the merge candidate list is one and a 6-parameter motion model is applied to the current block, one 4-parameter combined merge candidate may be added to the merge candidate list in a predetermined combination order.
[0315] В качестве другого примера, количество комбинированных кандидатов на слияние, подлежащих добавлению в список кандидатов на слияние, может быть установлено по-другому в зависимости от модели аффинного движения текущего блока. В качестве примера, когда 6-параметрическая модель движения применяется к текущему блоку, комбинированный кандидат на слияние может быть добавлен в список кандидатов на слияние. С другой стороны, когда 4-параметрическая модель движения применяется к текущему блоку, два комбинированных кандидата на слияние могут быть добавлены в список кандидатов на слияние.[0315] As another example, the number of combined merge candidates to be added to the merge candidate list may be set differently depending on the affine motion pattern of the current block. As an example, when a 6-parameter motion model is applied to the current block, the combined merge candidate can be added to the list of merge candidates. On the other hand, when a 4-parameter motion model is applied to the current block, two combined merge candidates can be added to the list of merge candidates.
[0316] Комбинированный кандидат на слияние, подлежащий добавлению в список кандидатов на слияние, может быть выбран в зависимости от количества доступных аффинных кандидатов на слияние. В качестве примера, когда количество доступных аффинных кандидатов на слияние равняется двум или более, только 4-параметрические комбинированные кандидаты на слияние могут быть добавлены в список кандидатов на слияние. С другой стороны, когда количество доступных аффинных кандидатов на слияние равняется одному или меньше, только 6-параметрические комбинированные кандидаты на слияние могут быть добавлены в список кандидатов на слияние. Альтернативно, когда количество доступных аффинных кандидатов на слияние равняется одному или меньше, N 6-параметрических комбинированных кандидатов на слияние и M 4-параметрических комбинированных кандидатов на слияние могут быть добавлены в список кандидатов на слияние. В этом случае N и M являются натуральным числами, и M может быть получено на основании максимального количества кандидатов на слияние минус N. Альтернативно, когда количество доступных аффинных кандидатов на слияние равняется одному или меньше, только 4-параметрические комбинированные кандидаты на слияние могут быть добавлены в список кандидатов на слияние.[0316] The combination fusion candidate to be added to the fusion candidate list may be selected depending on the number of available affinity fusion candidates. As an example, when the number of available affine fusion candidates is two or more, only 4-parameter combined fusion candidates can be added to the fusion candidate list. On the other hand, when the number of available affine fusion candidates is one or less, only 6-parameter combination fusion candidates can be added to the fusion candidate list. Alternatively, when the number of available affine merge candidates is one or less, N 6-parameter combined merge candidates and M 4-parameter combined merge candidates can be added to the list of merge candidates. In this case, N and M are natural numbers, and M can be obtained based on the maximum number of merge candidates minus N. Alternatively, when the number of available affine merge candidates is one or less, only 4-parameter combined merge candidates can be added to the list of merger candidates.
[0317] Альтернативно порядок комбинирования может быть определен на основании доступности аффинных исходных векторов. В качестве примера, комбинированные кандидаты на слияние могут быть добавлены в список кандидатов на слияние с учетом доступности аффинных исходных векторов в следующем порядке.[0317] Alternatively, the order of combination may be determined based on the availability of affine source vectors. As an example, combined fusion candidates can be added to the fusion candidate list based on the availability of affine source vectors in the following order.
[0318] 1. Случай, в котором аффинный исходный вектор CP0, аффинный исходный вектор CP1 и аффинный исходный вектор CP2 доступны. [0318] 1. A case in which the affine source vector CP0, the affine source vector CP1 and the affine source vector CP2 are available.
[0319] {аффинный исходный вектор CP0, аффинный исходный вектор CP1, аффинный исходный вектор CP2}[0319] {affine source vector CP0, affine source vector CP1, affine source vector CP2}
[0320] 2. Случай, в котором аффинный исходный вектор CP0, аффинный исходный вектор CP1 и аффинный исходный вектор CP3 доступны. [0320] 2. A case in which the affine source vector CP0, the affine source vector CP1 and the affine source vector CP3 are available.
[0321] {аффинный исходный вектор CP0, аффинный исходный вектор CP1, аффинный исходный вектор CP3} [0321] {affine source vector CP0, affine source vector CP1, affine source vector CP3}
[0322] 3. Случай, в котором аффинный исходный вектор CP0, аффинный исходный вектор CP2 и аффинный исходный вектор CP3 доступны.[0322] 3. A case in which the affine source vector CP0, the affine source vector CP2 and the affine source vector CP3 are available.
[0323] {аффинный исходный вектор CP0, аффинный исходный вектор CP2, аффинный исходный вектор CP3}[0323] {affine source vector CP0, affine source vector CP2, affine source vector CP3}
[0324] 4. Случай, в котором аффинный исходный вектор CP0, аффинный исходный вектор CP2 и аффинный исходный вектор CP3 доступны. [0324] 4. The case in which the affine source vector CP0, the affine source vector CP2 and the affine source vector CP3 are available.
[0325] {аффинный исходный вектор CP1, аффинный исходный вектор CP2, аффинный исходный вектор CP3}[0325] {affine source vector CP1, affine source vector CP2, affine source vector CP3}
[0326] 5. Случай, в котором аффинный исходный вектор CP0 и аффинный исходный вектор CP1 доступны.[0326] 5. The case in which the affine source vector CP0 and the affine source vector CP1 are available.
[0327] {аффинный исходный вектор CP0, аффинный исходный вектор CP1}[0327] {affine source vector CP0, affine source vector CP1}
[0328] 6. Случай, в котором аффинный исходный вектор CP0 и аффинный исходный вектор CP2 доступны.[0328] 6. The case in which the affine source vector CP0 and the affine source vector CP2 are available.
[03329] {аффинный исходный вектор CP0, аффинный исходный вектор CP2}[03329] {affine source vector CP0, affine source vector CP2}
[0330] Когда количество комбинированных кандидатов на слияние, подлежащих добавлению в список кандидатов на слияние, равняется единице, комбинированный кандидат на слияние, соответствующий условию, которое удовлетворяется первым из условий с первого по шестое, может быть добавлен в список кандидатов на слияние. Когда ни один из кандидатов с первого по шестой не удовлетворяет условию, комбинированный кандидат на слияние может не добавляться в список кандидатов на слияние.[0330] When the number of combined merge candidates to be added to the merge candidate list is one, the combined merge candidate corresponding to the condition that is satisfied by the first of the first to sixth conditions may be added to the merge candidate list. When none of the first to sixth candidates satisfy the condition, the combined merge candidate may not be added to the list of merge candidates.
[0331] В качестве другого примера, максимальное количество комбинированных кандидатов на слияние, подлежащих добавлению в список кандидатов на слияние, может быть определено в зависимости от количества доступных аффинных кандидатов на слияние.[0331] As another example, the maximum number of combined fusion candidates to be added to the fusion candidate list may be determined depending on the number of available affinity fusion candidates.
[0332] Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем максимальное количество, нулевой кандидат на слияние, который имеет вектор движения, составляющий 0, может быть добавлен в список кандидатов на слияние. Таким образом, кандидат на слияние может быть получен в аффинном режиме слияния в следующем порядке.[0332] When the number of merge candidates included in the merge candidate list is less than the maximum number, a zero merge candidate that has a motion vector of 0 may be added to the merge candidate list. Thus, a merge candidate can be obtained in affine merge mode in the following order.
[0333] 1. Получение аффинного кандидата на слияние.[0333] 1. Obtaining an affine merge candidate.
[0334] 2. Комбинированный кандидат на слияние.[0334] 2. Combined merger candidate.
[0335] 3. Нулевой кандидат на слияние.[0335] 3. Null merge candidate.
[0336] Следующим будет подробно описан ниже способ предсказания, осуществляемого между изображениями, с использованием информации о поступательном движении.[0336] A prediction method performed between images using translational motion information will next be described in detail below.
[0337] Информация о движении текущего блока может быть получена из информации о движении блока, отличного от текущего блока. В этом случае другой блок может представлять собой блок, который кодируется или декодируется посредством предсказания, осуществляемого между изображениями, раньше, чем текущий блок. Установка информации о движении текущего блока такой же, как информация о движении другого блока, может быть задана как режим слияния. Кроме того, установка вектора движения другого блока в качестве значения предсказания вектора движения текущего блока может быть задана как режим предсказания вектора движения.[0337] Motion information of the current block can be obtained from motion information of a block other than the current block. In this case, the other block may be a block that is encoded or decoded by inter-picture prediction earlier than the current block. Setting the motion information of the current block to be the same as the motion information of another block can be set as a merge mode. In addition, setting the motion vector of another block as the motion vector prediction value of the current block can be set as a motion vector prediction mode.
[0338] На фиг. 24 представлена блок-схема процесса получения информации о движении текущего блока в режиме слияния.[0338] In FIG. 24 is a flowchart of the process of obtaining information about the movement of the current block in the merge mode.
[0339] Может быть получен (S2401) кандидат на слияние текущего блока. Кандидат на слияние текущего блока может быть получен из блока, который кодируется или декодируется посредством предсказания, осуществляемого между изображениями, раньше, чем текущий блок.[0339] A merge candidate of the current block may be obtained (S2401). The merge candidate of the current block may be obtained from a block that is encoded or decoded by inter-picture prediction earlier than the current block.
[0340] Кандидатные блоки, используемые для получения блока слияния, могут включать соседние блоки, содержащие отсчет, смежный с текущим блоком. В качестве примера, когда координаты верхнего левого отсчета текущего блока равны (0, 0), по меньшей мере один из блока, содержащего опорный отсчет, расположенный в (-1, H-1), блока, содержащего опорный отсчет, расположенный в (W-1, -1), блока, содержащего опорный отсчет, расположенный в (W, -1), блока, содержащего опорный отсчет, расположенный в (-1, H), или блока, содержащего опорный отсчет, расположенный в (-1, -1), может использоваться в качестве кандидатного блока.[0340] Candidate blocks used to obtain a merge block may include neighboring blocks containing a sample adjacent to the current block. As an 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 located at (-1, H-1) of the block containing the reference sample located at (W -1, -1), a block containing a reference sample located at (W, -1), a block containing a reference sample located at (-1, H), or a block containing a reference sample located at (-1, -1), can be used as a candidate block.
[0341] Альтернативно кандидатный блок, который не принадлежит тому же элементу кодового дерева, что и текущий блок, может быть установлен как недоступный в качестве кандидата на слияние. В качестве примера, когда опорный отсчет отклоняется от верхнего края элемента кодового дерева, которому принадлежит текущий блок, кандидатный блок, содержащий опорный отсчет, может быть установлен как недоступный в качестве кандидата на слияние.[0341] 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. As an example, when the reference sample deviates from the top edge of the code tree element to which the current block belongs, the candidate block containing the reference sample may be set to unavailable as a merge candidate.
[0342] Кандидат на слияние может быть получен из временного соседнего блока, включенного в изображение, отличное от изображения текущего блока. В качестве примера, кандидат на слияние может быть получен из совмещаемого блока, включенного в совмещаемое изображение. Одно опорное изображение, включенное в список опорных изображений, может быть установлено как совмещаемое изображение. Информация об индексах для идентификации совмещаемого изображения из опорных изображений может передаваться в битовом потоке. Альтернативно опорное изображение, имеющее предварительно заданный индекс, из опорных изображений может быть определено в качестве совмещаемого изображения.[0342] A merge candidate may be obtained from a temporary neighboring block included in an image other than the current block's image. As an example, a fusion candidate may be obtained from a fusion block included in a fusion image. One reference picture included in the reference picture list can be set as a fusion picture. Index information for identifying a fusion image from the reference images may be carried in a bit stream. Alternatively, a reference image having a predetermined index of the reference images may be determined as a fusion image.
[0343] Информация о движении кандидата на слияние может быть установлена равной информации о движении кандидатного блока. В качестве примера, по меньшей мере одно из вектора движения, индекса опорного изображения, направления предсказания или двунаправленного весового индекса кандидатного блока может быть установлено в качестве информации о движении кандидата на слияние.[0343] The movement information of the merge candidate may be set equal to the movement information of the candidate block. As an example, at least one of a motion vector, a reference image index, a prediction direction, or a bidirectional weight index of a candidate block may be set as motion information of a fusion candidate.
[0344] Может генерироваться (S2402) список кандидатов на слияние, содержащий кандидатов на слияние.[0344] A merge candidate list may be generated (S2402) containing the merge candidates.
[0345] Кандидатам на слияние из списка кандидатов на слияние могут быть присвоены индексы в предварительно определенном порядке. В качестве примера, индексы могут последовательно присваиваться кандидату на слияние, полученному из левого соседнего блока, кандидату на слияние, полученному из верхнего соседнего блока, кандидату на слияние, полученному из верхнего правого соседнего блока, кандидату на слияние, полученному из нижнего левого соседнего блока, кандидату на слияние, полученному из верхнего левого соседнего блока, и кандидату на слияние, полученному из временного соседнего блока.[0345] The merge candidates from the list of merge candidates may be assigned indices in a predetermined order. As an example, indices may be sequentially assigned to a merge candidate obtained from a left neighbor block, a merge candidate obtained from a top neighbor block, a merge candidate obtained from a top right neighbor block, a merge candidate obtained from a bottom left neighbor block, a merge candidate obtained from the upper left neighbor block, and a merge candidate obtained from the temporary neighbor block.
[0346] Когда множество кандидатов на слияние включены в кандидата на слияние, может быть выбран (S2403) по меньшей мере один из множества кандидатов на слияние. Подробно информация для указания одного из множества кандидатов на слияние может передаваться в битовом потоке. В качестве примера, информация merge_idx, указывающая индекс одного из кандидатов на слияние, включенных в список кандидатов на слияние, может передаваться в битовом потоке.[0346] When a plurality of merge candidates are included in the merge candidate, at least one of the plurality of merge candidates may be selected (S2403). Details of information to indicate one of a plurality of merge candidates may be carried in a bit stream. As an example, merge_idx information indicating the index of one of the merge candidates included in the list of merge candidates may be transmitted in a bit stream.
[0347] Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем пороговое значение, кандидат на слияние, включенный в таблицу информации о движении между участками, может быть добавлен в список кандидатов на слияние. В данном случае пороговое значение может представлять собой максимальное количество кандидатов на слияние, которое кандидат на слияние может содержать, или значение, полученное путем вычитания смещения из максимального количества кандидатов на слияние. Смещение может представлять собой натуральное число, такое как 1 или 2. Таблица информации о движении между участками может содержать кандидата на слияние, полученного на основании блока, который кодирован или декодирован раньше текущего блока.[0347] 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 table may be added to the merge candidate list. In this case, the threshold value may be the maximum number of merge candidates that the merge candidate 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 or 2. The inter-hop traffic information table may contain a merge candidate derived from a block that is encoded or decoded before the current block.
[0348] Таблица информации о движении между участками содержит кандидата на слияние, полученного из блока, который кодируется или декодируется на основании предсказания, осуществляемого между изображениями, в текущем изображении. В качестве примера, информация о движении кандидата на слияние, включенная в таблицу информации о движении между участками, может быть установлена равной информации о движении блока, кодированного или декодированного на основании предсказания, осуществляемого между изображениями. В этом случае информация о движении может содержать по меньшей мере одно из вектора движения, индекса опорного изображения, направления предсказания или двунаправленного весового индекса.[0348] The inter-section motion information table contains a merge candidate obtained from a block that is encoded or decoded based on the inter-picture prediction in the current picture. As an example, the motion information of a merge candidate included in the inter-section motion information table may be set equal to the motion information of a block encoded or decoded based on inter-picture prediction. In this case, the motion information may comprise at least one of a motion vector, a reference image index, a prediction direction, or a bidirectional weight index.
[0349] Для удобства описания кандидат на слияние, включенный в таблицу информации о движении между участками, будет называться кандидатом на слияние между участками.[0349] For convenience of description, a merge candidate included in the inter-site traffic information table will be referred to as an inter-site merge candidate.
[0350] Максимальное количество кандидатов на слияние, которые могут быть включены в таблицу информации о движении между участками, может быть предварительно задано в кодере и декодере. В качестве примера, максимальное количество кандидатов на слияние, которые могут быть включены в таблицу информации о движении между участками, может составлять 1, 2, 3, 4, 5, 6, 7, 8 или более (например, 16).[0350] The maximum number of merge candidates that can be included in the inter-hop traffic information table can be preset in the encoder and decoder. As an example, the maximum number of merge candidates that can be included in the inter-site traffic information table may be 1, 2, 3, 4, 5, 6, 7, 8 or more (eg, 16).
[0351] Альтернативно информация, указывающая максимальное количество кандидатов на слияние таблицы информации о движении между участками, может передаваться в битовом потоке. Информация может передаваться на уровне последовательности, изображения или слайса.[0351] Alternatively, information indicating the maximum number of candidates for merging the inter-section traffic information table may be transmitted in the bitstream. Information can be transferred at the sequence, image or slice level.
[0352] Альтернативно максимальное количество кандидатов на слияние таблицы информации о движении между участками может быть определено в зависимости от размера изображения, размера слайса или размера элемента кодового дерева.[0352] Alternatively, the maximum number of candidates for merging the inter-section motion information table may be determined depending on the image size, slice size, or code tree element size.
[0353] Таблица информации о движении между участками может быть инициализирована в элементах изображений, слайсов, пакетов, элементов кодового дерева или линий элементов кодового дерева (строк и столбцов). В качестве примера, при инициализации слайса таблица информации о движении между участками также инициализируется и может не содержать кандидата на слияние.[0353] The inter-section motion information table may be initialized in picture elements, slices, packets, code tree elements, or lines of code tree elements (rows and columns). As an example, when a slice is initialized, the inter-slice traffic information table is also initialized and may not contain a merge candidate.
[0354] Альтернативно информация, указывающая, следует ли инициализировать таблицу информации о движении между участками, может передаваться в битовом потоке. Информация может передаваться на уровне слайса, тайла, пакета или блока. Предварительно сконфигурированная таблица информации о движении между участками может использоваться до тех пор, пока информация не укажет на инициализацию таблицы информации о движении между участками.[0354] Alternatively, information indicating whether the inter-section traffic information table should be initialized may be transmitted in the bit stream. Information can be transferred at the slice, tile, packet or block level. The preconfigured inter-section traffic information table may be used until the information indicates initialization of the inter-section traffic information table.
[0355] Альтернативно информация, касающаяся начального кандидата на слияние между участками, может передаваться посредством набора параметров изображения или заголовка слайса. Даже если слайс инициализирован, таблица информации о движении между участками может содержать начального кандидата на слияние между участками. Соответственно, кандидат на слияние между участками может использоваться для блока, который подлежит кодированию или декодированию первым в слайсе.[0355] Alternatively, information regarding the initial inter-slice fusion candidate may be conveyed by an image parameter set or slice header. Even if the slice is initialized, the inter-slice traffic information table may contain an initial cross-slice merge candidate. Accordingly, an inter-slice merge candidate may be used for the block that is to be encoded or decoded first in the slice.
[0356] Блоки могут быть кодированы или декодированы в порядке кодирования или декодирования, и блоки, кодированные или декодированные на основании предсказания, осуществляемого между изображениями, могут быть последовательно установлены в качестве кандидатов на слияние между участками в порядке кодирования или декодирования.[0356] Blocks may be encoded or decoded in encoding or decoding order, and blocks encoded or decoded based on prediction performed between pictures can be sequentially set as fusion candidates between sections in encoding or decoding order.
[0357] На фиг. 25 представлено схематическое изображение для описания аспекта обновления таблицы информации о движении между участками.[0357] In FIG. 25 is a schematic diagram for describing an aspect of updating an inter-section traffic information table.
[0358] Когда предсказание, осуществляемое между изображениями, выполняется (S2501) в отношении текущего блока, кандидат на слияние между участками может быть получен (S2502) на основании текущего блока. Информация о движении кандидата на слияние между участками может быть установлена равной информации о движении текущего блока.[0358] When inter-picture prediction is performed (S2501) on the current block, an inter-patch fusion candidate can be obtained (S2502) 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.
[0359] Когда таблица информации о движении между участками пуста (S2503), кандидат на слияние между участками, полученный на основании текущего блока, может быть добавлен (S2504) в таблицу информации о движении между участками.[0359] When the inter-section traffic information table is empty (S2503), the inter-section merging candidate obtained based on the current block may be added (S2504) to the inter-section traffic information table.
[0360] Когда таблица информации о движении между участками уже содержит кандидата на слияние между участками (S2503), контроль по избыточности может выполняться в отношении информации о движении текущего блока (или кандидата на слияние между участками, полученного на основании информации о движении) (S2505). Контроль по избыточности предназначен для определения, совпадает ли информация о движении текущего блока с информацией о движении кандидата на слияние между участками, предварительно сохраненного в таблице информации о движении между участками. Контроль по избыточности может выполняться в отношении всех кандидатов на слияние между участками, предварительно сохраненных в таблице информации о движении между участками. Альтернативно контроль по избыточности может выполняться в отношении кандидатов на слияние между участками, с индексами, превышающими или равными пороговому значению, или индексами, меньшими или равными пороговому значению, из кандидатов на слияние между участками, предварительно сохраненных в таблице информации о движении между участками.[0360] When the inter-section traffic information table already contains an inter-section merging candidate (S2503), redundancy check may be performed on the movement information of the current block (or the inter-section merging candidate obtained based on the traffic information) (S2505 ). The redundancy check is designed to determine whether the movement information of the current block matches the movement information of an inter-section merger candidate previously stored in the inter-section movement information table. Redundancy checking may be performed on all inter-site merging candidates previously stored in the inter-site traffic information table. Alternatively, redundancy checking may be performed on inter-site merge candidates with indices greater than or equal to a threshold value, or indices less than or equal to a threshold value, among inter-site merge candidates previously stored in the inter-site traffic information table.
[0361] Когда не включен кандидат на слияние предсказания, осуществляемого между изображениями, имеющий такую же информацию о движении, что и текущий блок, кандидат на слияние между участками, полученный на основании текущего блока, может быть добавлен (S2508) в таблицу информации о движении между участками. То, идентичны ли кандидаты на слияние предсказания, осуществляемого между изображениями, можно определить на основании того, имеют ли кандидаты на слияние предсказания, осуществляемого между изображениями, одинаковую информацию о движении (например, вектор движения и/или индекс опорного изображения).[0361] When an inter-picture prediction fusion candidate having the same motion information as the current block is not included, an inter-section fusion candidate obtained based on the current block may be added (S2508) to the motion information table between areas. Whether the inter-image prediction fusion candidates are identical can be determined based on whether the inter-image prediction fusion candidates have the same motion information (eg, motion vector and/or reference image index).
[0362] В этом случае, когда максимальное количество кандидатов на слияние между участками предварительно сохранено в таблице информации о движении между участками (S2506), самый старый кандидат на слияние между участками удаляется (S2507), а кандидат на слияние между участками, полученный на основании текущего блока, может быть добавлен (S2508) в таблицу информации о движении между участками.[0362] In this case, when the maximum number of inter-area merging candidates is previously stored in the inter-area traffic information table (S2506), the oldest inter-area merging candidate is deleted (S2507), and the inter-area merging candidate obtained based on current block may be added (S2508) to the inter-section traffic information table.
[0363] Кандидаты на слияние между участками могут быть идентифицированы по своим индексам. Когда кандидат на слияние между участками, полученный из текущего блока, добавляется в таблицу информации о движении между участками, наименьший индекс (например, 0) присваивается кандидату на слияние между участками, а индексы предварительно сохраненных кандидатов на слияние между участками могут быть увеличены на единицу. В этом случае, когда максимальное количество кандидатов на слияние предсказания, осуществляемого между изображениями, предварительно сохранено в таблице информации о движении между участками, кандидат на слияние между участками с наибольшим индексом удаляется.[0363] Merger candidates between regions can be identified by their indices. When an inter-site merge candidate obtained from the current block is added to the inter-site traffic information table, the smallest index (eg, 0) is assigned to the inter-site merge candidate, and the indices of previously stored inter-site merge candidates may be incremented by one. In this case, when the maximum number of inter-image prediction fusion candidates is previously stored in the inter-site motion information table, the inter-site fusion candidate with the largest index is removed.
[0364] Альтернативно, когда кандидат на слияние между участками, полученный из текущего блока, добавляется в таблицу информации о движении между участками, кандидату на слияние между участками может быть присвоен наибольший индекс. В качестве примера, когда количество кандидатов на слияние предсказания, осуществляемого между изображениями, предварительно сохраненных в таблице информации о движении между участками, меньше максимального значения, индекс, имеющий то же значение, что и количество предварительно сохраненных кандидатов на слияние предсказания, осуществляемого между изображениями, может быть присвоен кандидату на слияние между участками. Альтернативно, когда количество кандидатов на слияние предсказания, осуществляемого между изображениями, предварительно сохраненных в таблице информации о движении между участками, равно максимальному значению, кандидату на слияние между участками может быть присвоен индекс, имеющий максимальное значение минус 1. Кроме того, кандидат на слияние между участками с наименьшим индексом удаляется, а индексы других предварительно сохраненных кандидатов на слияние между участками уменьшаются на 1.[0364] Alternatively, when an inter-site merge candidate obtained from the current block is added to the inter-site traffic information table, the inter-site merge candidate may be assigned the highest index. As an example, when the number of inter-picture prediction fusion candidates previously stored in the inter-section motion information table is less than the maximum value, an index having the same value as the number of pre-stored inter-picture prediction fusion candidates is can be assigned to a cross-site merge candidate. Alternatively, when the number of prediction fusion candidates carried out between images previously stored in the inter-section motion information table is equal to the maximum value, the inter-section fusion candidate may be assigned an index having a maximum value of minus 1. In addition, the inter-section fusion candidate may be assigned an index having a maximum value of minus 1. In addition, the inter-section fusion candidate The sites with the smallest index are deleted, and the indices of other previously stored merge candidates between sites are decreased by 1.
[0365] На фиг. 26 представлено схематическое изображение, показывающее аспект обновления таблицы кандидатов на слияние между участками.[0365] In FIG. 26 is a schematic diagram showing an aspect of updating an inter-site merge candidate table.
[0366] Поскольку кандидат на слияние между участками, полученный из текущего блока, добавляется в таблицу кандидатов на слияние между участками, предполагается, что наибольший индекс присваивается кандидату на слияние между участками. Также предполагается, что максимальное количество кандидатов на слияние между участками хранится в таблице кандидатов на слияние между участками.[0366] Since the inter-site merge candidate obtained from the current block is added to the inter-site merge candidate table, it is assumed that the largest index is assigned to the inter-site merge candidate. It is also assumed that the maximum number of cross-site merge candidates is stored in the cross-site merge candidate table.
[0367] Когда кандидат на слияние между участками HmvpCand[n+1], полученный из текущего блока, добавляется в таблицу кандидатов на слияние между участками HmvpCandList, кандидат на слияние между участками HmvpCand[0], который имеет наименьший индекс из предварительно сохраненных кандидатов на слияние между участками, может быть удален, а индексы других кандидатов на слияние между участками могут быть уменьшены на 1. Кроме того, индекс кандидата на слияние между участками HmvpCand[n+1], который получается из текущего блока, может быть установлен в качестве максимального значения (n в примере, показанном на фиг. 26).[0367] When an inter-site merge candidate HmvpCand[n+1] obtained from the current block is added to the inter-site merge candidate table HmvpCandList, the inter-site merge candidate HmvpCand[0] that has the smallest index of the previously stored candidates for inter-chunk merge can be removed, and the indices of other inter-chunk merge candidates can be reduced by 1. Additionally, the index of the inter-chunk merge candidate HmvpCand[n+1], which is obtained from the current block, can be set as the maximum values (n in the example shown in Fig. 26).
[0368] Когда кандидат на слияние между участками, идентичный кандидату на слияние между участками, полученному на основании текущего блока, предварительно сохранен (S2505), кандидат на слияние между участками, полученный на основании текущего блока, может не добавляться (S2509) в таблицу информации о движении между участками.[0368] When an inter-site fusion candidate identical to the inter-site fusion candidate obtained based on the current block is previously stored (S2505), the inter-site fusion candidate obtained based on the current block may not be added (S2509) to the information table about movement between sections.
[0369] Альтернативно, в то время как кандидат на слияние между участками, полученный на основании текущего блока, добавляется в таблицу информации о движении между участками, предварительно сохраненный кандидат на слияние между участками, идентичный кандидату на слияние между участками, может быть удален. Это вызывает тот же эффект, что и обновление индексов предварительно сохраненных кандидатов на слияние между участками.[0369] Alternatively, while the inter-site fusion candidate obtained based on the current block is added to the inter-site traffic information table, a previously stored inter-site fusion candidate identical to the inter-site fusion candidate may be deleted. This has the same effect as updating the indexes of pre-stored cross-site merge candidates.
[0370] На фиг. 27 представлено схематическое изображение, показывающее пример, в котором обновлен индекс предварительно сохраненного кандидата на слияние между участками.[0370] In FIG. 27 is a schematic diagram showing an example in which the index of a previously stored inter-site merge candidate is updated.
[0371] Когда индекс предварительно сохраненного кандидата на слияние предсказания, осуществляемого между изображениями, который идентичен кандидату на слияние между участками mvCand, который получается на основании текущего блока, равен hIdx, предварительно сохраненный кандидат на слияние предсказания, осуществляемого между изображениями, может быть удален, а индексы кандидатов на слияние предсказания, осуществляемого между изображениями, превышающие hIdx, могут быть уменьшены на 1. В качестве примера, на фиг. 27 показано, что HmvpCand[2], который идентичен mvCand, удален из таблицы информации о движении между участками HvmpCandList, и что индексы HmvpCand[3] - HmvpCand[n] уменьшены на 1.[0371] When the index of a previously stored inter-picture prediction fusion candidate that is identical to the mvCand inter-section fusion candidate that is obtained based on the current block is equal to hIdx, the previously stored inter-picture prediction fusion candidate can be deleted. and the indices of inter-image prediction fusion candidates exceeding hIdx may be reduced by 1. As an example, in FIG. 27 shows that HmvpCand[2], which is identical to mvCand, is removed from the inter-section traffic information table HvmpCandList, and that the indices HmvpCand[3] - HmvpCand[n] are reduced by 1.
[0372] Кроме того, кандидат на слияние между участками mvCand, который получается на основании текущего блока, может быть добавлен в конец таблицы информации о движении между участками.[0372] In addition, an inter-site fusion candidate mvCand that is obtained based on the current block may be added to the end of the inter-site traffic information table.
[0373] Альтернативно индекс, присвоенный предварительно сохраненному кандидату на слияние между участками, который идентичен кандидату на слияние между участками, полученному на основании текущего блока, может быть обновлен. Например, индекс предварительно сохраненного кандидата на слияние между участками может быть изменен на минимальное значение или максимальное значение.[0373] Alternatively, an index assigned to a previously stored inter-partition merge candidate that is identical to the inter-partition merge candidate obtained based on the current block may be updated. For example, the index of a previously stored inter-site merge candidate may be changed to a minimum value or a maximum value.
[0374] Установка может быть выполнена таким образом, чтобы информация о движении блоков, включенных в предварительно определенный участок, не добавлялась в таблицу информации о движении между участками. В качестве примера, кандидат на слияние между участками, полученный на основании информации о движении блока, включенного в участок обработки слияния, может не добавляться в таблицу информации о движении между участками. Поскольку порядок кодирования или декодирования не задан для блоков, включенных в участок обработки слияния, неуместно использовать информацию о движении одного из блоков для выполнения предсказания, осуществляемого между изображениями, в отношении других блоков. Соответственно, кандидаты на слияние между участками, полученные на основании блоков, включенных в участок обработки слияния, могут не добавляться в таблицу информации о движении между участками.[0374] The setting may be made such that movement information of blocks included in a predetermined section is not added to the inter-section movement information table. As an example, an inter-section merging candidate obtained based on movement information of a block included in a merging processing section may not be added to the inter-section movement information table. Since the encoding or decoding order is not specified for the blocks included in the merging processing portion, it is inappropriate to use the motion information of one of the blocks to perform inter-picture prediction about other blocks. Accordingly, inter-site merge candidates obtained based on blocks included in the merge processing portion may not be added to the inter-site traffic information table.
[0375] Когда предсказание с компенсацией движения выполняется в элементах подблоков, кандидат на слияние между участками может быть получен на основании информации о движении репрезентативного подблока из множества подблоков, включенных в текущий блок. В качестве примера, когда кандидат на слияние подблока используется для текущего блока, кандидат на слияние между участками может быть получен на основании информации о движении репрезентативного подблока из подблоков.[0375] When motion-compensated prediction is performed on subblock elements, a cross-section fusion candidate can be obtained based on the motion information of a representative subblock from a plurality of subblocks included in the current block. As an example, when a sub-block merge candidate is used for the current block, the inter-section merge candidate can be obtained based on the motion information of a representative sub-block of the sub-blocks.
[0376] Векторы движения подблоков могут быть получены в следующем порядке. Сначала один кандидат на слияние может быть выбран из числа кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, и начальный вектор сдвига shVector может быть получен на основании вектора движения выбранного кандидата на слияние. Затем подблок сдвига, имеющий опорный отсчет, расположенный в (xColSb, yColSb), может быть получен путем сложения начального вектора сдвига с местоположением (xSb, ySb) опорного отсчета (например, верхнего левого отсчета или среднего отсчета) каждого подблока в блоке кодирования. В уравнении 20 ниже приведено уравнение для получения подблока сдвига.[0376] The motion vectors of the sub-blocks can be obtained in the following order. First, one merge candidate may be selected from among the merge candidates included in the list of merge candidates of the current block, and an initial shift vector shVector may be obtained based on the motion vector of the selected merge candidate. Then, a shift subblock having a reference sample located at (xColSb, yColSb) can be obtained by adding the initial shift vector to the location (xSb, ySb) of a reference sample (eg, top left sample or middle sample) of each subblock in the encoding block. Equation 20 below gives the equation to obtain the shift subblock.
[0377] [Уравнение 20][0377] [Equation 20]
[0378] Затем вектор движения совмещаемого блока, соответствующего центральному положению подблока, содержащего (xColSb, yColSb), может быть установлен как вектор движения подблока, содержащего (xSb, ySb).[0378] Then, the motion vector of the matching block corresponding to the center position of the subblock containing (xColSb, yColSb) can be set as the motion vector of the subblock containing (xSb, ySb).
[0379] Репрезентативный подблок может относиться к подблоку, содержащему верхний левый отсчет или центральный отсчет текущего блока.[0379] A representative subblock may refer to a subblock containing the top left sample or center sample of the current block.
[0380] На фиг. 28 представлено схематическое изображение, показывающее местоположение репрезентативного подблока.[0380] In FIG. 28 is a schematic diagram showing the location of a representative subblock.
[0381] На фиг. 28A показан пример, в котором подблок, расположенный слева от текущего блока и над ним, установлен как репрезентативный подблок, и на фиг. 28B показан пример, в котором подблок, расположенный в центре текущего блока, установлен как репрезентативный подблок. Когда предсказание с компенсацией движения выполняется в элементах подблоков, кандидат на слияние между участками текущего блока может быть получен на основании вектора движения подблока, содержащего верхний левый отсчет текущего блока, или подблока, содержащего центральный отсчет текущего блока.[0381] In FIG. 28A shows an example in which a subblock located to the left of and above the current block is set as a representative subblock, and FIG. 28B shows an example in which a subblock located at the center of the current block is set as a representative subblock. When motion-compensated prediction is performed on subblock elements, a candidate for merging between portions of the current block can be obtained based on the motion vector of the subblock containing the top left sample of the current block or the subblock containing the center sample of the current block.
[0382] То, использовать ли текущий блок в качестве кандидата на слияние между участками, также может быть определено на основании режима предсказания, осуществляемого между изображениями, текущего блока. В качестве примера, блок, который кодируется или декодируется на основании модели аффинного движения, может быть установлен как недоступный в качестве кандидата на слияние между участками. Соответственно, хотя текущий блок кодируется или декодируется посредством предсказания, осуществляемого между изображениями, таблица информации о движении с предсказанием, осуществляемым между изображениями, может не обновляться на основании текущего блока, когда режим предсказания, осуществляемого между изображениями, текущего блока представляет собой режим аффинного предсказания.[0382] Whether to use the current block as an inter-partition fusion candidate can also be determined based on the inter-picture prediction mode of the current block. As an example, a block that is encoded or decoded based on an affine motion model may be set as unavailable as a cross-patch fusion candidate. Accordingly, although the current block is encoded or decoded by inter-picture prediction, the inter-picture prediction motion information table may not be updated based on the current block when the inter-picture prediction mode of the current block is an affine prediction mode.
[0383] Альтернативно кандидат на слияние между участками может быть получен на основании вектора подблока по меньшей мере одного подблока, включенного в блок, который кодируется или декодируется на основании модели аффинного движения. В качестве примера, кандидат на слияние между участками может быть получен с использованием подблока, расположенного в верхнем левом углу текущего блока, подблока, расположенного в центре текущего блока, или подблока, расположенного в правом верхнем углу текущего блока. Альтернативно среднее значение векторов подблоков множества подблоков может быть установлено в качестве вектора движения кандидата на слияние между участками.[0383] Alternatively, a cross-section fusion candidate may be obtained based on a subblock vector of at least one subblock included in the block that is encoded or decoded based on the affine motion model. As an example, a cross-section merge candidate may be obtained using a subblock located in the upper left corner of the current block, a subblock located in the center of the current block, or a subblock located in the upper right corner 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.
[0384] Альтернативно кандидат на слияние между участками может быть получен на основании среднего значения аффинных исходных векторов блока, который кодируется или декодируется на основании модели аффинного движения. В качестве примера, среднее значение по меньшей мере одного из первого аффинного исходного вектора, второго аффинного исходного вектора или третьего аффинного исходного вектора текущего блока может быть установлено в качестве вектора движения кандидата на слияние между участками.[0384] Alternatively, a cross-section fusion candidate may be obtained based on the average of the affine source vectors of a block that is encoded or decoded based on the affine motion model. As an example, the average value of at least one of the first affine seed vector, the second affine seed vector, or the third affine seed vector of the current block may be set as the motion vector of the cross-section fusion candidate.
[0385] Альтернативно таблица информации о движении между участками может быть сконфигурирована для каждого режима предсказания, осуществляемого между изображениями. В качестве примера, может быть задано по меньшей мере одно из таблицы информации о движении между участками для блока, кодированного или декодированного с помощью внутриблочного копирования, таблицы информации о движении между участками для блока, кодированного или декодированного на основании модели поступательного движения, или таблицы информации о движении между участками для блока, кодированного или декодированного на основании модели аффинного движения. Одна из множества таблиц информации о движении между участками может быть выбрана согласно режиму предсказания, осуществляемого между изображениями, текущего блока.[0385] Alternatively, an inter-plot motion information table may be configured for each inter-picture prediction mode. As an example, at least one of an inter-lot motion information table for a block encoded or decoded by intra-block copying, an inter-lot motion information table for a block encoded or decoded based on a translational motion model, or an information table may be specified. about the motion between sites for a block encoded or decoded based on an affine motion model. One of the plurality of inter-section motion information tables may be selected according to the inter-picture prediction mode of the current block.
[0386] На фиг. 29 показан пример, в котором таблица информации о движении между участками генерируется для каждого режима предсказания, осуществляемого между изображениями.[0386] In FIG. 29 shows an example in which a table of inter-section motion information is generated for each inter-picture prediction mode.
[0387] Когда блок кодируется или декодируется на основании модели неаффинного движения, кандидат на слияние между участками mvCand, который получается на основании блока, может быть добавлен в таблицу информации о неаффинном движении между участками HmvpCandList. С другой стороны, когда блок кодируется или декодируется на основании модели аффинного движения, кандидат на слияние между участками mvAfCand, который получается на основании блока, может быть добавлен в таблицу информации об аффинном движении между участками HmvpAfCandList.[0387] When a block is encoded or decoded based on a non-affine motion model, an inter-site fusion candidate mvCand that is obtained based on the block may be added to the non-affine inter-site motion information table HmvpCandList. On the other hand, when a block is encoded or decoded based on the affine motion model, the inter-site fusion candidate mvAfCand that is obtained based on the block may be added to the inter-site affine motion information table HmvpAfCandList.
[0388] Аффинные исходные векторы блока могут храниться в кандидате на слияние между участками, полученном из блока, который кодируется или декодируется на основании модели аффинного движения. Соответственно, кандидат на слияние между участками может использоваться в качестве кандидата на слияние для получения аффинного исходного вектора текущего блока.[0388] The affine source vectors of the block may be stored in a cross-section fusion candidate derived from the block that is encoded or decoded based on the affine motion model. Accordingly, the cross-section merge candidate can be used as a merge candidate to obtain the affine source vector of the current block.
[0389] В дополнение к описанной выше таблице информации о движении между участками может быть задана дополнительная таблица информации о движении между участками. В дополнение к описанной выше таблице информации о движении между участками (далее называемой первой таблицей информации о движении между участками) может быть задана долговременная таблица информации о движении (далее называемая второй таблицей информации о движении между участками). В этом случае долговременная таблица информации о движении содержит долговременных кандидатов на слияние.[0389] In addition to the inter-section traffic information table described above, an additional inter-section traffic information table may be specified. In addition to the above-described inter-section traffic information table (hereinafter referred to as the first inter-section traffic information table), a long-term traffic information table (hereinafter referred to as the second inter-section traffic information table) may be specified. In this case, the long-term traffic information table contains long-term merge candidates.
[0390] Когда и первая таблица информации о движении между участками, и вторая таблица информации о движении между участками пусты, кандидаты на слияние между участками могут быть предпочтительно добавлены во вторую таблицу информации о движении между участками. Пока количество кандидатов на слияние между участками, разрешенное для второй таблицы информации о движении между участками, не достигнет максимального количества, кандидаты на слияние между участками могут не добавляться в первую таблицу информации о движении между участками.[0390] When both the first inter-site traffic information table and the second inter-site traffic information table are empty, inter-site merging candidates may preferably be added to the second inter-site traffic information table. Until the number of inter-site fusion candidates allowed for the second inter-site traffic information table reaches the maximum number, the inter-site fusion candidates may not be added to the first inter-site traffic information table.
[0391] Альтернативно один кандидат на слияние предсказания, осуществляемого между изображениями, может быть добавлен как в первую таблицу информации о движении между участками, так и во вторую таблицу информации о движении между участками.[0391] Alternatively, one inter-image prediction fusion candidate may be added to both the first inter-site motion information table and the second inter-site motion information table.
[0392] В этом случае вторая таблица информации о движении между участками, где осуществлена конфигурация, может больше не выполнять обновление. Альтернативно, когда декодированный участок больше или равен предварительно определенной пропорции слайса, может быть обновлена вторая таблица информации о движении между участками. Альтернативно вторая таблица информации о движении между участками может обновляться каждые N линий элементов кодового дерева.[0392] In this case, the second inter-site traffic information table where the configuration has been made may no longer be updated. Alternatively, when the decoded slice is greater than or equal to the predetermined slice proportion, the second inter-slice motion information table may be updated. Alternatively, the second inter-site traffic information table may be updated every N code tree element lines.
[0393] С другой стороны, первая таблица информации о движении между участками может обновляться всякий раз, когда генерируется блок, кодированный или декодированный посредством предсказания, осуществляемого между изображениями. Однако установка может быть выполнена таким образом, чтобы кандидаты на слияние между участками, добавленные во вторую таблицу информации о движении между участками, не использовались для обновления первой таблицы информации о движении между участками.[0393] On the other hand, the first inter-section motion information table may be updated whenever a block encoded or decoded by inter-picture prediction is generated. However, the setting may be made such that inter-site fusion candidates added to the second inter-site traffic information table are not used to update the first inter-site traffic information table.
[0394] Информация для выбора одной из первой таблицы информации о движении между участками или второй таблицы информации о движении между участками может передаваться в битовом потоке. Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем пороговое значение, кандидаты на слияние, включенные в таблицу информации о движении между участками, указанную информацией, могут быть добавлены в список кандидатов на слияние.[0394] Information for selecting one of the first inter-section traffic information table or the second inter-section traffic information table may be transmitted in 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 table specified by the information may be added to the merger candidate list.
[0395] Альтернативно таблица информации о движении между участками может быть выбрана на основании размера, формы или режима предсказания, осуществляемого между изображениями, текущего блока, наличия двунаправленного предсказания, наличия уточнения вектора движения или наличия треугольного разделения.[0395] Alternatively, the inter-plot motion information table may be selected based on the size, shape or inter-picture prediction mode, the current block, the presence of bidirectional prediction, the presence of motion vector refinement, or the presence of a triangular partition.
[0396] Альтернативно, когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем максимальное количество, связанное со слиянием, даже если кандидаты на слияние между участками, включенные в первую таблицу информации о движении между участками, добавлены в список кандидатов на слияние, кандидаты на слияние между участками, включенные во вторую таблицу информации о движении между участками, могут быть добавлены в список кандидатов на слияние.[0396] Alternatively, when the number of merger candidates included in the merger candidate list is less than the maximum number associated with the merger, even if inter-site merger candidates included in the first inter-site traffic information table are added to the candidate list for merging, inter-site merging candidates included in the second inter-site traffic information table may be added to the merging candidate list.
[0397] На фиг. 30 представлено схематическое изображение, показывающее пример, в котором кандидат на слияние между участками, включенный в долговременную таблицу информации о движении, добавлен в список кандидатов на слияние.[0397] In FIG. 30 is a schematic diagram showing an example in which a cross-section merging candidate included in the long-term traffic information table is added to the merging candidate list.
[0398] Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем максимальное количество, кандидаты на слияние между участками, включенные в первую таблицу информации о движении между участками HmvpCandList, могут быть добавлены в список кандидатов на слияние. Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше максимального количества, даже если кандидаты на слияние между участками, включенные в первую таблицу информации о движении между участками, добавлены в список кандидатов на слияние, кандидаты на слияние между участками, включенные в долгосрочную таблицу информации о движении HmvpLTCandList, могут быть добавлены в список кандидатов на слияние.[0398] When the number of merge candidates included in the merge candidate list is less than the maximum number, inter-site merge candidates included in the first inter-site traffic information table HmvpCandList may be added to the merge candidate list. When the number of fusion candidates included in the fusion candidate list is less than the maximum number, even if the inter-site fusion candidates included in the first inter-site traffic information table are added to the fusion candidate list, the inter-site fusion candidates included in long-term traffic information table HmvpLTCandList can be added to the list of merge candidates.
[0399] Таблица 1 показывает процесс добавления кандидатов на слияние между участками, включенных в долговременную таблицу информации о движении, в список кандидатов на слияние.[0399] Table 1 shows the process of adding cross-section merge candidates included in the long-term traffic information table to the merge candidate list.
[0400] [Таблица 1][0400] [Table 1]
[0401] Установка может быть выполнена таким образом, чтобы кандидат на слияние между участками содержал дополнительную информацию, а также информацию о движении. В качестве примера, размер, форма или информация о разделении блока могут быть дополнительно сохранены для кандидата на слияние между участками. При конфигурации списка кандидатов на слияние для текущего блока могут использоваться только кандидатов на слияние предсказания, осуществляемого между изображениями, имеющих такой же или подобный размер, форму или информацию о разделении, что и текущий блок, из кандидатов на слияние предсказания, осуществляемого между изображениями, или кандидатов на слияние предсказания, осуществляемого между изображениями, имеющих такой же или подобный размер, форму или информацию о разделении, что и текущий блок, могут быть предпочтительно добавлены в список кандидатов на слияние.[0401] The setting may be made such that the cross-section merging candidate contains additional information as well as motion information. As an example, the size, shape, or block division information may be further stored for a cross-patch merge candidate. When configuring the fusion candidate list for the current block, only inter-image prediction fusion candidates having the same or similar size, shape, or partitioning information as the current block may be used from among the inter-image prediction merging candidates, or Prediction fusion candidates performed between images having the same or similar size, shape, or partition information as the current block may preferably be added to the fusion candidate list.
[0402] Альтернативно таблица информации о движении между участками может быть сгенерирована для каждого размера, формы или части информации о разделении блока. Список кандидатов на слияние текущего блока может быть сгенерирован с использованием таблицы информации о движении между участками, соответствующей форме, размеру или информации о разделении текущего блока, из множества таблиц информации о движении между участками.[0402] Alternatively, a table of inter-section movement information may be generated for each size, shape, or piece of block division information. A list of merge candidates of the current block may be generated using an inter-lot motion information table corresponding to the shape, size, or partition information of the current block from a plurality of inter-lot motion information tables.
[0403] Когда количество кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, меньше, чем пороговое значение, кандидат на слияние между участками, включенный в таблицу информации о движении между участками, может добавляться в список кандидатов на слияние. Процесс добавления может выполняться в порядке возрастания или убывания на основании индексов. В качестве примера, кандидат на слияние между участками с наибольшим индексом может быть предпочтительно добавлен в список кандидатов на слияние.[0403] When the number of merge candidates included in the merge candidate list of the current block is less than a threshold value, the inter-site merge candidate included in the inter-site traffic information table may be added to the merge candidate list. The adding process can be performed in ascending or descending order based on indices. As an example, a cross-region merge candidate with the highest index may be preferably added to the merge candidate list.
[0404] Когда кандидат на слияние между участками, включенный в таблицу информации о движении между участками, должен быть добавлен в список кандидатов на слияние, может быть выполнен контроль по избыточности в отношении кандидата на слияние между участками относительно кандидатов на слияние, предварительно сохраненных в списке кандидатов на слияние.[0404] When an inter-site merging candidate included in the inter-site traffic information table is to be added to the merging candidate list, a redundancy check can be performed on the inter-site merging candidate relative to the merging candidates previously stored in the list merger candidates.
[0405] В качестве примера, в таблице 2 показан процесс добавления кандидата на слияние между участками в список кандидатов на слияние.[0405] As an example, Table 2 shows the process of adding a cross-site merge candidate to the merge candidate list.
[0406] [Таблица 2][0406] [Table 2]
[0407] Контроль по избыточности может выполняться только в отношении некоторых кандидатов на слияние между участками, включенных в таблицу информации о движении между участками. В качестве примера, контроль по избыточности может выполняться только в отношении кандидатов на слияние между участками с индексами, большими или равными пороговому значению, или индексами, меньшими или равными пороговому значению. Альтернативно контроль по избыточности может выполняться только в отношении N кандидатов на слияние, имеющих наибольшие индексы или имеющих наименьшие индексы.[0407] Redundancy checking can only be performed on some inter-site merging candidates included in the inter-site traffic information table. As an example, redundancy checking may be performed only on merge candidates between regions with indices greater than or equal to a threshold value, or indices less than or equal to a threshold value. Alternatively, redundancy checking may be performed only on the N merge candidates having the largest indices or having the smallest indices.
[0408] Альтернативно контроль по избыточности может выполняться только в отношении некоторых кандидатов на слияние, предварительно сохраненных в списке кандидатов на слияние. В качестве примера, контроль по избыточности может выполняться только в отношении кандидата на слияние с индексом, большим или равным пороговому значению, или индексом, меньшим или равным пороговому значению, или кандидата на слияние, полученного из блока в конкретном местоположении. В этом случае конкретное местоположение может включать по меньшей мере один из левого соседнего блока, верхнего соседнего блока, верхнего правого соседнего блока или нижнего левого соседнего блока текущего блока.[0408] Alternatively, redundancy checking may be performed only on some of the merge candidates previously stored in the merge candidate list. As an example, redundancy checking may be performed only on a merge candidate with an index greater than or equal to a threshold, or an index less than or equal to the threshold, or a merge candidate obtained from a block at a particular location. In this case, the particular location may include at least one of a left neighbor block, a top neighbor block, a top right neighbor block, or a bottom left neighbor block of the current block.
[0409] На фиг. 31 представлено схематическое изображение, показывающее пример, в котором контроль по избыточности выполняется только в отношении некоторых кандидатов на слияние.[0409] In FIG. 31 is a schematic diagram showing an example in which redundancy checking is performed on only some merge candidates.
[0410] Когда кандидат на слияние между участками HmvpCand[j] должен быть добавлен в список кандидатов на слияние, контроль по избыточности может быть выполнен в отношении кандидата на слияние между участками в отношении двух кандидатов на слияние mergeCandList[NumMerge-2] и mergeCandList[NumMerge -1], имеющих наибольшие индексы. В этом случае NumMerge может представлять количество доступных пространственных кандидатов на слияние и временных кандидатов на слияние.[0410] When the inter-site merge candidate HmvpCand[j] is to be added to the list of merge candidates, a redundancy check may be performed on the inter-site merge candidate regarding the two merge candidates mergeCandList[NumMerge-2] and mergeCandList[ NumMerge -1], having the largest indices. In this case, NumMerge can represent the number of available spatial merge candidates and temporal merge candidates.
[0411] В отличие от показанного примера, когда кандидат на слияние между участками HmvpCand[j] должен быть добавлен в список кандидатов на слияние, контроль по избыточности может быть выполнен в отношении кандидата на слияние между участками относительно по меньшей мере двух кандидатов на слияние, имеющих наименьшие индексы. Например, можно проверить, являются ли mergeCandList[0] и mergeCandList[1] идентичными HmvpCand[j]. Альтернативно контроль по избыточности может выполняться только в отношении кандидата на слияние, полученного в конкретном местоположении. В качестве примера, контроль по избыточности может выполняться в отношении по меньшей мере одного из кандидата на слияние, полученного из ближайшего блока, расположенного слева от текущего блока, или кандидата на слияние, полученного из ближайшего блока, расположенного над текущим блоком. Когда кандидат на слияние, полученный в конкретном местоположении, не находится в списке кандидатов на слияние, кандидаты на слияние между участками могут добавляться в список кандидатов на слияние без контроля по избыточности.[0411] Unlike the example shown, where the inter-site merge candidate HmvpCand[j] is to be added to the list of merge candidates, redundancy checking may be performed on the inter-site merge candidate relative to at least two merge candidates, having the smallest indices. For example, you can check whether mergeCandList[0] and mergeCandList[1] are identical to HmvpCand[j]. Alternatively, redundancy checking may be performed only on the merge candidate received at a particular location. As an example, redundancy checking may be performed on at least one of a merge candidate obtained from the nearest block located to the left of the current block or a merge candidate obtained from the nearest block located above the current block. When a merge candidate received at a particular location is not in the merge candidate list, cross-site merge candidates may be added to the merge candidate list without redundancy control.
[0412] Когда найден кандидат на слияние, идентичный первому кандидату на слияние между участками, контроль по избыточности в отношении кандидата на слияние, идентичного первому кандидату на слияние между участками, может быть пропущен, в то время как контроль по избыточности в отношении второго кандидата на слияние между участками выполняется.[0412] When a fusion candidate identical to the first inter-site fusion candidate is found, the redundancy check on the fusion candidate identical to the first inter-site fusion candidate may be skipped while the redundancy check on the second inter-site fusion candidate merging between sections is performed.
[0413] На фиг. 32 представлено схематическое изображение, показывающее пример, в котором пропущен контроль по избыточности в отношении конкретного кандидата на слияние.[0413] In FIG. 32 is a schematic diagram showing an example in which redundancy control is omitted with respect to a particular merger candidate.
[0414] Когда кандидат на слияние между участками HmvpCand[i] с индексом i должен быть добавлен в список кандидатов на слияние, может быть выполнен контроль по избыточности между кандидатом на слияние между участками и кандидатами на слияние, предварительно сохраненными в списке кандидатов на слияние. В этом случае, когда найден кандидат на слияние mergeCandList[j], идентичный кандидату на слияние между участками HmvpCand[i], кандидат на слияние между участками HmvpCand[i] может не добавляться в список кандидатов на слияние, и может быть выполнен контроль по избыточности между кандидатом на слияние между участками HmvpCand[i-1], имеющим индекс i-1, и кандидатами на слияние. В этом случае контроль по избыточности между кандидатом на слияние между участками HmvpCand[i-1] и кандидатом на слияние mergeCandList[j] может быть пропущен.[0414] When the inter-site merge candidate HmvpCand[i] with index i is to be added to the merge candidate list, redundancy checking can be 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] is found identical to the inter-site merge candidate HmvpCand[i], the inter-site merge candidate HmvpCand[i] may not be added to the merge candidate list, and redundancy checking may be performed between a fusion candidate between sites HmvpCand[i-1] having index i-1 and fusion candidates. In this case, the redundancy check between the cross-section merge candidate HmvpCand[i-1] and the merge candidate mergeCandList[j] may be skipped.
[0415] Например, в примере, показанном на фиг. 32, определяется, что HmvpCand[i] и mergeCandList[2] идентичны друг другу. Соответственно, HmvpCand[i] может не добавляться в список кандидатов на слияние, и контроль по избыточности может выполняться в отношении HmvpCand[i-1]. В этом случае контроль по избыточности между HvmpCand[i-1] и mergeCandList[2] может быть пропущен.[0415] For example, in the example shown in FIG. 32, it is determined that HmvpCand[i] and mergeCandList[2] are identical to each other. Accordingly, HmvpCand[i] may not be added to the merge candidate list, and redundancy checking may be performed on HmvpCand[i-1]. In this case, the redundancy check between HvmpCand[i-1] and mergeCandList[2] may be skipped.
[0416] Когда количество кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, меньше, чем пороговое значение, по меньшей мере один из парного кандидата на слияние или нулевого кандидата на слияние может быть дополнительно включен в дополнение к кандидату на слияние между участками. Парный кандидат на слияние относится к кандидату на слияние с вектором движения, равным среднему из векторов движения двух или более кандидатов на слияние, а нулевой кандидат на слияние относится к кандидату на слияние с вектором движения, равным 0.[0416] When the number of merge candidates included in the current block's merge candidate list is less than a threshold, at least one of the paired merge candidate or the null merge candidate may be further included in addition to the inter-block merge candidate . A pairwise fusion candidate refers to a fusion candidate with a motion vector equal to the average of the motion vectors of two or more fusion candidates, and a null fusion candidate refers to a fusion candidate with a motion vector equal to 0.
[0417] Кандидат на слияние может быть добавлен в список кандидатов на слияние текущего блока в следующем порядке.[0417] A merge candidate may be added to the merge candidate list of the current block in the following order.
[0418] Пространственный кандидат на слияние - Временной кандидат на слияние - Кандидат на слияние между участками - (Кандидат на аффинное слияние между участками) - Парный кандидат на слияние - Нулевой кандидат на слияние.[0418] Spatial Merge Candidate - Temporal Merge Candidate - Inter-Site Merge Candidate - (Affine Inter-Site Merge Candidate) - Pairwise Merge Candidate - Null Merge Candidate.
[0419] Пространственный кандидат на слияние относится к кандидату на слияние, полученному из по меньшей мере одного из соседнего блока или несоседнего блока, и временной кандидат на слияние относится к кандидату на слияние, полученному из предшествующего опорного изображения. Кандидат на аффинное слияние между участками относится к кандидату на слияние между участками, полученному из блока, кодированного или декодированного с помощью модели аффинного движения.[0419] A spatial merge candidate refers to a merge candidate obtained from at least one of an adjacent block or a non-neighboring block, and a temporal merge candidate refers to a merge candidate obtained from a previous reference image. An inter-region affine fusion candidate refers to an inter-region fusion candidate obtained from a block encoded or decoded by an affine motion model.
[0420] Таблица информации о движении между участками может использоваться даже в режиме предсказания вектора движения. В качестве примера, когда количество кандидатов предсказания вектора движения, включенных в список кандидатов предсказания вектора движения текущего блока, меньше, чем пороговое значение, кандидат на слияние между участками, включенный в таблицу информации о движении между участками, может быть установлен как кандидат предсказания вектора движения для текущего блока. Подробно вектор движения кандидата на слияние между участками может быть установлен в качестве кандидата предсказания вектора движения.[0420] The inter-section motion information table can be used even in motion vector prediction mode. As an 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 table may be set as a motion vector prediction candidate for the current block. In detail, the motion vector of the cross-section fusion candidate can be set as the motion vector prediction candidate.
[0421] Когда выбирается один из кандидатов предсказания вектора движения, включенных в список кандидатов предсказания вектора движения текущего блока, выбранный кандидат может быть установлен как предсказатель вектора движения текущего блока. Впоследствии вектор движения текущего блока может быть получен путем декодирования остаточного значения вектора движения текущего блока и последующего сложения предсказателя вектора движения и остаточного значения вектора движения.[0421] When one 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. Subsequently, the motion vector of the current block can be obtained by decoding the residual motion vector value of the current block and then adding the motion vector predictor and the residual motion vector value.
[0422] Список кандидатов предсказания вектора движения текущего блока может быть сконфигурирован в следующем порядке.[0422] The motion vector prediction candidate list of the current block may be configured in the following order.
[0423] Пространственный кандидат предсказания вектора движения - Временной кандидат предсказания вектора движения - Кандидат на слияние в участке декодирования между изображениями - (Кандидат на аффинное слияние в участке декодирования между изображениями) - Нулевой кандидат предсказания вектора движения.[0423] Spatial motion vector prediction candidate - Temporal motion vector prediction candidate - Inter-picture decoding section fusion candidate - (Inter-picture decoding section affine fusion candidate) - Null motion vector prediction candidate.
[0424] Пространственный кандидат предсказания вектора движения относится к кандидату предсказания вектора движения, полученному из по меньшей мере одного из соседнего блока или несоседнего блока, и временной кандидат предсказания вектора движения относится к кандидату предсказания вектора движения, полученному из предыдущего опорного изображения. Кандидат на аффинное слияние между участками относится к кандидату предсказания вектора движения между участками, полученному из блока, кодированного или декодированного с помощью модели аффинного движения. Нулевой кандидат предсказания вектора движения представляет кандидата, имеющего вектор движения, равный 0.[0424] A spatial motion vector prediction candidate refers to a motion vector prediction candidate obtained from at least one of an adjacent block or a non-neighboring block, and a temporal motion vector prediction candidate refers to a motion vector prediction candidate obtained from a previous reference picture. An inter-region affine fusion candidate refers to an inter-region motion vector prediction candidate obtained from a block encoded or decoded by an affine motion model. The null motion vector prediction candidate represents a candidate having a motion vector equal to 0.
[0425] Блок кодирования может быть разбит на множество элементов предсказания, и элементы предсказания могут быть подвергнуты предсказанию. В этом случае элемент предсказания указывает базовый элемент для выполнения предсказания.[0425] A coding block may be divided into a plurality of prediction elements, and the prediction elements may be subject to prediction. In this case, the prediction element specifies the base element for performing the prediction.
[0426] Блок кодирования может быть разбит с использованием по меньшей мере одной из вертикальной линии, горизонтальной линии, наклонной линии или диагональной линии. Информация для определения по меньшей мере одного из количества, углов или местоположений линий, которые разбивают блок кодирования, может передаваться в битовом потоке. В качестве примера, информация, указывающая одного из множества кандидатов типа раздела блока кодирования, может передаваться в битовом потоке, или информация, указывающая одного из множества кандидатов линий, которые разбивают блок кодирования, может передаваться в битовом потоке. Альтернативно информация для определения количества или типов кандидатов линий, разделяющих блок кодирования, может передаваться в битовом потоке. В качестве примера, то, следует ли использовать наклонную линию, имеющую больший угол, чем диагональная линия, и/или наклонную линию, имеющую меньший угол, чем диагональная линия, в качестве кандидата линии, может быть определено с использованием 1-битного флага.[0426] A coding block may be divided using at least one of a vertical line, a horizontal line, an oblique line, or a diagonal line. Information for determining at least one of the number, angles, or locations of lines that break up a coding block may be transmitted in the bit stream. As an example, information indicating one of a plurality of encoding block section type candidates may be transmitted in a bitstream, or information indicating one of a plurality of line candidates that divide an encoding block may be transmitted in a bitstream. Alternatively, information for determining the number or types of line candidates dividing a coding block may be carried in the bit stream. As an example, whether a slant line having a larger angle than the diagonal line and/or a slant line having a smaller angle than the diagonal line should be used as a line candidate can be determined using a 1-bit flag.
[0427] Альтернативно по меньшей мере одно из количества, углов или местоположений линий, разделяющих блок кодирования, может быть адаптивно определено на основании по меньшей мере одного из режима предсказания, осуществляемого между изображениями, блока кодирования, режима предсказания, осуществляемого между изображениями, местоположения доступного кандидата на слияние или аспекта разделения соседнего блока.[0427] Alternatively, at least one of the number, angles, or locations of lines dividing a coding block may be adaptively determined based on at least one of an inter-picture prediction mode, a coding block, an inter-picture prediction mode, a location available a merge candidate or splitting aspect of an adjacent block.
[0428] Когда блок кодирования разбивают на множество элементов предсказания, внутреннее предсказание или предсказание, осуществляемое между изображениями, может быть выполнено в отношении элементов предсказания.[0428] When a coding block is divided into a plurality of prediction elements, intra or inter-picture prediction may be performed on the prediction elements.
[0429] На фиг. 33 представлено схематическое изображение, показывающее пример разделения блока кодирования на множество элементов предсказания с использованием диагональной линии.[0429] In FIG. 33 is a schematic diagram showing an example of dividing a coding block into a plurality of prediction elements using a diagonal line.
[0430] Как и в примерах, показанных на фиг. 33A и 33B, блок кодирования может быть разбит на два треугольных элемента предсказания с использованием диагональной линии.[0430] As with the examples shown in FIGS. 33A and 33B, a coding block may be divided into two triangular prediction elements using a diagonal line.
[0431] На фиг. 33A и 33B показано, что блок кодирования разбит на два элемента предсказания с использованием диагональной линии, соединяющей две вершины блока кодирования. Однако блок кодирования может быть разбит на два элемента предсказания с использованием наклонной линии, имеющей по меньшей мере один конец, который не проходит через вершину блока кодирования.[0431] In FIG. 33A and 33B show that a coding block is divided into two prediction elements using a diagonal line connecting two vertices of the coding block. However, a coding block may be split into two prediction elements using an inclined line having at least one end that does not pass through the top of the coding block.
[0432] На фиг. 34 представлено схематическое изображение, показывающее пример разделения блока кодирования на два элемента предсказания.[0432] In FIG. 34 is a schematic diagram showing an example of dividing a coding block into two prediction elements.
[0433] Как и в примерах, показанных на фиг. 34A и 34B, блок кодирования может быть разбит на два элемента предсказания с использованием наклонной линии, оба конца которой прилегают к верхнему краю и нижнему краю блока кодирования.[0433] As in the examples shown in FIGS. 34A and 34B, a coding block may be divided into two prediction elements using an inclined line, both ends of which are adjacent to an upper edge and a lower edge of the coding block.
[0434] льтернативно, как и в примерах, показанных на фиг. 34C и 34D, блок кодирования может быть разбит на два элемента предсказания с использованием наклонной линии, оба конца которой прилегают к левому краю и правому краю блока кодирования.[0434] Alternatively, as in the examples shown in FIGS. 34C and 34D, a coding block may be divided into two prediction elements using an inclined line, both ends of which are adjacent to the left edge and the right edge of the coding block.
[0435] Альтернативно блок кодирования может быть разбит на два блока предсказания разных размеров. В качестве примера, путем установки наклонной линии, разделяющей блок кодирования, так, чтобы она прилегала к двум краям, образуя одну вершину, блок кодирования может быть разбит на два элемента предсказания разных размеров.[0435] Alternatively, the coding block may be split into two prediction blocks of different sizes. As an example, by setting a slant line dividing a coding block so that it is adjacent to two edges to form one vertex, the coding block can be divided into two prediction elements of different sizes.
[0436] На фиг. 35 показаны примеры, в которых блок кодирования разбивается на множество блоков предсказания разных размеров.[0436] In FIG. 35 shows examples in which a coding block is divided into multiple prediction blocks of different sizes.
[0437] Как и в примерах, показанных на фиг. 35A и 35B, путем установки диагональной линии, соединяющей верхнюю левую часть и нижнюю правую часть блока кодирования, для прохождения через левый край, правый край, верхний край или нижний край блока кодирования, а не прохождения через верхний левый угол или нижний правый угол блока кодирования, блок кодирования может быть разбит на два элемента предсказания разных размеров.[0437] As with the examples shown in FIGS. 35A and 35B, by setting a diagonal line connecting the upper left part and the lower right part of the encoding block to pass through the left edge, right edge, top edge or bottom edge of the encoding block, rather than passing through the upper left corner or lower right corner of the encoding block , the coding block can be split into two prediction elements of different sizes.
[0438] Альтернативно, как и в примерах, показанных на фиг. 35C и 35D, путем установки диагональной линии, соединяющей верхнюю правую часть и нижнюю левую часть блока кодирования, для прохождения через левый край, правый край, верхний край или нижний край блока кодирования, а не прохождения через верхний левый угол или нижний правый угол блока кодирования, блок кодирования может быть разбит на два элемента предсказания разных размеров.[0438] Alternatively, as in the examples shown in FIGS. 35C and 35D, by setting a diagonal line connecting the upper right part and the lower left part of the encoding block to pass through the left edge, right edge, top edge or bottom edge of the encoding block, rather than passing through the upper left corner or lower right corner of the encoding block , the coding block can be split into two prediction elements of different sizes.
[0439] Каждый из элементов предсказания, сгенерированных путем разделения блока кодирования, называется «N-м элементом предсказания». В качестве примера, в примерах, показанных на фиг. 33-35, PU1 может быть задан в качестве первого элемента предсказания, и PU2 может быть задан в качестве второго элемента предсказания. Первый элемент предсказания может относиться к элементу предсказания, содержащему отсчет, расположенный в нижней левой части блока кодирования, или отсчет, расположенный в верхней левой части блока кодирования, и второй элемент предсказания может относиться к элементу предсказания, содержащему отсчет, расположенный в верхней правой части блока кодирования, или отсчет, расположенный в нижней правой части блока кодирования.[0439] Each of the prediction elements generated by dividing the coding block is called the "Nth prediction element". As an example, in the examples shown in FIGS. 33-35, PU1 may be specified as the first prediction element, and PU2 may be specified as the second prediction element. The first prediction element may relate to a prediction element containing a sample located in the lower left part of the encoding block, or a sample located in the upper left part of the encoding block, and the second prediction element may refer to a prediction element containing a sample located in the upper right part of the block encoding, or count, located at the bottom right of the encoding block.
[0440] И наоборот, элемент предсказания, содержащий отсчет, расположенный в верхней правой части блока кодирования, или отсчет, расположенный в нижней правой части блока кодирования, может быть задан в качестве первого элемента предсказания, и элемент предсказания, содержащий отсчет, расположенный в нижней левой части блока кодирования, или отсчет, расположенный в верхней левой части блока кодирования, может быть задан в качестве второго элемента предсказания.[0440] Conversely, a prediction element containing a sample located in the upper right part of the encoding block or a sample located in the lower right part of the encoding block may be set as the first prediction element, and a prediction element containing a sample located in the lower left side of the encoding block, or a sample located at the upper left side of the encoding block may be specified as the second prediction element.
[0441] Следующие варианты осуществления будут описаны с фокусировкой на пример разделения с использованием диагональной линии. В частности, разделение блока кодирования на два элемента предсказания с использованием диагональной линии называется диагональным разделением или треугольным разделением, и элемент предсказания, сгенерированный на основании диагонального разделения, называется треугольным элементом предсказания. Однако, следует понимать, что следующие варианты осуществления могут применяться даже к примеру разделения с использованием наклонной линии, имеющей угол, отличный от угла вертикальной линии, горизонтальной линии или диагональной линии.[0441] The following embodiments will be described by focusing on an example of division using a diagonal line. Specifically, dividing a coding block into two prediction elements using a diagonal line is called diagonal division or triangular division, and a prediction element generated based on the diagonal division is called a triangular prediction element. However, it should be understood that the following embodiments can be applied even to the example of dividing using an inclined line having an angle different from the angle of a vertical line, a horizontal line or a diagonal line.
[0442] То, следует ли применять диагональное разделение к блоку кодирования, может быть определено на основании по меньшей мере одного из типа слайса, максимального количества кандидатов на слияние, которое может включать список кандидатов на слияние, размера блока кодирования, формы блока кодирования, режима предсказательного кодирования блока кодирования или аспекта разделения порождающего узла.[0442] Whether diagonal partitioning should be applied to a coding block may be determined based on at least one of slice type, maximum number of merge candidates, which may include a list of merge candidates, coding block size, coding block shape, mode predictive coding of the coding block or partitioning aspect of the parent node.
[0443] В качестве примера, то, следует ли применять диагональное разделение к блоку кодирования, может быть определено на основании того, имеет ли текущий слайс тип B. Диагональное разделение может быть разрешено только тогда, когда текущий слайс имеет тип B.[0443] As an example, whether diagonal partitioning should be applied to a coding block can be determined based on whether the current slice is of type B. Diagonal partitioning can be enabled only when the current slice is of type B.
[0444] Альтернативно то, следует ли применять диагональное разделение к блоку кодирования, может быть определено на основании того, составляет ли максимальное количество кандидатов на слияние, включенных в список кандидатов на слияние, два или более. Диагональное разделение может быть разрешено только тогда, когда максимальное количество кандидатов на слияние, включенных в список кандидатов на слияние, составляет два или более.[0444] Alternatively, whether diagonal division should be applied to a coding block may be determined based on whether the maximum number of merge candidates included in the merge candidate list is two or more. A diagonal split can only be permitted when the maximum number of merger candidates included in the merger candidate list is two or more.
[0445] Альтернативно, когда по меньшей мере одна из ширины или высоты больше чем 64 в аппаратной реализации, неблагоприятно то, что к элементу обработки данных, имеющему размер 64×64, осуществляют избыточный доступ. Соответственно, когда по меньшей мере одна из ширины или высоты блока кодирования больше, чем пороговое значение, может быть не разрешено разбивать блок кодирования на множество блоков предсказания. В качестве примера, когда по меньшей мере одна из ширины или высоты блока кодирования больше чем 64, диагональное разделение может не использоваться.[0445] Alternatively, when at least one of the width or height is greater than 64 in the hardware implementation, it is disadvantageous that the processing element having a size of 64×64 is redundantly accessed. Accordingly, when at least one of the width or height of a coding block is larger than a threshold value, it may not be allowed to divide the coding block into a plurality of prediction blocks. As an example, when at least one of the encoding block width or height is greater than 64, the diagonal division may not be used.
[0446] Альтернативно то, следует ли применять диагональное разделение к блоку кодирования, может быть определено на основании по меньшей мере одного из того, меньше или равняется ли количество отсчетов, включенных в блок кодирования, первому пороговому значению, или того, больше или равняется ли количество отсчетов, включенных в блок кодирования, второму пороговому значению. В качестве примера, когда количество отсчетов, включенных в блок кодирования, меньше или равняется первому пороговому значению или когда количество отсчетов, включенных в блок кодирования, больше или равняется второму пороговому значению, установка может быть выполнена так, что диагональное разделение не применяется к блоку кодирования. Альтернативно то, следует ли применять диагональное разделение к блоку кодирования, может быть определено на основании того, меньше ли соотношение ширины и высоты блока кодирования, чем первое пороговое значение, или того, больше ли соотношение ширины и высоты блока кодирования, чем второе пороговое значение. В этом случае соотношение ширины и высоты whRatio блока кодирования может быть определено в качестве соотношения между шириной CbW и высотой CbH блока кодирования, как показано в уравнении 21 ниже.[0446] Alternatively, whether diagonal division should be applied to a coding block may be determined based on at least one of whether the number of samples included in the coding block is less than or equal to the first threshold value, or whether the number of samples included in the coding block is less than or equal to the number of samples included in the coding block, the second threshold value. As an example, when the number of samples included in the encoding block is less than or equal to the first threshold value or when the number of samples included in the encoding block is greater than or equal to the second threshold value, the setting may be made such that the diagonal division is not applied to the encoding block . Alternatively, whether diagonal division should be applied to the encoding block may be determined based on whether the width-to-height ratio of the encoding block is smaller than the first threshold value or whether the width-to-height ratio of the encoding block is greater than the second threshold value. In this case, the width-height ratio whRatio of the encoding block can be defined as the ratio between the width CbW and the height CbH of the encoding block, as shown in Equation 21 below.
[0447] [Уравнение 21][0447] [Equation 21]
[0448] Второе пороговое значение может представлять собой обратное число первого порогового значения. В качестве примера, когда первое пороговое значение равняется k, второе пороговое значение может равняться 1/k.[0448] The second threshold value may be the inverse of the first threshold value. As an example, when the first threshold value is equal to k , the second threshold value may be equal to 1/k .
[0449] Диагональное разделение может быть применено к блоку кодирования только тогда, когда соотношение ширины и высоты блока кодирования находится между первым пороговым значением и вторым пороговым значением.[0449] Diagonal division can be applied to a coding block only when the width-to-height ratio of the coding block is between the first threshold and the second threshold.
[0450] Альтернативно треугольное разделение может быть использовано только тогда, когда соотношение ширины и высоты блока кодирования меньше, чем первое пороговое значение, или больше, чем второе пороговое значение. В качестве примера, когда первое пороговое значение равняется 16, диагональное разделение может не быть разрешено для блока кодирования с размером 64×4 или 4×64.[0450] Alternatively, the triangular partition may be used only when the width-to-height ratio of the coding block is less than the first threshold value or greater than the second threshold value. As an example, when the first threshold value is 16, diagonal division may not be allowed for a 64x4 or 4x64 encoding block.
[0451] Альтернативно то, разрешать ли диагональное разделение, может быть определено на основании аспекта разделения порождающего узла. В качестве примера, когда блок кодирования, который представляет собой порождающий узел, разбивают на основании разделения на основе четвертичного дерева, диагональное разделение может быть применено к блоку кодирования, который представляет собой листовой узел. С другой стороны, когда блок кодирования, который представляет собой порождающий узел, разбивают на основании разделения на основе двоичного дерева или разделения на основе троичного дерева, установка может быть выполнена так, что диагональное разделение не разрешают для блока кодирования, который представляет собой листовой узел.[0451] Alternatively, whether to allow diagonal splitting may be determined based on the splitting aspect of the parent node. As an example, when an encoding block that represents a parent node is partitioned based on a quaternary tree partition, a diagonal partition may be applied to the encoding block that is a leaf node. On the other hand, when an encoding block that represents a parent node is partitioned based on a binary tree-based partition or a ternary tree-based partition, the setting can be made such that diagonal partitioning is not allowed for the encoding block that is a leaf node.
[0452] Альтернативно то, разрешать ли диагональное разделение, может быть определено на основании режима предсказательного кодирования блока кодирования. В качестве примера, диагональное разделение может быть разрешено только тогда, когда блок кодирования кодируют с помощью внутреннего предсказания, когда блок кодирования кодируют с помощью предсказания, осуществляемого между изображениями, или когда блок кодирования кодируют в предварительно заданном режиме предсказания, осуществляемого между изображениями. В этом случае заданный режим предсказания, осуществляемого между изображениями, может указывать по меньшей мере один из режима слияния, режима предсказания вектора движения, аффинного режима слияния или режима предсказания вектора аффинного движения.[0452] Alternatively, whether to allow diagonal division may be determined based on the predictive coding mode of the coding block. As an example, diagonal division can be enabled only when the encoding block is encoded by intra prediction, when the encoding block is encoded by inter-picture prediction, or when the encoding block is encoded in a predetermined inter-picture prediction mode. In this case, the predetermined inter-image prediction mode may indicate at least one of a fusion mode, a motion vector prediction mode, an affine fusion mode, or an affine motion vector prediction mode.
[0453] Альтернативно то, разрешать ли диагональное разделение, может быть определено на основании размера участка параллельной обработки. В качестве примера, когда размер блока кодирования больше, чем размер участка параллельной обработки, диагональное разделение может не использоваться.[0453] Alternatively, whether to allow diagonal partitioning may be determined based on the size of the parallel processing area. As an example, when the size of the encoding block is larger than the size of the parallel processing area, diagonal division may not be used.
[0454] То, следует ли применять диагональное разделение к блоку кодирования, может быть определено с учетом двух или более перечисленных выше условий.[0454] Whether or not diagonal division should be applied to a coding block may be determined taking into account two or more of the above conditions.
[0455] Кроме того, информация, указывающая то, разрешать ли диагональное разделение, может передаваться в битовом потоке. Информация может передаваться на уровне последовательности, изображения, слайса или блока. Информация указывает, что диагональное разделение разрешено, и диагональное разделение может быть применено к блоку кодирования только тогда, когда по меньшей мере одно из перечисленных выше условий удовлетворяется.[0455] In addition, information indicating whether to enable diagonal division may be transmitted in the bit stream. Information can be transferred at the sequence, image, slice or block level. The information indicates that diagonal division is allowed, and diagonal division can be applied to the encoding block only when at least one of the above conditions is satisfied.
[0456] Когда определяется, что следует применять диагональное разделение к блоку кодирования, информация, указывающая количество или местоположения линий, разделяющих блок кодирования, может передаваться в битовом потоке.[0456] When it is determined that a diagonal division should be applied to a coding block, information indicating the number or locations of lines dividing the coding block may be transmitted in the bit stream.
[0457] В качестве примера, когда блок кодирования разбивают путем диагональной линии, информация, указывающая направление диагональной линии, разделяющей блок кодирования, может передаваться в битовом потоке. В качестве примера, флаг triangle_partition_type_flag, который указывает направление диагональной линии, может передаваться в битовом потоке. Флаг указывает то, разбит ли блок кодирования диагональной линией, соединяющей верхнюю левую часть и нижнюю правую часть, или диагональной линией, соединяющей верхнюю правую часть и нижнюю левую часть. Разделение блока кодирования диагональной линией, соединяющей верхнюю левую часть и нижнюю правую часть, может называться левым треугольным типом раздела, и разделение блока кодирования диагональной линией, соединяющей верхнюю правую часть и нижнюю левую часть, может называться правым треугольным типом раздела. В качестве примера, флаг, имеющий значение 0, может указывать, что тип раздела блока кодирования имеет левый треугольный тип раздела, и флаг, имеющий значение 1, может указывать, что тип раздела блока кодирования имеет правый треугольный тип раздела.[0457] As an example, when a coding block is divided by a diagonal line, information indicating the direction of the diagonal line dividing the coding block may be transmitted in a bit stream. As an example, the triangle_partition_type_flag, which indicates the direction of the diagonal line, may be carried in the bit stream. The flag indicates whether the coding block is divided by a diagonal line connecting the upper left part and the lower right part, or a diagonal line connecting the upper right part and the lower left part. Dividing a coding block by a diagonal line connecting an upper left portion and a lower right portion may be called a left triangular partition type, and dividing a coding block by a diagonal line connecting an upper right portion and a lower left portion may be called a right triangular partition type. As an example, a flag having a value of 0 may indicate that the encoding block section type is a left triangular section type, and a flag having a value of 1 may indicate that the encoding block section type is a right triangular section type.
[0458] Информация, указывающая тип раздела блока кодирования, может передаваться на уровне блока кодирования. Соответственно, тип раздела может быть определен для каждого блока кодирования, к которому применяется диагональное разделение.[0458] Information indicating the type of section of a coding block may be transmitted at the coding block level. Accordingly, a partition type can be determined for each encoding block to which the diagonal partition is applied.
[0459] В качестве другого примера, может передаваться информация, указывающая тип раздела для последовательности, изображения, слайса, тайла или элемента кодового дерева. В этом случае тип раздела блоков кодирования, к которым применяется диагональное разделение, может быть установлен идентичным образом в последовательности, изображении, слайсе, тайле или элементе кодового дерева.[0459] As another example, information indicating the partition type for a sequence, image, slice, tile, or code tree element may be transmitted. In this case, the partition type of the encoding blocks to which the diagonal partition is applied can be set identically in a sequence, picture, slice, tile, or code tree element.
[0460] Альтернативно может быть кодирована и передана информация для определения типа раздела первого элемента кодирования, к которому применяется диагональное разделение в элементе кодового дерева, и установка может быть выполнена так, что второй и последующие элементы кодирования, к которым применяется диагональное разделение, используют одинаковый тип раздела в качестве первого элемента кодирования.[0460] Alternatively, information may be encoded and transmitted to determine the section type of the first encoding element to which the diagonal division is applied in a code tree element, and the setting may be made such that the second and subsequent encoding elements to which the diagonal division is applied use the same section type as the first encoding element.
[0461] В качестве другого примера, тип раздела блока кодирования может быть определен на основании типа раздела соседнего блока. В этом случае соседний блок может содержать по меньшей мере один из соседнего блока, смежного с верхним левым углом блока кодирования, соседнего блока, смежного с верхним правым углом блока кодирования, соседнего блока, смежного с нижним левым углом блока кодирования, соседнего блока, расположенного над блоком кодирования, или соседнего блока, расположенного слева от блока кодирования. В качестве примера, тип раздела текущего блока может быть установлен таким же, как тип раздела соседнего блока. Альтернативно тип раздела текущего блока может быть определен на основании того, применяется ли левый треугольный тип раздела к верхнему левому соседнему блоку, или того, применяется ли правый треугольный тип раздела к верхнему правому соседнему блоку или нижнему левому соседнему блоку.[0461] As another example, the section type of an encoding block may be determined based on the section type of an adjacent block. In this case, the adjacent block may contain at least one of an adjacent block adjacent to the upper left corner of the encoding block, an adjacent block adjacent to the upper right corner of the encoding block, an adjacent block adjacent to the lower left corner of the encoding block, an adjacent block located above coding block, or an adjacent block located to the left of the coding block. As an example, the section type of the current block can be set to the same as the section type of an adjacent block. Alternatively, the partition type of the current block may be determined based on whether the left triangular partition type applies to the top left adjacent block, or whether the right triangular partition type applies to the top right neighbor block or the bottom left neighbor block.
[0462] Чтобы выполнить компенсацию предсказания движения для первого треугольного элемента предсказания и второго треугольного элемента предсказания, может быть получена информация о движении каждого из первого треугольного элемента предсказания и второго треугольного элемента предсказания. В этом случае информация о движении первого треугольного элемента предсказания и второго треугольного элемента предсказания может быть получена от кандидатов на слияние, включенных в список кандидатов на слияние. Чтобы отличать общий список кандидатов на слияние от списка кандидатов на слияние, используемого для получения информации о движении треугольных элементов предсказания, список кандидатов на слияние для получения информации о движении треугольных элементов предсказания называется списком треугольных кандидатов на слияние, и кандидат на слияние, включенный в список треугольных кандидатов на слияние называется треугольным кандидатом на слияние. Однако использование вышеописанных способа получения кандидата на слияние и способа получения списка кандидатов на слияние для способа конфигурирования треугольных кандидатов на слияние и списка треугольных кандидатов на слияние также включено в сущность настоящего изобретения.[0462] To perform motion prediction compensation for the first triangular prediction element and the second triangular prediction element, motion information of each of the first triangular prediction element and the second triangular prediction element can be obtained. In this case, motion information of the first triangular prediction element and the second triangular prediction element can be obtained from the fusion candidates included in the fusion candidate list. To distinguish the general fusion candidate list from the fusion candidate list used to obtain motion information of triangular prediction elements, the fusion candidate list for obtaining motion information of triangular prediction elements is called a triangular fusion candidate list, and the fusion candidate included in the list triangular fusion candidates are called triangular fusion candidates. However, using the above-described method for obtaining a merge candidate and the method for obtaining a list of merge candidates for a method for configuring triangular merge candidates and a list of triangular merge candidates is also included in the spirit of the present invention.
[0463] Информация для определения максимального количества треугольных кандидатов на слияние, которое может содержать список треугольных кандидатов на слияние, может быть передано в потоке. Информация может указывать разницу между максимальным количеством кандидатов на слияние, которое может содержать список кандидатов на слияние, и максимальным количеством треугольных кандидатов на слияние, которое может содержать список треугольных кандидатов на слияние.[0463] Information for determining the maximum number of triangular merge candidates that the list of triangular merge candidates can contain may be transmitted in the stream. The information may indicate the difference between the maximum number of merge candidates that the list of merge candidates can contain and the maximum number of triangular merge candidates that the list of triangular merge candidates can contain.
[0464] Треугольные кандидаты на слияние могут быть получены от пространственных соседних блоков и временных соседних блоков блока кодирования.[0464] Triangular merge candidates can be obtained from spatial neighbors and temporal neighbors of a coding block.
[0465] На фиг. 36 представлено схематическое изображение, показывающее соседние блоки, используемые для получения треугольного кандидата на слияние.[0465] In FIG. 36 is a schematic diagram showing adjacent blocks used to obtain a triangular merge candidate.
[0466] Треугольный кандидат на слияние может быть получен с использованием по меньшей мере одного из соседнего блока, расположенного над блоком кодирования, соседнего блока, расположенного слева от блока кодирования, или совмещаемого блока, включенного в изображение, отличное от изображения блока кодирования. Верхний соседний блок может содержать по меньшей мере один из блока, содержащего отсчет (xCb+CbW-1, yCb-1), расположенный над блоком кодирования, блока, содержащего отсчет (xCb+CbW, yCb-1), расположенный над блоком кодирования, и блока, содержащего отсчет (xCb-1, yCb-1), расположенный над блоком кодирования. Левый соседний блок может содержать по меньшей мере один из блока, содержащего отсчет (xCb-1, yCb+CbH-1), расположенный слева от блока кодирования, или блока, содержащего отсчет (xCb-1, yCb+CbH), расположенный слева от блока кодирования. Совмещаемый блок может быть определен одним из блока, содержащего отсчет (xCb+CbW, yCb+CbH), смежный с верхним правым углом блока кодирования в совмещаемом изображении, или блока, содержащего отсчет (xCb/2, yCb/2), расположенный в центре блока кодирования в совмещаемом изображении.[0466] A triangular fusion candidate may be obtained using at least one of a neighboring block located above the encoding block, an adjacent block located to the left of the encoding block, or a fusion block included in an image other than the encoding block image. The upper adjacent block may contain at least one of a block containing a sample (xCb+CbW-1, yCb-1) located above the encoding block, a block containing a sample (xCb+CbW, yCb-1) located above the encoding block, and a block containing a sample (xCb-1, yCb-1) located above the coding block. The left adjacent block may contain at least one of a block containing a sample (xCb-1, yCb+CbH-1) located to the left of the encoding block, or a block containing a sample (xCb-1, yCb+CbH) located to the left of coding block. The fusion block can be defined as one of a block containing a sample (xCb+CbW, yCb+CbH) adjacent to the upper right corner of the encoding block in the fusion image, or a block containing a sample (xCb/2, yCb/2) located in the center coding block in the combined image.
[0467] Соседние блоки могут быть обнаружены в предварительно заданном порядке, и треугольные кандидаты на слияние могут образовывать список треугольных кандидатов на слияние в предварительно заданном порядке. В качестве примера, треугольные кандидаты на слияние могут быть обнаружены в порядке B1, A1, B0, A0, C0, B2 и C1 для образования списка треугольных кандидатов на слияние.[0467] Neighboring blocks may be discovered in a predetermined order, and triangular merge candidates may form a list of triangular merge candidates in a predetermined order. As an example, triangular fusion candidates may be detected in the order B1, A1, B0, A0, C0, B2, and C1 to form a list of triangular fusion candidates.
[0468] Информация о движении треугольных элементов предсказания может быть получена на основании списка треугольных кандидатов на слияние. То есть треугольные элементы предсказания могут находиться в одном списке треугольных кандидатов на слияние.[0468] Motion information of the triangular prediction elements may be obtained based on the list of triangular fusion candidates. That is, triangular prediction elements can be in the same list of triangular merging candidates.
[0469] Информация для указания по меньшей мере одного из треугольных кандидатов на слияние, включенных в список треугольных кандидатов на слияние, может передаваться в битовом потоке для получения информации о движении треугольного элемента сияния. В качестве примера, информация об индексах merge_triangle_idx, которая предназначена для указания по меньшей мере одного из треугольных кандидатов на слияние, может передаваться в битовом потоке.[0469] Information for indicating at least one of the triangular fusion candidates included in the list of triangular fusion candidates may be transmitted in a bitstream for obtaining motion information of the triangular aurora element. As an example, index information merge_triangle_idx, which is intended to indicate at least one of the triangular merge candidates, may be carried in a bitstream.
[0470] Информация об индексах может указывать комбинацию кандидата на слияние первого треугольного элемента предсказания и кандидата на слияние второго треугольного элемента предсказания. В качестве примера, таблица 3 представляет комбинации кандидатов на слияние, соответствующие информации об индексах merge_triangle_idx.[0470] The index information may indicate a combination of a first triangular prediction element fusion candidate and a second triangular prediction element fusion candidate. As an example, Table 3 presents combinations of merge candidates corresponding to the merge_triangle_idx index information.
[0471] [Таблица 3][0471] [Table 3]
[0472] Информация об индексах merge_triangle_idx, имеющая значение 1, представляет то, что информация о движении первого треугольного элемента предсказания получена от кандидата на слияние с индексом 1, и то, что информация о движении второго треугольного элемента предсказания получена от кандидата на слияние с индексом 0. С помощью информации об индексах merge_triangle_idx могут быть получены треугольный кандидат на слияние для получения информации о движении первого треугольного элемента предсказания и треугольный кандидат на слияние для получения информации о движении второго треугольного элемента предсказания.[0472] Index information merge_triangle_idx having a value of 1 represents that the motion information of the first triangular prediction element is obtained from the merge candidate at index 1, and that the motion information of the second triangular prediction element is received from the merge candidate at index 0. Using the merge_triangle_idx index information, a triangular merge candidate for obtaining motion information of the first triangular prediction element and a triangular merge candidate for obtaining motion information of the second triangular prediction element can be obtained.
[0473] Тип раздела блока кодирования, к которому применяется диагональное разделение, может быть определен с помощью информации об индексах. То есть информация об индексах может указывать комбинацию кандидата на слияние первого треугольного элемента предсказания, кандидата на слияние второго треугольного элемента предсказания и направления разделения блока кодирования. Когда тип раздела блока кодирования определен с помощью информации об индексах, информация triangle_partition_type_flag, которая указывает направление диагональной линии, разделяющей блок кодирования, может не кодироваться. Таблица 4 представляет тип раздела блока кодирования в информации об индексах merge_triangle_idx.[0473] The type of coding block section to which the diagonal division is applied can be determined using the index information. That is, the index information may indicate a combination of a first triangular prediction element fusion candidate, a second triangular prediction element fusion candidate, and a coding block division direction. When the partition type of an encoding block is determined using the index information, the triangle_partition_type_flag information, which indicates the direction of the diagonal line dividing the encoding block, may not be encoded. Table 4 represents the encoding block partition type in the merge_triangle_idx index information.
[0474] [Таблица 4][0474] [Table 4]
[0475] Переменная TriangleDir, равная 0, представляет то, что левый треугольный тип раздела применяется к блоку кодирования, и переменная TriangleDir, равная 1, представляет то, что правый треугольный тип раздела применяется к блоку кодирования. В комбинации таблицы 3 и таблицы 4 информация об индексах merge_triangle_idx может быть установлена так, чтобы указывать комбинацию кандидата на слияние первого треугольного элемента предсказания, кандидата на слияние второго треугольного элемента предсказания и направления разделения блока кодирования.[0475] A TriangleDir variable equal to 0 represents that the left triangular partition type is applied to the encoding block, and a TriangleDir variable equal to 1 represents that the right triangular partition type is applied to the encoding block. In the combination of Table 3 and Table 4, the index information merge_triangle_idx can be set to indicate a combination of a first triangular prediction element merge candidate, a second triangular prediction element merge candidate, and a coding block splitting direction.
[0476] В качестве другого примера, может передаваться только информация об индексах для одного из первого треугольного элемента предсказания и второго треугольного элемента предсказания, и индекс треугольного кандидата на слияние для другого из первого треугольного элемента предсказания и второго треугольного элемента предсказания может быть определена на основании информации об индексах. В качестве примера, треугольный кандидат на слияние первого треугольного элемента предсказания может быть определен на основании информации об индексах merge_triangle_idx, которая указывает индекс одного из треугольных кандидатов на слияние. Кроме того, треугольный кандидат на слияние второго треугольного элемента предсказания может быть указан на основании merge_triangle_idx. В качестве примера, треугольный кандидат на слияние второго треугольного элемента предсказания может быть получен путем добавления смещения к информации об индексах merge_triangle_idx или вычитания из нее. Смещение может представлять собой целое, такое как 1 или 2. В качестве примера, треугольный кандидат на слияние с индексом, равным merge_traingle_idx плюс 1, может быть определен в качестве треугольного кандидата на слияние второго треугольного элемента предсказания. Когда merge_triangle_idx указывает треугольного кандидата на слияние с наибольшим значением индекса из треугольных кандидатов на слияние, информация о движении второго треугольного элемента предсказания может быть получена от треугольного кандидата на слияние с индексом, равным 0, или треугольного кандидата на слияние с индексом, равным merge_triangle_idx минус 1.[0476] As another example, only index information for one of the first triangular prediction element and the second triangular prediction element may be transmitted, and the triangular fusion candidate index for the other of the first triangular prediction element and the second triangular prediction element may be determined based on information about indexes. As an example, a triangular merging candidate of the first triangular prediction element may be determined based on the index information merge_triangle_idx, which indicates the index of one of the triangular merging candidates. In addition, a triangular merging candidate of the second triangular prediction element may be specified based on merge_triangle_idx. As an example, a triangular merge candidate of a second triangular prediction element can be obtained by adding an offset to or subtracting from the merge_triangle_idx index information. The offset may be an integer such as 1 or 2. As an example, a triangular merge candidate with an index equal to merge_traingle_idx plus 1 may be defined as a triangular merge candidate of the second triangular prediction element. When merge_triangle_idx indicates the triangular merge candidate with the highest index value of the triangular merge candidates, the motion information of the second triangular prediction element may be obtained from the triangular merge candidate with index equal to 0 or the triangular merge candidate with index equal to merge_triangle_idx minus 1 .
[0477] Альтернативно информация о движении второго треугольного элемента предсказания может быть получена от треугольного кандидата на слияние, имеющего такое же опорное изображение, как и треугольный кандидат на слияние первого треугольного элемента предсказания, который указан с помощью информации об индексах. В этом случае треугольный кандидат на слияние, имеющий такое же опорное изображение, как и треугольный кандидат на слияние первого треугольного элемента предсказания, может указывать треугольного кандидата на слияние, в котором по меньшей мере одно из опорного изображения L0 или опорного изображения L1 является таким же, как и у треугольного кандидата на слияние первого треугольного элемента предсказания. Когда имеются множество треугольных кандидатов на слияние, имеющих такое же опорное изображение, как и у треугольного кандидата на слияние первого треугольного элемента предсказания, один из множества треугольных кандидатов на слияние может быть выбран на основании по меньшей мере одного из того, содержит ли кандидат на слияние информацию о двунаправленном движении, или значения разницы между информацией об индексах и индексом кандидата на слияние.[0477] Alternatively, the motion information of the second triangular prediction element may be obtained from a triangular fusion candidate having the same reference image as the triangular fusion candidate of the first triangular prediction element, which is indicated by the index information. In this case, a triangular fusion candidate having the same reference picture as the triangular fusion candidate of the first triangular prediction element may indicate a triangular fusion candidate in which at least one of the L0 reference picture or the L1 reference picture is the same. as with the triangular fusion candidate of the first triangular prediction element. When there are a plurality of triangular fusion candidates having the same reference image as the triangular fusion candidate of a first triangular prediction element, one of the plurality of triangular fusion candidates may be selected based on at least one of whether the fusion candidate contains bidirectional information, or the difference values between the index information and the merger candidate index.
[0478] В качестве другого примера, информация об индексах может передаваться в каждый из первого треугольного элемента предсказания и второго треугольного элемента предсказания. В качестве примера, первая информация об индексах 1st_merge_idx, которая предназначена для определения треугольного кандидата на слияние первого треугольного элемента предсказания, и вторая информация об индексах 2nd_merge_idx, которая предназначена для определения треугольного кандидата на слияние второго треугольного элемента предсказания, могут передаваться в битовом потоке. Информация о движении первого треугольного элемента предсказания может быть получена от треугольного кандидата на слияние, определенного на основании первой информации об индексах 1st_merge_idx, и информация о движении второго треугольного элемента предсказания может быть получена от треугольного кандидата на слияние, определенного на основании второй информации об индексах 2nd_merge_idx.[0478] As another example, index information may be transmitted to each of the first triangular prediction element and the second triangular prediction element. As an example, first index information 1st_merge_idx, which is for determining a triangular merging candidate of the first triangular prediction element, and second index information 2nd_merge_idx, which is for determining a triangular merging candidate of the second triangular prediction element, may be transmitted in a bit stream. The movement information of the first triangular prediction element may be obtained from the triangular merger candidate determined based on the first index information 1st_merge_idx, and the movement information of the second triangular prediction element may be obtained from the triangular merger candidate determined based on the second index information 2nd_merge_idx .
[0479] Первая информация об индексах 1st_merge_idx может указывать индекс одного из треугольных кандидатов на слияние, включенных в список треугольных кандидатов на слияние. Треугольный кандидат на слияние первого треугольного элемента предсказания может быть определен в качестве треугольного кандидата на слияние, указанного с помощью первой информации об индексах 1st_merge_idx.[0479] The first index information 1st_merge_idx may indicate the index of one of the triangular merge candidates included in the triangular merge candidate list. The triangular merging candidate of the first triangular prediction element may be determined to be the triangular merging candidate indicated by the first index information 1st_merge_idx.
[0480] Установка может быть выполнена так, что треугольный кандидат на слияние, указанный с помощью первой информации об индексах 1st_merge_idx, не может использоваться в качестве треугольного кандидата на слияние второго треугольного элемента предсказания. Соответственно, вторая информация об индексах 2nd_merge_idx второго треугольного элемента предсказания может указывать индекс одного из остальных треугольных кандидатов на слияние, отличных от треугольного кандидата на слияние, указанного с помощью первой информации об индексах. Когда значение второй информации об индексах 2nd_merge_idx меньше, чем значение первой информации об индексах 1st_merge_idx, треугольный кандидат на слияние второго треугольного элемента предсказания может быть определен как треугольный кандидат на слияние, имеющий информацию об индексах, указанную с помощью второй информации об индексах 2nd_merge_idx. С другой стороны, когда значение второй информации об индексах 2nd_merge_idx больше, чем значение первой информации об индексах 1st_merge_idx, или равняется ему, треугольный кандидат на слияние второго треугольного элемента предсказания может быть определен как треугольный кандидат на слияние с индексом, имеющим значение, полученное путем добавления единицы к значению второй информации об индексах 2nd_merge_idx.[0480] The setting may be made such that the triangular merge candidate indicated by the first index information 1st_merge_idx cannot be used as the triangular merge candidate of the second triangular prediction element. Accordingly, the second index information 2nd_merge_idx of the second triangular prediction element may indicate the index of one of the remaining triangular merge candidates other than the triangular merge candidate indicated by the first index information. When the value of the second index information 2nd_merge_idx is smaller than the value of the first index information 1st_merge_idx, the triangular merging candidate of the second triangular prediction element may be determined to be a triangular merging candidate having the index information indicated by the second index information 2nd_merge_idx. On the other hand, when the value of the second index information 2nd_merge_idx is greater than or equal to the value of the first index information 1st_merge_idx, the triangular merging candidate of the second triangular prediction element may be determined to be a triangular merging candidate with the index having the value obtained by adding units to the value of the second index information 2nd_merge_idx.
[0481] Альтернативно то, следует ли передавать вторую информацию об индексах, может быть определено согласно количеству треугольных кандидатов на слияние, включенных в список треугольных кандидатов на слияние. В качестве примера, когда максимальное количество треугольных кандидатов на слияние, которое может содержать список треугольных кандидатов на слияние, не превышает двух, передача второй информации об индексах может быть пропущена. Когда передача второй информации об индексах пропущена, второй треугольный кандидат на слияние может быть получен путем добавления смещения к первой информации об индексах или вычитания из нее. В качестве примера, когда максимальное количество треугольных кандидатов на слияние, которое может содержать список треугольных кандидатов на слияние, равно двум, и первая информация об индексах указывает индекс, равный 0, второй треугольный кандидат на слияние может быть получен путем добавления единицы к первой информации об индексах. Альтернативно, когда максимальное количество треугольных кандидатов на слияние, которое может содержать список треугольных кандидатов на слияние, равно двум, и первая информация об индексах указывает единицу, второй треугольный кандидат на слияние может быть получен путем вычитания единицы из первой информации об индексах.[0481] Alternatively, whether to transmit the second index information may be determined according to the number of triangular merge candidates included in the triangular merge candidate list. As an example, when the maximum number of triangular merge candidates that the triangular merge candidate list can contain does not exceed two, transmission of the second index information may be skipped. When the transmission of the second index information is omitted, a second triangular merge candidate can be obtained by adding an offset to or subtracting from the first index information. As an example, when the maximum number of triangular merge candidates that the triangular merge candidate list can contain is two, and the first index information indicates an index equal to 0, the second triangular merge candidate can be obtained by adding one to the first index information indices. Alternatively, when the maximum number of triangular merge candidates that the list of triangular merge candidates can contain is two, and the first index information indicates one, the second triangular merge candidate can be obtained by subtracting one from the first index information.
[0482] Альтернативно, когда передача второй информации об индексах пропущена, вторая информация об индексах может быть установлена в качестве значения по умолчанию. В этом случае значение по умолчанию может равняться нулю. Второй треугольный кандидат на слияние может быть получен путем сравнения первой информации об индексах и второй информации об индексах. В качестве примера, кандидат на слияние с индексом 0 может быть установлен в качестве второго треугольного кандидата на слияние, когда вторая информация об индексах меньше, чем первая информация об индексах, и кандидат на слияние с индексом 1 может быть установлен в качестве второго треугольного кандидата на слияние, когда вторая информация об индексах больше, чем первая информация об индексах, или равняется ей.[0482] Alternatively, when transmission of the second index information is skipped, the second index information may be set as a default value. In this case, the default value may be zero. The second triangular merge candidate can be obtained by comparing the first index information and the second index information. As an example, the merge candidate at index 0 may be set as the second triangular merge candidate when the second index information is less than the first index information, and the merge candidate at index 1 may be set as the second triangular merge candidate at merge when the second index information is greater than or equal to the first index information.
[0483] Когда треугольный кандидат на слияние имеет информацию об однонаправленном движении, информация об однонаправленном движении треугольного кандидата на слияние может быть установлена в качестве информации о движении треугольного элемента предсказания. С другой стороны, когда треугольный кандидат на слияние имеет информацию о двунаправленном движении, только одна из информации о движении L0 или информации о движении L1 может быть установлена в качестве информации о движении треугольного элемента предсказания. То, выбирать ли информацию о движении L0 или информацию о движении L1, может быть определено на основании индекса треугольного кандидата на слияние или информации о движении других треугольных элементов предсказания.[0483] When the triangular fusion candidate has unidirectional motion information, the unidirectional motion information of the triangular fusion candidate can be set as the motion information of the triangular prediction element. On the other hand, when the triangular fusion candidate has bidirectional motion information, only one of the L0 motion information or the L1 motion information can be set as the motion information of the triangular prediction element. Whether to select the L0 motion information or the L1 motion information can be determined based on the index of the triangular fusion candidate or the motion information of other triangular prediction elements.
[0484] В качестве примера, когда индекс треугольного кандидата на слияние является четным числом, информация о движении L0 треугольного элемента предсказания может быть установлена равной нулю, и информация о движении L1 треугольного кандидата на слияние может быть установлена как информация о движении L1 треугольного элемента предсказания. С другой стороны, когда индекс треугольного кандидата на слияние является нечетным числом, информация о движении L1 треугольного элемента предсказания может быть установлена равной нулю, и информация о движении L0 треугольного кандидата на слияние может быть установлена равной нулю. И наоборот, информация о движении L0 треугольного кандидата на слияние может быть установлена в качестве информации о движении L0 треугольного элемента предсказания, когда индекс треугольного кандидата на слияние является четным числом, и информация о движении L1 треугольного кандидата на слияние может быть установлена в качестве информации о движении L1 треугольного элемента предсказания, когда индекс треугольного кандидата на слияние является нечетное число. Альтернативно информация о движении L0 треугольного кандидата на слияние может быть установлена в качестве информации о движении L0 первого треугольного элемента предсказания, когда треугольный кандидат на слияние для первого треугольного элемента предсказания является четным числом, и информация о движении L1 треугольного кандидата на слияние может быть установлена в качестве информации о движении L1 второго треугольного элемента предсказания, когда треугольный кандидат на слияние для второго треугольного элемента предсказания является нечетным числом.[0484] As an example, when the index of the triangular fusion candidate is an even number, the motion information L0 of the triangular prediction element may be set to zero, and the motion information L1 of the triangular fusion candidate may be set to the motion information L1 of the triangular prediction element . On the other hand, when the index of the triangular fusion candidate is an odd number, the motion information L1 of the triangular prediction element may be set to zero, and the motion information L0 of the triangular fusion candidate may be set to zero. Conversely, the motion information L0 of the triangular fusion candidate may be set as the motion information L0 of the triangular prediction element when the index of the triangular fusion candidate is an even number, and the motion information L1 of the triangular fusion candidate may be set as the information about motion L1 of the triangular prediction element when the index of the triangular fusion candidate is an odd number. Alternatively, the motion information L0 of the triangular fusion candidate may be set to the motion information L0 of the first triangular prediction element when the triangular fusion candidate for the first triangular prediction element is an even number, and the motion information L1 of the triangular fusion candidate may be set to as motion information L1 of the second triangular prediction element when the triangular fusion candidate for the second triangular prediction element is an odd number.
[0485] Альтернативно, когда первый треугольный элемент предсказания имеет информацию о движении L0, информация о движении L0 второго треугольного элемента предсказания может быть установлена равной нулю, и информация о движении L1 треугольного кандидата на слияние может быть установлена в качестве информации L1 второго треугольного элемента предсказания. С другой стороны, когда первый треугольный элемент предсказания имеет информацию о движении L1, информация о движении L1 второго треугольного элемента предсказания может быть установлена равной нулю, и информация о движении L0 треугольного кандидата на слияние может быть установлена в качестве информации о движении L0 второго треугольного элемента предсказания.[0485] Alternatively, when the first triangular prediction element has L0 motion information, the L0 motion information of the second triangular prediction element may be set to zero, and the L1 motion information of the triangular fusion candidate may be set as the L1 information of the second triangular prediction element. . On the other hand, when the first triangular prediction element has L1 motion information, the L1 motion information of the second triangular prediction element can be set to zero, and the L0 motion information of the triangular fusion candidate can be set as the L0 motion information of the second triangular element predictions.
[0486] Установка может быть выполнена так, что список треугольных кандидатов на слияние для получения информации о движении первого треугольного элемента предсказания отличается от списка треугольных кандидатов на слияние для получения информации о движении второго треугольного элемента предсказания.[0486] The setting may be made such that the list of triangular fusion candidates for obtaining motion information of the first triangular prediction element is different from the list of triangular fusion candidates for obtaining motion information of the second triangular prediction element.
[0487] В качестве примера, когда треугольный кандидат на слияние для получения информации о движении первого треугольного элемента предсказания указан из списка треугольных кандидатов на слияние на основании информации об индексах для первого треугольного элемента предсказания, информация о движении второго треугольного элемента предсказания может быть получена с использованием списка треугольных кандидатов на слияние, содержащего остальных треугольных кандидатов на слияние, отличных от треугольного кандидата на слияние, указанного с помощью информации об индексах. Подробно информация о движении второго треугольного элемента предсказания может быть получена от одного из остальных треугольных кандидатов на слияние.[0487] As an example, when a triangular fusion candidate for obtaining motion information of the first triangular prediction element is specified from a list of triangular fusion candidates based on the index information for the first triangular prediction element, the motion information of the second triangular prediction element can be obtained with using a list of triangular merge candidates containing the remaining triangular merge candidates other than the triangular merge candidate specified by the index information. Details of the motion of the second triangular prediction element can be obtained from one of the remaining triangular fusion candidates.
[0488] Соответственно, максимальное количество треугольных кандидатов на слияние, которое может содержать список треугольных кандидатов на слияние первого треугольного элемента предсказания, может отличаться от максимального количества треугольных кандидатов на слияние, которое может содержать список треугольных кандидатов на слияние второго треугольного элемента предсказания. В качестве примера, когда список треугольных кандидатов на слияние первого треугольного элемента предсказания содержит M кандидатов на слияние, список треугольных кандидатов на слияние второго треугольного элемента предсказания может содержать M-1 кандидатов на слияние, отличных от треугольного кандидата на слияние, указанного с помощью информации об индексах первого треугольного элемента предсказания.[0488] Accordingly, the maximum number of triangular fusion candidates that can contain the list of triangular fusion candidates of the first triangular prediction element may be different from the maximum number of triangular fusion candidates that can contain the list of triangular fusion candidates of the second triangular prediction element. As an example, when the triangular fusion candidate list of the first triangular prediction element contains M fusion candidates, the triangular fusion candidate list of the second triangular prediction element may contain M-1 fusion candidates other than the triangular fusion candidate specified by the indices of the first triangular prediction element.
[0489] В качестве другого примера, пока кандидатов на слияние треугольных элементов предсказания получают на основании соседних блоков, смежных с блоком кодирования, доступность соседних блоков может быть определена с учетом форм или местоположений треугольных элементов предсказания.[0489] As another example, while triangular prediction element fusion candidates are obtained based on neighboring blocks adjacent to an encoding block, the availability of neighboring blocks may be determined based on the shapes or locations of the triangular prediction elements.
[0490] На фиг. 37 представлено схематическое изображение для описания примера определения доступности соседнего блока для каждого треугольного элемента предсказания.[0490] In FIG. 37 is a schematic diagram for describing an example of determining the availability of a neighboring block for each triangular prediction element.
[0491] Соседний блок, который не является смежным с первым треугольным элементом предсказания, может быть установлен как недоступный для первого треугольного элемента предсказания, и соседний блок, который не является смежным со вторым треугольным элементом предсказания, может быть установлен как недоступный для второго треугольного элемента предсказания.[0491] An adjacent block that is not adjacent to the first triangular prediction element may be set as unavailable to the first triangular prediction element, and an adjacent block that is not adjacent to the second triangular prediction element may be set as unavailable to the second triangular element predictions.
[0492] Например, как и в примере, показанном на фиг. 37A, когда левый треугольный тип раздела применяется к блоку кодирования, может быть определено, что блоки A1, A0 и A2, смежные с первым треугольным элементом предсказания, из блоков, соседних с блоками кодирования, доступны для первого треугольного элемента предсказания, и что блоки B0 и B1 не являются доступными для первого треугольного элемента предсказания. Соответственно, список треугольных кандидатов на слияние для первого треугольного элемента предсказания может содержать треугольных кандидатов на слияние, полученных из блоков A1, A0 и A2, но может не содержать треугольных кандидатов на слияние, полученных из блоков B0 и B1.[0492] For example, as in the example shown in FIG. 37A, when the left triangular partition type is applied to the encoding block, it can be determined that blocks A1, A0 and A2 adjacent to the first triangular prediction element from blocks adjacent to the encoding blocks are available for the first triangular prediction element, and that blocks B0 and B1 are not available for the first triangular prediction element. Accordingly, the triangular merge candidate list for the first triangular prediction element may include triangular merge candidates derived from blocks A1, A0, and A2, but may not contain triangular merge candidates derived from blocks B0 and B1.
[0493] Как и в примере, показанном на фиг. 37B, когда левый треугольный тип раздела применяется к блоку кодирования, может быть определено, что блоки B0 и B1, смежные со вторым треугольным элементом предсказания, доступны для второго треугольного элемента предсказания, и что блоки A1, A0 и A2 не являются доступными для второго треугольного элемента предсказания. Соответственно, список треугольных кандидатов на слияние для второго треугольного элемента предсказания может содержать треугольных кандидатов на слияние, полученных из блоков B0 и B1, но может не содержать треугольных кандидатов на слияние, полученных из блоков A1, A0 и A2.[0493] As in the example shown in FIG. 37B, when the left triangular partition type is applied to the encoding block, it can be determined that blocks B0 and B1 adjacent to the second triangular prediction element are available for the second triangular prediction element, and that blocks A1, A0 and A2 are not available for the second triangular prediction element. element of prediction. Accordingly, the triangular merge candidate list for the second triangular prediction element may include triangular merge candidates derived from blocks B0 and B1, but may not contain triangular merge candidates derived from blocks A1, A0, and A2.
[0494] Следовательно, количество или диапазон треугольных кандидатов на слияние, которые может использовать треугольный элемент предсказания, могут быть определены на основании по меньшей мере одного из местоположения треугольного элемента предсказания или типа раздела блока кодирования.[0494] Therefore, the number or range of triangular fusion candidates that a triangular prediction element can use can be determined based on at least one of the location of the triangular prediction element or the type of encoding block partition.
[0495] В качестве другого примера, режим слияния может быть применен только к одному из первого треугольного элемента предсказания и второго треугольного элемента предсказания. Кроме того, информация о движении другого из первого треугольного элемента предсказания и второго треугольного элемента предсказания может быть установлена такой же, как информация о движении треугольного элемента предсказания, к которому применяется режим слияния, или может быть получена путем уточнения информации о движении треугольного элемента предсказания, к которому применяется режим слияния.[0495] As another example, the fusion mode may be applied to only one of the first triangular prediction element and the second triangular prediction element. In addition, the motion information of the other of the first triangular prediction element and the second triangular prediction element can be set to be the same as the motion information of the triangular prediction element to which the merging mode is applied, or can be obtained by refining the motion information of the triangular prediction element. to which merge mode is applied.
[0496] В качестве примера, индекс опорного изображения и вектор движения первого треугольного элемента предсказания могут быть получены на основании треугольного кандидата на слияние, и вектор движения второго треугольного элемента предсказания может быть получен путем уточнения вектора движения первого треугольного элемента предсказания. В качестве примера, вектор движения второго треугольного элемента предсказания может быть получен путем добавления уточненного вектора движения {Rx, Ry} к вектору движения {mvD1LXx, mvD1LXy} первого треугольного элемента предсказания или вычитания из него. Индекс опорного изображения второго треугольного элемента предсказания может быть установлен равным индексу опорного изображения первого треугольного элемента предсказания.[0496] As an example, the reference image index and motion vector of the first triangular prediction element can be obtained based on the triangular fusion candidate, and the motion vector of the second triangular prediction element can be obtained by refining the motion vector of the first triangular prediction element. As an example, the motion vector of the second triangular prediction element may be obtained by adding or subtracting the refined motion vector {Rx, Ry} to the motion vector {mvD1LXx, mvD1LXy} of the first triangular prediction element. The reference image index of the second triangular prediction element may be set equal to the reference image index of the first triangular prediction element.
[0497] Информация для определения уточненного вектора движения, указывающего разницу между вектором движения первого треугольного элемента предсказания и вектором движения второго треугольного элемента предсказания, может передаваться в битовом потоке. Информация может содержать по меньшей мере одно из информации, указывающей размер уточненного вектора движения, или информации, указывающей знак уточненного вектора движения.[0497] Information for determining a refined motion vector indicating the difference between the motion vector of the first triangular prediction element and the motion vector of the second triangular prediction element may be transmitted in the bit stream. The information may comprise at least one of information indicating the size of the refined motion vector or information indicating the sign of the refined motion vector.
[0498] Альтернативно знак уточненного вектора движения может быть получен на основании по меньшей мере одного из типа раздела, применяемого к блоку кодирования, местоположения треугольного элемента предсказания или индекса треугольного элемента предсказания.[0498] Alternatively, the sign of the refined motion vector may be obtained based on at least one of the partition type applied to the encoding block, the location of the triangular prediction element, or the index of the triangular prediction element.
[0499] В качестве другого примера, могут передаваться вектор движения и индекс опорного изображения одного из первого треугольного элемента предсказания и второго треугольного элемента предсказания. Вектор движения другого из первого треугольного элемента предсказания и второго треугольного элемента предсказания может быть получен путем уточнения переданного вектора движения.[0499] As another example, a motion vector and a reference image index of one of the first triangular prediction element and the second triangular prediction element may be transmitted. The motion vector of the other of the first triangular prediction element and the second triangular prediction element can be obtained by refining the transmitted motion vector.
[0500] В качестве примера, индекс опорного изображения и вектор движения первого треугольного элемента предсказания могут быть определены на основании информации, переданной из битового потока. Кроме того, вектор движения второго треугольного элемента предсказания может быть получен путем уточнения вектора движения первого треугольного элемента предсказания. В качестве примера, вектор движения второго треугольного элемента предсказания может быть получен путем добавления уточненного вектора движения {Rx, Ry} к вектору движения {mvD1LXx, mvD1LXy} первого треугольного элемента предсказания или вычитания из него. Индекс опорного изображения второго треугольного элемента предсказания может быть установлен равным индексу опорного изображения первого треугольного элемента предсказания.[0500] As an example, the reference picture index and motion vector of the first triangular prediction element may be determined based on information transmitted from the bit stream. In addition, the motion vector of the second triangular prediction element can be obtained by refining the motion vector of the first triangular prediction element. As an example, the motion vector of the second triangular prediction element may be obtained by adding or subtracting the refined motion vector {Rx, Ry} to the motion vector {mvD1LXx, mvD1LXy} of the first triangular prediction element. The reference image index of the second triangular prediction element may be set equal to the reference image index of the first triangular prediction element.
[0501] Предсказание с компенсацией движения может быть выполнено в отношении блока кодирования на основании информации о движении первого треугольного элемента предсказания и информации о движении второго треугольного элемента предсказания. В этом случае ухудшение качества изображения может возникать на границе между первым треугольным элементом предсказания и вторым треугольным элементом предсказания. В качестве примера, непрерывность качества изображения может ухудшаться рядом с краем, присутствующим на границе между первым треугольным элементом предсказания и вторым треугольным элементом предсказания. Для снижения ухудшения качества изображения на границе, отсчет предсказания может быть получен с помощью взвешенного предсказания или фильтра сглаживания.[0501] Motion compensated prediction may be performed on the encoding block based on the motion information of the first triangular prediction element and the motion information of the second triangular prediction element. In this case, degradation of image quality may occur at the boundary between the first triangular prediction element and the second triangular prediction element. As an example, the continuity of image quality may deteriorate near an edge present at the boundary between the first triangular prediction element and the second triangular prediction element. To reduce image quality degradation at the edge, a prediction sample can be obtained using a weighted prediction or a smoothing filter.
[0502] Отсчет предсказания в блоке кодирования, к которому применяется диагональное разделение, может быть получен на основании операции взвешенной суммы первого отсчета предсказания, выбранного на основании информации о движении первого треугольного элемента предсказания, и второго отсчета предсказания, выбранного на основании информации о движении второго треугольного элемента предсказания. Альтернативно отсчет предсказания первого треугольного элемента предсказания может быть получен от первого блока предсказания, определенного на основании информации о движении первого треугольного элемента предсказания, и отсчет предсказания второго треугольного элемента предсказания может быть получен от второго блока предсказания, определенного на основании информации о движении второго треугольного элемента предсказания. В этом случае отсчет предсказания, расположенный в находящемся на границе участке между первым треугольным элементом предсказания и вторым треугольным элементом предсказания, может быть получен на основании операции взвешенной суммы первого отсчета предсказания, включенного в первый блок предсказания, и второго отсчета предсказания, включенного во второй блок предсказания. В качестве примера, уравнение 22 ниже представляет пример получения отсчетов предсказания первого треугольного элемента предсказания и второго треугольного элемента предсказания.[0502] The prediction sample in the encoding block to which the diagonal division is applied may be obtained based on a weighted sum operation of the first prediction sample selected based on the motion information of the first triangular prediction element and the second prediction sample selected based on the motion information of the second triangular divination element. Alternatively, the prediction sample of the first triangular prediction element may be obtained from the first prediction block determined based on the motion information of the first triangular prediction element, and the prediction sample of the second triangular prediction element may be obtained from the second prediction block determined based on the motion information of the second triangular element predictions. In this case, the prediction sample located in the boundary portion between the first triangular prediction element and the second triangular prediction element can be obtained based on a weighted sum operation of the first prediction sample included in the first prediction block and the second prediction sample included in the second block. predictions. As an example, Equation 22 below presents an example of obtaining prediction samples of the first triangular prediction element and the second triangular prediction element.
[0503] [Уравнение 22][0503] [Equation 22]
[0504] В уравнении 22, P1 представляет первый отсчет предсказания, и P2 представляет второй отсчет предсказания. w1 представляет весовой коэффициент, применяемый к первому отсчету предсказания, и (1-w1) представляет весовой коэффициент, применяемый ко второму отсчету предсказания. Как и в примере, показанном в уравнении 22, весовой коэффициент, применяемый ко второму отсчету предсказания, может быть получен путем вычитания весового коэффициента, применяемого к первому отсчету предсказания, из постоянного значения.[0504] In Equation 22, P1 represents the first prediction sample, and P2 represents the second prediction sample. w1 represents a weight applied to the first prediction sample, and (1-w1) represents a weight applied to the second prediction sample. As in the example shown in Equation 22, the weight applied to the second prediction sample can be obtained by subtracting the weight applied to the first prediction sample from a constant value.
[0505] Когда левый треугольный тип раздела применяется к блоку кодирования, находящий на границе участок может содержать отсчеты предсказания, имеющие одинаковую координату x и одинаковую координату y. С другой стороны, когда правый треугольный тип раздела применяется к блоку кодирования, находящий на границе участок может содержать отсчеты предсказания, каждый из которых имеет координату x и координату y, сумма которых больше или равняется первому пороговому значению и меньше или равняется второму пороговому значению.[0505] When the left triangular partition type is applied to a coding block, the boundary partition may contain prediction samples having the same x-coordinate and the same y-coordinate. On the other hand, when a right triangular partition type is applied to a coding block, the boundary portion may contain prediction samples each having an x coordinate and a y coordinate whose sum is greater than or equal to the first threshold and less than or equal to the second threshold.
[0506] Размер находящего на границе участка может быть определен на основании по меньшей мере одного из размера блока кодирования, формы блока кодирования, информации о движении треугольных элементов предсказания, значения разницы вектора движения треугольных элементов предсказания, POC опорного изображения или значения разницы между первым отсчетом предсказания и вторым отсчетом предсказания в диагональной границе.[0506] The size of the boundary region may be determined based on at least one of a coding block size, a coding block shape, triangular prediction element motion information, a triangular prediction element motion vector difference value, a reference picture POC, or a difference value between the first sample prediction and a second prediction count in the diagonal boundary.
[0507] На фиг. 38 и 39 представлены схематические изображения, показывающие пример получения отсчета предсказания на основании операции взвешенной суммы первого отсчета предсказания и второго отсчета предсказания. На фиг. 38 проиллюстрирован случай, в котором левый треугольный тип раздела применяется к блоку кодирования, и на фиг. 39 проиллюстрирован случай, в котором правый треугольный тип раздела применяется к блоку кодирования. Кроме того, на фиг. 38A и 39A представлены схематические изображения, показывающие аспект предсказания для компонента яркости, и на фиг. 38B и 39B представлены схематические изображения, показывающие аспект предсказания для компонента цветности.[0507] In FIG. 38 and 39 are schematic diagrams showing an example of obtaining a prediction sample based on a weighted sum operation of the first prediction sample and the second prediction sample. In fig. 38 illustrates a case in which the left triangular section type is applied to a coding block, and FIG. 39 illustrates a case in which a right triangular section type is applied to a coding block. In addition, in FIG. 38A and 39A are schematic views showing a prediction aspect for the luminance component, and FIG. 38B and 39B are schematic diagrams showing a prediction aspect for a chrominance component.
[0508] На графических материалах показано, что число, записанное в отсчете предсказания, расположенном рядом с границей между первым элементом предсказания и вторым элементом предсказания, указывает весовой коэффициент, применяемый к первому отсчету предсказания. В качестве примера, когда число, записанное в отсчете предсказания, равняется N, отсчет предсказания может быть получен путем применения весового коэффициента N/8 к первому отсчету предсказания и применения весового коэффициента 1-(N/8) ко второму отсчету предсказания.[0508] The drawings show that a number recorded in a prediction sample located adjacent to the boundary between the first prediction element and the second prediction element indicates a weight applied to the first prediction sample. As an example, when the number recorded in the prediction sample is N, the prediction sample can be obtained by applying a weight of N/8 to the first prediction sample and applying a weight of 1-(N/8) to the second prediction sample.
[0509] В находящемся не на границе участке первый отсчет предсказания или второй отсчет предсказания может быть определен в качестве отсчета предсказания. Как показано в примере по фиг. 38, в участке, принадлежащем к первому треугольному элементу предсказания, из участков, где абсолютная разница между координатой x и координатой y больше, чем пороговое значение, первый отсчет предсказания, получаемый на основании информации о движении первого треугольного элемента предсказания, может быть задан в качестве отсчета предсказания. С другой стороны, в участке, принадлежащем ко второму треугольному элементу предсказания, из участков, где разница между координатой x и координатой y больше, чем пороговое значение, второй отсчет предсказания, получаемый на основании информации о движении второго треугольного элемента предсказания, может быть определен в качестве отсчета предсказания.[0509] In the non-boundary region, the first prediction sample or the second prediction sample may be determined to be the prediction sample. As shown in the example of FIG. 38, in the portion belonging to the first triangular prediction element, of the portions where the absolute difference between the x coordinate and the y coordinate is larger than the threshold value, the first prediction sample obtained based on the motion information of the first triangular prediction element can be set as prediction countdown. On the other hand, in the portion belonging to the second triangular prediction element, from the portions where the difference between the x coordinate and the y coordinate is larger than the threshold value, a second prediction sample obtained based on the motion information of the second triangular prediction element can be determined in as a prediction reference.
[0510] Как показано в примере по фиг. 39, в участке, где сумма координаты x и координаты y меньше, чем первое пороговое значение, первый отсчет предсказания, получаемый на основании информации о движении первого треугольного элемента предсказания, может быть задан в качестве отсчета предсказания. С другой стороны, в участке, где сумма координаты x и координаты y больше, чем второе пороговое значение, второй отсчет предсказания, получаемый на основании информации о движении второго треугольного элемента предсказания, может быть задан в качестве отсчета предсказания.[0510] As shown in the example of FIG. 39, in a portion where the sum of the x coordinate and the y coordinate is less than the first threshold value, the first prediction sample obtained based on the motion information of the first triangular prediction element may be set as the prediction sample. On the other hand, in a portion where the sum of the x coordinate and the y coordinate is greater than the second threshold value, the second prediction sample obtained based on the motion information of the second triangular prediction element may be set as the prediction sample.
[0511] Пороговое значение для определения находящегося не на границе участка может быть определено на основании по меньшей мере одного из размера блока кодирования, формы блока кодирования или цветового компонента. В качестве примера, когда пороговое значение для компонента яркости может быть установлено равным N, пороговое значение для компонента цветности может быть установлено равным N/2.[0511] The threshold value for determining a non-edge region may be determined based on at least one of a coding block size, a coding block shape, or a color component. As an example, when the threshold value for the luma component can be set to N, the threshold value for the chrominance component can be set to N/2.
[0512] Отсчеты предсказания, включенные в находящийся на границе участок, могут быть получены на основании операции взвешенной суммы первого отсчета предсказания и второго отсчета предсказания. В этом случае весовой коэффициент, применяемый к первому отсчету предсказания и второму отсчету предсказания, может быть определен на основании по меньшей мере одного из местоположения отсчета предсказания, размера блока кодирования, формы блока кодирования или цветового компонента.[0512] The prediction samples included in the boundary portion may be obtained based on a weighted sum operation of the first prediction sample and the second prediction sample. In this case, the weight applied to the first prediction sample and the second prediction sample may be determined based on at least one of a location of the prediction sample, a coding block size, a coding block shape, or a color component.
[0513] Например, как и в примере, показанном на фиг. 38A, отсчеты предсказания, расположенные на одинаковой координате x и одинаковой координате y, могут быть получены путем применения одинакового весового коэффициента к первому отсчету предсказания и второму отсчету предсказания. Отсчеты предсказания, в которых абсолютная разница между координатой x и координатой y равна единице, могут быть получены путем установки соотношения между весовыми коэффициентами, применяемыми к первому отсчету предсказания и второму отсчету предсказания, равного (3:1) или (1:3). Кроме того, отсчеты предсказания, в которых абсолютная разница между координатой x и координатой y равна двум, могут быть получены путем установки соотношения между весовыми коэффициентами, применяемыми к первому отсчету предсказания и второму отсчету предсказания, равного (7:1) или (1:7).[0513] For example, as in the example shown in FIG. 38A, prediction samples located at the same x-coordinate and the same y-coordinate can be obtained by applying the same weight to the first prediction sample and the second prediction sample. Prediction samples in which the absolute difference between the x coordinate and the y coordinate is one can be obtained by setting the ratio between the weights applied to the first prediction sample and the second prediction sample to (3:1) or (1:3). In addition, prediction samples in which the absolute difference between the x coordinate and the y coordinate is two can be obtained by setting the ratio between the weights applied to the first prediction sample and the second prediction sample to (7:1) or (1:7 ).
[0514] Альтернативно, как и в примере, показанном на фиг. 38B, отсчеты предсказания, расположенные на одинаковой координате x и одинаковой координате y, могут быть получены путем применения одинакового весового коэффициента к первому отсчету предсказания и второму отсчету предсказания, и отсчеты предсказания, в которых абсолютная разница между координатой x и координатой y равна единице, могут быть получены путем установки соотношения между весовыми коэффициентами, применяемыми к первому отсчету предсказания и второму отсчету предсказания, равного (7:1) или (1:7).[0514] Alternatively, as in the example shown in FIG. 38B, prediction samples located at the same x-coordinate and the same y-coordinate can be obtained by applying the same weight to the first prediction sample and the second prediction sample, and prediction samples in which the absolute difference between the x-coordinate and the y-coordinate is one can be obtained by setting the ratio between the weights applied to the first prediction sample and the second prediction sample to (7:1) or (1:7).
[0515] Например, как и в примере, показанном на фиг. 39A, отсчеты предсказания, в которых сумма координаты x и координаты y на единицу меньше, чем ширина или высота блока кодирования, могут быть получены путем применения одинакового весового коэффициента к первому отсчету предсказания и второму отсчету предсказания. Отсчеты предсказания, в которых сумма координаты x и координаты y равняется или на два меньше, чем ширина или высота блока кодирования, могут быть получены путем установки соотношения между весовыми коэффициентами, применяемыми к первому отсчету предсказания и второму отсчету предсказания, равным (3:1) или (1:3). Отсчеты предсказания, в которых сумма координаты x и координаты y на единицу больше или на три меньше, чем ширина или высота блока кодирования, могут быть получены путем установки соотношения между весовыми коэффициентами, применяемыми к первому отсчету предсказания и второму отсчету предсказания, равным (7:1) или (1:7).[0515] For example, as in the example shown in FIG. 39A, prediction samples in which the sum of the x-coordinate and the y-coordinate are one less than the width or height of the encoding block can be obtained by applying the same weight to the first prediction sample and the second prediction sample. Prediction samples in which the sum of the x-coordinate and y-coordinate are equal to or two less than the width or height of the encoding block can be obtained by setting the ratio between the weights applied to the first prediction sample and the second prediction sample to (3:1) or (1:3). Prediction samples in which the sum of the x-coordinate and the y-coordinate are one more or three less than the width or height of the encoding block can be obtained by setting the ratio between the weights applied to the first prediction sample and the second prediction sample to (7: 1) or (1:7).
[0516] Альтернативно, как и в примере, показанном на фиг. 39B, отсчеты предсказания, в которых сумма координаты x и координаты y на единицу меньше, чем ширина или высота блока кодирования, могут быть получены путем применения одинакового весового коэффициента к первому отсчету предсказания и второму отсчету предсказания. Отсчеты предсказания, в которых сумма координаты x и координаты y равняется или на два меньше, чем ширина или высота блока кодирования, могут быть получены путем установки соотношения между весовыми коэффициентами, применяемыми к первому отсчету предсказания и второму отсчету предсказания, равным (7:1) или (1:7).[0516] Alternatively, as in the example shown in FIG. 39B, prediction samples in which the sum of the x-coordinate and the y-coordinate are one less than the width or height of the encoding block can be obtained by applying the same weight to the first prediction sample and the second prediction sample. Prediction samples in which the sum of the x-coordinate and the y-coordinate are equal to or two less than the width or height of the encoding block can be obtained by setting the ratio between the weights applied to the first prediction sample and the second prediction sample to (7:1) or (1:7).
[0517] В качестве другого примера, весовой коэффициент может быть определен с учетом местоположения отсчета предсказания или формы блока кодирования. В уравнениях 23-25 показаны примеры получения весового коэффициента, когда левый треугольный тип раздела применяется к блоку кодирования. В уравнении 23 показан пример получения весового коэффициента, применяемого к первому отсчету предсказания, когда блок кодирования является квадратным.[0517] As another example, the weighting factor may be determined taking into account the location of the prediction sample or the shape of the coding block. Equations 23-25 show examples of obtaining a weight coefficient when the left triangular section type is applied to a coding block. Equation 23 shows an example of obtaining a weight applied to the first prediction sample when the coding block is square.
[0518] [Уравнение 23][0518] [Equation 23]
[0519] В уравнении 23 x и y представляют местоположение отсчета предсказания. Когда блок кодирования является неквадратным, весовой коэффициент, применяемый к первому отсчету предсказания, может быть получен с использованием уравнения 24 или уравнения 25 ниже. В уравнении 24 представлен случай, в котором ширина блока кодирования больше, чем высота, и в уравнении 25 представлен случай, в котором ширина блока кодирования меньше, чем высота.[0519] In Equation 23, x and y represent the location of the prediction reference. When the coding block is non-square, the weight applied to the first prediction sample can be obtained using Equation 24 or Equation 25 below. Equation 24 represents a case in which the width of a coding block is larger than the height, and Equation 25 represents a case in which the width of a coding block is smaller than the height.
[0520] [Уравнение 24][0520] [Equation 24]
[0521] [Уравнение 25][0521] [Equation 25]
[0522] Когда правый треугольный тип раздела применяется к блоку кодирования, весовой коэффициент, применяемый к первому отсчету предсказания, может быть определен с использованием уравнений 26-28. В уравнении 26 показан пример получения весового коэффициента, применяемого к первому отсчету предсказания, когда блок кодирования является квадратным.[0522] When the right triangular partition type is applied to a coding block, the weight applied to the first prediction sample can be determined using equations 26-28. Equation 26 shows an example of obtaining a weight applied to the first prediction sample when the coding block is square.
[0523] [Уравнение 26][0523] [Equation 26]
[0524] В уравнении 26 CbW представляет ширину блока кодирования. Когда блок кодирования является неквадратным, весовой коэффициент, применяемый к первому отсчету предсказания, может быть получен с использованием уравнения 27 или уравнения 28 ниже. В уравнении 27 представлен случай, в котором ширина блока кодирования больше, чем высота, и в уравнении 28 представлен случай, в котором ширина блока кодирования меньше, чем высота.[0524] In Equation 26, CbW represents the coding block width. When the coding block is non-square, the weight applied to the first prediction sample can be obtained using Equation 27 or Equation 28 below. Equation 27 represents a case in which the width of a coding block is larger than the height, and Equation 28 represents a case in which the width of a coding block is smaller than the height.
[0525] [Уравнение 27][0525] [Equation 27]
[0526] [Уравнение 28][0526] [Equation 28]
[0527] В уравнении 27 CbH представляет высоту блока кодирования.[0527] In Equation 27, CbH represents the coding block height.
[0528] Как и в показанном примере, отсчет предсказания, включенный в первый треугольный элемент предсказания, из отсчетов предсказания в находящемся на границе участке может быть получен путем присваивания большего весового коэффициента первому отсчету предсказания, чем второму отсчету предсказания, и отсчет предсказания, включенный во второй треугольный элемент предсказания, может быть получен путем присваивания большего весового коэффициента второму отсчету предсказания, чем первому отсчету предсказания.[0528] As in the illustrated example, the prediction sample included in the first triangular prediction element from the prediction samples in the boundary portion may be obtained by assigning a greater weight to the first prediction sample than the second prediction sample, and the prediction sample included in the second triangular prediction element may be obtained by assigning a larger weight to the second prediction sample than to the first prediction sample.
[0529] Когда диагональное разделение применяется к блоку кодирования, установка может быть выполнена так, что комбинированный режим предсказания, который представляет собой комбинацию режима внутреннего предсказания и режима слияния, не применяется к блоку кодирования.[0529] When diagonal division is applied to a coding block, the setting may be made such that a combined prediction mode, which is a combination of an intra prediction mode and a merging mode, is not applied to the coding block.
[0530][0530]
[0531] Внутреннее предсказание предназначено для предсказания текущего блока с использованием восстановленного отсчета, в котором осуществлено кодирование или декодирование, и который находится рядом с текущим блоком. В этом случае восстановленный отсчет до применения фильтра в контуре может использоваться для внутреннего предсказания текущего блока.[0531] Intra prediction is designed to predict the current block using a reconstructed sample that has been encoded or decoded and that is adjacent to the current block. In this case, the reconstructed sample before applying the filter in the loop can be used for intra-prediction of the current block.
[0532] Метод внутреннего предсказания включает внутреннее предсказание на основании матрицы и нормальное внутреннее предсказание с учетом направленности по отношению к ближайшему восстановленному отсчету. Информация, указывающая метод внутреннего предсказания текущего блока, может передаваться в битовом потоке. Информация может представлять собой 1-битный флаг. Альтернативно метод внутреннего предсказания текущего блока может быть определен на основании по меньшей мере одного из местоположения, размера или формы текущего блока или метода внутреннего предсказания соседнего блока. В качестве примера, когда текущий блок присутствует на границе изображения, установка может быть выполнена таким образом, чтобы внутреннее предсказание на основании матрицы не применялось к текущему блоку.[0532] The intra prediction method includes matrix-based intra prediction and directivity-based normal intra prediction with respect to the nearest reconstructed sample. Information indicating the intra prediction method of the current block may be carried in the bit stream. 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 or shape of the current block or the intra prediction method of the adjacent block. As an example, when the current block is present at the edge of the image, the setting may be made such that the matrix-based intra prediction is not applied to the current block.
[0533] Внутреннее предсказание на основании матрицы может представлять собой способ получения блока предсказания текущего блока на основании произведения матриц между матрицей, предварительно сохраненной в кодере и декодере, и восстановленными отсчетами, находящимися рядом с текущим блоком. Информация для указания одной из множества предварительно сохраненных матриц может передаваться в битовом потоке. Декодер может определять матрицу для внутреннего предсказания текущего блока на основании информации и размера текущего блока.[0533] Matrix-based intra prediction may be a method of deriving a block prediction of a current block based on a matrix product between a matrix previously stored in the encoder and decoder and reconstructed samples adjacent to the current block. Information to indicate one of a plurality of pre-stored matrices may be transmitted in 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.
[0534] Нормальное внутреннее предсказание представляет собой способ получения блока предсказания для текущего блока на основании режима ненаправленного внутреннего предсказания или режима направленного внутреннего предсказания. Процесс выполнения внутреннего предсказания на основании нормального внутреннего предсказания будет подробно описан ниже со ссылкой на графические материалы.[0534] Normal intra prediction is a method of obtaining a prediction block for a current block based on an undirected intra prediction mode or a directed intra prediction mode. The process of performing intra prediction based on normal intra prediction will be described in detail below with reference to drawings.
[0535] На фиг. 40 представлена блок-схема способа внутреннего предсказания согласно варианту осуществления настоящего изобретения.[0535] In FIG. 40 is a flowchart of an intra prediction method according to an embodiment of the present invention.
[0536] Может быть определена (S4001) линия опорных отсчетов текущего блока. Линия опорных отсчетов относится к набору опорных отсчетов, включенных в
k-ю линию от верхней и/или левой стороны текущего блока. Опорные отсчеты могут быть получены из восстановленных отсчетов, в которых осуществлено кодирование или декодирование, и которые находятся рядом с текущим блоком.[0536] The reference sample line of the current block can be determined (S4001). A reference line refers to a set of reference samples included in
k -th line from the top and/or left side of the current block. The reference samples can be obtained from the reconstructed samples that have been encoded or decoded and are adjacent to the current block.
[0537] Информация об индексах для идентификации линии опорных отсчетов текущего блока из множества линий опорных отсчетов может передаваться в битовом потоке. В качестве примера, информация об индексах intra_luma_ref_idx, которая предназначена для указания линии опорных отсчетов текущего блока, может передаваться в битовом потоке. Информация об индексах может передаваться в элементах блоков кодирования.[0537] Index information for identifying a reference sample line of a current block from a plurality of reference sample lines may be transmitted in a bit stream. As an example, index information intra_luma_ref_idx, which is intended to indicate the reference line of the current block, may be carried in the bit stream. Index information may be carried in encoding block elements.
[0538] Множество линий опорных отсчетов может содержать по меньшей мере одну из первой линии, второй линии, третьей линии или четвертой линии сверху и/или слева от текущего блока. Линия опорных отсчетов, состоящая из строки, смежной с верхней стороной текущего блока, и столбца, смежного с левой стороной текущего блока, из множества линий опорных отсчетов может называться смежной линией опорных отсчетов, и другие линии опорных отсчетов могут называться несмежными линиями опорных отсчетов.[0538] The plurality of reference sample lines may comprise at least one of a first line, a second line, a third line, or a fourth line from above and/or to the left of the current block. A reference sample line consisting of a row adjacent to the top side of the current block and a column adjacent to the left side of the current block among a plurality of reference sample lines may be called an adjacent reference line, and other reference lines may be called non-adjacent reference lines.
[0539] Только некоторые из множества линий опорных отсчетов могут быть выбраны как линия опорных отсчетов текущего блока. В качестве примера, остальные линии опорных отсчетов, отличные от третьей несмежной линии опорных отсчетов, из множества линий опорных отсчетов, могут быть установлены в качестве кандидатных линий опорных отсчетов. В таблице 5 представлены индексы, присвоенные кандидатным линиям опорных отсчетов.[0539] Only some of the plurality of reference sample lines can be selected as the reference sample line of the current block. As an example, the remaining reference sample lines other than the third non-adjacent reference sample line of the plurality of reference sample lines may be set as candidate reference sample lines. Table 5 presents the indices assigned to the candidate reference sample lines.
[0540] [Таблица 5][0540] [Table 5]
[0541] Может быть установлено большее количество кандидатных линий опорных отсчетов или меньшее количество кандидатных линий опорных отсчетов, чем описано выше. Кроме того, количество или местоположения несмежных линий опорных отсчетов, установленных как кандидатные линии опорных отсчетов, не ограничиваются описанным выше примером. В качестве примера, первая несмежная линия опорных отсчетов и третья несмежная линия опорных отсчетов могут быть установлены как кандидатные линии опорных отсчетов, и вторая несмежная линия опорных отсчетов и третья несмежная линия опорных отсчетов могут быть установлены как кандидатные линии опорных отсчетов. Альтернативно все из первой несмежной линии опорных отсчетов, второй несмежной линии опорных отсчетов и третьей несмежной линии опорных отсчетов могут быть установлены как кандидатные линии опорных отсчетов.[0541] More candidate reference sample lines or fewer candidate reference sample lines may be set than described above. Moreover, the number or locations of non-adjacent reference sample lines set as candidate reference sample lines is not limited to the example described above. As an example, the first non-adjacent reference sample line and the third non-adjacent reference sample line may be set as candidate reference sample lines, and the second non-adjacent reference sample line and the third non-adjacent reference sample line may be set as candidate reference sample lines. Alternatively, all of the first non-adjacent reference sample line, the second non-adjacent reference sample line, and the third non-adjacent reference sample line may be set as candidate reference sample lines.
[0542] Количество или типы кандидатных линий опорных отсчетов могут быть определены на основании по меньшей мере одного из размера, формы или местоположения текущего блока, наличия разделения на подблоки или режима внутреннего предсказания текущего блока.[0542] The number or types of candidate reference sample lines may be determined based on at least one of the size, shape, or location of the current block, the presence of subblock division, or the intra prediction mode of the current block.
[0543] Линия опорных отсчетов текущего блока может быть определена на основании по меньшей мере одного из местоположения, размера или формы текущего блока или режима предсказательного кодирования соседнего блока. В качестве примера, когда текущий блок прилегает к краю изображения, тайла, слайса или элемента кодового дерева, в качестве линии опорных отсчетов текущего блока может быть определена смежная линия опорных отсчетов.[0543] The reference sample line of the current block may be determined based on at least one of the location, size or shape of the current block or the predictive coding mode of an adjacent block. As an example, when the current block is adjacent to the edge of an image, tile, slice, or code tree element, an adjacent reference line may be defined as the current block's reference line.
[0544] Альтернативно, когда текущий блок является неквадратным, смежная линия опорных отсчетов может быть определена как линия опорных отсчетов текущего блока. Альтернативно, когда соотношение ширины и высоты текущего блока равняется или больше, чем пороговое значение, или равняется или меньше, чем пороговое значение, смежная линия опорных отсчетов может быть определена как линия опорных отсчетов текущего блока.[0544] Alternatively, when the current block is non-square, the adjacent reference line may be defined as the current block's reference line. Alternatively, when the width-to-height ratio of the current block is equal to or greater than a threshold value, or equal to or less than a threshold value, an adjacent reference sample line may be defined as the reference sample line of the current block.
[0545] Линия опорных отсчетов может содержать верхние опорные отсчеты, расположенные над текущим блоком, и левые опорные отсчеты, расположенные слева от текущего блока. Верхние опорные отсчеты и левые опорные отсчеты могут быть получены из восстановленных отсчетов рядом с текущим блоком. Восстановленные отсчеты могут находиться в состоянии до применения фильтра в контуре.[0545] The reference sample line may include top reference samples located above the current block and left reference samples located to the left of the current block. The top reference samples and left reference samples can be obtained from the reconstructed samples adjacent to the current block. The reconstructed samples may be in the state before the filter was applied to the loop.
[0546] Затем может быть определен (S4002) режим внутреннего предсказания текущего блока. Как режим внутреннего предсказания текущего блока может быть определен по меньшей мере один из режима ненаправленного внутреннего предсказания или режима направленного внутреннего предсказания. Режим ненаправленного внутреннего предсказания включает планарный режим и режим DC, а направленное внутреннее предсказание включает 33 или 65 режимов от диагонального направления вниз и влево до диагонального направления вверх и вправо.[0546] Next, the intra prediction mode of the current block can be determined (S4002). At least one of an undirected intra prediction mode or a directed intra prediction mode may be determined as the intra prediction mode of the current block. The non-directional intra prediction mode includes planar mode and DC mode, and the directional intra prediction mode includes 33 or 65 modes from diagonal down and left direction to diagonal up and right direction.
[0547] На фиг. 41 представлено схематическое изображение, показывающее режимы внутреннего предсказания.[0547] In FIG. 41 is a schematic diagram showing intra prediction modes.
[0548] На фиг. 41A показаны 35 режимов внутреннего предсказания, и на фиг. 41B показаны 67 режимов внутреннего предсказания.[0548] In FIG. 41A shows 35 intra prediction modes, and FIG. 41B shows 67 intra prediction modes.
[0549] Может быть задано большее количество режимов внутреннего предсказания или меньшее количество режимов внутреннего предсказания, чем показано на фиг. 41.[0549] More intra prediction modes or fewer intra prediction modes may be specified than shown in FIG. 41.
[0550] Наиболее вероятный режим (MPM) может быть установлен на основании режима внутреннего предсказания блока, соседнего с текущим блоком. В данном случае соседний блок может включать левый соседний блок, смежный с левой стороной текущего блока, и верхний соседний блок, смежный с верхней стороной текущего блока.[0550] The most likely mode (MPM) may be set based on the intra prediction mode of a block adjacent to the current block. Here, the neighbor block may include a left neighbor block adjacent to the left side of the current block and an upper neighbor block adjacent to the top side of the current block.
[0551] Количество MPM, включенных в список MPM, может быть предварительно установлено в кодере и декодере. В качестве примера, количество MPM может составлять три, четыре, пять или шесть. Альтернативно информация, указывающая количество МРМ, может передаваться в битовом потоке. Альтернативно количество МРМ может быть определено на основании по меньшей мере одного из режима предсказательного кодирования соседнего блока или размера, формы или индекса линии опорных отсчетов текущего блока. В качестве примера, когда смежная линия опорных отсчетов определена как линия опорных отсчетов текущего блока, могут быть использованы N MPM, а когда несмежная линия опорных отсчетов определена как линия опорных отсчетов текущего блока, могут быть использованы M MPM. M представляет собой натуральное число, которое меньше, чем N. В качестве примера, N может быть равно шести, и M может быть равно пяти, четырем или трем. Соответственно, один из шести кандидатных режимов внутреннего предсказания определен в качестве режима внутреннего предсказания текущего блока, когда индекс линии опорных отсчетов текущего блока равен нулю, и флаг MPM имеет значение true, и один из пяти кандидатных режимов внутреннего предсказания определен в качестве режима внутреннего предсказания текущего блока, когда индекс линии опорных отсчетов текущего блока больше чем ноль, и флаг MPM имеет значение true.[0551] The number of MPMs included in the MPM list may be preset in the encoder and decoder. As an example, the number of MPMs may be three, four, five or six. Alternatively, information indicating the number of MPMs may be transmitted in the bit stream. Alternatively, the amount of MRM may be determined based on at least one of a predictive coding mode of an adjacent block or the size, shape, or line index of the current block's reference samples. As an example, when an adjacent reference sample line is defined as the current block reference line, N MPMs may be used, and when a non-adjacent reference sample line is defined as the current block reference line, M MPMs may be used. M represents a natural number that is less than N. As an example, N may be six, and M may be five, four, or three. Accordingly, one of the six candidate intra prediction modes is determined to be the intra prediction mode of the current block when the reference sample line index of the current block is zero and the MPM flag is true, and one of the five candidate intra prediction modes is determined to be the intra prediction mode of the current block. block when the reference line index of the current block is greater than zero and the MPM flag is true.
[0552] Альтернативно фиксированное количество (например, шесть или пять) MPM-кандидатов может быть использовано независимо от индекса линии опорных отсчетов текущего блока.[0552] Alternatively, a fixed number (eg, six or five) MPM candidates may be used regardless of the reference sample line index of the current block.
[0553] Создается список MPM, содержащий множество MPM, и информация, указывающая, включен ли MPM, идентичный режиму внутреннего предсказания текущего блока, в список MPM, может передаваться в битовом потоке. Информация представляет собой 1-битный флаг, и флаг может называться флагом MPM. Когда флаг MPM указывает, что MPM, идентичный текущему блоку, включен в список MPM, информация об индексах для указания одного из MPM, может передаваться в битовом потоке. В качестве примера, информация об индексах intra_luma_ref_idx, которая предназначена для указания одного из множества MPM, может передаваться в битовом потоке. В качестве режима внутреннего предсказания текущего блока может быть установлен МРМ, указанный информацией об индексах. Когда флаг MPM указывает, что MPM, идентичный текущему блоку, не включен в список MPM, информация об остаточных режимах, указывающая один из оставшихся режимов внутреннего предсказания, отличных от MPM, может быть передана в битовом потоке. Информация об остаточных режимах указывает индексное значение, соответствующее режиму внутреннего предсказания текущего блока, когда индексы повторно присвоены оставшимся режимам внутреннего предсказания, отличным от MPM. Для определения режима внутреннего предсказания текущего блока, декодер может сортировать МРМ в порядке возрастания и сравнивать МРМ с информацией об остаточных режимах. В качестве примера, когда информация об остаточных режимах меньше или равна MPM, режим внутреннего предсказания текущего блока может быть получен путем добавления единицы к информации об остаточных режимах.[0553] An MPM list containing a plurality of MPMs is created, and information indicating whether an MPM identical to the intra prediction mode of the current block is included in the MPM list may be transmitted in the bit stream. The information is a 1-bit flag, and the flag may be called an MPM flag. When the MPM flag indicates that an MPM identical to the current block is included in the MPM list, index information to indicate one of the MPMs may be transmitted in the bit stream. As an example, index information intra_luma_ref_idx, which is intended to indicate one of a plurality of MPMs, may be carried in a bit stream. The intra prediction mode of the current block may be set to the MPM indicated by the index information. When the MPM flag indicates that an MPM identical to the current block is not included in the MPM list, residual mode information indicating one of the remaining intra prediction modes other than MPM may be transmitted in the bitstream. The residual mode information indicates an index value corresponding to the intra prediction mode of the current block when the indexes are reassigned to the remaining intra prediction modes other than MPM. To determine the intra prediction mode of the current block, the decoder may sort the MPM in ascending order and compare the MPM with the residual mode information. As an example, when the residual mode information is less than or equal to MPM, the intra prediction mode of the current block can be obtained by adding one to the residual mode information.
[0554] При получении режима внутреннего предсказания текущего блока сравнение между информацией об остаточных режимах и некоторым из MPM может быть пропущено. В качестве примера, MPM, которые представляют собой ненаправленные режимы внутреннего предсказания, из MPM могут быть исключены из сравнения. Когда ненаправленные режимы внутреннего предсказания установлены в качестве MPM, очевидно, что информация об остаточных режимах указывает направленный режим внутреннего предсказания. Таким образом, режим внутреннего предсказания текущего блока может быть получен посредством сравнения между информацией об остаточных режимах и остальными MPM, отличными от ненаправленных режимов внутреннего предсказания. Вместо исключения ненаправленных режимов внутреннего предсказания из сравнения, количество ненаправленных режимов внутреннего предсказания может быть добавлено в информацию об остаточных режимах, и, таким образом, результирующее значение может быть сравнено с остальными MPM.[0554] When obtaining the intra prediction mode of the current block, the comparison between the residual mode information and some of the MPMs may be skipped. As an example, MPMs that are non-directional intra prediction modes from MPMs may be excluded from comparison. When the non-directional intra prediction modes are set as the MPM, it is apparent that the residual mode information indicates the directed intra prediction mode. Thus, the intra prediction mode of the current block can be obtained by comparison between the residual mode information and the remaining MPMs other than the undirected intra prediction modes. Instead of excluding the non-directional intra prediction modes from the comparison, the number of non-directional intra prediction modes can be added to the residual mode information, and thus the resulting value can be compared with the remaining MPMs.
[0555] Вместо установки MPM в качестве режима по умолчанию, в битовом потоке может быть передана информация, указывающая, является ли режим внутреннего предсказания текущего блока режимом по умолчанию. Информация может представлять собой 1-битный флаг, и флаг может называться флагом режима по умолчанию. Флаг режима по умолчанию может быть передан только тогда, когда флаг MPM указывает, что MPM, идентичный текущему блоку, включен в список MPM. Как описано выше, режим по умолчанию может включать по меньшей мере один из планарного режима, режима DC, вертикального режима или горизонтального режима. В качестве примера, когда в качестве режима по умолчанию установлен планарный режим, флаг режима по умолчанию может указывать, является ли режим внутреннего предсказания текущего блока планарным режимом. Когда флаг режима по умолчанию указывает, что режим внутреннего предсказания текущего блока не является режимом по умолчанию, в качестве режима внутреннего предсказания текущего блока может быть установлен один из MPM, указанных информацией об индексах.[0555] Instead of setting MPM as the default mode, information indicating whether the intra prediction mode of the current block is the default mode may be carried in the bit stream. The information may be a 1-bit flag, and the flag may be called a default mode flag. The default mode flag can be passed only when the MPM flag indicates that an MPM identical to the current block is included in the MPM list. As described above, the default mode may include at least one of planar mode, DC mode, vertical mode, or horizontal mode. As an example, when the default mode is set to planar mode, the default mode flag may indicate whether the intra prediction mode of the current block is planar mode. When the default mode flag indicates that the intra prediction mode of the current block is not the default mode, the intra prediction mode of the current block may be set to one of the MPMs indicated by the index information.
[0556] Когда используют флаг режима по умолчанию, установка может быть выполнена так, что режим внутреннего предсказания, идентичный режиму по умолчанию, не устанавливается в качестве MPM. В качестве примера, когда флаг режима по умолчанию указывает то, является ли режим внутреннего предсказания текущего блока планарным, режим внутреннего предсказания текущего блока может быть получен с использованием пяти MPM, за исключением MPM, соответствующего планарному.[0556] When the default mode flag is used, the setting may be made such that an intra prediction mode identical to the default mode is not set as the MPM. As an example, when the default mode flag indicates whether the intra prediction mode of the current block is planar, the intra prediction mode of the current block can be obtained using five MPMs excluding the MPM corresponding to planar.
[0557] Когда в качестве режимов по умолчанию установлены множество режимов внутреннего предсказания, дальше может быть передана информация об индексах, указывающая один из режимов по умолчанию. Режим внутреннего предсказания текущего блока может быть установлен в качестве режима по умолчанию, указанного информацией об индексах.[0557] When multiple intra prediction modes are set as default modes, index information indicating one of the default modes may be transmitted. The intra prediction mode of the current block can be set as the default mode indicated by the index information.
[0558] Когда индекс линии опорных отсчетов текущего блока является ненулевым, установка может быть выполнена так, что режим по умолчанию не используется. В качестве примера, когда несмежная линия опорных отсчетов определена как линия опорных отсчетов текущего блока, установка может быть выполнена так, что ненаправленный режим внутреннего предсказания, такой как режим DC или планарный режим, не используется. Соответственно, когда индекс линии опорных отсчетов является ненулевым, флаг режима по умолчанию может не передаваться, и значение флага режима по умолчанию может быть установлено равным предварительно заданному значению (т. е. false).[0558] When the reference line index of the current block is non-zero, the setting can be made such that the default mode is not used. As an example, when a non-adjacent reference sample line is determined to be the reference sample line of the current block, the setting may be made such that a non-directional intra prediction mode such as a DC mode or a planar mode is not used. Accordingly, when the index of the reference sample line is non-zero, the default mode flag may not be transmitted, and the value of the default mode flag may be set to a preset value (ie, false).
[0559] Когда режим внутреннего предсказания текущего блока определен, отсчеты предсказания для текущего блока могут быть получены (S4003) на основании определенного режима внутреннего предсказания.[0559] When the intra prediction mode of the current block is determined, prediction samples for the current block can be obtained (S4003) based on the determined intra prediction mode.
[0560] Когда выбран режим DC, отсчеты предсказания для текущего блока могут генерироваться на основании среднего значения опорных отсчетов. Подробно значения всех отсчетов в блоке предсказания могут генерироваться на основании среднего значения опорных отсчетов. Среднее значение может быть получено с использованием по меньшей мере одного из верхних опорных отсчетов, расположенных над текущим блоком, и левых опорных отсчетов, расположенных слева от текущего блока.[0560] When the DC mode is selected, prediction samples for the current block can be generated based on the average of the reference samples. In detail, the values of all samples in the prediction block may be generated based on the average value of the reference samples. The average may be obtained using at least one of the top reference samples located above the current block and the left reference samples located to the left of the current block.
[0561] Количество или диапазон опорных отсчетов, используемых для получения среднего значения, может меняться в зависимости от формы текущего блока. В качестве примера, когда текущий блок представляет собой блок неквадратной формы, в котором ширина больше высоты, среднее значение может быть рассчитано с использованием только верхних опорных отсчетов. С другой стороны, когда текущий блок представляет собой блок неквадратной формы, в котором ширина меньше высоты, среднее значение может быть рассчитано с использованием только левых опорных отсчетов. То есть, когда ширина и высота текущего блока отличаются друг от друга, среднее значение может быть рассчитано с использованием только опорных отсчетов, смежных с большей из ширины и высоты. Альтернативно то, следует ли рассчитывать среднее значение с использованием верхних опорных отсчетов или рассчитывать среднее значение с использованием левых опорных отсчетов, можно определить на основании соотношения ширины и высоты текущего блока.[0561] The number or range of reference samples used to obtain the average may vary depending on the shape of the current block. As an example, when the current block is a non-square block in which the width is greater than the height, the average can be calculated using only the top reference samples. On the other hand, when the current block is a non-square block in which the width is less than the height, the average can be calculated using only the left reference samples. That is, when the width and height of the current block are different from each other, the average can be calculated using only the reference samples adjacent to the larger of the width and height. Alternatively, whether to calculate the average using the top reference samples or calculate the average using the left reference samples can be determined based on the width-to-height ratio of the current block.
[0562] Когда выбран планарный режим, отсчет предсказания может быть получен с использованием отсчета горизонтального предсказания и отсчета вертикального предсказания. В данном случае отсчет горизонтального предсказания получается на основании левого опорного отсчета и правого опорного отсчета, расположенных на той же горизонтальной линии, что и отсчет предсказания, а отсчет вертикального предсказания получается на основании верхнего опорного отсчета и нижнего опорного отсчета, расположенных на той же вертикальной линии, что и отсчет предсказания. В данном случае правый опорный отсчет может генерироваться путем копирования опорного отсчета, смежного с верхним правым углом текущего блока, а нижний опорный отсчет может генерироваться путем копирования опорного отсчета, смежного с нижним левым углом текущего блока. Отсчет горизонтального предсказания может быть получен на основании операции взвешенной суммы левого опорного отсчета и правого опорного отсчета, а отсчет вертикального предсказания может быть получен на основании операции взвешенной суммы верхнего опорного отсчета и нижнего опорного отсчета. В этом случае весовой коэффициент, присваиваемый каждому опорному отсчету, может быть определен в зависимости от местоположения отсчета предсказания. Отсчет предсказания может быть получен на основании операции усреднения или операции взвешенной суммы отсчета горизонтального предсказания и отсчета вертикального предсказания. При выполнении операции взвешенной суммы весовые коэффициенты, присваиваемые отсчету горизонтального предсказания и отсчету вертикального предсказания, могут быть определены на основании местоположения отсчета предсказания.[0562] When the planar mode is selected, a prediction sample can be obtained using a horizontal prediction sample and a vertical prediction sample. In this case, the horizontal prediction sample is obtained based on the left reference sample and the right reference sample located on the same horizontal line as the prediction sample, and the vertical prediction sample is obtained based on the upper reference sample and the lower reference sample located on the same vertical line , which is the prediction count. Here, the right reference sample may be generated by copying a reference sample adjacent to the upper right corner of the current block, and the lower reference sample may be generated by copying the reference sample adjacent to the lower left corner of the current block. The horizontal prediction count can be obtained based on the weighted sum operation of the left reference sample and the right reference sample, and the vertical prediction count can be obtained based on the weighted sum operation of the upper reference sample and the lower reference sample. In this case, the weight assigned to each reference sample can be determined depending on the location of the prediction sample. The prediction sample may be obtained based on an averaging operation or a weighted sum operation of the horizontal prediction sample and the vertical prediction sample. When performing the weighted sum operation, weights assigned to the horizontal prediction sample and the vertical prediction sample can be determined based on the location of the prediction sample.
[0563] Когда выбран режим направленного предсказания, может быть определен параметр, указывающий направление предсказания (или угол предсказания) выбранного режима направленного предсказания. Ниже в таблице 6 представлен параметр внутреннего направления intraPredAng для каждого режима внутреннего предсказания.[0563] When a directional prediction mode is selected, a parameter indicating the prediction direction (or prediction angle) of the selected directional prediction mode can be determined. Table 6 below presents the intraPredAng intra direction parameter for each intra prediction mode.
[0564] [Таблица 6][0564] [Table 6]
[0565] В таблице 6 представлен параметр внутреннего направления для каждого режима внутреннего предсказания с индексом от 2 до 34, когда заданы 35 режимов внутреннего предсказания. Когда задано более 33 режимов направленного внутреннего предсказания, таблицу 6 можно подразделить с целью установки параметров внутреннего направления для каждого режима направленного внутреннего предсказания.[0565] Table 6 shows the intra direction parameter for each intra prediction mode with an index from 2 to 34 when 35 intra prediction modes are specified. When more than 33 directed intra prediction modes are specified, Table 6 can be subdivided to set the intra direction parameters for each directed intra prediction mode.
[0566] После расположения верхних опорных отсчетов и левых опорных отсчетов текущего блока в линию отсчет предсказания может быть получен на основании значения параметра внутреннего направления. В этом случае левые опорные отсчеты и верхние опорные отсчеты могут быть расположены в линию, когда значение параметра внутреннего направления является отрицательным.[0566] After arranging the top reference samples and the left reference samples of the current block in a line, a prediction sample can be obtained based on the value of the inner direction parameter. In this case, the left reference samples and the top reference samples can be arranged in a line when the value of the inner direction parameter is negative.
[0567] На фиг. 42 и 43 представлены схематические изображения, показывающие пример одномерного массива, в котором опорные отсчеты расположены в линию.[0567] In FIG. 42 and 43 are schematic diagrams showing an example of a one-dimensional array in which reference samples are arranged in a line.
[0568] На фиг. 42 показан пример одномерного вертикального массива, в котором опорные отсчеты расположены вертикально, а на фиг. 43 показан пример одномерного горизонтального массива, в котором опорные отсчеты расположены горизонтально. Варианты осуществления, представленные на фиг. 42 и 43, будут описаны в предположении, что заданы 35 режимов внутреннего предсказания.[0568] In FIG. 42 shows an example of a one-dimensional vertical array in which the reference samples are located vertically, and FIG. Figure 43 shows an example of a one-dimensional horizontal array in which the reference samples are located horizontally. The embodiments shown in FIGS. 42 and 43 will be described assuming that 35 intra prediction modes are specified.
[0569] Одномерный горизонтальный массив, в котором верхние опорные отсчеты поворачиваются против часовой стрелки, может применяться тогда, когда индекс режима внутреннего предсказания находится между 11 и 18, а одномерный вертикальный массив, в котором левые опорные отсчеты поворачиваются по часовой стрелке, может применяться тогда, когда индекс режима внутреннего предсказания находится между 19 и 25. Когда опорные отсчеты расположены в линию, может учитываться угол режима внутреннего предсказания.[0569] A one-dimensional horizontal array, in which the top reference samples are rotated counterclockwise, can be used when the intra prediction mode index is between 11 and 18, and a one-dimensional vertical array, in which the left reference samples are rotated clockwise, can be used when , when the intra prediction mode index is between 19 and 25. When the reference samples are arranged in a line, the intra prediction mode angle can be taken into account.
[0570] На основании параметра внутреннего направления может быть определен параметр определения опорного отсчета. Параметр определения опорного отсчета может содержать индекс опорного отсчета для указания опорного отсчета и параметр весового коэффициента для определения весового коэффициента, подлежащего применению к опорному отсчету.[0570] Based on the internal direction parameter, a reference determination parameter can be determined. The reference sample determination parameter may comprise a reference sample index to indicate the reference sample and a weight parameter to determine the weight to be applied to the reference sample.
[0571] Индекс опорного отсчета iIdx и параметр весового коэффициента ifact могут быть получены с помощью приведенных ниже уравнений 30 и 31.[0571] The reference index iIdx and the weighting parameter ifact can be obtained using Equations 30 and 31 below.
[0572] [Уравнение 30][0572] [Equation 30]
[0573] [Уравнение 31][0573] [Equation 31]
[0574] В уравнениях 30 и 31 Pang представляет параметр внутреннего направления. Опорный отсчет, указываемый индексом опорного отсчета iIdx, соответствует целому пикселю.[0574] In equations 30 and 31, P ang represents the internal direction parameter. The reference sample, indicated by the reference sample index iIdx, corresponds to an integer pixel.
[0575] Для получения отсчета предсказания может быть указан по меньшей мере один опорный отсчет. Подробно местоположение опорного отсчета для использования при получении отсчета предсказания может быть указано с учетом наклона режима предсказания. В качестве примера, опорный отсчет для использования при получении отсчета предсказания может быть указан с использованием индекса опорного отсчета iIdx.[0575] At least one reference sample may be specified to obtain the prediction sample. The details of the location of the reference sample to be used in obtaining the prediction sample may be specified taking into account the slope of the prediction mode. As an example, a reference sample to use in obtaining a prediction sample may be specified using the reference sample index iIdx.
[0576] В этом случае, когда наклон режима внутреннего предсказания нельзя выразить одним опорным отсчетом, отсчет предсказания может быть сгенерирован путем интерполяции множества опорных отсчетов. В качестве примера, когда наклон режима внутреннего предсказания представляет собой значение между наклоном между отсчетом предсказания и первым опорным отсчетом и наклоном между отсчетом предсказания и вторым опорным отсчетом, отсчет предсказания может быть получен путем интерполяции первого опорного отсчета и второго опорного отсчета. То есть угловая линия, соответствующая углу внутреннего предсказания, не проходит через опорный отсчет, расположенный в целом пикселе, отсчет предсказания может быть получен путем интерполяции опорных отсчетов, смежных с левой, правой, верхней или нижней сторонами местоположения, через которое проходит угловая линия.[0576] In this case, when the slope of the intra prediction mode cannot be expressed by a single reference sample, the prediction sample can be generated by interpolating multiple reference samples. As an example, when the slope of the intra prediction mode is a value between the slope between the prediction sample and the first reference sample and the slope between the prediction sample and the second reference sample, the prediction sample can be obtained by interpolating the first reference sample and the second reference sample. That is, the corner line corresponding to the intra prediction angle does not pass through a reference sample located in the entire pixel, the prediction sample can be obtained by interpolating the reference samples adjacent to the left, right, top or bottom sides of the location through which the corner line passes.
[0577] Ниже в уравнении 32 показан пример получения отсчета предсказания на основании опорных отсчетов.[0577] Below, Equation 32 shows an example of obtaining a prediction sample based on the reference samples.
[0578] [Уравнение 32][0578] [Equation 32]
[0579] В уравнении 32 P представляет отсчет предсказания, и Ref_1D представляет один из опорных отсчетов, расположенных в одном измерении. В этом случае местоположение опорного отсчета может быть определено по индексу опорного отсчета iIdx и местоположению (х, у) отсчета предсказания.[0579] In Equation 32, P represents a prediction sample, and Ref_1D represents one of the reference samples located in one dimension. In this case, the location of the reference sample can be determined from the reference sample index iIdx and the location (x, y) of the prediction sample.
[0580] Когда наклон режима внутреннего предсказания может быть выражен одним опорным отсчетом, параметр весового коэффициента ifact может быть установлен равным нулю. Соответственно, уравнение 32 можно упростить до приведенного ниже уравнения 33.[0580] When the slope of the intra prediction mode can be expressed by a single reference sample, the weighting parameter i fact can be set to zero. Accordingly, Equation 32 can be simplified to Equation 33 below.
[0581] [Уравнение 33][0581] [Equation 33]
[0582] Внутреннее предсказание может быть выполнено в отношении текущего блока на основании множества режимов внутреннего предсказания. В качестве примера, режим внутреннего предсказания может быть получен для каждого отсчета предсказания, а отсчет предсказания может быть получен на основании режима внутреннего предсказания, присвоенного соответствующему отсчету предсказания.[0582] Intra prediction may be performed on the current block based on a variety of intra prediction modes. As an example, an intra prediction mode may be obtained for each prediction sample, and a prediction sample may be obtained based on the intra prediction mode assigned to the corresponding prediction sample.
[0583] Альтернативно режим внутреннего предсказания может быть получен для каждого участка, и внутреннее предсказание может быть выполнено в отношении соответствующего участка на основании режима внутреннего предсказания, присвоенного соответствующему участку. В этом случае участок может содержать по меньшей мере один отсчет. По меньшей мере одно из размера или формы участка может быть адаптивно определено на основании по меньшей мере одного из размера, формы или режима внутреннего предсказания текущего блока. Альтернативно по меньшей мере одно из размера или формы участка может быть предварительно задано в кодере и декодере независимо от размера или формы текущего блока.[0583] Alternatively, an intra prediction mode may be obtained for each portion, and intra prediction may be performed on the corresponding portion based on the intra prediction mode assigned to the corresponding portion. In this case, the region may contain at least one sample. At least one of the size or shape of the patch may be adaptively determined based on at least one of the size, shape, or intra prediction mode of the current block. Alternatively, at least one of the size or shape of the region may be preset in the encoder and decoder regardless of the size or shape of the current block.
[0584] Альтернативно внутреннее предсказание может выполняться многократно, и конечный отсчет предсказания может быть получен на основании операции усреднения или операции взвешенной суммы множества отсчетов предсказания, полученных путем многократного выполнения внутреннего предсказания. В качестве примера, первый отсчет предсказания может быть получен путем выполнения внутреннего предсказания на основании первого режима внутреннего предсказания, а второй отсчет предсказания может быть получен путем выполнения внутреннего предсказания на основании второго режима внутреннего предсказания. Затем конечный отсчет предсказания может быть получен на основании операции усреднения или операции взвешенной суммы первого отсчета предсказания и второго отсчета предсказания. В этом случае весовые коэффициенты, присваиваемые первому отсчету предсказания и второму отсчету предсказания, могут быть определены с учетом по меньшей мере одного из того, является ли первый режим внутреннего предсказания режимом ненаправленного предсказания или режимом направленного предсказания, того, является ли второй режим внутреннего предсказания режимом ненаправленного предсказания или режимом направленного предсказания, или режима внутреннего предсказания соседнего блока.[0584] Alternatively, intra prediction may be performed multiple times, and the final prediction sample may be obtained based on an averaging operation or a weighted sum operation of multiple prediction samples obtained by performing intra prediction multiple times. As an example, a first prediction sample may be obtained by performing intra prediction based on a first intra prediction mode, and a second prediction sample may be obtained by performing intra prediction based on a second intra prediction mode. Then, the final prediction sample can be obtained based on an averaging operation or a weighted sum operation of the first prediction sample and the second prediction sample. In this case, the weights assigned to the first prediction sample and the second prediction sample may be determined taking into account at least one of whether the first intra prediction mode is an undirected prediction mode or a directional prediction mode, whether the second intra prediction mode is a undirected prediction or directed prediction mode, or intra-neighbor block prediction mode.
[0585] Множество режимов внутреннего предсказания могут представлять собой комбинацию режима ненаправленного внутреннего предсказания и режима направленного внутреннего предсказания, комбинацию режимов направленного внутреннего предсказания или комбинацию режимов ненаправленного внутреннего предсказания.[0585] The plurality of intra prediction modes may be a combination of an undirected intra prediction mode and a directed intra prediction mode, a combination of directed intra prediction modes, or a combination of undirected intra prediction modes.
[0586] На фиг. 44 представлено схематическое изображение, иллюстрирующее углы, образованные между прямой линией, параллельной оси х, и режимами направленного внутреннего предсказания.[0586] In FIG. 44 is a schematic view illustrating the angles formed between a straight line parallel to the x-axis and the directional intra prediction modes.
[0587] В примере, показанном на фиг. 44, режимы направленного предсказания могут находиться в диапазоне от диагонального направления вниз и влево до диагонального направления вверх и вправо. Там, где следующее описание предполагает угол, образованный между осью x и режимом направленного предсказания, режимы направленного предсказания могут находиться в диапазоне от 45 градусов (в диагональном направлении вниз и влево) до -135 градусов (в диагональном направлении вверх и вправо).[0587] In the example shown in FIG. 44, directional prediction modes may range from diagonal down and left direction to diagonal up and right direction. Where the following description assumes the angle formed between the x-axis and the directional prediction mode, directional prediction modes can range from 45 degrees (diagonally down and left) to -135 degrees (diagonally up and right).
[0588] Когда текущий блок имеет неквадратную форму, отсчет предсказания может быть получен с использованием опорного отсчета вдали от отсчета предсказания из опорных отсчетов, расположенных на угловой линии, соответствующей углу внутреннего предсказания, вместо опорного отсчета вблизи отсчета предсказания в зависимости от режима внутреннего предсказания текущего блока.[0588] When the current block has a non-square shape, a prediction sample may be obtained using a reference sample far from the prediction sample from reference samples located on the corner line corresponding to the intra prediction angle, instead of a reference sample near the prediction sample depending on the intra prediction mode of the current block.
[0589] На фиг. 45 представлено схематическое изображение, показывающее аспект, в котором отсчет предсказания получается, когда текущий блок имеет неквадратную форму.[0589] In FIG. 45 is a schematic view showing an aspect in which a prediction count is obtained when the current block has a non-square shape.
[0590] Например, как и в примере, показанном на фиг. 45A, предполагается, что текущий блок имеет неквадратную форму, в которой ширина больше высоты, и что режимом внутреннего предсказания текущего блока является режим направленного внутреннего предсказания, имеющий угол от 0 градусов до 45 градусов. В этом случае при получении отсчета А предсказания рядом с правым столбцом текущего блока может использоваться левый опорный отсчет L вдали от отсчета предсказания из опорных отсчетов, расположенных на угловой линии, соответствующей углу, вместо верхнего опорного отсчета T вблизи отсчета предсказания.[0590] For example, as in the example shown in FIG. 45A, it is assumed that the current block has a non-square shape in which the width is greater than the height, and that the intra prediction mode of the current block is a directional intra prediction mode having an angle from 0 degrees to 45 degrees. In this case, when obtaining the prediction sample A near the right column of the current block, the left reference sample L away from the prediction sample from the reference samples located on the corner line corresponding to the corner may be used instead of the top reference sample T near the prediction sample.
[0591] В качестве другого примера, как и в примере, показанном на фиг. 45B, предполагается, что текущий блок имеет неквадратную форму, в которой высота больше ширины, и что режимом внутреннего предсказания текущего блока является режим направленного внутреннего предсказания, имеющий угол от -90 градусов до -135 градусов. В этом случае при получении отсчета А предсказания рядом с нижней строкой текущего блока может использоваться верхний опорный отсчет Т вдали от отсчета предсказания из опорных отсчетов, расположенных на угловой линии, соответствующей углу, вместо левого опорного отсчета L вблизи отсчета предсказания.[0591] As another example, as in the example shown in FIG. 45B, it is assumed that the current block has a non-square shape in which the height is greater than the width, and that the intra prediction mode of the current block is a directional intra prediction mode having an angle of -90 degrees to -135 degrees. In this case, when obtaining a prediction sample A near the bottom line of the current block, the top reference sample T away from the prediction sample from the reference samples located on the corner line corresponding to the corner may be used instead of the left reference sample L near the prediction sample.
[0592] Для решения данной проблемы, когда текущий блок имеет неквадратную форму, режим внутреннего предсказания текущего блока может быть заменен режимом внутреннего предсказания в противоположном направлении. Таким образом, для блоков неквадратной формы могут быть использованы режимы направленного предсказания, имеющие угол, который больше или меньше, чем у режимов направленного предсказания, показанных на фиг. 41. Такой режим направленного внутреннего предсказания может быть задан в качестве широкоугольного режима внутреннего предсказания. Широкоугольный режим внутреннего предсказания представляет режим направленного внутреннего предсказания, не находящийся в диапазоне от 45 градусов до -135 градусов.[0592] To solve this problem, when the current block has a non-square shape, the intra prediction mode of the current block can be replaced by an intra prediction mode in the opposite direction. Thus, for non-square shaped blocks, directional prediction modes having an angle that is larger or smaller than those of the directional prediction modes shown in FIG. 41. Such a directional intra prediction mode may be set as a wide-angle intra prediction mode. The wide-angle intra prediction mode represents the directional intra prediction mode, which is not in the range of 45 degrees to -135 degrees.
[0593] На фиг. 46 представлено схематическое изображение, показывающее широкоугольные режимы внутреннего предсказания.[0593] In FIG. 46 is a schematic diagram showing wide-angle intra prediction modes.
[0594] В примере, показанном на фиг. 46, широкоугольные режимы внутреннего предсказания указаны режимами внутреннего предсказания с индексом от -1 до
-14 и режимами внутреннего предсказания с индексом от 67 до 80.[0594] In the example shown in FIG. 46, wide-angle intra prediction modes are indicated by intra prediction modes with an index of -1 to
-14 and internal prediction modes with an index from 67 to 80.
[0595] На фиг. 46 проиллюстрированы 14 широкоугольных режимов внутреннего предсказания, имеющих угол, который больше 45 градусов (от -1 до -14), и 14 широкоугольных режимов внутреннего предсказания, имеющих угол, который меньше -135 градусов (от 67 до 80), однако может быть задано большее или меньшее количество широкоугольных режимов внутреннего предсказания.[0595] In FIG. 46 illustrates 14 wide-angle intra prediction modes having an angle that is greater than 45 degrees (-1 to -14), and 14 wide-angle intra prediction modes having an angle that is less than -135 degrees (67 to 80), but can be specified more or less wide-angle intra prediction modes.
[0596] Когда используется широкоугольный режим внутреннего предсказания, длина верхних опорных отсчетов может быть установлена равной 2W+1, и длина левых опорных отсчетов может быть установлена равной 2H+1.[0596] When the wide-angle intra prediction mode is used, the length of the top reference samples can be set to 2W+1, and the length of the left reference samples can be set to 2H+1.
[0597] Когда используется широкоугольный режим внутреннего предсказания, отсчет А, показанный на фиг. 45A, может быть предсказан с использованием опорного отсчета Т, а отсчет А, показанный на фиг. 45B, может быть предсказан с использованием опорного отсчета L.[0597] When the wide-angle intra prediction mode is used, count A shown in FIG. 45A can be predicted using the reference sample T, and the sample A shown in FIG. 45B can be predicted using the reference sample L.
[0598] Путем добавления N широкоугольных режимов внутреннего предсказания к существующим режимам внутреннего предсказания может использоваться в общем 67+N режимов внутреннего предсказания. В качестве примера, в таблице 7 показаны параметры внутреннего направления режимов внутреннего предсказания, когда заданы 20 широкоугольных режимов внутреннего предсказания.[0598] By adding N wide-angle intra prediction modes to the existing intra prediction modes, a total of 67+N intra prediction modes can be used. As an example, Table 7 shows the inner direction parameters of the intra prediction modes when 20 wide-angle intra prediction modes are specified.
[0599] [Таблица 7][0599] [Table 7]
[0600] Когда текущий блок имеет неквадратную форму, и режим внутреннего предсказания текущего блока, полученный на этапе S4002, находится в пределах диапазона преобразования, режим внутреннего предсказания текущего блока может быть преобразован в широкоугольный режим внутреннего предсказания. Диапазон преобразования может быть определен на основании по меньшей мере одного из размера, формы или соотношения текущего блока. В данном случае соотношение может указывать соотношение между шириной и высотой текущего блока.[0600] When the current block has a non-square shape and the intra prediction mode of the current block obtained in step S4002 is within the conversion range, the intra prediction mode of the current block can be converted to a wide-angle intra prediction mode. The transformation range may be determined based on at least one of the size, shape, or ratio of the current block. In this case, the ratio can indicate the relationship between the width and height of the current block.
[0601] Когда текущий блок имеет неквадратную форму, в которой ширина больше высоты, диапазон преобразования может быть установлен в диапазоне от индекса режима внутреннего предсказания в диагональном направлении вверх и вправо (например, 66) до индекса режима внутреннего предсказания в диагональном направлении вверх и вправо минус N. В данном случае N может быть определено на основании соотношения текущего блока. Когда режим внутреннего предсказания текущего блока находится в пределах диапазона преобразования, режим внутреннего предсказания может быть преобразован в широкоугольный режим внутреннего предсказания. Преобразование может представлять собой вычитание предварительно заданного значения из режима внутреннего предсказания, и предварительно заданное значение может представлять собой общее количество (например, 67) режимов внутреннего предсказания за исключением широкоугольных режимов внутреннего предсказания.[0601] When the current block has a non-square shape in which the width is greater than the height, the conversion range can be set to a range from the intra prediction mode index in the diagonal up and right direction (for example, 66) to the intra prediction mode index in the diagonal up and right direction minus N. In this case, N can be determined based on the ratio of the current block. When the intra prediction mode of the current block is within the conversion range, the intra prediction mode can be converted to a wide-angle intra prediction mode. The conversion may be the subtraction of a predetermined value from the intra prediction mode, and the predetermined value may be the total number (eg, 67) of intra prediction modes excluding wide-angle intra prediction modes.
[0602] Согласно вышеописанному варианту осуществления режимы внутреннего предсказания от № 66 до № 53 могут быть преобразованы в широкоугольные режимы внутреннего предсказания от № -1 до № -14 соответственно.[0602] According to the above-described embodiment, intra prediction modes No. 66 to No. 53 can be converted to wide-angle intra prediction modes No. -1 to No. -14, respectively.
[0603] Когда текущий блок имеет неквадратную форму, в которой высота больше ширины, диапазон преобразования может быть установлен в диапазоне от индекса режима внутреннего предсказания в диагональном направлении вниз и влево (например, 2) до индекса режима внутреннего предсказания в диагональном направлении вниз и влево плюс M. В этом случае М может быть определено на основании соотношения текущего блока. Когда режим внутреннего предсказания текущего блока находится в пределах диапазона преобразования, режим внутреннего предсказания может быть преобразован в широкоугольный режим внутреннего предсказания. Преобразование может представлять собой добавление предварительно заданного значения к режиму внутреннего предсказания, а предварительно заданное значение может представлять собой общее количество (например, 65) режимов направленного внутреннего предсказания за исключением широкоугольных режимов внутреннего предсказания.[0603] When the current block has a non-square shape in which the height is greater than the width, the transformation range can be set to the diagonal down-left intra prediction mode index (eg, 2) to the diagonal down-left intra prediction mode index plus M. In this case, M can be determined based on the ratio of the current block. When the intra prediction mode of the current block is within the conversion range, the intra prediction mode can be converted to a wide-angle intra prediction mode. The transformation may be adding a predetermined value to the intra prediction mode, and the predetermined value may be the total number (eg, 65) of directional intra prediction modes excluding wide-angle intra prediction modes.
[0604] Согласно вышеописанному варианту осуществления режимы внутреннего предсказания от № 2 до № 15 могут быть преобразованы в широкоугольные режимы внутреннего предсказания от № 67 до № 80 соответственно.[0604] According to the above-described embodiment, intra prediction modes No. 2 to No. 15 can be converted to wide-angle intra prediction modes No. 67 to No. 80, respectively.
[0605] Режимы внутреннего предсказания, находящиеся в пределах диапазона преобразования, будут называться альтернативными широкоугольными режимами внутреннего предсказания.[0605] Intra prediction modes that are within the conversion range will be referred to as alternative wide-angle intra prediction modes.
[0606] Диапазон преобразования может быть определен на основании соотношения текущего блока. В качестве примера, в таблице 8 и таблице 9 представлен диапазон преобразования, когда заданы 35 режимов внутреннего предсказания за исключением широкоугольных режимов внутреннего предсказания, и диапазон предсказания, когда заданы 67 режимов внутреннего предсказания.[0606] The conversion range can be determined based on the ratio of the current block. As an example, Table 8 and Table 9 show the conversion range when 35 intra prediction modes excluding wide-angle intra prediction modes are specified, and the prediction range when 67 intra prediction modes are specified.
[0607] [Таблица 8][0607] [Table 8]
[0608] [Таблица 9][0608] [Table 9]
[0609] В примерах, показанных в таблице 8 и таблице 9, количество альтернативных широкоугольных режимов внутреннего предсказания, находящихся в пределах диапазона преобразования, может отличаться в зависимости от соотношения текущего блока.[0609] In the examples shown in Table 8 and Table 9, the number of alternative wide-angle intra prediction modes within the conversion range may differ depending on the ratio of the current block.
[0610] Диапазон преобразования, как показано в таблице 10 ниже, может быть установлен путем подразделения соотношения текущего блока.[0610] The conversion range, as shown in Table 10 below, can be set by subdividing the ratio of the current block.
[0611] [Таблица 10][0611] [Table 10]
[0612] Когда несмежная линия опорных отсчетов определена в качестве линии опорных отсчетов текущего блока, или когда используется способ кодирования с внутренним предсказанием с несколькими линиями для выбора одной из множества линий опорных отсчетов, установка может быть выполнена так, что широкоугольный режим внутреннего предсказания не используется. То есть, даже когда текущий блок имеет неквадратную форму, и режим внутреннего предсказания текущего блока находится в пределах диапазона преобразования, режим внутреннего предсказания текущего блока может не быть преобразован в широкоугольный режим внутреннего предсказания.[0612] When a non-adjacent reference sample line is specified as the reference sample line of the current block, or when a multi-line intra prediction coding method is used to select one of a plurality of reference sample lines, the setting may be made such that the wide-angle intra prediction mode is not used . That is, even when the current block has a non-square shape, and the intra prediction mode of the current block is within the conversion range, the intra prediction mode of the current block may not be converted to the wide-angle intra prediction mode.
[0613] Альтернативно, когда режим внутреннего предсказания текущего блока определен в качестве широкоугольного режима внутреннего предсказания, установка может быть выполнена так, что несмежные линии опорных отсчетов не являются доступными в качестве линии опорных отсчетов текущего блока, или установка может быть выполнена так, что способ кодирования с внутренним предсказанием с несколькими линиями для выбора одной из множества линий опорных отсчетов не используется. Когда способ кодирования с внутренним предсказанием с несколькими линиями не используется, смежная линия опорных отсчетов может быть определена как линия опорных отсчетов текущего блока.[0613] Alternatively, when the intra prediction mode of the current block is determined to be a wide-angle intra prediction mode, the setting may be made such that non-adjacent reference sample lines are not available as the current block's reference sample line, or the setting may be made such that the method No multi-line intra prediction coding is used to select one of a plurality of reference sample lines. When a multi-line intra prediction coding method is not used, an adjacent reference sample line can be defined as the reference sample line of the current block.
[0614] Когда широкоугольный режим внутреннего предсказания не используется, refW и refH могут быть установлены равными сумме nTbW и nTbH. Соответственно, за исключением верхних левых опорных отсчетов, несмежный опорный отсчет, находящийся на расстоянии i от текущего блока, может включать (nTbW + nTbH + offsetX[i]) верхних опорных отсчетов и (nTbW + nTbH + offsetY[i]) левых опорных отсчетов. То есть несмежный опорный отсчет, находящийся на расстоянии i от текущего блока, может включать (2nTbW + 2nTbH + offsetX[i] + offsetY[i] + 1) опорных отсчетов. Например, когда значение whRatio больше чем 1, установка может выполнена так, что значение offsetX больше, чем значение offsetY. В качестве примера, значение offsetX может быть установлено равным 1, и значение offsetY может быть установлено равным 0. С другой стороны, когда значение whRatio меньше чем 1, установка может выполнена так, что значение offsetY больше, чем значение offsetX. В качестве примера, значение offsetX может быть установлено равным 0, и значение offsetY может быть установлено равным 1.[0614] When the wide-angle intra prediction mode is not used, refW and refH may be set to the sum of nTbW and nTbH. Accordingly, with the exception of the top left reference samples, a non-adjacent reference sample located at distance i from the current block may include (nTbW + nTbH + offsetX[i]) top reference samples and (nTbW + nTbH + offsetY[i]) left reference samples . That is, a non-adjacent reference sample located at distance i from the current block may include (2nTbW + 2nTbH + offsetX[i] + offsetY[i] + 1) reference samples. For example, when the value of whRatio is greater than 1, the setting may be made such that the value of offsetX is greater than the value of offsetY. As an example, the offsetX value may be set to 1, and the offsetY value may be set to 0. On the other hand, when the whRatio value is less than 1, the setting may be made such that the offsetY value is greater than the offsetX value. As an example, the value of offsetX can be set to 0, and the value of offsetY can be set to 1.
[0615] Так как широкоугольные режимы внутреннего предсказания используются в дополнение к существующим режимам внутреннего предсказания, ресурсы, необходимые для кодирования широкоугольных режимов внутреннего предсказания, могут увеличиваться, и, таким образом, может снижаться эффективность кодирования. Соответственно, эффективность кодирования можно повысить путем кодирования альтернативных режимов внутреннего предсказания для широкоугольных режимов внутреннего предсказания вместо кодирования широкоугольных режимов внутреннего предсказания как есть.[0615] Since wide-angle intra prediction modes are used in addition to existing intra prediction modes, resources required to encode wide-angle intra prediction modes may increase, and thus coding efficiency may decrease. Accordingly, coding efficiency can be improved by encoding alternative intra prediction modes for wide-angle intra prediction modes instead of encoding wide-angle intra prediction modes as is.
[0616] В качестве примера, когда текущий блок кодируется в широкоугольном режиме внутреннего предсказания № 67, в режим внутреннего предсказания текущего блока может кодироваться широкоугольный режим внутреннего предсказания № 2, который представляет собой альтернативный широкоугольный режим внутреннего предсказания для № 67. Кроме того, когда текущий блок кодируется в широкоугольном режиме внутреннего предсказания № -1, в режим внутреннего предсказания текущего блока может кодироваться широкоугольный режим внутреннего предсказания № 66, который представляет собой альтернативный широкоугольный режим внутреннего предсказания для № -1.[0616] As an example, when the current block is encoded in the wide-angle intra prediction mode No. 67, the wide-angle intra prediction mode No. 2, which is an alternative wide-angle intra prediction mode for No. 67, may be encoded into the intra prediction mode of the current block. the current block is encoded in the wide-angle intra prediction mode No. -1, the wide-angle intra prediction mode No. 66, which is an alternative wide-angle intra prediction mode for No. -1, can be encoded into the intra prediction mode of the current block.
[0617] Декодер может декодировать режим внутреннего предсказания текущего блока и может определять, находится ли декодированный режим внутреннего предсказания в пределах диапазона преобразования. Когда декодированный режим внутреннего предсказания представляет собой альтернативный широкоугольный режим внутреннего предсказания, режим внутреннего предсказания может быть преобразован в широкоугольный режим внутреннего предсказания.[0617] The decoder may decode the intra prediction mode of the current block and may determine whether the decoded intra prediction mode is within the transform range. When the decoded intra prediction mode is an alternative wide-angle intra prediction mode, the intra prediction mode can be converted to a wide-angle intra prediction mode.
[0618] Альтернативно, когда текущий блок кодируется в широкоугольном режиме внутреннего предсказания, широкоугольный режим внутреннего предсказания может кодироваться как есть.[0618] Alternatively, when the current block is encoded in the wide-angle intra prediction mode, the wide-angle intra prediction mode may be encoded as is.
[0619] Кодирование режима внутреннего предсказания может выполняться на основании вышеописанного списка МРМ. Подробно, когда соседний блок кодирован в широкоугольном режиме внутреннего предсказания, MPM может быть установлен на основании альтернативного широкоугольного режима внутреннего предсказания, соответствующего широкоугольному режиму внутреннего предсказания.[0619] Intra prediction mode coding may be performed based on the above-described MPM list. In detail, when a neighboring block is encoded in the wide-angle intra prediction mode, the MPM can be set based on the alternative wide-angle intra prediction mode corresponding to the wide-angle intra prediction mode.
[0620] Остаточное изображение может быть получено путем вычитания изображения предсказания из исходного изображения. В этом случае, когда остаточное изображение изменяется на частотную область, субъективное качество изображения значительно не снижается, даже если из частотных компонентов удалены высокочастотные компоненты. Соответственно, когда значения высокочастотных компонентов изменяются на небольшие значения, или когда значения высокочастотных компонентов установлены равными 0, можно повысить эффективность сжатия, не вызывая значительное зрительное искажение. С учетом вышеописанных характеристик, текущий блок может быть преобразован с целью разложения остаточного изображения на двумерные частотные компоненты. Преобразование может выполняться с использованием такого метода преобразования, как дискретное косинусное преобразование (DCT) или дискретное синусное преобразование (DST).[0620] The residual image can be obtained by subtracting the prediction image from the original image. In this case, when the afterimage is changed to the frequency domain, the subjective image quality is not significantly reduced even if the high-frequency components are removed from the frequency components. Accordingly, when the values of the high-frequency components are changed to small values, or when the values of the high-frequency components are set to 0, it is possible to improve the compression efficiency without causing significant visual distortion. Considering the characteristics described above, the current block can be transformed to decompose the residual image into two-dimensional frequency components. The conversion can be performed using a conversion method such as discrete cosine transform (DCT) or discrete sine transform (DST).
[0621] В DCT для разложения (или преобразования) остаточного изображения на (в) двумерные частотные компоненты используется косинусное преобразование, и в DST для разложения (или преобразования) остаточного изображения на (в) двумерные частотные компоненты используется синусное преобразование. В результате преобразования остаточного изображения частотные компоненты могут быть выражены с помощью базовой схемы. В качестве примера, когда DCT выполняется в отношении блока N×N, может быть получено N2 компонентов базовой схемы. Размер каждого из компонентов базовой схемы, включенных в блок N×N, может быть получен с помощью преобразования. В соответствии с используемым методом преобразования, размер компонента базовой схемы может называться коэффициентом DCT или коэффициентом DST.[0621] In DCT, a cosine transform is used to decompose (or transform) the residual image into (in) two-dimensional frequency components, and in DST, a sine transform is used to decompose (or transform) the residual image into (in) two-dimensional frequency components. As a result of the residual image transformation, the frequency components can be expressed using a basic circuit. As an example, when DCT is performed on an N×N block, N 2 base circuit components can be obtained. The size of each of the base circuit components included in the N×N block can be obtained using a transformation. According to the conversion method used, the component size of the underlying circuit may be called the DCT coefficient or the DST coefficient.
[0622] Метод преобразования DCT используется главным образом для преобразования изображения, в котором распределены множество ненулевых низкочастотных компонентов. Метод преобразования DST используется главным образом для изображения, в котором распределены множество высокочастотных компонентов.[0622] The DCT transformation method is mainly used to transform an image in which many non-zero low-frequency components are distributed. The DST conversion method is mainly used for an image in which many high-frequency components are distributed.
[0623] Остаточное изображение может преобразовываться с использованием метода преобразован [0623] The afterimage may be transformed using the converted method
[0624] Преобразование остаточного изображения в двумерные частотные компоненты будет называться двумерным преобразованием. В дополнение, размер компонентов базовой схемы, полученных с помощью результата преобразования, будет называться коэффициентом преобразования. В качестве примера, коэффициент преобразования может называться коэффициентом DCT или коэффициентом DST. Когда применяются оба из первого преобразования и второго преобразования, которые будут описаны ниже, коэффициент преобразования может относиться к размеру компонента базовой схемы, сгенерированного в результате второго преобразования.[0624] The conversion of the residual image into two-dimensional frequency components will be referred to as two-dimensional conversion. In addition, the size of the base circuit components obtained by the transformation result will be called the transformation factor. As an example, the conversion coefficient may be called the DCT coefficient or the DST coefficient. When both of the first transform and the second transform, which will be described below, are applied, the transform factor may relate to the size of the base circuit component generated as a result of the second transform.
[0625] Метод преобразования может быть определен в элементах блоков. Метод преобразования может быть определен на основании по меньшей мере одного из режима предсказательного кодирования текущего блока или размера текущего блока. В качестве примера, когда текущий блок кодируется в режиме внутреннего предсказания, и размер текущего блока меньше N×N, преобразование может выполняться с использованием метода преобразования DST. С другой стороны, когда вышеприведенное условие не удовлетворяется, преобразование может выполняться с использованием метода преобразования DCT.[0625] The conversion method may be specified in block elements. The transformation method may be determined based on at least one of a predictive encoding mode of the current block or a size of the current block. As an example, when the current block is encoded in the intra prediction mode, and the size of the current block is less than N×N, the conversion may be performed using the DST conversion method. On the other hand, when the above condition is not satisfied, the conversion can be performed using the DCT conversion method.
[0626] Двумерное преобразование может не выполняться в отношении некоторых блоков остаточного изображения. Невыполнение двумерного преобразования может называться пропуском преобразования. При применении пропуска преобразования квантование может применяться к остаточным значениям, в отношении которых преобразование не выполняется.[0626] Two-dimensional transformation may not be performed on some afterimage blocks. Failure to perform a two-dimensional transformation may be called a skip transformation. When skip conversion is applied, quantization can be applied to the residual values on which no conversion is performed.
[0627] После преобразования текущего блока с использованием DCT или DST преобразованный текущий блок может подвергаться повторному преобразованию. В этом случае преобразование на основании DCT или DST может быть задано в качестве первого преобразования, а повторное преобразование блока, подвергнутого первому преобразованию, может быть задано в качестве второго преобразования.[0627] After transforming the current block using DCT or DST, the transformed current block may be re-transformed. In this case, a transformation based on DCT or DST may be specified as the first transformation, and a retransformation of the block subject to the first transformation may be specified as the second transformation.
[0628] Первое преобразование может выполняться с использованием одной из множества основ-кандидатов преобразования. В качестве примера, первое преобразование может выполняться с использованием одной из DCT2, DCT8 и DCT7.[0628] The first transformation may be performed using one of a plurality of candidate transformation bases. As an example, the first conversion may be performed using one of DCT2, DCT8 and DCT7.
[0629] В горизонтальном направлении и вертикальном направлении могут использоваться разные основы преобразования. Информация, указывающая комбинацию основы вертикального преобразования и основы горизонтального преобразования, может передаваться в битовом потоке.[0629] Different transformation bases may be used in the horizontal direction and the vertical direction. Information indicating the combination of a vertical transform base and a horizontal transform base may be transmitted in the bit stream.
[0630] Первое преобразование и второе преобразование могут выполняться в разных элементах. В качестве примера, первое преобразование может выполняться в отношении блока 8×8, и второе преобразование может выполняться в отношении подблока 4×4 преобразованного блока 8×8. В этом случае коэффициент преобразования остаточных участков, в которых второе преобразование не выполняется, может быть установлен равным 0.[0630] The first transformation and the second transformation may be performed in different elements. As an example, the first transformation may be performed on an 8×8 block, and the second transformation may be performed on a 4×4 subblock of the transformed 8×8 block. In this case, the conversion factor of the residual portions in which the second conversion is not performed can be set to 0.
[0631] Альтернативно первое преобразование может выполняться в отношении блока 4×4, а второе преобразование может выполняться в отношении участка блока 8×8, содержащего преобразованный блок 4×4.[0631] Alternatively, the first transformation may be performed on the 4x4 block and the second transformation may be performed on the portion of the 8x8 block containing the transformed 4x4 block.
[0632] Информация, указывающая, выполнять ли второе преобразование, может быть передана в битовом потоке.[0632] Information indicating whether to perform the second conversion may be transmitted in the bitstream.
[0633] Декодер может выполнять обратное преобразование второго преобразования (второе обратное преобразование) и может выполнять обратное преобразование первого преобразования (первое обратное преобразование) в отношении результата второго обратного преобразования. В результате выполнения второго обратного преобразования и первого обратного преобразования могут быть получены остаточные сигналы для текущего блока.[0633] 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 second inverse transform. By performing the second deconversion and the first deconversion, residual signals for the current block can be obtained.
[0634] Квантование выполняется с целью снижения энергии блока, и процесс квантования включает деление коэффициента преобразования на конкретное постоянное значение. Это постоянное значение может быть получено посредством параметра квантования, а параметр квантования может быть задан как значение от 1 до 63.[0634] Quantization is performed to reduce the block energy, and the quantization process involves dividing the conversion factor by a specific constant value. This constant value can be obtained by a quantization parameter, and the quantization parameter can be specified as a value from 1 to 63.
[0635] Когда кодер выполняет преобразование и квантование, декодер может получать остаточный блок путем обратного квантования и обратного преобразования. Декодер может получать восстановленный блок для текущего блока путем сложения блока предсказания и остаточного блока.[0635] When the encoder performs the transform and quantization, the decoder may 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.
[0636] При получении восстановленного блока текущего блока потеря информации, происходящая в ходе квантования и кодирования, может быть уменьшена с помощью фильтрации в контуре. Фильтр в контуре может содержать по меньшей мере один из деблочного фильтра, фильтра адаптивного смещения отсчета (SAO) или адаптивного контурного фильтра (ALF). Восстановленный блок до применения фильтра в контуре будет называться первым восстановленным блоком, а восстановленный блок после применения фильтра в контуре будет называться вторым восстановленным блоком.[0636] When receiving the reconstructed block of the current block, the loss of information that occurs during quantization and encoding can be reduced by using in-loop filtering. The filter in the loop may comprise at least one of a deblocking filter, an adaptive sample offset filter (SAO), or an adaptive loop filter (ALF). The reconstructed block before applying the filter in the loop will be called the first reconstructed block, and the reconstructed block after applying the filter in the loop will be called the second reconstructed block.
[0637] Второй восстановленный блок может быть получен путем применения по меньшей мере одного из деблочного фильтра, SAO или ALF к первому восстановленному блоку. В этом случае SAO или ALF может быть применен после применения деблочного фильтра.[0637] The second reconstructed block may be obtained by applying at least one of a deblocking filter, SAO, or ALF to the first reconstructed block. In this case, SAO or ALF can be applied after applying the deblocking filter.
[0638] Деблочный фильтр предназначен для ослабления ухудшения качества изображения (блочного артефакта), возникающего на крае блока при выполнении квантования в элементах блоков. Для применения деблочного фильтра может быть определен качественный показатель блока (BS) между первым восстановленным блоком и соседним восстановленным блоком.[0638] The deblocking filter is designed to mitigate image quality degradation (blocking artifact) that occurs at the edge of a block when performing quantization on block elements. To apply a deblocking filter, a block quality score (BS) between the first reconstructed block and the adjacent reconstructed block can be determined.
[0639] На фиг. 47 представлена блок-схема, показывающая процесс определения качественного показателя блока.[0639] In FIG. 47 is a flowchart showing the process of determining the quality indicator of a block.
[0640] В примере, показанном на фиг. 47, P представляет первый восстановленный блок, и Q представляет соседний восстановленный блок. В данном случае соседний восстановленный блок может представлять собой блок, соседний с текущим блоком слева или сверху.[0640] In the example shown in FIG. 47, P represents the first reconstructed block, and Q represents the adjacent reconstructed block. In this case, the adjacent reconstructed block may be a block adjacent to the current block to the left or above.
[0641] В примере, показанном на фиг. 47, показано, что качественный показатель блока определяется с учетом режимов предсказательного кодирования P и Q, того, включены ли ненулевые коэффициенты преобразования, того, выполнено ли предсказание, осуществляемое между изображениями, с использованием того же опорного изображения, или того, является ли значение разницы между векторами движения большим или равным пороговому значению.[0641] In the example shown in FIG. 47, it is shown that the block quality is determined taking into account the P and Q predictive encoding modes, whether non-zero transform coefficients are included, whether inter-picture prediction is performed using the same reference picture, or whether the difference value is between motion vectors greater than or equal to the threshold value.
[0642] На основании качественного показателя блока можно определить, применять ли деблочный фильтр. В качестве примера, фильтрация может не выполняться, когда качественный показатель блока равен 0.[0642] Based on the quality indicator of the block, it can be determined whether to apply a deblock filter. As an example, filtering may not be performed when the block quality score is 0.
[0643] SAO предназначено для ослабления артефакта в виде колец, возникающего при выполнении квантования в частотной области. SAO может быть выполнено путем добавления или вычитания смещения, определенного с учетом схемы первого восстановленного изображения. Способ определения смещения включает смещение по краю (EO) или смещение по полосам (ВО). EO указывает способ определения смещения текущего отсчета согласно схеме ближайших пикселей. BO указывает способ применения общего смещения к набору пикселей, имеющих подобные значения яркости в участке. Подробно яркость пикселей делится на 32 равные секции, и как один набор могут быть установлены пиксели, имеющие подобные значения яркости. В качестве примера, как одна группа могут быть установлены четыре смежные полосы из 32 полос, и к отсчетам, принадлежащим четырем полосам, может быть применено одинаковое значение смещения.[0643] SAO is designed to reduce the ringing artifact that occurs when performing frequency domain quantization. SAO can be performed by adding or subtracting an offset determined given the design of the first reconstructed image. The method for determining the offset includes edge offset (EO) or stripe offset (BO). EO specifies a way to determine the offset of the current sample according to the pattern of nearby pixels. BO specifies how to apply a common offset to a set of pixels having similar luminance values in a region. In detail, the brightness of the pixels is divided into 32 equal sections, and pixels having similar brightness values can be set as one set. As an example, four adjacent bands of 32 bands can be set as one group, and the same offset value can be applied to the samples belonging to the four bands.
[0644] ALF представляет собой способ генерирования второго восстановленного изображения путем применения фильтра предварительно заданного размера или формы к первому восстановленному изображению или к восстановленному изображению, к которому был применен деблочный фильтр. В приведенном ниже уравнении 34 представлен пример применения ALF.[0644] ALF is a method of generating a second reconstructed image by applying a filter of a predetermined size or shape to a first reconstructed image or to a reconstructed image to which a deblocking filter has been applied. Equation 34 below provides an example application of ALF.
[0645] [Уравнение 34][0645] [Equation 34]
[0646] Один из предварительно заданных фильтров-кандидатов может быть выбран в элементах изображения, элементах кодового дерева, блоках кодирования, блоках предсказания или блоках преобразования. Фильтры-кандидаты могут отличаться по размеру или форме.[0646] One of the predefined candidate filters may be selected in pixels, code tree elements, encoding blocks, prediction blocks, or transform blocks. Candidate filters may vary in size or shape.
[0647] На фиг. 48 показаны предварительно заданные фильтры-кандидаты.[0647] In FIG. 48 shows predefined candidate filters.
[0648] В примере, показанном на фиг. 48, может быть выбрана по меньшей мере одна из ромбовидной формы 5×5, ромбовидной формы 7×7 или ромбовидной формы 9×9.[0648] In the example shown in FIG. 48, at least one of a 5x5 diamond shape, a 7x7 diamond shape, or a 9x9 diamond shape may be selected.
[0649] Для компонента цветности может быть использована только ромбовидная форма 5×5.[0649] For the chrominance component, only a 5x5 diamond shape can be used.
[0650][0650]
[0651] Применение вариантов осуществления, которые были описаны как направленные на процесс декодирования или процесс кодирования, к процессу декодирования или процессу кодирования находится в пределах объема настоящего изобретения. Изменение предварительно определенного порядка, в котором были описаны варианты осуществления, на порядок, отличный от вышеописанного, также находится в пределах объема настоящего изобретения.[0651] The application of embodiments that have been described as directed to a decoding process or an encoding process to a decoding process or an encoding process is within the scope of the present invention. Changing the predetermined order in which the embodiments have been described to an order different from that described above is also within the scope of the present invention.
[0652] Хотя приведенные выше варианты осуществления были описаны на основании ряда этапов или последовательностей операций, этапы или последовательности операций не ограничивают порядок настоящего изобретения во временном ряду и при необходимости могут выполняться одновременно или в других порядках. Кроме того, каждый из компонентов (например, элементы, модули и т. д.), составляющих блок-схему в вышеописанных вариантах осуществления, может быть реализован аппаратным устройством или программным обеспечением, и множество компонентов могут быть скомбинированы и реализованы одним аппаратным устройством или программным обеспечением. Вышеописанные варианты осуществления могут быть реализованы в форме программных команд, которые могут исполняться посредством различных компьютерных средств и записываться в машиночитаемом носителе данных. Машиночитаемый носитель данных может содержать программную команду, файл данных, структуру данных и т. п. отдельно или в комбинации. Примеры машиночитаемого носителя данных включают магнитные носители, такие как жесткий диск, дискета и магнитная лента, оптические носители, таки как постоянное запоминающее устройство на компакт-диске (CD-ROM) и цифровой универсальный диск (DVD), магнитооптические носители, такие как гибкий магнитооптический диск, и аппаратные устройства, такие как ROM, оперативное запоминающее устройство (RAM) и флеш-память, которые специально рассчитаны на хранение и исполнение программных команд. Аппаратное устройство может быть выполнено с возможностью работы в качестве одного или более модулей программного обеспечения для выполнения операций настоящего изобретения, и наоборот.[0652] Although the above embodiments have been described in terms of a number of steps or sequences of operations, the steps or sequences of operations do not limit the order of the present invention in a time series and may be performed simultaneously or in other orders as necessary. In addition, each of the components (e.g., elements, modules, etc.) constituting a block diagram in the above-described embodiments may be implemented by a hardware device or software, and a plurality of components may be combined and implemented by a single hardware device or software provision. The above-described embodiments may be implemented in the form of program instructions, which may be executed by various computer means and recorded in a computer-readable storage medium. The computer-readable storage medium may comprise a program instruction, a data file, a data structure, and the like, alone or in combination. Examples of computer readable storage media include magnetic media such as hard disk, floppy disk and magnetic tape, optical media such as compact disc read only memory (CD-ROM) and digital versatile disk (DVD), magneto-optical media such as flexible magneto-optical disk, and hardware devices such as ROM, random access memory (RAM), and flash memory, which are specifically designed to store and execute software commands. The hardware device may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
Промышленная применимостьIndustrial applicability
[0653] Настоящее изобретение может быть применено к электронному устройству для кодирования или декодирования видео.[0653] The present invention can be applied to an electronic device for encoding or decoding video.
Claims (46)
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0136255 | 2018-11-08 | ||
KR0-2018-0136255 | 2018-11-08 | ||
KR10-2018-0148890 | 2018-11-27 | ||
KR10-2018-0149064 | 2018-11-27 | ||
KR0-2018-0148890 | 2018-11-27 | ||
KR0-2018-0149064 | 2018-11-27 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2021115855A Division RU2805056C2 (en) | 2018-11-08 | 2019-11-07 | Method and device for encoding/decoding image signals |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2023125358A RU2023125358A (en) | 2023-10-19 |
RU2817331C2 true RU2817331C2 (en) | 2024-04-15 |
Family
ID=
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2577779C2 (en) * | 2011-11-07 | 2016-03-20 | Квэлкомм Инкорпорейтед | Generating additional merge candidates |
RU2617920C9 (en) * | 2012-04-12 | 2017-08-29 | ДжейВиСи КЕНВУД КОРПОРЕЙШН | Moving picture coding device, moving picture coding method, and moving picture coding program, and moving picture decoding device, moving picture decoding method, and moving picture decoding program |
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2577779C2 (en) * | 2011-11-07 | 2016-03-20 | Квэлкомм Инкорпорейтед | Generating additional merge candidates |
RU2617920C9 (en) * | 2012-04-12 | 2017-08-29 | ДжейВиСи КЕНВУД КОРПОРЕЙШН | Moving picture coding device, moving picture coding method, and moving picture coding program, and moving picture decoding device, moving picture decoding method, and moving picture decoding program |
Non-Patent Citations (2)
Title |
---|
RU-LING LIAO et al., CE10.3.1.b: Triangular prediction unit mode, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-L0124-v2, 12th Meeting: Macao, 03-12 Oct. 2018. MAX BLASER et al., Description of SDR and 360 video coding technology proposal by RWTH Aachen University, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-J0023-v1, 10th Meeting: San Diego, 10-20 Apr. 2018. * |
TOMA T. et al., Description of SDR video coding technology proposal by Panasonic, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-J0020, 10th Meeting: San Diego, 10-20 Apr. 2018. * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2766152C1 (en) | Method and device for encoding/decoding an image signal | |
CN111149359B (en) | Method and apparatus for encoding/decoding image and recording medium storing bit stream | |
CN110024399B (en) | Method and apparatus for encoding/decoding image and recording medium storing bit stream | |
AU2019375315B2 (en) | Method for encoding/decoding image signal, and apparatus therefor | |
US11889077B2 (en) | Method for encoding/decoding image signal and device therefor | |
CN115442607A (en) | Method for encoding and decoding image and computer readable medium storing bit stream | |
KR20200032657A (en) | Method and apparatus for encoding/decoding image, recording medium for stroing bitstream | |
CN113574878A (en) | Method for encoding/decoding video signal and apparatus therefor | |
CN113841399A (en) | Image encoding/decoding method and apparatus | |
RU2817331C2 (en) | Method and device for encoding/decoding image signal | |
RU2805056C2 (en) | Method and device for encoding/decoding image signals | |
RU2806152C2 (en) | Method and device for encoding/decoding image signals | |
RU2818972C2 (en) | Method and device for encoding/decoding image signals | |
RU2808720C2 (en) | Method and device for coding/decoding image signals | |
RU2819286C2 (en) | Method and device for encoding/decoding image signals | |
RU2813667C2 (en) | Method and device for encoding and decoding video signals | |
RU2819080C2 (en) | Method and device for encoding/decoding image signals | |
RU2812857C2 (en) | Method and device for encoding/decoding image signals | |
RU2799079C2 (en) | Method and device for coding/decoding image signals | |
RU2819393C2 (en) | Method and device for encoding/decoding image signals | |
RU2801585C2 (en) | Method and device for coding/decoding image signals |