RU2818972C2 - Method and device for encoding/decoding image signals - Google Patents

Method and device for encoding/decoding image signals Download PDF

Info

Publication number
RU2818972C2
RU2818972C2 RU2023120534A RU2023120534A RU2818972C2 RU 2818972 C2 RU2818972 C2 RU 2818972C2 RU 2023120534 A RU2023120534 A RU 2023120534A RU 2023120534 A RU2023120534 A RU 2023120534A RU 2818972 C2 RU2818972 C2 RU 2818972C2
Authority
RU
Russia
Prior art keywords
block
current block
value
flag
residual coefficient
Prior art date
Application number
RU2023120534A
Other languages
Russian (ru)
Other versions
RU2023120534A (en
Inventor
Пэ Кхын ЛИ
Original Assignee
Гуандун Оппо Мобайл Телекоммьюникейшнс Корп., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Гуандун Оппо Мобайл Телекоммьюникейшнс Корп., Лтд. filed Critical Гуандун Оппо Мобайл Телекоммьюникейшнс Корп., Лтд.
Publication of RU2023120534A publication Critical patent/RU2023120534A/en
Application granted granted Critical
Publication of RU2818972C2 publication Critical patent/RU2818972C2/en

Links

Abstract

FIELD: data processing.
SUBSTANCE: invention relates to video encoding or decoding. Disclosed is a method of decoding an image, comprising steps of: generating a list of candidates for merging a current block; indicating any of the plurality of merge candidates included in the merge candidate list; based on the first affine initial vector and the second affine initial vector of the said candidate for merging, the introduction of the first affine initial vector and the second affine initial vector of the current block; using the first affine initial vector and the second affine initial vector of the current block, introducing an affine vector with respect to a sub-block in the current block and based on the affine vector, performing prediction with motion compensation with respect to the sub-block.
EFFECT: high efficiency and speed of encoding.
10 cl, 49 dwg, 15 tbl

Description

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕFIELD OF TECHNOLOGY TO WHICH THE INVENTION RELATES

[0001] Настоящее изобретение относится к способу и устройству для кодирования или декодирования видеосигнала.[0001] The present invention relates to a method and apparatus for encoding or decoding a video signal.

ПРЕДПОСЫЛКИ ИЗОБРЕТЕНИЯ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 challenge]

[0003] Настоящее изобретение направлено на предоставление способа и устройства для кодирования или декодирования остаточного коэффициента при кодировании или декодировании видеосигнала.[0003] The present invention is directed to providing a method and apparatus for encoding or decoding a residual coefficient when encoding or decoding a video signal.

[0004] Настоящее изобретение направлено на предоставление способа и устройства для кодирования или декодирования остаточного коэффициента с использованием флага для сравнения размера остаточного коэффициента с пороговым значением при кодировании или декодировании видеосигнала.[0004] The present invention is directed to providing a method and apparatus for encoding or decoding a residual coefficient using a flag for comparing the size of the residual coefficient with a threshold value when encoding or decoding a video signal.

[0005] Настоящее изобретение направлено на предоставление способа и устройства для кодирования или декодирования остаточного коэффициента с использованием флага, указывающего, является ли остаточный коэффициент четным числом или нечетным числом при кодировании или декодировании видеосигнала.[0005] The present invention is directed to providing a method and apparatus for encoding or decoding a residual coefficient using a flag indicating whether the residual coefficient is an even number or an odd number when encoding or decoding a video signal.

[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] According to one broad aspect, the present invention provides a method for decoding video, the method including: analyzing a non-zero flag indicating whether a residual coefficient is non-zero from a bit stream; analyzing the absolute value information to determine the absolute value of the residual coefficient from the bit stream, when the non-zero flag indicates that the residual coefficient is not non-zero; and determining an absolute value of the residual coefficient based on the absolute value information, wherein the absolute value information includes a residual coefficient comparison flag indicating whether the residual coefficient is greater than the first value, and a parity flag is further analyzed from the bit stream only when the residual coefficient greater than the first value.

[0008] Согласно другому широкому аспекту в настоящем изобретении предоставлен способ кодирования видео, причем способ включает: кодирование ненулевого флага, указывающего, является ли остаточный коэффициент ненулевым; и кодирование информации об абсолютном значении для определения абсолютного значения остаточного коэффициента, когда остаточный коэффициент не является ненулевым, при этом информация об абсолютном значении содержит флаг сравнения остаточного коэффициента, указывающий, больше ли остаточный коэффициент, чем первое значение, и флаг четности для остаточного коэффициента дополнительно кодируют только тогда, когда остаточный коэффициент больше, чем первое значение.[0008] According to another broad aspect, the present invention provides a video encoding method, the method including: encoding a non-zero flag indicating whether a residual coefficient is non-zero; and encoding absolute value information for determining the absolute value of the residual coefficient when the residual coefficient is not non-zero, wherein the absolute value information includes a residual coefficient comparison flag indicating whether the residual coefficient is greater than the first value, and a parity flag for the residual coefficient further code only when the residual coefficient is greater than the first value.

[0009] В некоторых вариантах осуществления флаг четности может указывать, является ли значение остаточного коэффициента четным числом или нечетным числом.[0009] In some embodiments, a parity flag may indicate whether the residual coefficient value is an even number or an odd number.

[0010] В некоторых вариантах осуществления, когда остаточный коэффициент больше, чем первое значение, флаг сравнения первого скорректированного коэффициента остатка, указывающий, больше ли скорректированный коэффициент остатка, полученный посредством битового сдвига остаточного коэффициента вправо на 1, чем второе значение, может быть дополнительно проанализирован.[0010] In some embodiments, when the residual coefficient is greater than the first value, a first adjusted residual coefficient comparison flag indicating whether the adjusted residual coefficient obtained by bit shifting the residual coefficient to the right by 1 than the second value can be further analyzed .

[0011] В некоторых вариантах осуществления, когда скорректированный коэффициент остатка меньше или равен второму значению, остаточный коэффициент может быть определен как 2N или 2N+1 в зависимости от значения флага четности.[0011] In some embodiments, when the adjusted residual coefficient is less than or equal to the second value, the residual coefficient may be determined to be 2N or 2N+1 depending on the value of the parity flag.

[0012] В некоторых вариантах осуществления, когда скорректированный коэффициент остатка больше, чем второе значение, второй флаг сравнения скорректированного коэффициента остатка, указывающий, больше ли скорректированный коэффициент остатка, чем третье значение, может быть дополнительно проанализирован.[0012] In some embodiments, when the adjusted residual ratio is greater than the second value, a second adjusted residual ratio comparison flag indicating whether the adjusted residual ratio is greater than the third value may be further analyzed.

[0013] В некоторых вариантах осуществления, когда скорректированный коэффициент остатка больше, чем второе значение, информация об остаточном значении может быть дополнительно проанализирована, и информация об остаточном значении может представлять собой значение, полученное путем вычитания второго значения из скорректированного коэффициента остатка.[0013] In some embodiments, when the adjusted residual coefficient is greater than the second value, the residual value information may be further analyzed and the residual value information may be a value obtained by subtracting the second value from the adjusted residual coefficient.

[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.

[Положительные эффекты][Buffs]

[0015] Согласно настоящему изобретению можно эффективно кодировать или декодировать остаточный коэффициент.[0015] According to the present invention, the residual coefficient can be efficiently encoded or decoded.

[0016] Согласно настоящему изобретению можно эффективно кодировать или декодировать остаточный коэффициент, используя флаг для сравнения размера остаточного коэффициента с пороговым значением.[0016] According to the present invention, it is possible to efficiently encode or decode a residual coefficient by using a flag to compare the size of the residual coefficient with a threshold value.

[0017] Согласно настоящему изобретению можно эффективно кодировать или декодировать остаточный коэффициент, используя флаг, указывающий, является ли остаточный коэффициент четным числом или нечетным числом.[0017] According to the present invention, it is possible to efficiently encode or decode the residual coefficient using a flag indicating whether the residual coefficient is an even number or an odd number.

[0018] Положительные эффекты настоящего изобретения не ограничиваются указанными выше эффектами, и другие положительные эффекты, которые не описаны в данном документе, должны быть ясно поняты специалистами в данной области техники из следующего описания.[0018] 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

[0019] На фиг. 1 представлена структурная схема видеокодера согласно варианту осуществления настоящего изобретения.[0019] In FIG. 1 is a block diagram of a video encoder according to an embodiment of the present invention.

[0020] На фиг. 2 представлена структурная схема видеодекодера согласно варианту осуществления настоящего изобретения.[0020] In FIG. 2 is a block diagram of a video decoder according to an embodiment of the present invention.

[0021] На фиг. 3 представлено схематическое изображение, показывающее базовый элемент кодового дерева согласно варианту осуществления настоящего изобретения.[0021] In FIG. 3 is a schematic diagram showing a basic element of a code tree according to an embodiment of the present invention.

[0022] На фиг. 4 представлено схематическое изображение, показывающее различные типы разбиения блока кодирования.[0022] In FIG. 4 is a schematic diagram showing various types of coding block partitioning.

[0023] На фиг. 5 представлено схематическое изображение, иллюстрирующее аспект разбиения элемента кодового дерева.[0023] In FIG. 5 is a schematic diagram illustrating the partitioning aspect of a code tree element.

[0024] На фиг. 6 показан пример, в котором блок, меньший, чем элемент кодового дерева предварительно определенного размера, встречается на краю изображения.[0024] In FIG. 6 shows an example in which a block smaller than a code tree element of a predetermined size occurs at the edge of the image.

[0025] На фиг. 7 представлено схематическое изображение, показывающее пример, в котором разбиение на основе четвертичного дерева выполняется в отношении нетипичного граничного краевого блока.[0025] In FIG. 7 is a schematic diagram showing an example in which quaternary tree partitioning is performed on an atypical boundary edge block.

[0026] На фиг. 8 представлено схематическое изображение, показывающее пример, в котором разбиение на основе четвертичного дерева выполняется в отношении блока, смежного с краем изображения.[0026] In FIG. 8 is a schematic diagram showing an example in which quaternary tree partitioning is performed on a block adjacent to an image edge.

[0027] На фиг. 9 представлено схематическое изображение, показывающее аспект разбиения блока, смежного с краем изображения.[0027] In FIG. 9 is a schematic view showing a dividing aspect of a block adjacent to an image edge.

[0028] На фиг. 10 представлено схематическое изображение, показывающее аспект кодирования блока, смежного с краем изображения.[0028] In FIG. 10 is a schematic diagram showing the encoding aspect of a block adjacent to an image edge.

[0029] На фиг. 11 представлена блок-схема способа предсказания, осуществляемого между изображениями, согласно варианту осуществления настоящего изобретения.[0029] In FIG. 11 is a flowchart of an inter-image prediction method according to an embodiment of the present invention.

[0030] На фиг. 12 представлена блок-схема процесса получения информации о движении текущего блока в режиме слияния.[0030] In FIG. 12 shows a flowchart of the process of obtaining information about the movement of the current block in the merge mode.

[0031] На фиг. 13 представлено схематическое изображение, иллюстрирующее кандидатные блоки, используемые для получения кандидата на слияние.[0031] In FIG. 13 is a schematic diagram illustrating candidate blocks used to obtain a merge candidate.

[0032] На фиг. 14 представлено схематическое изображение, показывающее местоположения опорных отсчетов.[0032] In FIG. 14 is a schematic diagram showing locations of reference samples.

[0033] На фиг. 15 представлено схематическое изображение, иллюстрирующее кандидатные блоки, используемые для получения кандидата на слияние.[0033] In FIG. 15 is a schematic diagram illustrating candidate blocks used to obtain a merge candidate.

[0034] На фиг. 16 представлено схематическое изображение, показывающее пример, в котором местоположение опорного отсчета изменено.[0034] In FIG. 16 is a schematic diagram showing an example in which the location of the reference count is changed.

[0035] На фиг. 17 представлено схематическое изображение, показывающее пример, в котором местоположение опорного отсчета изменено.[0035] In FIG. 17 is a schematic diagram showing an example in which the location of the reference count is changed.

[0036] На фиг. 18 представлено схематическое изображение для описания аспекта обновления таблицы информации о движении между участками.[0036] In FIG. 18 is a schematic diagram for describing an aspect of updating an inter-section traffic information table.

[0037] На фиг. 19 представлено схематическое изображение, показывающее аспект обновления таблицы кандидатов на слияние между участками.[0037] In FIG. 19 is a schematic diagram showing an aspect of updating an inter-site merge candidate table.

[0038] На фиг. 20 представлено схематическое изображение, показывающее пример, в котором обновлен индекс предварительно сохраненного кандидата на слияние между участками.[0038] In FIG. 20 is a schematic diagram showing an example in which the index of a previously stored inter-site merge candidate is updated.

[0039] На фиг. 21 представлено схематическое изображение, показывающее местоположение репрезентативного подблока.[0039] In FIG. 21 is a schematic diagram showing the location of a representative subblock.

[0040] На фиг. 22 показан пример, в котором таблица информации о движении между участками генерируется для каждого режима предсказания, осуществляемого между изображениями.[0040] In FIG. 22 shows an example in which a table of inter-section motion information is generated for each inter-picture prediction mode.

[0041] На фиг. 23 представлено схематическое изображение, показывающее пример, в котором кандидат на слияние между участками, включенный в долговременную таблицу информации о движении, добавлен в список кандидатов на слияние.[0041] In FIG. 23 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.

[0042] На фиг. 24 представлено схематическое изображение, показывающее пример, в котором контроль по избыточности выполняется только в отношении некоторых кандидатов на слияние.[0042] In FIG. 24 is a schematic diagram showing an example in which redundancy checking is performed on only some merge candidates.

[0043] На фиг. 25 представлено схематическое изображение, показывающее пример, в котором пропущен контроль по избыточности в отношении конкретного кандидата на слияние.[0043] In FIG. 25 is a schematic diagram showing an example in which redundancy control is omitted with respect to a particular merger candidate.

[0044] На фиг. 26 представлено схематическое изображение, показывающее пример, в котором кандидатный блок, включенный в ту же область параллельного слияния, что и текущий блок, установлен как недоступный в качестве кандидата на слияние.[0044] In FIG. 26 is a schematic diagram showing an example in which a candidate block included in the same parallel merge region as the current block is set to unavailable as a merge candidate.

[0045] На фиг. 27 представлено схематическое изображение, показывающее временную таблицу информации о движении.[0045] In FIG. 27 is a schematic diagram showing a timing table of motion information.

[0046] На фиг. 28 представлено схематическое изображение, показывающее пример слияния временной таблицы информации о движении с таблицей информации о движении между участками.[0046] In FIG. 28 is a schematic diagram showing an example of merging a temporary motion information table with an inter-section motion information table.

[0047] На фиг. 29 представлена блок-схема способа внутреннего предсказания согласно варианту осуществления настоящего изобретения.[0047] In FIG. 29 is a flowchart of an intra prediction method according to an embodiment of the present invention.

[0048] На фиг. 30 представлено схематическое изображение, показывающее опорные отсчеты, включенные в каждую линию опорных отсчетов.[0048] In FIG. 30 is a schematic diagram showing reference samples included in each reference sample line.

[0049] На фиг. 31 представлено схематическое изображение, показывающее режимы внутреннего предсказания.[0049] In FIG. 31 is a schematic diagram showing intra prediction modes.

[0050] На фиг. 32 и 33 представлены схематические изображения, показывающие пример одномерного массива, в котором опорные отсчеты расположены в линию.[0050] In FIG. 32 and 33 are schematic diagrams showing an example of a one-dimensional array in which reference samples are arranged in a line.

[0051] На фиг. 34 представлено схематическое изображение, иллюстрирующее углы, образованные между прямой линией, параллельной оси х, и режимами направленного внутреннего предсказания.[0051] In FIG. 34 is a schematic view illustrating the angles formed between a straight line parallel to the x-axis and the directional intra prediction modes.

[0052] На фиг. 35 представлено схематическое изображение, показывающее аспект, в котором отсчет предсказания получается, когда текущий блок имеет неквадратную форму.[0052] In FIG. 35 is a schematic view showing an aspect in which a prediction count is obtained when the current block has a non-square shape.

[0053] На фиг. 36 представлено схематическое изображение, показывающее широкоугольные режимы внутреннего предсказания.[0053] In FIG. 36 is a schematic diagram showing wide-angle intra prediction modes.

[0054] На фиг. 37 представлено схематическое изображение, показывающее аспект применения PDPC.[0054] In FIG. 37 is a schematic diagram showing an application aspect of PDPC.

[0055] На фиг. 38 и 39 представлены схематические изображения, показывающие подблок, который должен быть подвергнут второму преобразованию.[0055] In FIG. 38 and 39 are schematic diagrams showing a subblock to be subjected to the second transformation.

[0056] На фиг. 40 представлено схематическое изображение для описания примера, в котором определяется тип преобразования текущего блока.[0056] In FIG. 40 is a schematic diagram for describing an example in which the transformation type of the current block is determined.

[0057] На фиг. 41 представлена блок-схема, показывающая способ кодирования остаточного коэффициента.[0057] In FIG. 41 is a flowchart showing a residual coefficient encoding method.

[0058] На фиг. 42 и 43 представлены схематические изображения, показывающие порядок расположения остаточных коэффициентов для каждого порядка сканирования.[0058] In FIG. 42 and 43 are schematic diagrams showing the arrangement of residual coefficients for each scanning order.

[0059] На фиг. 44 показан пример, в котором кодируется местоположение последнего ненулевого коэффициента.[0059] In FIG. 44 shows an example in which the location of the last non-zero coefficient is encoded.

[0060] На фиг. 45 представлена блок-схема процесса кодирования абсолютного значения остаточного коэффициента.[0060] In FIG. 45 is a flowchart of a process for encoding the absolute value of a residual coefficient.

[0061] На фиг. 46 представлена блок-схема процесса кодирования абсолютного значения остаточного коэффициента.[0061] In FIG. 46 is a flowchart of a process for encoding the absolute value of a residual coefficient.

[0062] На фиг. 47 представлена блок-схема процесса кодирования абсолютного значения остаточного коэффициента.[0062] In FIG. 47 is a flowchart of a process for encoding the absolute value of a residual coefficient.

[0063] На фиг. 48 представлена блок-схема, показывающая процесс определения качественного показателя блока.[0063] In FIG. 48 is a flowchart showing the process of determining the quality of a block.

[0064] На фиг. 49 показаны предварительно заданные фильтры-кандидаты.[0064] In FIG. 49 shows predefined candidate filters.

ПОДРОБНОЕ ОПИСАНИЕDETAILED DESCRIPTION

[0065] Далее будут подробно описаны варианты осуществления настоящего изобретения со ссылкой на прилагаемые графические материалы.[0065] Embodiments of the present invention will now be described in detail with reference to the accompanying drawings.

[0066] Видео кодируется и декодируется в элементах блоков. В качестве примера, обработка кодирования и декодирования, такая как преобразование, квантование, предсказание, фильтрование в контуре или восстановление, может выполняться в отношении блока кодирования, блока преобразования или блока предсказания.[0066] Video 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.

[0067] Далее блок, подлежащий кодированию или декодированию, будет называться "текущим блоком". В качестве примера, текущий блок может указывать блок кодирования, блок преобразования или блок предсказания в зависимости от текущего этапа обработки кодирования или декодирования.[0067] 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.

[0068] Кроме того, термин "элемент" в контексте данного документа может пониматься как указывающий базовый элемент для выполнения конкретного процесса кодирования и декодирования, а термин "блок" может пониматься как указывающий массив отсчетов предварительно определенного размера. Если не указано иное, термины "блок" и "элемент" могут использоваться взаимозаменяемо. В качестве примера, в следующих вариантах осуществления блок кодирования и элемент кодирования могут пониматься как имеющие эквивалентные значения.[0068] 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.

[0069] На фиг. 1 представлена структурная схема видеокодера согласно варианту осуществления настоящего изобретения.[0069] In FIG. 1 is a block diagram of a video encoder according to an embodiment of the present invention.

[0070] Обращаясь к фиг. 1, устройство 100 кодирования видео может содержать устройство 110 разбиения изображений, предсказатели 120 и 125, преобразователь 130, квантователь 135, устройство 160 для переупорядочивания, энтропийный кодер 165, обратный квантователь 140, обратный преобразователь 145, фильтр 150 и запоминающее устройство 155.[0070] Referring to FIG. 1, 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.

[0071] Элементы на фиг. 1 показаны независимо, чтобы представлять различные характеристические функции в устройстве кодирования видео, и каждый из элементов не предназначен для выполнения в отдельном аппаратном блоке или в качестве одного программного блока. Другими словами, для удобства описания элементы расположены независимо друг от друга. Для выполнения функций по меньшей мере два элемента могут быть объединены в один элемент, или один элемент может быть разделен на множество элементов. В этом случае вариант осуществления комбинации элементов и вариант осуществления разделения элемента входят в объем настоящего изобретения без отступления от сущности настоящего изобретения.[0071] 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 element combination embodiment and the element separation embodiment are included in the scope of the present invention without departing from the essence of the present invention.

[0072] Кроме того, некоторые из элементов могут не представлять собой существенные элементы для выполнения существенных функций в настоящем изобретении, а могут представлять собой просто необязательные элементы для повышения производительности. Настоящее изобретение может быть реализовано путем включения только элементов, необходимых для реализации сущности настоящего изобретения, а не элементов, используемых только для повышения производительности. Даже структура, включающая только существенные элементы, а не необязательные элементы, используемые только для повышения производительности, входит в объем настоящего изобретения.[0072] 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.

[0073] Устройство 110 разбиения изображений может разбивать входное изображение на по меньшей мере один элемент обработки. В этом случае элемент обработки может представлять собой элемент предсказания (PU), элемент преобразования (TU) или элемент кодирования (CU). Устройство 110 разбиения изображений может разбить одно изображение на множество комбинаций элементов кодирования, элементов предсказания и элементов преобразования и может выбрать одну комбинацию элементов кодирования, элементов предсказания и элементов преобразования в соответствии с предварительно определенным критерием (например, функцией стоимости), чтобы кодировать изображение.[0073] 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.

[0074] Например, одно изображение может быть разбито на множество элементов кодирования. Для разбиения изображения на элементы кодирования может использоваться рекурсивная древовидная структура, такая как структура четвертичного дерева. Элемент кодирования, разбитый на другие элементы кодирования с использованием одного изображения или наибольшего элемента кодирования в качестве корня, может иметь количество дочерних узлов, соответствующее количеству разбитых элементов кодирования. Элемент кодирования, который больше не разбивается вследствие предварительно определенного ограничения, служит листовым узлом. То есть, когда предполагается, что для одного элемента кодирования возможно только квадратное разбиение, один элемент кодирования может быть разбит на не более чем четыре других элемента кодирования.[0074] 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 partition is possible for one encoding element, one encoding element can be divided into at most four other encoding elements.

[0075] В следующих вариантах осуществления настоящего изобретения элемент кодирования может относиться к элементу, выполненному с возможностью выполнения кодирования, или элементу, выполненному с возможностью выполнения декодирования.[0075] 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.

[0076] Один элемент кодирования может быть разбит на по меньшей мере один или более элементов предсказания одинакового размера квадратной или прямоугольной формы и может быть разбит на элементы предсказания таким образом, чтобы один из элементов предсказания отличался от другого элемента предсказания по форме и/или размеру.[0076] 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 .

[0077] Когда генерируется элемент предсказания, подвергаемый внутреннему предсказанию, на основании элемента кодирования, и элемент кодирования не является минимальным элементом кодирования, внутреннее предсказание может выполняться без разбиения элемента кодирования на множество элементов предсказания N×N.[0077] 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.

[0078] Предсказатели 120 и 125 могут содержать предсказатель 120, осуществляющий предсказание между изображениями, выполненный с возможностью выполнения предсказания, осуществляемого между изображениями, и внутренний предсказатель 125, выполненный с возможностью выполнения внутреннего предсказания. Предсказатели 120 и 125 могут определить, следует ли выполнять внутреннее предсказание или использовать предсказание, осуществляемое между изображениями, в отношении элементов предсказания, и могут определить подробную информацию (например, режим внутреннего предсказания, вектор движения, опорное изображение и т.п.), соответствующую каждому способу предсказания. В этом случае элемент обработки, в котором выполняется предсказание, может отличаться от элемента обработки, в котором определяются способ предсказания и конкретные подробности. Например, способ предсказания, режим предсказания и т.п. могут определяться элементом предсказания, а предсказание может выполняться элементом преобразования. Остаточное значение (остаточный блок) между сгенерированным блоком предсказания и исходным блоком может вводиться в преобразователь 130. Кроме того, информация о векторе движения, информация о режиме предсказания и т.п., которые используются для предсказания, в дополнение к остаточному значению, могут быть кодированы энтропийным кодером 165 и переданы в декодер. Когда используется конкретный режим кодирования, исходный блок может быть без изменений кодирован и передан в декодер без предсказателей 120 и 125, генерирующих блок предсказания.[0078] 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, prediction method, prediction mode, etc. may be determined by a prediction element, and the prediction may be performed by a transformation 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 predictors 120 and 125 generating the prediction block.

[0079] Предсказатель 120, осуществляющий предсказание между изображениями, может предсказывать элемент предсказания на основании информации о по меньшей мере одном из изображения, предшествующего текущему изображению, или изображения, следующего за текущим изображением, и в некоторых случаях элемент предсказания может быть предсказан на основании информации о некоторой области текущего изображения, в которой осуществлено кодирование. Предсказатель 120, осуществляющий предсказание между изображениями, может содержать интерполятор опорного изображения, предсказатель движения и компенсатор движения.[0079] The inter-image prediction predictor 120 may predict a prediction element based on information about at least one of an image preceding the current image or an image following the current image, and in some cases, the prediction element may be predicted based on the information about a certain area of the current image in which encoding is carried out. The inter-image predictor 120 may include a reference image interpolator, a motion predictor, and a motion compensator.

[0080] Интерполятор опорного изображения может получать информацию об опорном изображении из запоминающего устройства 155 и может генерировать информацию о пикселях, количество которых меньше или равно целому числу пикселей, из опорного изображения. В случае пикселей яркости фильтр интерполяции по 8-ми точкам на основании DCT, имеющий разные коэффициенты фильтрования, может использоваться для генерирования информации о пикселях, количество которых меньше или равно целому числу пикселей в элементах, состоящих из 1/4 пикселей. В случае сигналов цветности фильтр интерполяции по 4-м точкам на основании DCT, имеющий разные коэффициенты фильтрования, может использоваться для генерирования информации о пикселях, количество которых меньше или равно целому числу пикселей в элементах, состоящих из 1/8 пикселей.[0080] 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.

[0081] Предсказатель движения может выполнить предсказание движения на основании опорного изображения, интерполированного с помощью интерполятора опорного изображения. В качестве способа вычисления вектора движения могут использоваться различные способы, такие как алгоритм сопоставления блоков на основании полного поиска (FBMA), алгоритм трехэтапного поиска (TSS) и алгоритм нового трехэтапного поиска (NTS). Вектор движения может иметь значение вектора движения в элементах, состоящих из 1/2 или 1/4 пикселей, на основании интерполированных пикселей. Элемент предсказания движения может предсказывать текущий элемент предсказания, используя способ предсказания движения по-другому. В качестве способа предсказания движения могут использоваться различные способы, такие как способ пропуска, способ слияния, способ усовершенствованного предсказания вектора движения (AMVP) и способ внутриблочного копирования.[0081] 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 using a motion prediction method differently. 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.

[0082] Внутренний предсказатель 125 может генерировать элемент предсказания на основании информации об опорном пикселе рядом с текущим блоком, которая представляет собой информации о пикселе в текущем изображении. Когда ближайший блок текущего элемента предсказания представляет собой блок, подвергаемый предсказанию, осуществляемому между изображениями, и, таким образом, опорный пиксель представляет собой пиксель, подвергаемый предсказанию, осуществляемому между изображениями, информация об опорном пикселе ближайшего блока, подвергаемого внутреннему предсказанию, может быть использована вместо опорного пикселя, включенного в блок, подвергаемый предсказанию, осуществляемому между изображениями. То есть, когда опорный пиксель недоступен, по меньшей мере один доступный опорный пиксель может быть использован вместо недоступной информации об опорном пикселе.[0082] 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.

[0083] Режимы предсказания при внутреннем предсказании могут включать в себя режим направленного предсказания, в котором используется информация об опорных пикселях в зависимости от направления предсказания, и ненаправленный режим, который не использует информацию о направленности при выполнении предсказания. Режим для предсказания информации о яркости и режим для предсказания информации о цветности могут быть разными, и информация о режиме внутреннего предсказания, используемая для предсказания информации о яркости, или информация о предсказываемом сигнале яркости может использоваться для предсказания информации о цветности.[0083] 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.

[0084] Когда выполняется внутреннее предсказание, и размер элемента предсказания равен размеру элемента преобразования, внутреннее предсказание может выполняться в отношении элемента предсказания на основании пикселей, расположенных слева от элемента предсказания, пикселей, расположенных в верхнем левом углу элемента предсказания, и пикселей, расположенных в верхней части элемента предсказания. Однако, когда выполняется внутреннее предсказание, и элемент предсказания отличается по размеру от элемента преобразования, внутреннее предсказание может быть выполнено с использованием опорного пикселя на основании элемента преобразования. Кроме того, может использоваться внутреннее предсказание с использованием разбиения N×N только для минимального элемента кодирования.[0084] 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.

[0085] В способе внутреннего предсказания блок предсказания может быть сгенерирован после применения фильтра адаптивного внутреннего сглаживания (AIS) к опорному пикселю в зависимости от режима предсказания. Тип фильтра AIS, применяемого к опорному пикселю, может меняться. С целью выполнения способа внутреннего предсказания режим внутреннего предсказания текущего элемента предсказания может быть предсказан из режима внутреннего предсказания элемента предсказания, находящегося рядом с текущим элементом предсказания. При предсказании режима предсказания текущего элемента предсказания с использованием информации о режиме, предсказанной из ближайшего элемента предсказания, информация, указывающая, что текущий элемент предсказания и ближайший элемент предсказания имеют одинаковый режим предсказания, может передаваться с использованием информации о предварительно определенном флаге, когда режим внутреннего предсказания текущего элемента предсказания такой же, как режим внутреннего предсказания ближайшего элемента предсказания, и энтропийное кодирование может выполняться для кодирования информации о режиме предсказания текущего блока, когда режим предсказания текущего элемента предсказания отличается от режима предсказания ближайшего элемента предсказания.[0085] 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.

[0086] Кроме того, остаточный блок, содержащий информацию об остаточном значении, которое представляет собой разницу между элементом предсказания, подвергаемым предсказанию, и исходным блоком элемента предсказания, может быть сгенерирован на основании элементов предсказания, сгенерированных предсказателями 120 и 125. Сгенерированный остаточный блок может быть введен в преобразователь 130.[0086] 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.

[0087] Преобразователь 130 может преобразовывать остаточный блок, содержащий информацию об остаточном значении между исходным блоком и элементами предсказания, сгенерированными предсказателями 120 и 125 с использованием способа преобразования, такого как дискретное косинусное преобразование (DCT), дискретное синусное преобразование (DST) и KLT. То, применять ли DCT, DST или KLT для преобразования остаточного блока, может быть определено на основании информации о режиме внутреннего предсказания элемента предсказания, используемого для генерирования остаточного блока.[0087] 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 using a transformation method such as discrete cosine transform (DCT), discrete sine transform (DST), and KLT. Whether to apply DCT, DST or KLT 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.

[0088] Квантователь 135 может квантовать значения, которые преобразованы в частотную область преобразователем 130. Коэффициенты квантования могут меняться в зависимости от блока или важности изображения. Значения, вычисленные квантователем 135, могут быть переданы в обратный квантователь 140 и устройство 160 для переупорядочивания.[0088] 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.

[0089] Устройство 160 для переупорядочивания может выполнять переупорядочивание значений коэффициентов в отношении квантованных остаточных значений.[0089] Reorderer 160 may perform reordering of coefficient values with respect to the quantized residual values.

[0090] Устройство 160 для переупорядочивания может изменять коэффициенты с двумерной блочной формы на одномерную векторную форму с помощью способа сканирования коэффициентов. Например, устройство 160 для переупорядочивания может сканировать коэффициенты DC и даже высокочастотные коэффициенты, используя способ зигзагообразного сканирования, чтобы преобразовать коэффициенты в одномерную векторную форму. В зависимости от режима внутреннего предсказания и размера элемента преобразования, вместо зигзагообразного сканирования может использоваться вертикальное сканирование, при котором двумерные коэффициенты блочного типа сканируются в направлении столбца, или горизонтальное сканирование, при котором двумерные коэффициенты блочного типа сканируются в направлении строки. То есть устройство для переупорядочивания может определить способ сканирования, который будет использоваться, из зигзагообразного сканирования, вертикального сканирования и горизонтального сканирования, в зависимости от размера элемента преобразования и режима внутреннего предсказания.[0090] 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.

[0091] Энтропийный кодер 165 может выполнять энтропийное кодирование на основании значений, вычисленных устройством 160 для переупорядочивания. Для энтропийного кодирования могут использоваться, например, различные способы кодирования, такие как кодирование экспоненциальным способом Голомба, контекстно-адаптивное кодирование с переменной длиной слова (CAVLC) и контекстно-адаптивное двоичное арифметическое кодирование (CABAC).[0091] Entropy encoder 165 may perform entropy encoding based on values calculated by reordering apparatus 160. For entropy coding, various encoding techniques can be used, for example, such as exponential Golomb coding, context-adaptive variable-length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC).

[0092] Энтропийный кодер 165 может кодировать различную информацию, такую как информация о коэффициенте остаточного значения и информация о типе блока для элемента кодирования, информация о режиме предсказания, информация об элементе разбиения, информация об элементе предсказания, информация об элементе передачи, информация о векторе движения, информация об опорном кадре, информация об интерполяции блока и информация о фильтрации, из устройства 160 для переупорядочивания и предсказателей 120 и 125.[0092] The entropy encoder 165 can encode various information such as residual coefficient information and block type information for an encoding element, prediction mode information, split element information, prediction element information, transmission element information, vector information motion, reference frame information, block interpolation information, and filtering information from reorderer 160 and predictors 120 and 125.

[0093] Энтропийный кодер 165 может выполнять энтропийное кодирование в отношении значений коэффициентов элемента кодирования, введенных из устройства 160 для переупорядочивания.[0093] The entropy encoder 165 may perform entropy encoding on the values of the coding element coefficients input from the reordering device 160.

[0094] Обратный квантователь 140 может обратно квантовать значения, квантованные квантователем 135, а обратный преобразователь 145 может обратно преобразовывать значения, преобразованные преобразователем 130. Остаточное значение, сгенерированное обратным квантователем 140 и обратным преобразователем 145, может быть объединено с элементом предсказания, предсказанным посредством устройства оценки движения, компенсатора движения и внутреннего предсказателя из предсказателей 120 и 125, для генерирования восстановленного блока.[0094] 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.

[0095] Фильтр 150 может применять по меньшей мере одно из деблочного фильтра, корректора смещения и фильтра адаптивной контурной фильтрации (ALF).[0095] Filter 150 may employ at least one of a deblocking filter, an offset corrector, and an adaptive loop filtering (ALF) filter.

[0096] Деблочный фильтр может удалять искажение блоков, которое произошло из-за границы между блоками восстановленного изображения. С целью определения того, выполнять ли удаление блочности, можно определить, следует ли применять деблочный фильтр к текущему блоку, на основании пикселей, включенных в несколько строк или столбцов в блоке. Когда деблочный фильтр применяется к блоку, может применяться сильный фильтр или слабый фильтр в зависимости от требуемой силы фильтрации удаления блочности. Кроме того, когда применяется деблочный фильтр, вертикальная фильтрация и горизонтальная фильтрация могут выполняться таким образом, чтобы горизонтальная фильтрация и вертикальная фильтрация обрабатывались параллельно.[0096] 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.

[0097] Корректор смещения может корректировать смещение из исходного изображения в изображении, подвергаемом удалению блочности, в элементах пикселей. Способ деления пикселей, включенных в изображение, на определенное количество областей, определения области, которая должна быть подвергнута смещению, и применения смещения к определенной области или способ применения смещения с учетом информации о краях каждого пикселя может быть использован для выполнения коррекции смещения в отношении конкретного изображения.[0097] The offset corrector can correct the offset from the original image in the deblocking image in pixel elements. A method of dividing pixels included in an image into a certain number of regions, determining an area to be offset, and applying the offset to the specific area, or a method of applying the offset taking into account edge information of each pixel can be used to perform offset correction with respect to a particular image. .

[0098] ALF может выполняться на основании значений, полученных путем сравнения отфильтрованного восстановленного изображения и исходного изображения. Путем деления пикселей, включенных в изображение, на предварительно определенные группы и определения фильтра, который должен применяться к каждой из групп, для каждой группы может выполняться дифференциальная фильтрация. Информация о том, применять ли ALF, может передаваться для каждого элемента кодирования (CU), а форма и коэффициенты фильтрования фильтра AFL, который должен применяться, могут меняться в зависимости от блока. Кроме того, фильтр ALF в той же самой форме (фиксированной форме) может применяться независимо от характеристики блока, который должен быть подвергнут фильтрации.[0098] ALF may 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 AFL 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.

[0099] Запоминающее устройство 155 может хранить восстановленный блок или изображение, вычисленное посредством фильтра 150. Сохраненный восстановленный блок или изображение могут быть предоставлены предсказателям 120 и 125 при выполнении предсказания, осуществляемого между изображениями.[0099] 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.

[00100] На фиг. 2 представлена структурная схема видеодекодера согласно варианту осуществления настоящего изобретения.[00100] In FIG. 2 is a block diagram of a video decoder according to an embodiment of the present invention.

[00101] Обращаясь к фиг. 2, видеодекодер 200 может содержать энтропийный декодер 210, устройство 215 для переупорядочивания, обратный квантователь 220, обратный преобразователь 225, предсказатели 230 и 235, фильтр 240 и запоминающее устройство 245.[00101] Referring to 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.

[00102] Когда битовый поток видео вводится из видеокодера, входной битовый поток может быть декодирован согласно процедуре, противоположной процедуре видеокодера.[00102] When a video bitstream is input from a video encoder, the input bitstream can be decoded according to a procedure opposite to that of the video encoder.

[00103] Энтропийный декодер 210 может выполнять энтропийное декодирование согласно процедуре, противоположной процедуре, в которой энтропийный кодер видеокодера выполняет энтропийное кодирование. Например, для соответствия способу, выполняемому видеокодером, могут применяться различные способы, такие как кодирование экспоненциальным способом Голомба, контекстно-адаптивное кодирование с переменной длиной слова (CAVLC) и контекстно-адаптивное двоичное арифметическое кодирование (CABAC).[00103] The entropy decoder 210 may perform entropy decoding according to a procedure opposite to the procedure in which the video encoder entropy encoder performs entropy encoding. For example, to match the method performed by a video encoder, various methods such as exponential Golomb coding, context-adaptive variable-length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC) may be used.

[00104] Энтропийный декодер 210 может декодировать информацию, относящуюся к внутреннему предсказанию и предсказанию, осуществляемому между изображениями, выполняемому кодером.[00104] The entropy decoder 210 can decode information related to intra and inter-picture prediction performed by the encoder.

[00105] Устройство 215 для переупорядочивания может выполнять переупорядочивание в отношении битового потока, подвергаемого энтропийному декодированию энтропийным декодером 210, на основании способа переупорядочивания, используемого кодером. Устройство 215 для переупорядочивания может восстанавливать коэффициенты, выраженные в одномерной векторной форме, в двумерные коэффициенты блочного типа для переупорядочивания двумерных коэффициентов блочного типа. Устройство 215 для переупорядочивания может принимать информацию, относящуюся к сканированию коэффициентов, выполняемому кодером, и выполнять переупорядочивание посредством способа обратного сканирования на основании порядка сканирования кодера.[00105] 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.

[00106] Обратный квантователь 220 может выполнять обратное квантование на основании значений коэффициентов переупорядоченного блока и параметров квантования, предоставленных кодером.[00106] Inverse quantizer 220 may perform inverse quantization based on the values of the reordered block coefficients and quantization parameters provided by the encoder.

[00107] Обратный преобразователь 225 может выполнять обратное DCT, обратное DST и обратное KLT в отношении результата квантования, выполняемого видеокодером, при этом обратное DCT, обратное DST и обратное KLT представляют собой преобразования, обратные преобразованиям, которые были выполнены элементом преобразования, то есть DCT, DST и KLT. Обратное преобразование может выполняться на основании элемента передачи, определенного видеокодером. В обратном преобразователе 225 видеодекодера методы преобразования (например, DCT, DST и KLT) могут выборочно выполняться в зависимости от множества частей информации, таких как способ предсказания, размер текущего блока и направление предсказания.[00107] The inverse transformer 225 may perform an inverse DCT, inverse DST, and inverse KLT on a quantization result performed by the video encoder, wherein the inverse DCT, inverse DST, and inverse KLT are transforms inverse to the transforms that were performed by the transform element, that is, the DCT , DST and KLT. The inverse conversion may be performed based on the transfer element determined by the video encoder. In the video decoder inverter 225, transform methods (eg, DCT, DST, and KLT) may be selectively performed depending on multiple pieces of information such as prediction method, current block size, and prediction direction.

[00108] Предсказатели 230 и 235 могут генерировать блок предсказания на основании информации, относящейся к генерированию блока предсказания, которая предоставляется энтропийным декодером 210, и информации о ранее декодированном блоке или изображении, которая предоставляется запоминающим устройством 245.[00108] 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.

[00109] Как описано выше, когда внутреннее предсказание выполняется таким же образом, как и в видеокодере, и элемент предсказания равен по размеру элементу преобразования, внутреннее предсказание может выполняться в отношении элемента предсказания на основании пикселей, расположенных слева от элемента предсказания, пикселей, расположенных в верхнем левом углу элемента предсказания, и пикселей, расположенных в верхней части элемента предсказания. С другой стороны, когда выполняется внутреннее предсказание, и элемент предсказания отличается по размеру от элемента преобразования, внутреннее предсказание может быть выполнено с использованием опорного пикселя на основании элемента преобразования. Кроме того, может использоваться внутреннее предсказание с использованием разбиения N×N только для минимального элемента кодирования.[00109] As described above, when intra prediction is performed in the same manner as in a video 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.

[00110] Предсказатели 230 и 235 могут содержать определитель элемента предсказания, предсказатель, осуществляющий предсказание между изображениями, и внутренний предсказатель. Определитель элемента предсказания может принимать различную информацию, такую как информация об элементе предсказания, информация о режиме предсказания для способа внутреннего предсказания и информация, относящаяся к предсказанию движения, для способа предсказания, осуществляемого между изображениями, от энтропийного декодера 210, классифицировать элемент предсказания в текущем элементе кодирования и определять, выполняет ли элемент предсказания предсказание, осуществляемое между изображениями, или внутреннее предсказание. Используя информацию, необходимую для предсказания, осуществляемого между изображениями, текущего элемента предсказания, предоставленную видеокодером, предсказатель 230, осуществляющий предсказание между изображениями, может выполнять предсказание, осуществляемое между изображениями, в отношении текущего элемента предсказания на основании информации, включенной в по меньшей мере одно из изображения, предшествующего текущему изображению, включающему текущий элемент предсказания, или изображения, следующего за текущим изображением. Альтернативно предсказание, осуществляемое между изображениями, может выполняться на основании информации о некоторых предварительно восстановленных областях в текущем изображении, включающем текущий элемент предсказания.[00110] 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 video 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.

[00111] Предсказатель 230, осуществляющий предсказание между изображениями, может определять, является ли способ предсказания движения для элемента предсказания, который включен в соответствующий элемент кодирования, режимом пропуска, режимом слияния, режимом AMVP или режимом внутриблочного копирования, на основании элемента кодирования с целью выполнения предсказания, осуществляемого между изображениями.[00111] 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.

[00112] Внутренний предсказатель 235 может генерировать блок предсказания на основании информации о пикселях в текущем изображении. Когда элемент предсказания представляет собой элемент предсказания, подвергаемый внутреннему предсказанию, внутренний предсказатель 235 может выполнять внутреннее предсказание на основании информации о режиме внутреннего предсказания элемента предсказания, предоставленной видеокодером. Внутренний предсказатель 235 может содержать фильтр AIS, интерполятор опорных пикселей и фильтр DC. Фильтр AIS, который представляет собой часть, которая выполняет фильтрацию в отношении опорного пикселя текущего блока, может определить, следует ли применять фильтрацию, в зависимости от режима предсказания текущего элемента предсказания. Фильтр AIS может выполнять фильтрацию AIS в отношении опорного пикселя текущего блока с использованием информации о фильтре AIS и режиме предсказания элемента предсказания, предоставленного видеокодером. Когда режим предсказания текущего блока представляет собой режим, в котором фильтрация AIS не выполняется, фильтр AIS может не применяться.[00112] 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 video 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 filtering 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 information about the AIS filter and prediction mode of the prediction element provided by the video 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.

[00113] Когда режим предсказания блока предсказания представляет собой режим предсказания, в котором внутреннее предсказание выполняется на основании значения пикселя, полученного путем интерполяции опорного пикселя, интерполятор опорного пикселя может интерполировать опорный пиксель для генерирования опорного пикселя в элементе пикселя, меньшем или равном целому числу. Когда режим предсказания текущего элемента предсказания представляет собой режим предсказания, в котором блок предсказания генерируется без интерполяции опорного пикселя, опорный пиксель не может быть интерполирован. Когда режим предсказания текущего блока представляет собой режим DC, фильтр DC может генерировать блок предсказания посредством фильтрации.[00113] 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.

[00114] Восстановленный блок или изображение могут быть предоставлены фильтру 240. Фильтр 240 может содержать деблочный фильтр, корректор смещения и фильтр ALF.[00114] 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.

[00115] Фильтр 240 может принимать из видеокодера информацию о том, применяется ли деблочный фильтр к соответствующему блоку или изображению, или информацию о том, применяется ли сильный фильтр или слабый фильтр при применении деблочного фильтра. Деблочный фильтр видеодекодера может принимать информацию, относящуюся к деблочному фильтру, которая предоставляется видеокодером, и видеодекодер может выполнять фильтрацию для удаления блочности в отношении соответствующего блока.[00115] Filter 240 may receive from the video 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 the deblocking filter is applied. A video decoder deblock filter may receive information related to the deblock filter that is provided by the video encoder, and the video decoder may perform deblocking filtering on the corresponding block.

[00116] Корректор смещения может выполнять коррекцию смещения в отношении восстановленного изображения на основании типа коррекции смещения, информации о значении смещения и т.п., которые применяются к изображению при кодировании.[00116] The offset corrector can perform offset correction on the reconstructed image based on the type of offset correction, offset value information, and the like that is applied to the image during encoding.

[00117] ALF может применяться к элементу кодирования на основании информации о том, применять ли ALF, информации о коэффициенте ALF и т.п., которые предоставляются из кодера. Информация ALF может быть предоставлена путем включения в конкретный набор параметров.[00117] ALF may be applied to an encoding element based on information about whether to apply ALF, ALF coefficient information, and the like that is provided from the encoder. ALF information may be provided by inclusion in a specific parameter set.

[00118] Запоминающее устройство 245 может хранить восстановленное изображение или блок таким образом, чтобы изображение или блок могли быть использованы в качестве опорного изображения или опорного блока, а также может предоставить восстановленное изображение в выходной элемент.[00118] Storage device 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.

[00119] На фиг. 3 представлено схематическое изображение, показывающее базовый элемент кодового дерева согласно варианту осуществления настоящего изобретения.[00119] In FIG. 3 is a schematic diagram showing a basic element of a code tree according to an embodiment of the present invention.

[00120] Элемент кодирования наибольшего размера может быть задан в качестве блока кодового дерева. Одно изображение разбивается на множество элементов кодового дерева (CTU). Элемент кодового дерева, который представляет собой элемент кодирования наибольшего размера, может называться наибольшим элементом кодирования (LCU). На фиг. 3 показан пример, в котором одно изображение разбито на множество элементов кодового дерева.[00120] 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.

[00121] Размер элемента кодового дерева может быть задан на уровне изображения или уровне последовательности. С этой целью информация, указывающая размер элемента кодового дерева, может передаваться посредством набора параметров изображения или набора параметров последовательности.[00121] The code tree element size can be set 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.

[00122] В качестве примера, размер элемента кодового дерева для всего изображения в последовательности может быть установлен равным 128×128. Альтернативно один из размеров 128×128 или 256×256 может быть определен как размер элемента кодового дерева на уровне изображения. В качестве примера, размер элемента кодового дерева в первом изображении может быть установлен равным 128×128, а размер элемента кодового дерева во втором изображении может быть установлен равным 256×256.[00122] 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.

[00123] Элемент кодового дерева может быть разбит для генерирования блока кодирования. Блок кодирования указывает базовый элемент для обработки кодирования или декодирования. В качестве примера, предсказание или преобразование может выполняться для каждого блока кодирования, или режим предсказания может определяться для каждого блока кодирования. В этом случае режим предсказания указывает способ генерирования изображения предсказания. В качестве примера, режим предсказания может включать внутреннее предсказание, предсказание, осуществляемое между изображениями, привязку к текущему изображению (CPR) (или внутриблочное копирование (IBC)) или комбинированное предсказание. Блок предсказания для блока кодирования может быть сгенерирован с использованием по меньшей мере одного режима предсказания из внутреннего предсказания, предсказания, осуществляемого между изображениями, привязки к текущему изображению или комбинированного предсказания для блока кодирования.[00123] 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 prediction mode may be determined for each encoding block. In this case, the prediction mode indicates a method for generating a prediction image. As an example, the prediction 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 prediction mode of intra-prediction, inter-picture prediction, current-picture-locked, or combined prediction for the coding block.

[00124] Информация, указывающая режим предсказания текущего блока, может передаваться в битовом потоке. В качестве примера, информация может представлять собой 1-битный флаг, указывающий, является ли режим предсказания внутренним режимом или режимом, осуществляемым между изображениями. Привязка к текущему изображению или комбинированное предсказание могут быть доступны только тогда, когда определено, что режим предсказания текущего блока является режимом, осуществляемым между изображениями.[00124] Information indicating the prediction mode of the current block may be transmitted in a bit stream. As an example, the information may be a 1-bit flag indicating whether the prediction mode is an intra-image mode or an inter-picture mode. Locking to the current image or combined prediction can only be available when it is determined that the prediction mode of the current block is an inter-image mode.

[00125] Привязка к текущему изображению предназначена для установки текущего изображения в качестве опорного изображения и получения блока предсказания текущего блока из области текущего изображения, где осуществлено кодирование или декодирование. В этом случае текущее изображение относится к изображению, содержащему текущий блок. Информация, указывающая, что привязка к текущему изображению применяется к текущему блоку, может передаваться в битовом потоке. В качестве примера, информация может представлять собой 1-битный флаг. Может быть определено, что режим предсказания текущего блока представляет собой привязку к текущему изображению, когда флаг имеет значение true (истина), и может быть определено, что режим предсказания текущего блока представляет собой предсказание, осуществляемое между изображениями, когда флаг имеет значение false (ложь).[00125] Linking to the current picture is for setting the current picture as a reference picture and obtaining a current block prediction block from a region 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 bit stream. As an example, the information may be a 1-bit flag. The prediction 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 a prediction performed between images when the flag is false. ).

[00126] Альтернативно режим предсказания текущего блока может быть определен на основании индекса опорного изображения. В качестве примера, когда индекс опорного изображения указывает текущее изображение, может быть определено, что режим предсказания текущего блока представляет собой привязку к текущему изображению. Когда индекс опорного изображения указывает на изображение, отличное от текущего изображения, может быть определено, что режим предсказания текущего блока представляет собой предсказание, осуществляемое между изображениями. То есть привязка к текущему изображению представляет собой способ предсказания, который использует информацию об области текущего изображения, где осуществлено кодирование или декодирование, а предсказание, осуществляемое между изображениями, представляет собой способ предсказания, который использует информацию другого изображения, где осуществлено кодирование или декодирование.[00126] Alternatively, the prediction mode of the current block may be determined based on the index of the reference image. As an example, when the reference picture index indicates the current picture, it may be determined that the prediction 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 prediction 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 region 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.

[00127] Комбинированное предсказание указывает режим кодирования, полученный путем комбинирования двух или более из внутреннего предсказания, предсказания, осуществляемого между изображениями, и привязки к текущему изображению. В качестве примера, когда применяется комбинированное предсказание, первый блок предсказания может быть сгенерирован на основании одного из внутреннего предсказания, предсказания, осуществляемого между изображениями, или привязки к текущему изображению, а второй блок предсказания может быть сгенерирован на основании другого. Когда генерируются первый блок предсказания и второй блок предсказания, окончательный блок предсказания может быть сгенерирован посредством операции усреднения или операции взвешенной суммы между первым блоком предсказания и вторым блоком предсказания. Информация, указывающая, применяется ли комбинированное предсказание, может передаваться в битовом потоке. Информация может представлять собой 1-битный флаг.[00127] 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.

[00128] На фиг. 4 представлено схематическое изображение, показывающее различные типы разбиения блока кодирования.[00128] In FIG. 4 is a schematic diagram showing various types of coding block partitioning.

[00129] Блок кодирования может быть разбит на множество блоков кодирования на основании разбиения на основе четвертичного дерева, разбиения на основе двоичного дерева или разбиения на основе троичного дерева. Блок кодирования, полученный посредством разбиения, может быть повторно разбит на множество блоков кодирования на основании разбиения на основе четвертичного дерева, разбиения на основе двоичного дерева или разбиения на основе троичного дерева.[00129] A coding block may be partitioned into a plurality of encoding blocks based on a quaternary tree partition, a binary tree partition, or a ternary tree partition. The encoding block obtained by partitioning may be re-partitioned into a plurality of encoding blocks based on a quaternary tree partition, a binary tree partition, or a ternary tree partition.

[00130] Разбиение на основе четвертичного дерева указывает на метод разбиения для разбиения текущего блока на четыре блока. В результате разбиения на основе четвертичного дерева текущий блок может быть разбит на четыре квадратных раздела (см. "SPLIT_QT" на фиг. 4A).[00130] Quaternary tree partitioning indicates a partitioning method for partitioning the current block into four blocks. As a result of quaternary tree partitioning, the current block can be divided into four square partitions (see "SPLIT_QT" in Fig. 4A).

[00131] Разбиение на основе двоичного дерева указывает на метод разбиения для разбиения текущего блока на два блока. Разбиение текущего блока на два блока в вертикальном направлении (т.е. с использованием вертикальной линии поперек текущего блока) может называться вертикальным разбиением на основе двоичного дерева, и разбиение текущего блока на два блока в горизонтальном направлении (т.е. с использованием горизонтальной линии поперек текущего блока) может называться горизонтальным разбиением на основе двоичного дерева. В результате разбиения на основе двоичного дерева текущий блок может быть разбит на два неквадратных раздела. На фиг. 4B "SPLIT_BT_VER" представляет результат вертикального разбиения на основе двоичного дерева. На фиг. 4C "SPLIT_BT_HOR" представляет результат горизонтального разбиения на основе двоичного дерева.[00131] Binary tree 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 vertical binary tree splitting, and splitting 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 a horizontal split based on a binary tree.

[00132] Разбиение на основе троичного дерева указывает метод разбиения для разбиения текущего блока на три блока. Разбиение текущего блока на три блока в вертикальном направлении (т.е. с использованием двух вертикальных линий поперек текущего блока) может называться вертикальным разбиением на основе троичного дерева, и разбиением текущего блока на три блока в горизонтальном направлении (т.е. с использованием двух горизонтальных линий поперек текущего блока) может называться горизонтальным разбиением на основе троичного дерева. В результате разбиения на основе троичного дерева текущий блок может быть разбит на три неквадратных раздела. В этом случае ширина и высота раздела, расположенного в центре текущего блока, могут быть вдвое больше, чем у других разделов. На фиг. 4D "SPLIT_TT_VER" представляет результат вертикального разбиения на основе троичного дерева. На фиг. 4E "SPLIT_TT_HOR" представляет результат горизонтального разбиения на основе троичного дерева.[00132] Ternary tree partitioning specifies a partitioning method for partitioning the current block into three blocks. Splitting the current block into three blocks in the vertical direction (i.e., using two vertical lines across the current block) can be called a vertical ternary tree-based splitting, and splitting the current block into three blocks in the horizontal direction (i.e., using two horizontal lines across the current block) can be called a horizontal ternary tree partition. As a result of ternary tree partitioning, the current block can be partitioned into three non-square partitions. In this case, the width and height of the section located in the center of the current block may 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.

[00133] Количество раз, которое разбивается элемент кодового дерева, можно задать как глубину разбиения (глубину разделения). Максимальная глубина разбиения элемента кодового дерева может быть определена на уровне последовательности или уровне изображения. Таким образом, максимальная глубина разбиения элемента кодового дерева может меняться в зависимости от последовательности или изображения.[00133] The number of times that a code tree element is split can be set as a split depth (split depth). The maximum split depth of a code tree element can be determined at the sequence level or the image level. Thus, the maximum depth of a code tree element may vary depending on the sequence or image.

[00134] Альтернативно максимальная глубина разбиения может определяться индивидуально для каждого метода разбиения. В качестве примера, максимальная глубина разбиения, разрешенная для разбиения на основе четвертичного дерева, может отличаться от максимальной глубины разбиения, разрешенной для разбиения на основе двоичного дерева и/или разбиения на основе троичного дерева.[00134] Alternatively, the maximum partitioning depth may be determined individually for each partitioning 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 a ternary tree partition.

[00135] Кодер может передавать информацию, указывающую по меньшей мере одно из типа разбиения или глубины разбиения текущего блока в битовом потоке. Декодер может определять тип разбиения и глубину разбиения элемента кодового дерева на основании информации, проанализированной из битового потока.[00135] The encoder may transmit information indicating at least one of a split type or a split depth of the current block in the bitstream. The decoder may determine the split type and split depth of a code tree element based on information parsed from the bit stream.

[00136] На фиг. 5 представлено схематическое изображение, иллюстрирующее аспект разбиения элемента кодового дерева.[00136] In FIG. 5 is a schematic diagram illustrating the partitioning aspect of a code tree element.

[00137] Разбиение блока кодирования с использованием такого метода разбиения, как разбиение на основе четвертичного дерева, разбиение на основе двоичного дерева и/или разбиение на основе троичного дерева, может называться разбиением на основе нескольких деревьев.[00137] Partitioning a coding block using a partitioning method such as quaternary tree partitioning, binary tree partitioning, and/or ternary tree partitioning may be referred to as multi-tree partitioning.

[00138] Блоки кодирования, сгенерированные путем применения разбиения на основе нескольких деревьев к блоку кодирования, могут называться нижними блоками кодирования. Когда глубина разбиения блока кодирования равна k, глубина разбиения нижних блоков кодирования устанавливается равной k+1.[00138] Coding blocks generated by applying a multi-tree partition to a coding block may be referred to as lower coding blocks. When the partitioning depth of the encoding block is k, the partitioning depth of the lower encoding blocks is set to k+1.

[00139] И наоборот, относительно блоков кодирования с глубиной разбиения k+1, блок кодирования с глубиной разбиения k может называться верхним блоком кодирования.[00139] Conversely, with respect to coding blocks with partition depth k+1, a coding block with partition depth k may be referred to as an upper encoding block.

[00140] Тип разбиения текущего блока кодирования может быть определен на основании по меньшей мере одного из типа разбиения верхнего блока кодирования или типа разбиения соседнего блока кодирования. В этом случае соседний блок кодирования является смежным с текущим блоком кодирования и может содержать по меньшей мере один из соседнего блока, расположенного над текущим блоком кодирования, соседнего блока, расположенного слева от текущего блока кодирования, или соседнего блока, смежного с верхним левым углом текущего блока кодирования. В этом случае тип разбиения может включать в себя по меньшей мере одно из наличия разбиения на основе четвертичного дерева, наличия разбиения на основе двоичного дерева, направления разбиения на основе двоичного дерева, наличия разбиения на основе троичного дерева или направления разбиения на основе троичного дерева.[00140] The partition type of the current encoding block may be determined based on at least one of the partition type of the upper encoding block or the partition type of the adjacent encoding 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 partitioning direction, having a ternary tree partitioning presence, or having a ternary tree partitioning direction.

[00141] С целью определения типа разбиения блока кодирования, информация, указывающая, разбит ли блок кодирования, может сообщаться в битовом потоке. Информация представляет собой 1-битный флаг "split_cu_flag", и значение флага true указывает, что блок кодирования разбит с помощью метода разбиения на основе нескольких деревьев.[00141] For the purpose of determining the type of splitting of the encoding block, information indicating whether the coding block is split may be reported in the bit stream. The information is a 1-bit flag "split_cu_flag", and the flag's value true indicates that the encoding block is split using a multi-tree splitting method.

[00142] Когда split_cu_flag имеет значение true, информация, указывающая, разбит ли блок кодирования посредством разбиения на основе четвертичного дерева, может передаваться в битовом потоке. Информация представляет собой 1-битовый флаг "split_qt_flag", и, когда флаг имеет значение true, блок кодирования может быть разбит на четыре блока.[00142] When split_cu_flag is true, information indicating whether a coding block is split by a quaternary tree split can be transmitted in the bit stream. 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.

[00143] Например, на фиг. 5 показано, что четыре блока кодирования с глубиной разбиения, равной единице, генерируются, потому что элемент кодового дерева разбит посредством разбиения на основе четвертичного дерева. Также показано, что разбиение на основе четвертичного дерева повторно применяется к первому блоку кодирования и четвертому блоку кодирования из четырех блоков кодирования, сгенерированных посредством выполнения разбиения на основе четвертичного дерева. В результате могут быть сгенерированы четыре блока кодирования с глубиной разбиения, равной двум.[00143] For example, in FIG. 5 shows that four coding blocks with a partition depth of one are generated because the code tree element is partitioned by quaternary tree partitioning. It is also shown that the quaternary tree partitioning is re-applied to the first encoding block and the fourth encoding block of the four encoding blocks generated by performing the quaternary tree partitioning. As a result, four coding blocks with a partition depth of two can be generated.

[00144] Также, повторно применяя разбиение на основе четвертичного дерева к блоку кодирования с глубиной разбиения, равной двум, может быть сгенерирован блок кодирования с глубиной разбиения, равной трем.[00144] Also, by repeatedly applying the quaternary tree partitioning to a coding block with a partition depth of two, a coding block with a partition depth of three can be generated.

[00145] Когда разбиение на основе четвертичного дерева не применяется к блоку кодирования, тогда то, следует ли выполнять разбиение на основе двоичного дерева или разбиение на основе троичного дерева в отношении блока кодирования, может быть определено с учетом по меньшей мере одного из размера блока кодирования, того, расположен ли блок кодирования на краю изображения, максимальной глубины разбиения или аспекта разбиения соседнего блока. Когда определено, что в отношении блока кодирования выполнено разбиение на основе двоичного дерева или разбиение на основе троичного дерева, информация, указывающая направление разбиения, может передаваться в битовом потоке. Информация может представлять собой 1-битный флаг mtt_split_cu_vertical_flag. На основании флага может быть определено, является ли направление разбиения вертикальным или горизонтальным. Кроме того, информация, указывающая, какое из разбиения на основе двоичного дерева и разбиения на основе троичного дерева применено к блоку кодирования, может передаваться в битовом потоке. Информация может представлять собой 1-битный флаг mtt_split_cu_binary_flag. На основании флага может быть определено, применено ли к блоку кодирования разбиение на основе двоичного дерева или разбиение на основе троичного дерева.[00145] When quaternary tree partitioning is not applied to the encoding block, then whether to perform binary tree partitioning or ternary tree partitioning on the encoding 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 partitioning depth, or the partitioning aspect of an adjacent block. When it is determined that a binary tree partition or a ternary tree partition has been performed on an encoding block, information indicating the direction of partitioning 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 partitioning and the ternary tree partitioning is applied to the encoding block may be transmitted in the bit stream. The information may be a 1-bit mtt_split_cu_binary_flag. Based on the flag, it can be determined whether a binary tree partition or a ternary tree partition is applied to the encoding block.

[00146] В качестве примера, на фиг. 5 показано, что вертикальное разбиение на основе двоичного дерева применяется к блоку кодирования с глубиной разбиения, равной единице, вертикальное разбиение на основе троичного дерева применяется к левому блоку кодирования из блоков кодирования, сгенерированных в результате вертикального разбиения на основе двоичного дерева, и вертикальное разбиение на основе двоичного дерева применяется к правому блоку кодирования.[00146] As an example, in FIG. 5 shows that a vertical binary tree partition is applied to a coding block with a partition depth of one, a vertical ternary tree partition is applied to the left encoding block from the encoding blocks generated by the vertical binary tree partitioning, and a vertical partitioning on The binary tree base is applied to the right encoding block.

[00147] Поскольку изображение разбивается на элементы кодового дерева, блок, размер которого меньше предварительно установленного, может присутствовать в области, смежной с правым краем или нижним краем изображения. Когда предполагается, что блок представляет собой элемент кодового дерева, элемент кодового дерева, размер которого меньше предварительно установленного, может быть сгенерирован на правом краю или нижнем краю изображения. В этом случае размер элемента кодового дерева может быть определен на основании информации, переданной через набор параметров последовательности или набор параметров изображения.[00147] Because the image is divided into code tree elements, a block that is smaller than a preset size may be present in the area adjacent to the right edge or bottom edge of the image. When a block is assumed to be a code tree element, a code tree element whose size is smaller than a preset size may be generated at the right edge or bottom edge of the image. In this case, the size of the code tree element can be determined based on the information conveyed through the sequence parameter set or the image parameter set.

[00148] На фиг. 6 показан пример, в котором блок, меньший, чем элемент кодового дерева предварительно определенного размера, встречается на краю изображения.[00148] In FIG. 6 shows an example in which a block smaller than a code tree element of a predetermined size occurs at the edge of the image.

[00149] Когда изображение 1292×1080 разбито на 128×128 элементов кодового дерева, блок меньше 128×128 присутствует на правом краю и нижнем краю изображения в примере, показанном на фиг. 6. В следующих вариантах осуществления блок, меньший, чем элемент кодового дерева предварительно установленного размера, встречающийся на краю изображения, называется нетипичным граничным краевым блоком.[00149] When a 1292×1080 image is divided into 128×128 code tree elements, a block smaller than 128×128 is present at the right edge and bottom edge of the image in the example shown in FIG. 6. In the following embodiments, a block smaller than a preset size code tree element occurring at the edge of an image is called an atypical boundary edge block.

[00150] Для нетипичного граничного краевого блока может быть разрешен только предварительно заданный способ разбиения. В этом случае предварительно заданный способ разбиения может включать по меньшей мере одно из разбиения на основе четвертичного дерева, разбиения на основе троичного дерева или разбиения на основе двоичного дерева.[00150] For an atypical boundary edge block, only a predefined partitioning method may be allowed. In this case, the predetermined partitioning method may include at least one of quaternary tree partitioning, ternary tree partitioning, or binary tree partitioning.

[00151] В качестве примера, для нетипичного граничного краевого блока может быть разрешено только разбиение на основе четвертичного дерева. В этом случае разбиение на основе четвертичного дерева может повторяться до тех пор, пока блок, соответствующий краю изображения, не будет иметь минимальный размер разбиения на основе четвертичного дерева. В этом случае минимальный размер разбиения на основе четвертичного дерева может быть предварительно задан в кодере и декодере. Альтернативно информация, указывающая минимальный размер разбиения на основе четвертичного дерева, может передаваться в битовом потоке.[00151] As an example, for an atypical boundary edge block, only quaternary tree-based partitioning may be allowed. In this case, the quaternary tree tiling may be repeated until the block corresponding to the image edge has the minimum quaternary tree tiling size. In this case, the minimum quaternary tree partition size may be preset in the encoder and decoder. Alternatively, information indicating the minimum size of a quaternary tree partition may be carried in the bitstream.

[00152] На фиг. 7 представлено схематическое изображение, показывающее пример, в котором разбиение на основе четвертичного дерева выполняется в отношении нетипичного граничного краевого блока. Для удобства описания предполагается, что минимальный размер разбиения на основе четвертичного дерева составляет 4×4.[00152] In FIG. 7 is a schematic diagram showing an example in which quaternary tree partitioning is performed on an atypical boundary edge block. For ease of description, it is assumed that the minimum size of a quaternary tree partition is 4x4.

[00153] Нетипичный граничный краевой блок может быть разбит на основании квадратного блока. Квадратный блок может быть получен на основании большего блока между шириной и высотой нетипичного граничного краевого блока. В качестве примера, показатель степени значения 2, превышающий опорное значение и ближайший к опорному значению, может рассматриваться в качестве длины одной стороны квадратного блока. В качестве примера, блок 12×20, показанный на фиг. 7, может считаться принадлежащим блоку 32×32, и результат разбиения для блока 32×32 может применяться к блоку 12×20.[00153] An atypical boundary edge block may be divided based on a square block. A square block can be derived from a larger block between the width and height of an atypical boundary edge block. As an example, the exponent of the value 2, which is greater than the reference value and closest to the reference value, can be considered as the length of one side of a square block. As an example, the 12x20 block shown in FIG. 7 may be considered to belong to the 32×32 block, and the partitioning result for the 32×32 block may be applied to the 12×20 block.

[00154] Когда разбиение на основе четвертичного дерева выполняется в отношении блока 12×20, блок может быть разбит на блок 12×16 и блок 12×4. Когда разбиение на основе четвертичного дерева выполняется в отношении каждого из блоков, блок 12×16 разбивается на два блока 8×8 и два блока 4×8, а блок 12×4 разбивается на блок 8×4 и блок 4×4 блок.[00154] When quaternary tree partitioning is performed on a 12x20 block, the block can be divided into a 12x16 block and a 12x4 block. When quaternary tree partitioning is performed on each of the blocks, a 12x16 block is split into two 8x8 blocks and two 4x8 blocks, and a 12x4 block is split into an 8x4 block and a 4x4 block.

[00155] Разбиение на основе четвертичного дерева может быть выполнено снова в отношении блока 4×8, снова расположенного на краю изображения, и, таким образом, могут быть сгенерированы два блока 4×4. Подобным образом разбиение на основе четвертичного дерева может быть выполнено снова в отношении блока 8×8, расположенного на краю изображения, и, таким образом, могут быть сгенерированы два блока 4×4.[00155] Quaternary tree partitioning can be performed again on the 4x8 block again located at the edge of the image, and thus two 4x4 blocks can be generated. Similarly, the quaternary tree partitioning can be performed again on the 8x8 block located at the edge of the image, and thus two 4x4 blocks can be generated.

[00156] Альтернативно, когда по меньшей мере одна из ширины или высоты блока меньше или равна минимальному размеру разбиения на основе четвертичного дерева, может выполняться разбиение на основе двоичного дерева. В этом случае минимальный размер разбиения на основе четвертичного дерева может указывать минимальную ширину разбиения на основе четвертичного дерева или минимальную высоту разбиения на основе четвертичного дерева. В качестве примера, когда минимальный размер разбиения на основе четвертичного дерева равен 4×4, минимальная ширина разбиения на основе четвертичного дерева и минимальная высота разбиения на основе четвертичного дерева могут быть равны 4.[00156] Alternatively, when at least one of the block width or height is less than or equal to the minimum size of a quaternary tree partition, a binary tree partition may be performed. In this case, the minimum quaternary tree split size may indicate the minimum width of the quaternary tree split or the minimum height of the quaternary tree split. As an example, when the minimum quaternary tree split size is 4x4, the minimum quaternary tree split width and the minimum quaternary tree split height may be 4.

[00157] В этом случае вертикальное разбиение на основе двоичного дерева может выполняться, когда ширина блока меньше или равна минимальному размеру разбиения на основе четвертичного дерева, а горизонтальное разбиение на основе двоичного дерева может выполняться, когда высота блока меньше или равна минимальной высоте разбиения на основе четвертичного дерева.[00157] In this case, a vertical binary tree partitioning may be performed when the block width is less than or equal to the minimum quaternary tree partitioning size, and a horizontal binary tree partitioning may be performed when the block height is less than or equal to the minimum quaternary tree partitioning height. quaternary tree.

[00158] И наоборот, разбиение на основе четвертичного дерева может выполняться, когда ширина или высота блока больше, чем минимальный размер разбиения на основе четвертичного дерева. В качестве примера, когда правое верхнее местоположение и нижнее левое местоположение блока отклоняются от изображения, а ширина или высота блока больше, чем минимальный размер разбиения на основе четвертичного дерева, к соответствующему блоку может применяться разбиение на основе четвертичного дерева.[00158] Conversely, quaternary tree partitioning may be performed when the block width or height is greater than the minimum quaternary tree partition size. As an example, when the top right location and bottom left location of a block deviate from the image, and the width or height of the block is larger than the minimum quaternary tree partition size, a quaternary tree partition may be applied to the corresponding block.

[00159] На фиг. 8 представлено схематическое изображение, показывающее пример, в котором разбиение на основе четвертичного дерева выполняется в отношении блока, смежного как с правым краем, так и с нижним краем изображения. Для удобства описания предполагается, что минимальный размер разбиения на основе четвертичного дерева составляет 4×4.[00159] In FIG. 8 is a schematic diagram showing an example in which quaternary tree partitioning is performed on a block adjacent to both the right edge and the bottom edge of the image. For ease of description, it is assumed that the minimum size of a quaternary tree partition is 4x4.

[00160] В примере, показанном на фиг. 8, когда разбиение на основе четвертичного дерева выполняется в отношении блока 32×32, содержащего блок 12×20, генерируются четыре блока 16×16. Разбиение на основе четвертичного дерева может быть выполнено снова в отношении двух блоков 16×16, содержащих данные текстуры, из сгенерированных блоков. В результате координата x и координата y могут отклоняться от края изображения, и может быть сгенерирован блок 8×8, содержащий данные текстуры с размером 4×4. Поскольку ширина и высота блока 8×8 больше, чем минимальный размер разбиения на основе четвертичного дерева, разбиение на основе четвертичного дерева может выполняться в отношении соответствующего блока.[00160] In the example shown in FIG. 8, when quaternary tree partitioning is performed on a 32x32 block containing a 12x20 block, four 16x16 blocks are generated. Quaternary tree partitioning can be performed again on two 16x16 blocks containing texture data from the generated blocks. As a result, the x-coordinate and y-coordinate may deviate from the edge of the image, and an 8x8 block containing 4x4 texture data can be generated. Since the width and height of an 8x8 block are larger than the minimum size of a quaternary tree partition, a quaternary tree partition can be performed on the corresponding block.

[00161] Когда разбиение на основе четвертичного дерева выполняется в отношении блока 12×20, блок 12×20 может быть разбит на блок 12×16 и блок 12×4. Когда разбиение на основе четвертичного дерева выполняется снова в отношении блоков, блок 12×16 разбивается на два блока 8×8 и два блока 4×8, а блок 12×4 разбивается на блок 8×4 и блок 4×4.[00161] When quaternary tree partitioning is performed on a 12x20 block, the 12x20 block can be divided into a 12x16 block and a 12x4 block. When the quaternary tree partitioning is performed again on the blocks, the 12x16 block is split into two 8x8 blocks and two 4x8 blocks, and the 12x4 block is split into an 8x4 block and a 4x4 block.

[00162] Поскольку ширина блока 4×8, расположенного на краю изображения, равна минимальному размеру разбиения на основе четвертичного дерева, в отношении блока 4×8 может выполняться разбиение на основе двоичного дерева. Подробно вертикальное разбиение на основе двоичного дерева может выполняться на основании квадратного блока (т.е. 8×8), содержащего блок 4×8.[00162] Since the width of a 4x8 block located at the edge of the image is equal to the minimum size of a quaternary tree partition, a binary tree partition can be performed on the 4x8 block. In detail, vertical binary tree partitioning can be performed based on a square block (ie, 8x8) containing a 4x8 block.

[00163] Кроме того, поскольку ширина блока 8×4, расположенного на краю изображения, равна минимальному размеру разбиения на основе четвертичного дерева, в отношении блока 8×4 может выполняться разбиение на основе двоичного дерева. Подробно горизонтальное разбиение на основе двоичного дерева может выполняться на основании квадратного блока (т.е. 8×8), содержащего блок 4×8.[00163] In addition, since the width of an 8x4 block located at the edge of an image is equal to the minimum size of a quaternary tree partition, a binary tree partition can be performed on the 8x4 block. In detail, horizontal binary tree partitioning can be performed based on a square block (ie, 8x8) containing a 4x8 block.

[00164] В результате разбиения блок 8×4, блок 4×4 и блок 4×8 могут быть расположены смежно с краем изображения.[00164] As a result of the partitioning, an 8×4 block, a 4×4 block, and a 4×8 block may be located adjacent to the edge of the image.

[00165] Альтернативно, когда по меньшей мере одна из ширины или высоты блока меньше или равна пороговому значению, может выполняться разбиение на основе двоичного дерева. В противном случае может быть выполнено разбиение на основе четвертичного дерева. В этом случае пороговое значение может быть получено на основании минимального размера разбиения на основе четвертичного дерева. В качестве примера, когда минимальный размер разбиения на основе четвертичного дерева равен minQTsize, пороговое значение может быть установлено на "minQTsize<<1". Альтернативно информация для определения порогового значения может передаваться отдельно в битовом потоке.[00165] Alternatively, when at least one of the block width or height is less than or equal to a threshold value, binary tree-based partitioning may be performed. Otherwise, a partition based on a quaternary tree can be performed. In this case, the threshold value can be obtained based on the minimum partition size based on the quaternary tree. As an example, when the minimum quaternary tree partition size is minQTsize, the threshold value can be set to "minQTsize<<1". Alternatively, information for determining the threshold value may be transmitted separately in the bit stream.

[00166] На фиг. 9 представлено схематическое изображение, показывающее аспект разбиения блока, смежного с краем изображения. Для удобства описания предполагается, что минимальный размер разбиения на основе четвертичного дерева составляет 4×4. Пороговое значение может быть установлено равным 8.[00166] In FIG. 9 is a schematic view showing a dividing aspect of a block adjacent to an image edge. For ease of description, it is assumed that the minimum size of a quaternary tree partition is 4x4. The threshold value can be set to 8.

[00167] Сначала может быть выполнено разбиение на основе четвертичного дерева в отношении блока 12×20. В результате блок может быть разбит на блок 12×16 и блок 12×4. Поскольку ширина и высота блока 12×16 больше порогового значения, к блоку может быть применено разбиение на основе четвертичного дерева. Соответственно, блок может быть разбит на два блока 8×8 и два блока 4×8.[00167] First, a quaternary tree partition may be performed on the 12x20 block. As a result, the block can be split into a 12x16 block and a 12x4 block. Since the width and height of a 12x16 block is greater than the threshold, a quaternary tree partition can be applied to the block. Accordingly, a block can be divided into two 8x8 blocks and two 4x8 blocks.

[00168] Ширина блока 12×4 больше порогового значения. Соответственно, к блоку 12×4 может быть применено разбиение на основе четвертичного дерева. В результате блок может быть разбит на блок 8×4 и блок 4×4.[00168] The width of the 12×4 block is greater than the threshold value. Accordingly, a quaternary tree-based partitioning can be applied to a 12x4 block. As a result, the block can be split into an 8x4 block and a 4x4 block.

[00169] Впоследствии, поскольку значения ширины и значения высоты блока 4×8 и блока 8×4, расположенных на краю изображения, меньше или равны пороговому значению, к блокам может применяться разбиение на основе двоичного дерева.[00169] Subsequently, since the width and height values of the 4x8 block and the 8x4 block located at the edge of the image are less than or equal to the threshold value, binary tree-based partitioning can be applied to the blocks.

[00170] В отличие от приведенного выше примера, когда по меньшей мере одна из ширины или высоты блока больше, чем пороговое значение, может выполняться разбиение на основе двоичного дерева. В противном случае может быть выполнено разбиение на основе четвертичного дерева.[00170] In contrast to the above example, when at least one of the block width or height is greater than the threshold value, binary tree-based partitioning may be performed. Otherwise, a partition based on a quaternary tree can be performed.

[00171] Альтернативно к нетипичному граничному краевому блоку может быть применено только разбиение на основе четвертичного дерева или разбиение на основе двоичного дерева. В качестве примера, разбиение на основе четвертичного дерева может повторяться до тех пор, пока блок, расположенный на краю изображения, не будет иметь минимальный размер, или разбиение на основе двоичного дерева может повторяться до тех пор, пока блок, расположенный на краю изображения, не будет иметь минимальный размер.[00171] Alternatively, only a quaternary tree partition or a binary tree partition may be applied to the atypical boundary edge block. As an example, a quaternary tree partition may be repeated until a block located at the edge of the image has a minimum size, or a binary tree partition may be repeated until a block located at the edge of the image will have a minimum size.

[00172] Нетипичный граничный краевой блок может быть задан как элемент кодирования. Режим пропуска может быть жестко применен к нетипичному граничному краевому блоку, или все коэффициенты преобразования могут быть установлены равными 0. Таким образом, значение флага кодированного блока (CBF), указывающее, имеет ли нетипичный граничный краевой блок ненулевые коэффициенты преобразования, может быть установлено равным 0. Элемент кодирования, кодированный в режиме пропуска, или элемент кодирования, имеющий коэффициент преобразования, установленный равным 0, может называться граничным нулевым элементом кодирования.[00172] An atypical boundary edge block may be specified as an encoding element. Skip mode can be hard-coded on the atypical boundary edge block, or all transform coefficients can be set to 0. Thus, the coded block flag (CBF) value indicating whether the atypical boundary edge block has non-zero transform coefficients can be set to 0 A coding element encoded in skip mode or a coding element having a transform coefficient set to 0 may be called a boundary zero coding element.

[00173] Альтернативно, сравнивая по меньшей мере одну из ширины или высоты блока кодирования, сгенерированного путем разбиения нетипичного граничного краевого блока, с пороговым значением, можно определить, устанавливать ли соответствующий элемент кодирования в качестве граничного нулевого элемента кодирования. В качестве примера, блок кодирования, в котором по меньшей мере одна из ширины или высоты блока кодирования меньше порогового значения, может быть кодирован в режиме пропуска, или коэффициенты преобразования могут быть установлены равными 0.[00173] Alternatively, by comparing at least one of the width or height of the encoding block generated by dividing the atypical boundary edge block with a threshold value, it is possible to determine whether to set the corresponding encoding element as a boundary zero encoding element. As an example, a coding block in which at least one of the coding block width or height is less than a threshold value may be encoded in a skip mode, or the transform coefficients may be set to 0.

[00174] На фиг. 10 представлено схематическое изображение, показывающее аспект кодирования блока, смежного с границей изображения. Предполагается, что пороговое значение равно 8.[00174] In FIG. 10 is a schematic diagram showing an encoding aspect of a block adjacent to an image boundary. The threshold value is assumed to be 8.

[00175] Блок кодирования, в котором по меньшей мере одна из ширины или высоты меньше порогового значения, из блоков кодирования, сгенерированных путем разбиения нетипичного граничного краевого блока, может быть установлен как граничный нулевой элемент кодирования.[00175] An encoding block in which at least one of the width or height is less than a threshold value, from the encoding blocks generated by splitting the atypical boundary edge block, can be set as a boundary zero encoding element.

[00176] В качестве примера, в примере, показанном на фиг. 10, блок кодирования 4×16, блок кодирования 8×4 и блок кодирования 4×4 могут быть установлены как граничные нулевые элементы кодирования. Соответственно, блоки могут кодироваться в режиме пропуска, или коэффициенты преобразования блоков могут быть установлены равными 0.[00176] As an example, in the example shown in FIG. 10, a 4x16 coding block, an 8x4 coding block, and a 4x4 coding block can be set as boundary zero coding elements. Accordingly, the blocks may be encoded in skip mode, or the block transform coefficients may be set to 0.

[00177] То, установлен ли режим пропуска или коэффициент преобразования равным 0, может выборочно применяться к блоку кодирования, имеющему ширину и высоту, которые больше или равны пороговому значению. С этой целью флаг, указывающий, применяется ли режим пропуска к блоку кодирования, или флаг, указывающий, установлен ли коэффициент преобразования равным 0, может кодироваться и передаваться.[00177] Whether the skip mode or the transform coefficient is set to 0 may be selectively applied to a coding block having a width and a height that are greater than or equal to a threshold value. For this purpose, a flag indicating whether the skip mode is applied to the encoding block or a flag indicating whether the transform coefficient is set to 0 may be encoded and transmitted.

[00178] Альтернативно только элементы кодирования, сгенерированные посредством разбиения на основе двоичного дерева, могут быть разрешены для установки в качестве граничных нулевых элементов кодирования. Альтернативно только элементы кодирования, сгенерированные посредством разбиения на основе четвертичного дерева, могут быть разрешены для установки в качестве граничных нулевых элементов кодирования.[00178] Alternatively, only encoding elements generated by binary tree partitioning may be allowed to be set as boundary zero encoding elements. Alternatively, only encoding elements generated by quaternary tree partitioning may be allowed to be set as boundary zero encoding elements.

[00179] Предсказание, осуществляемое между изображениями, представляет собой режим предсказания, в котором текущий блок предсказывается с использованием информации о предыдущем изображении. В качестве примера, блок, включенный в предыдущее изображение и размещенный в таком же местоположении, что и текущий блок (далее называемый совмещаемым блоком), может быть установлен в качестве блока предсказания текущего блока. Блок предсказания, сгенерированный на основании блока, размещенного в таком же местоположении, что и текущий блок, будет называться совмещаемым блоком предсказания.[00179] Inter-picture prediction is a prediction 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 placed 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.

[00180] Между тем, когда объект, присутствующий в предыдущем изображении, перемещается в другое местоположение в текущем изображении, текущий блок может быть эффективно предсказан с использованием движения объекта. Например, когда направление движения и размер объекта могут быть найдены путем сравнения предыдущего изображения с текущим изображением, блок предсказания (или изображение предсказания) текущего блока может быть сгенерирован с учетом информации о движении объекта. Далее блок предсказания, сгенерированный с использованием информации о движении, может называться блоком предсказания движения.[00180] 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.

[00181] Остаточный блок может быть сгенерирован путем вычитания блока предсказания из текущего блока. В это время, когда присутствует движение объекта, можно уменьшить энергию остаточного блока и, соответственно, можно улучшить эффективность сжатия остаточного блока, используя блок предсказания движения вместо совмещаемого блока предсказания.[00181] 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.

[00182] Как описано выше, генерирование блока предсказания с использованием информации о движении может называться предсказанием с компенсацией движения. При предсказании, осуществляемом между изображениями, блок предсказания обычно может быть сгенерирован на основании предсказания с компенсацией движения.[00182] As described above, generating a prediction block using motion information may be called motion-compensated prediction. In inter-image prediction, a prediction block can generally be generated based on the motion compensated prediction.

[00183] Информация о движении может содержать по меньшей мере одно из вектора движения, индекса опорного изображения, направления предсказания или двунаправленного весового индекса. Вектор движения указывает направление движения и размер объекта. Индекс опорного изображения указывает опорное изображение текущего блока из опорных изображений, включенных в список опорных изображений. Направление предсказания указывает одно из однонаправленного предсказания L0, однонаправленного предсказания L1 или двунаправленного предсказания (предсказания L0 и предсказания L1). По меньшей мере одна из информации о движении в направлении L0 или информации о движении в направлении L1 может использоваться в зависимости от направления предсказания текущего блока. Двунаправленный весовой индекс указывает весовой коэффициент, применяемый к блоку предсказания L0, и весовой коэффициент, применяемый к блоку предсказания L1.[00183] 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.

[00184] На фиг. 11 представлена блок-схема способа предсказания, осуществляемого между изображениями, согласно варианту осуществления настоящего изобретения.[00184] In FIG. 11 is a flowchart of an inter-image prediction method according to an embodiment of the present invention.

[00185] Обращаясь к фиг. 11, способ предсказания, осуществляемого между изображениями, включает определение (S1101) режима предсказания, осуществляемого между изображениями, текущего блока, получение (S1102) информации о движении текущего блока в соответствии с определенным режимом предсказания, осуществляемого между изображениями, и выполнение предсказания с компенсацией движения (S1103) в отношении текущего блока на основании полученной информации о движении.[00185] Referring to FIG. 11, the inter-picture prediction method includes determining (S1101) an inter-picture prediction mode of a current block, obtaining (S1102) motion information of the current block according to the determined inter-picture prediction mode, and performing motion compensation prediction (S1102). (S1103) regarding the current block based on the received motion information.

[00186] В этом случае режим предсказания, осуществляемого между изображениями, который представляет различные методы для определения информации о движении текущего блока, может включать режим предсказания, осуществляемого между изображениями, с использованием информации о поступательном движении и режим предсказания, осуществляемого между изображениями, с использованием информации об аффинном движении. В качестве примера, режим предсказания, осуществляемого между изображениями, с использованием информации о поступательном движении может включать режим слияния и режим предсказания вектора движения, а режим предсказания, осуществляемого между изображениями, с использованием информации об аффинном движении может включать режим аффинного слияния и режим предсказания вектора аффинного движения. Информация о движении текущего блока может быть определена на основании информации, проанализированной из битового потока или блоков, соседних с текущим блоком, в соответствии с режимом предсказания, осуществляемого между изображениями.[00186] 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.

[00187] Способ предсказания, осуществляемого между изображениями, с использованием информации о поступательном движении будет подробно описан ниже.[00187] An inter-image prediction method using translational motion information will be described in detail below.

[00188] Информация о движении текущего блока может быть получена из информации о движении блока, отличного от текущего блока. В этом случае другой блок может представлять собой блок, который кодируется или декодируется посредством предсказания, осуществляемого между изображениями, раньше, чем текущий блок. Установка информации о движении текущего блока такой же, как информация о движении другого блока, может быть задана как режим слияния. Кроме того, установка вектора движения другого блока в качестве значения предсказания вектора движения текущего блока может быть задана как режим предсказания вектора движения.[00188] The movement information of the current block can be obtained from the movement 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.

[00189] На фиг. 12 представлена блок-схема процесса получения информации о движении текущего блока в режиме слияния.[00189] In FIG. 12 shows a flowchart of the process of obtaining information about the movement of the current block in the merge mode.

[00190] Может быть получен (S1201) кандидат на слияние текущего блока. Кандидат на слияние текущего блока может быть получен из блока, который кодируется или декодируется посредством предсказания, осуществляемого между изображениями, раньше, чем текущий блок.[00190] A merge candidate of the current block may be obtained (S1201). 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.

[00191] На фиг. 13 представлено схематическое изображение, иллюстрирующее кандидатные блоки, используемые для получения кандидата на слияние.[00191] In FIG. 13 is a schematic diagram illustrating candidate blocks used to obtain a merge candidate.

[00192] Кандидатные блоки могут включать по меньшей мере один из соседних блоков, содержащих отсчет, смежный с текущим блоком, или несоседних блоков, содержащих отсчет, который не является смежным с текущим блоком. Далее отсчеты для определения кандидатных блоков задаются в качестве опорных отсчетов. Кроме того, опорный отсчет, смежный с текущим блоком, будет называться соседним опорным отсчетом, а опорный отсчет, который не является смежным с текущим блоком, будет называться несоседним опорным отсчетом.[00192] Candidate blocks may include at least one of adjacent blocks containing a sample adjacent to the current block or non-adjacent blocks containing a sample that is not adjacent to the current block. Next, the samples for determining candidate blocks are set as reference samples. In addition, a reference sample adjacent to the current block will be called an adjacent reference sample, and a reference sample that is not adjacent to the current block will be called a non-adjacent reference sample.

[00193] Соседний опорный отсчет может быть включен в столбец, соседний с крайним левым столбцом текущего блока, или строку, соседнюю с верхней строкой текущего блока. В качестве примера, когда координаты верхнего левого отсчета текущего блока равны (0, 0), по меньшей мере один из блока, содержащего опорный отсчет, расположенный в (-1, H-1), блока, содержащего опорный отсчет, расположенный в (W-1, -1), блока, содержащего опорный отсчет, расположенный в (W, -1), блока, содержащего опорный отсчет, расположенный в (-1, H), или блока, содержащего опорный отсчет, расположенный в (-1, -1), может использоваться в качестве кандидатного блока. Ссылаясь на графические материалы, соседние блоки с индексами от 0 до 4 могут использоваться в качестве кандидатных блоков.[00193] The adjacent reference sample may be included in a column adjacent to the leftmost column of the current block, or a row adjacent to the top row of 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. Referring to the graphics, neighboring blocks with indices 0 to 4 can be used as candidate blocks.

[00194] Несоседний опорный отсчет указывает на отсчет, в котором по меньшей мере одно из расстояния по оси x или расстояния по оси y от опорного отсчета, смежного с текущим блоком, имеет предварительно заданное значение. В качестве примера, по меньшей мере один из блока, содержащего опорный отсчет, в котором расстояние по оси x от левого опорного отсчета имеет предварительно заданное значение, блока, содержащего несоседний отсчет, в котором расстояние по оси y от верхнего опорного отсчета имеет предварительно заданное значение, или блока, содержащего несоседний отсчет, в котором расстояние по оси x и расстояние по оси y от верхнего левого опорного отсчета имеют предварительно заданное значение, может использоваться в качестве кандидатного блока. Предварительно заданное значение может быть натуральным числом, например 4, 8, 12 и 16. Ссылаясь на графические материалы, по меньшей мере один из блоков с индексами от 5 до 26 может использоваться в качестве кандидатного блока.[00194] A non-adjacent reference count indicates a count in which at least one of the x-axis distance or the y-axis distance from a reference count adjacent to the current block has a predetermined value. As an example, at least one of a block containing a reference sample in which an x-axis distance from a left reference sample has a predetermined value, a block containing a non-adjacent sample in which a y-axis distance from an upper reference sample has a predetermined value , or a block containing a non-adjacent sample in which the x-axis distance and the y-axis distance from the top left reference sample have a predetermined value, can be used as a candidate block. The predetermined value may be a natural number, such as 4, 8, 12, and 16. Referring to the drawings, at least one of the blocks with indices 5 to 26 may be used as a candidate block.

[00195] Отсчет, который не расположен на той же вертикальной линии, горизонтальной линии или диагональной линии, что и соседний опорный отсчет, может быть установлен как несоседний опорный отсчет.[00195] A sample that is not located on the same vertical line, horizontal line, or diagonal line as an adjacent reference sample may be set as a non-adjacent reference sample.

[00196] На фиг. 14 представлено схематическое изображение, показывающее местоположения опорных отсчетов.[00196] In FIG. 14 is a schematic diagram showing locations of reference samples.

[00197] Как и в примере, показанном на фиг. 14, координаты x верхних несоседних опорных отсчетов могут быть установлены отличными от координат x верхних соседних опорных отсчетов. В качестве примера, когда местоположение верхнего соседнего опорного отсчета равно (W-1, -1), местоположение верхнего несоседнего опорного отсчета, расположенного на расстоянии от верхнего соседнего опорного отсчета на N по оси y, устанавливается равным ((W/2)-1, -1-N), а местоположение верхнего несоседнего опорного отсчета, расположенного на расстоянии от верхнего соседнего опорного отсчета по оси y на 2N, может быть установлено равным (0, -1-2N). То есть местоположение несмежного опорного отсчета может быть определено на основании местоположения смежного опорного отсчета и расстояния от смежного опорного отсчета.[00197] As in the example shown in FIG. 14, the x-coordinates of the top non-adjacent reference samples may be set to be different from the x-coordinates of the top adjacent reference samples. As an example, when the location of the top neighbor reference sample is (W-1, -1), the location of the top non-neighbor reference sample located at a distance from the top neighbor reference sample by N along the y-axis is set to ((W/2)-1 , -1-N), and the location of the top non-adjacent reference sample located at a distance of 2N from the top adjacent reference sample in the y-axis can be set to (0, -1-2N). That is, the location of the non-adjacent reference sample can be determined based on the location of the adjacent reference sample and the distance from the adjacent reference sample.

[00198] Далее среди кандидатных блоков кандидатный блок, содержащий соседний опорный отсчет, будет называться соседним блоком, а блок, содержащий несоседний опорный отсчет, будет называться несоседним блоком.[00198] Hereafter, among the candidate blocks, a candidate block containing an adjacent reference sample will be called an adjacent block, and a block containing a non-adjacent reference sample will be called a non-adjacent block.

[00199] Когда расстояние между текущим блоком и кандидатным блоком больше или равно пороговому значению, кандидатный блок может быть установлен как недоступный в качестве кандидата на слияние. Пороговое значение может быть определено на основании размера элемента кодового дерева. В качестве примера, пороговое значение может быть установлено равным высоте элемента кодового дерева (ctu_height) или высоте элемента кодового дерева плюс или минус смещение (например, ctu_height±N). Смещение N, которое является значением, предварительно заданным в кодере или декодере, может быть установлено равным 4, 8, 16, 32 или ctu_height.[00199] When the distance between the current block and a candidate block is greater than or equal to a threshold value, the candidate block may be set as unavailable as a merge candidate. The threshold value may be determined based on the size of the code tree element. As an example, the threshold may be set equal to the height of the code tree element (ctu_height) or the height of the code tree element plus or minus an offset (eg, ctu_height±N). The offset N, which is a value preset in the encoder or decoder, can be set to 4, 8, 16, 32 or ctu_height.

[00200] Когда расстояние между координатой y текущего блока и координатой y отсчета, включенного в кандидатный блок, больше, чем пороговое значение, может быть определено, что кандидатный блок недоступен в качестве кандидата на слияние.[00200] When the distance between the y-coordinate of the current block and the y-coordinate of a sample included in the candidate block is greater than a threshold value, it may be determined that the candidate block is not available as a merge candidate.

[00201] Альтернативно кандидатный блок, который не принадлежит тому же элементу кодового дерева, что и текущий блок, может быть установлен как недоступный в качестве кандидата на слияние. В качестве примера, когда опорный отсчет отклоняется от верхнего края элемента кодового дерева, которому принадлежит текущий блок, кандидатный блок, содержащий опорный отсчет, может быть установлен как недоступный в качестве кандидата на слияние.[00201] Alternatively, a candidate block that does not belong to the same code tree element as the current block may be set as 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.

[00202] Когда верхний край текущего блока является смежным с верхним краем элемента кодового дерева, может быть определено, что множество кандидатных блоков недоступно в качестве кандидатов на слияние, и эффективность кодирования или декодирования текущего блока может быть снижена. Для решения такой проблемы кандидатные блоки могут быть установлены таким образом, чтобы количество кандидатных блоков, расположенных слева от текущего блока, было больше, чем количество кандидатных блоков, расположенных над текущим блоком.[00202] When the top edge of the current block is adjacent to the top edge of a code tree element, it may be determined that a plurality of candidate blocks are not available as merge candidates, and the encoding or decoding efficiency of the current block may be reduced. To solve such a problem, candidate blocks can be set so that the number of candidate blocks located to the left of the current block is greater than the number of candidate blocks located above the current block.

[00203] На фиг. 15 представлено схематическое изображение, иллюстрирующее кандидатные блоки, используемые для получения кандидата на слияние.[00203] In FIG. 15 is a schematic diagram illustrating candidate blocks used to obtain a merge candidate.

[00204] Как и в примере, показанном на фиг. 15, верхние блоки, принадлежащие N верхним столбцам блоков текущего блока, и левые блоки, принадлежащие M левым столбцам блоков текущего блока, могут быть установлены в качестве кандидатных блоков. В этом случае, устанавливая M больше N, количество левых кандидатных блоков может быть установлено больше, чем количество верхних кандидатных блоков.[00204] As in the example shown in FIG. 15, the top blocks belonging to the N top block columns of the current block and the left blocks belonging to the M left block columns of the current block can be set as candidate blocks. In this case, by setting M greater than N, the number of left candidate blocks can be set to be greater than the number of top candidate blocks.

[00205] В качестве примера, установка может быть выполнена таким образом, чтобы разница между координатой y опорного отсчета в текущем блоке и координатой y верхнего блока, доступного в качестве кандидатного блока, не превышала в N раз высоту текущего блока. Кроме того, установка может быть выполнена таким образом, чтобы разница между координатой x опорного отсчета в текущем блоке и координатой x левого блока, доступного в качестве кандидатного блока, не превышала в M раз ширину текущего блока.[00205] As an example, the setting may be made such that the difference between the y-coordinate of the reference sample in the current block and the y-coordinate of the upper block available as a candidate block is not N times the height of the current block. In addition, the setting can be made such that the difference between the x-coordinate of the reference sample in the current block and the x-coordinate of the left block available as a candidate block is not greater than M times the width of the current block.

[00206] В качестве примера, на фиг. 15 показано, что блоки, принадлежащие двум верхним столбцам блоков текущего блока, и блоки, принадлежащие пяти левым столбцам блоков текущего блока, устанавливаются в качестве кандидатных блоков.[00206] As an example, in FIG. 15 shows that blocks belonging to the top two block columns of the current block and blocks belonging to the left five block columns of the current block are set as candidate blocks.

[00207] В качестве другого примера, когда кандидатный блок не принадлежит элементу кодового дерева отсчета в качестве текущего блока, кандидат на слияние может быть получен с использованием блока, принадлежащего тому же элементу кодового дерева, что и текущий блок, или блока, содержащего опорный отсчет, смежный с краем элемента кодового дерева, вместо кандидатного блока.[00207] As another example, when a candidate block does not belong to a sample code tree element as the current block, a merge candidate may be obtained using a block belonging to the same code tree element as the current block or a block containing a reference sample , adjacent to the edge of the code tree element, instead of the candidate block.

[00208] На фиг. 16 представлено схематическое изображение, показывающее пример, в котором местоположение опорного отсчета изменено.[00208] In FIG. 16 is a schematic diagram showing an example in which the location of the reference count is changed.

[00209] Когда опорный отсчет включен в элемент кодового дерева, отличный от элемента текущего блока, и не является смежным с краем элемента кодового дерева, кандидатный блок может быть определен с использованием опорного отсчета, смежного с краем элемента кодового дерева, вместо опорного отсчета.[00209] When a reference sample is included in a code tree element other than the current block element and is not adjacent to the edge of the code tree element, a candidate block may be determined using a reference sample adjacent to the edge of the code tree element instead of the reference sample.

[00210] В качестве примера, в примерах, показанных на фиг. 16A и 16B, когда верхний край текущего блока является прилегающим к верхнему краю элемента кодового дерева, опорные отсчеты, расположенные над текущим блоком, принадлежат элементу кодового дерева, отличному от элемента текущего блока. Опорный отсчет, который не является смежным с верхним краем элемента кодового дерева, из опорных отсчетов, принадлежащих элементу кодового дерева, отличному от элемента текущего блока, может быть заменен отсчетом, смежным с верхним краем элемента кодового дерева.[00210] As an example, in the examples shown in FIGS. 16A and 16B, when the top edge of the current block is adjacent to the top edge of the code tree element, the reference samples located above the current block belong to a code tree element different from the current block element. A reference sample that is not adjacent to the top edge of a code tree element, from reference samples belonging to a code tree element other than the current block element, may be replaced by a sample adjacent to the top edge of a code tree element.

[00211] Например, опорный отсчет в местоположении №6 может быть заменен отсчетом в местоположении №6', размещенным на верхнем краю элемента кодового дерева, как в примере, показанном на фиг. 16A, и опорный отсчет в местоположении №15 может быть заменен отсчетом в местоположении №15', размещенным на верхнем краю элемента кодового дерева, как в примере, показанном на фиг. 16B. В этом случае координата y альтернативного отсчета может быть изменена на координату y местоположения, смежного с элементом кодового дерева, а координата x альтернативного отсчета может быть установлена равной координате x опорного отсчета. В качестве примера, отсчет в местоположении №6' может иметь такую же координату x, что и отсчет в местоположении №6, а отсчет в местоположении №15' может иметь такую же координату x, что и отсчет в местоположении №15.[00211] For example, the reference sample at location #6 may be replaced with a sample at location #6' placed at the top edge of the code tree element, as in the example shown in FIG. 16A, and the reference sample at location #15 may be replaced by a sample at location #15' placed at the top edge of the code tree element, as in the example shown in FIG. 16B. In this case, the y-coordinate of the alternate sample can be changed to the y-coordinate of a location adjacent to the code tree element, and the x-coordinate of the alternate sample can be set equal to the x-coordinate of the reference sample. As an example, the sample at location #6' may have the same x-coordinate as the sample at location #6, and the sample at location #15' may have the same x-coordinate as the sample at location #15.

[00212] Альтернативно значение, полученное путем сложения смещения с координатой x опорного отсчета или вычитания из нее, может быть установлено в качестве координаты x альтернативного отсчета. В качестве примера, когда несоседний опорный отсчет и соседний опорный отсчет, расположенный над текущим блоком, имеют одинаковую координату x, значение, полученное путем сложения смещения с координатой x опорного отсчета или вычитания из нее, может быть установлено в качестве координаты x альтернативного отсчета. Это сделано для предотвращения размещения альтернативного отсчета, заменяющего несоседний опорный отсчет, в таком же местоположении, что и другой несоседний опорный отсчет или соседний опорный отсчет.[00212] Alternatively, the value obtained by adding or subtracting the offset to the x-coordinate of the reference sample may be set as the x-coordinate of the alternate sample. As an example, when a non-adjacent reference sample and an adjacent reference sample located above the current block have the same x-coordinate, the value obtained by adding or subtracting the offset to the x-coordinate of the reference sample can be set as the x-coordinate of the alternate sample. This is done to prevent an alternate sample replacing a non-adjacent reference sample from being placed in the same location as another non-adjacent reference sample or an adjacent reference sample.

[00213] На фиг. 17 представлено схематическое изображение, показывающее пример, в котором местоположение опорного отсчета изменено.[00213] In FIG. 17 is a schematic diagram showing an example in which the location of the reference count is changed.

[00214] Когда опорный отсчет, который включен в элемент кодового дерева, отличный от элемента текущего блока, и который не является смежным с краем элемента кодового дерева, заменяется отсчетом, расположенным на краю элемента кодового дерева, значение, получаемое путем сложения смещения с координатой x опорного отсчета или вычитания из нее, можно установить в качестве координаты x альтернативного отсчета.[00214] When a reference sample that is included in a code tree element other than the current block element and that is not adjacent to the edge of the code tree element is replaced by a sample located at the edge of the code tree element, the value obtained by adding the offset to the x coordinate reference reading or subtraction from it, can be set as the x-coordinate of the alternate reading.

[00215] В качестве примера, в примере, показанном на фиг. 17, опорный отсчет в местоположении №6 и опорный отсчет в местоположении №15 могут быть заменены отсчетом в местоположении №6' и отсчетом в местоположении №15', которые имеют такую же координату y, что и строка, смежная с верхним краем элемента кодового дерева. В этом случае координата x отсчета в местоположении №6' может быть установлена равной значению, полученному путем вычитания W/2 из координаты x опорного отсчета в местоположении №6, а координата x отсчета в местоположении №15' может быть установлена равной значению, полученному путем вычитания W-1 из координаты x опорного отсчета в местоположении №15.[00215] As an example, in the example shown in FIG. 17, the reference sample at location #6 and the reference sample at location #15 may be replaced by the sample at location #6' and the sample at location #15', which have the same y-coordinate as the row adjacent to the top edge of the code tree element . In this case, the x-coordinate of the reference at location No. 6' can be set to the value obtained by subtracting W/2 from the x-coordinate of the reference sample at location No. 6, and the x-coordinate of the reference at location No. 15' can be set to the value obtained by subtracting W-1 from the x-coordinate of the reference reading at location #15.

[00216] В отличие от примеров, показанных на фиг. 16 и 17, координата y строки, расположенной над верхней строкой текущего блока, или координата y верхнего края элемента кодового дерева может быть установлена равной координате y альтернативного отсчета.[00216] Unlike the examples shown in FIGS. 16 and 17, the y-coordinate of a row located above the top row of the current block, or the y-coordinate of the top edge of a code tree element, can be set equal to the y-coordinate of the alternate reference.

[00217] Хотя это не показано, отсчет, заменяющий опорный отсчет, может быть определен на основании левого края элемента кодового дерева. В качестве примера, когда опорный отсчет не включен в тот же элемент кодового дерева, что и текущий блок, и не является смежным с левым краем элемента кодового дерева, опорный отсчет может быть заменен отсчетом, смежным с левым краем элемента кодового дерева. В этом случае альтернативный отсчет может иметь такую же координату y, что и опорный отсчет, и может иметь координату y, полученную путем сложения смещения с координатой y опорного отсчета или вычитания из нее.[00217] Although not shown, a sample replacing the reference sample may be determined based on the left edge of the code tree element. As an example, when the reference sample is not included in the same code tree element as the current block and is not adjacent to the left edge of the code tree element, the reference sample may be replaced by a sample adjacent to the left edge of the code tree element. In this case, the alternate sample may have the same y-coordinate as the reference sample, and may have a y-coordinate obtained by adding the offset to or subtracting the y-coordinate of the reference sample.

[00218] Впоследствии блок, содержащий альтернативный отсчет, может быть установлен в качестве кандидатного блока, и кандидат на слияние текущего блока может быть получен на основании кандидатного блока.[00218] Subsequently, the block containing the alternative sample can be set as a candidate block, and a merge candidate of the current block can be obtained based on the candidate block.

[00219] Кандидат на слияние может быть получен из временного соседнего блока, включенного в изображение, отличное от изображения текущего блока. В качестве примера, кандидат на слияние может быть получен из совмещаемого блока, включенного в совмещаемое изображение.[00219] 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.

[00220] Информация о движении кандидата на слияние может быть установлена равной информации о движении кандидатного блока. В качестве примера, по меньшей мере одно из вектора движения, индекса опорного изображения, направления предсказания или двунаправленного весового индекса кандидатного блока может быть установлено в качестве информации о движении кандидата на слияние.[00220] 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.

[00221] Может генерироваться (S1202) список кандидатов на слияние, содержащий кандидатов на слияние. Кандидаты на слияние могут быть разделены на смежных кандидатов на слияние, полученных из соседних блоков, смежных с текущим блоком, и несмежных кандидатов на слияние, полученных из несоседних блоков.[00221] A merge candidate list may be generated (S1202) containing the merge candidates. Merge candidates can be divided into contiguous merge candidates obtained from adjacent blocks adjacent to the current block, and non-adjacent merge candidates obtained from non-adjacent blocks.

[00222] Кандидатам на слияние из списка кандидатов на слияние могут быть присвоены индексы в предварительно определенном порядке. В качестве примера, индекс, присвоенный смежному кандидату на слияние, может иметь меньшее значение, чем индекс, присвоенный несмежному кандидату на слияние. Альтернативно индекс может быть присвоен каждому из кандидатов на слияние на основании индексов блоков, показанных на фиг. 13 или 15.[00222] Merge candidates from a list of merge candidates may be assigned indices in a predetermined order. As an example, an index assigned to an adjacent merge candidate may have a lower value than an index assigned to a non-adjacent merge candidate. Alternatively, an index may be assigned to each of the merge candidates based on the block indices shown in FIG. 13 or 15.

[00223] Когда множество кандидатов на слияние включены в кандидата на слияние, может быть выбран (S1203) по меньшей мере один из множества кандидатов на слияние. В этом случае информация, указывающая, получена ли информация о движении текущего блока из смежного кандидата на слияние, может передаваться в битовом потоке. Информация может представлять собой 1-битный флаг.В качестве примера, элемент синтаксиса isAdjancentMergeFlag, который указывает, получена ли информация о движении текущего блока из смежного кандидата на слияние, может передаваться в битовом потоке. Когда значение элемента синтаксиса isAdjancentMergeFlag равно 1, информация о движении текущего блока может быть получена на основании смежного кандидата на слияние. С другой стороны, когда значение элемента синтаксиса isAdjancentMergeFlag равно 0, информация о движении текущего блока может быть получена на основании несмежного кандидата на слияние.[00223] When a plurality of merge candidates are included in the merge candidate, at least one of the plurality of merge candidates may be selected (S1203). In this case, information indicating whether movement information of the current block is obtained from an adjacent merge candidate may be transmitted in the bit stream. The information may be a 1-bit flag. As an example, the isAdjancentMergeFlag syntax element, which indicates whether the current block's movement information is derived from an adjacent merge candidate, may be carried in a bit stream. When the value of the isAdjancentMergeFlag syntax element is 1, information about the movement of the current block can be obtained based on the adjacent merge candidate. On the other hand, when the value of the isAdjancentMergeFlag syntax element is 0, information about the movement of the current block can be obtained based on the non-adjacent merge candidate.

[00224] В таблице 1 представлена таблица синтаксиса, содержащая элемент синтаксиса isAdjancentMergeFlag.[00224] Table 1 shows a syntax table containing the isAdjancentMergeFlag syntax element.

[00225] [Таблица 1][00225] [Table 1]

[00226] Информация для указания одного из множества кандидатов на слияние может передаваться в битовом потоке. В качестве примера, информация, указывающая индекс одного из кандидатов на слияние, включенных в список кандидатов на слияние, может передаваться в битовом потоке.[00226] Information to indicate one of a plurality of merge candidates may be transmitted in a bit stream. As an example, information indicating the index of one of the merge candidates included in the list of merge candidates may be transmitted in a bitstream.

[00227] Когда isAdjacentMergeflag равен 1, может быть передан элемент синтаксиса merge_idx, который предназначен для указания одного из смежных кандидатов на слияние. Максимальное значение элемента синтаксиса merge_idx может быть установлено равным значению, полученному путем вычитания элемента из количества смежных кандидатов на слияние.[00227] When isAdjacentMergeflag is 1, a merge_idx syntax element may be passed, which is intended to indicate one of the adjacent merge candidates. The maximum value of a merge_idx syntax element can be set to the value obtained by subtracting the element from the number of contiguous merge candidates.

[00228] Когда isAdjacentMergeflag равен 0, может быть передан элемент синтаксиса NA_merge_idx, который предназначен для указания одного из несмежных кандидатов на слияние. Элемент синтаксиса NA_merge_idx представляет значение, полученное путем вычитания количества смежных кандидатов на слияние из индекса несмежного кандидата на слияние. Декодер может выбрать несмежного кандидата на слияние путем сложения количества смежных кандидатов на слияние с индексом, указанным посредством NA_merge_idx.[00228] When isAdjacentMergeflag is 0, a NA_merge_idx syntax element may be passed, which is intended to indicate one of the non-adjacent merge candidates. The NA_merge_idx syntax element represents the value obtained by subtracting the number of contiguous merge candidates from the index of the non-contiguous merge candidate. The decoder may select a non-contiguous merge candidate by adding the number of contiguous merge candidates with the index specified by NA_merge_idx.

[00229] Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем максимальное значение, кандидат на слияние, включенный в таблицу информации о движении между участками, может быть добавлен в список кандидатов на слияние. Таблица информации о движении между участками может содержать кандидата на слияние, полученного на основании блока, который кодирован или декодирован раньше текущего блока.[00229] When the number of merge candidates included in the merge candidate list is less than the maximum value, the merge candidate included in the inter-site traffic information table may be added to the merge candidate list. The inter-hop traffic information table may contain a merge candidate obtained based on a block that is encoded or decoded before the current block.

[00230] Таблица информации о движении между участками содержит кандидата на слияние, полученного из блока, который кодируется или декодируется на основании предсказания, осуществляемого между изображениями, в текущем изображении. В качестве примера, информация о движении кандидата на слияние, включенная в таблицу информации о движении между участками, может быть установлена равной информации о движении блока, кодированного или декодированного на основании предсказания, осуществляемого между изображениями. В этом случае информация о движении может содержать по меньшей мере одно из вектора движения, индекса опорного изображения, направления предсказания или двунаправленного весового индекса.[00230] 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.

[00231] Для удобства описания кандидат на слияние, включенный в таблицу информации о движении между участками, будет называться кандидатом на слияние между участками.[00231] 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.

[00232] Максимальное количество кандидатов на слияние, которые могут быть включены в таблицу информации о движении между участками, может быть предварительно задано в кодере и декодере. В качестве примера, максимальное количество кандидатов на слияние, которые могут быть включены в таблицу информации о движении между участками, может составлять 1, 2, 3, 4, 5, 6, 7, 8 или более (например, 16).[00232] The maximum number of merge candidates that can be included in the inter-section 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).

[00233] Альтернативно информация, указывающая максимальное количество кандидатов на слияние в таблице информации о движении между участками, может передаваться в битовом потоке. Информация может передаваться на уровне последовательности, изображения или слайса.[00233] Alternatively, information indicating the maximum number of merge candidates in the inter-section traffic information table may be transmitted in the bit stream. Information can be transferred at the sequence, image or slice level.

[00234] Альтернативно максимальное количество кандидатов на слияние таблицы информации о движении между участками может быть определено в зависимости от размера изображения, размера слайса или размера элемента кодового дерева.[00234] Alternatively, the maximum number of cross-section motion information table merging candidates may be determined depending on the image size, slice size, or code tree element size.

[00235] Таблица информации о движении между участками может быть инициализирована в элементах изображений, слайсов, пакетов, элементов кодового дерева или линий элементов кодового дерева (строк и столбцов). В качестве примера, при инициализации слайса таблица информации о движении между участками также инициализируется и может не содержать кандидата на слияние.[00235] 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.

[00236] Альтернативно информация, указывающая, следует ли инициализировать таблицу информации о движении между участками, может передаваться в битовом потоке. Информация может передаваться на уровне слайса, тайла, пакета или блока. Ранее сконфигурированная таблица информации о движении между участками может использоваться до тех пор, пока информация не укажет на инициализацию таблицы информации о движении между участками.[00236] 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 previously configured inter-leg traffic information table may be used until the information indicates that the inter-leg traffic information table has been initialized.

[00237] Альтернативно информация, касающаяся начального кандидата на слияние между участками, может передаваться посредством набора параметров изображения или заголовка слайса. Даже если слайс инициализирован, таблица информации о движении между участками может содержать начального кандидата на слияние между участками. Соответственно, кандидат на слияние между участками может использоваться для блока, который подлежит кодированию или декодированию первым в слайсе.[00237] 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.

[00238] Блоки могут быть кодированы или декодированы в порядке кодирования или декодирования, и блоки, кодированные или декодированные на основании предсказания, осуществляемого между изображениями, могут быть последовательно установлены в качестве кандидатов на слияние между участками в порядке кодирования или декодирования.[00238] Blocks may be encoded or decoded in the encoding or decoding order, and blocks encoded or decoded based on the prediction performed between pictures can be sequentially set as fusion candidates between sections in the encoding or decoding order.

[00239] На фиг. 18 представлено схематическое изображение для описания аспекта обновления таблицы информации о движении между участками.[00239] In FIG. 18 is a schematic diagram for describing an aspect of updating an inter-section traffic information table.

[00240] Когда предсказание, осуществляемое между изображениями, выполняется (S1801) в отношении текущего блока, кандидат на слияние между участками может быть получен (S1802) на основании текущего блока. Информация о движении кандидата на слияние между участками может быть установлена равной информации о движении текущего блока.[00240] When inter-picture prediction is performed (S1801) on the current block, an inter-patch fusion candidate can be obtained (S1802) 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.

[00241] Когда таблица информации о движении между участками пуста (S1803), кандидат на слияние между участками, полученный на основании текущего блока, может быть добавлен (S1804) в таблицу информации о движении между участками.[00241] When the inter-section traffic information table is empty (S1803), the inter-section merging candidate obtained based on the current block can be added (S1804) to the inter-section traffic information table.

[00242] Когда таблица информации о движении между участками уже содержит кандидата на слияние между участками (S1803), контроль по избыточности может выполняться в отношении информации о движении текущего блока (или кандидата на слияние между участками, полученного на основании информации о движении) (S1805). Контроль по избыточности предназначен для определения, совпадает ли информация о движении текущего блока с информацией о движении кандидата на слияние между участками, предварительно сохраненного в таблице информации о движении между участками. Контроль по избыточности может выполняться в отношении всех кандидатов на слияние между участками, предварительно сохраненных в таблице информации о движении между участками. Альтернативно контроль по избыточности может выполняться в отношении кандидатов на слияние между участками с индексами, превышающими или равными пороговому значению, или индексами, меньшими или равными пороговому значению, из кандидатов на слияние между участками, предварительно сохраненных в таблице информации о движении между участками.[00242] When the inter-section traffic information table already contains an inter-section merging candidate (S1803), redundancy control may be performed on the movement information of the current block (or the inter-section merging candidate obtained based on the traffic information) (S1805 ). 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, from inter-site merge candidates previously stored in the inter-site traffic information table.

[00243] Когда не включен кандидат на слияние предсказания, осуществляемого между изображениями, имеющий такую же информацию о движении, что и текущий блок, кандидат на слияние между участками, полученный на основании текущего блока, может быть добавлен (S1808) в таблицу информации о движении между участками. То, идентичны ли кандидаты на слияние предсказания, осуществляемого между изображениями, можно определить на основании того, имеют ли кандидаты на слияние предсказания, осуществляемого между изображениями, такую же информацию о движении (например, вектор движения и/или индекс опорного изображения).[00243] 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 (S1808) to the motion information table between sites. 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).

[00244] В этом случае, когда максимальное количество кандидатов на слияние между участками предварительно сохранено в таблице информации о движении между участками (S1806), самый старый кандидат на слияние между участками удаляется (S1807), а кандидат на слияние между участками, полученный на основании текущего блока, может быть добавлен (S1808) в таблицу информации о движении между участками.[00244] In this case, when the maximum number of inter-area merging candidates is previously stored in the inter-area traffic information table (S1806), the oldest inter-area merging candidate is deleted (S1807), and the inter-area merging candidate obtained based on current block may be added (S1808) to the inter-section traffic information table.

[00245] Кандидаты на слияние между участками могут быть идентифицированы по своим индексам. Когда кандидат на слияние между участками, полученный из текущего блока, добавляется в таблицу информации о движении между участками, наименьший индекс (например, 0) присваивается кандидату на слияние между участками, а индексы предварительно сохраненных кандидатов на слияние между участками могут быть увеличены на единицу. В этом случае, когда максимальное количество кандидатов на слияние предсказания, осуществляемого между изображениями, предварительно сохранено в таблице информации о движении между участками, кандидат на слияние между участками с наибольшим индексом удаляется.[00245] 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.

[00246] Альтернативно, когда кандидат на слияние между участками, полученный из текущего блока, добавляется в таблицу информации о движении между участками, кандидату на слияние между участками может быть присвоен наибольший индекс.В качестве примера, когда количество кандидатов на слияние предсказания, осуществляемого между изображениями, предварительно сохраненных в таблице информации о движении между участками, меньше максимального значения, индекс, имеющий то же значение, что и количество предварительно сохраненных кандидатов на слияние предсказания, осуществляемого между изображениями, может быть присвоен кандидату на слияние между участками. Альтернативно, когда количество кандидатов на слияние предсказания, осуществляемого между изображениями, предварительно сохраненных в таблице информации о движении между участками, равно максимальному значению, кандидату на слияние между участками может быть присвоен индекс, имеющий максимальное значение минус 1. Кроме того, кандидат на слияние между участками с наименьшим индексом удаляется, а индексы других предварительно сохраненных кандидатов на слияние между участками уменьшаются на 1.[00246] Alternatively, when an inter-site fusion candidate obtained from the current block is added to the inter-site traffic information table, the inter-site fusion candidate may be assigned the largest index. As an example, when the number of prediction fusion candidates carried out between images 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-image prediction fusion candidates may be assigned to the inter-section fusion 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.

[00247] На фиг. 19 представлено схематическое изображение, показывающее аспект обновления таблицы кандидатов на слияние между участками.[00247] In FIG. 19 is a schematic diagram showing an aspect of updating an inter-site merge candidate table.

[00248] Поскольку кандидат на слияние между участками, полученный из текущего блока, добавляется в таблицу кандидатов на слияние между участками, предполагается, что наибольший индекс присваивается кандидату на слияние между участками. Также предполагается, что максимальное количество кандидатов на слияние между участками хранится в таблице кандидатов на слияние между участками.[00248] 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 highest 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.

[00249] Когда кандидат на слияние между участками HmvpCand[n+1], полученный из текущего блока, добавляется в таблицу кандидатов на слияние между участками HmvpCandList, кандидат на слияние между участками HmvpCand[0], который имеет наименьший индекс из предварительно сохраненных кандидатов на слияние между участками, может быть удален, а индексы других кандидатов на слияние между участками могут быть уменьшены на 1. Кроме того, индекс кандидата на слияние между участками HmvpCand[n+1], который получается из текущего блока, может быть установлен в качестве максимального значения (n в примере, показанном на фиг. 19).[00249] 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. 19).

[00250] Когда кандидат на слияние между участками, идентичный кандидату на слияние между участками, полученному на основании текущего блока, предварительно сохранен (S1805), кандидат на слияние между участками, полученный на основании текущего блока, может не добавляться (S1809) в таблицу информации о движении между участками.[00250] When an inter-area fusion candidate identical to an inter-area fusion candidate obtained based on the current block is previously stored (S1805), an inter-area fusion candidate obtained based on the current block may not be added (S1809) to the information table about movement between sections.

[00251] Альтернативно, в то время как кандидат на слияние между участками, полученный на основании текущего блока, добавляется в таблицу информации о движении между участками, предварительно сохраненный кандидат на слияние между участками, идентичный кандидату на слияние между участками, может быть удален. Это вызывает тот же эффект, что и обновление индексов предварительно сохраненных кандидатов на слияние между участками.[00251] 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.

[00252] На фиг. 20 представлено схематическое изображение, показывающее пример, в котором обновлен индекс предварительно сохраненного кандидата на слияние между участками.[00252] In FIG. 20 is a schematic diagram showing an example in which the index of a previously stored inter-site merge candidate is updated.

[00253] Когда индекс предварительно сохраненного кандидата на слияние предсказания, осуществляемого между изображениями, который идентичен кандидату на слияние между участками mvCand, который получается на основании текущего блока, равен hIdx, предварительно сохраненный кандидат на слияние предсказания, осуществляемого между изображениями, может быть удален, а индексы кандидатов на слияние предсказания, осуществляемого между изображениями, превышающие hIdx, могут быть уменьшены на 1. В качестве примера, на фиг. 20 показано, что HmvpCand[2], который идентичен mvCand, удален из таблицы информации о движении между участками HvmpCandList, и что индексы HmvpCand[3] - HmvpCand[n] уменьшены на 1.[00253] 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. 20 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.

[00254] Кроме того, кандидат на слияние между участками mvCand, который получается на основании текущего блока, может быть добавлен в конец таблицы информации о движении между участками.[00254] 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.

[00255] Альтернативно индекс, присвоенный предварительно сохраненному кандидату на слияние между участками, который идентичен кандидату на слияние между участками, полученному на основании текущего блока, может быть обновлен. Например, индекс предварительно сохраненного кандидата на слияние между участками может быть изменен на минимальное значение или максимальное значение.[00255] Alternatively, the 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.

[00256] Установка может быть выполнена таким образом, чтобы информация о движении блоков, включенных в предварительно определенную область, не добавлялась в таблицу информации о движении между участками. В качестве примера, кандидат на слияние между участками, полученный на основании информации о движении блока, включенного в область параллельного слияния, может не добавляться в таблицу информации о движении между участками. Поскольку порядок кодирования или декодирования не задан для блоков, включенных в область параллельного слияния, неуместно использовать информацию о движении одного из блоков для выполнения предсказания, осуществляемого между изображениями, в отношении других блоков. Соответственно, кандидаты на слияние между участками, полученные на основании блоков, включенных в область параллельного слияния, могут не добавляться в таблицу информации о движении между участками.[00256] The setting may be made such that movement information of blocks included in a predetermined area is not added to the inter-area movement information table. As an example, an inter-site merge candidate obtained based on the movement information of a block included in the parallel merge region may not be added to the inter-site movement information table. Since the encoding or decoding order is not specified for the blocks included in the parallel merging region, it is inappropriate to use the motion information of one of the blocks to perform inter-picture prediction on other blocks. Accordingly, inter-site merge candidates obtained based on blocks included in the parallel merge region may not be added to the inter-site traffic information table.

[00257] Когда предсказание с компенсацией движения выполняется в элементах подблоков, кандидат на слияние между участками может быть получен на основании информации о движении репрезентативного подблока из множества подблоков, включенных в текущий блок. В качестве примера, когда кандидат на слияние подблока используется для текущего блока, кандидат на слияние между участками может быть получен на основании информации о движении репрезентативного подблока из подблоков.[00257] When motion-compensated prediction is performed on subblock elements, an inter-region 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.

[00258] Векторы движения подблоков могут быть получены в следующем порядке. Сначала один кандидат на слияние может быть выбран из числа кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, и начальный вектор сдвига shVector может быть получен на основании вектора движения выбранного кандидата на слияние. Затем подблок сдвига, имеющий опорный отсчет, расположенный в (xColSb, yColSb), может быть получен путем сложения начального вектора сдвига с местоположением (xSb, ySb) опорного отсчета (например, верхнего левого отсчета или среднего отсчета) каждого подблока в блоке кодирования. В уравнении 1 ниже приведено уравнение для получения подблока сдвига.[00258] 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 1 below gives the equation to obtain the shift subblock.

[00259] [Уравнение 1][00259] [Equation 1]

[00260] Затем вектор движения совмещаемого блока, соответствующего центральному положению подблока, содержащего (xColSb, yColSb), может быть установлен как вектор движения подблока, содержащего (xSb, ySb).[00260] 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).

[00261] Репрезентативный подблок может относиться к подблоку, содержащему верхний левый отсчет или центральный отсчет текущего блока.[00261] A representative subblock may refer to a subblock containing the top left sample or center sample of the current block.

[00262] На фиг. 21 представлено схематическое изображение, показывающее местоположение репрезентативного подблока.[00262] In FIG. 21 is a schematic diagram showing the location of a representative subblock.

[00263] На фиг. 21A показан пример, в котором подблок, расположенный в верхнем левом углу текущего блока, установлен как репрезентативный подблок, и на фиг. 21B показан пример, в котором подблок, расположенный в центре текущего блока, установлен как репрезентативный подблок. Когда предсказание с компенсацией движения выполняется в элементах подблоков, кандидат на слияние между участками текущего блока может быть получен на основании вектора движения подблока, содержащего верхний левый отсчет текущего блока, или подблока, содержащего центральный отсчет текущего блока.[00263] In FIG. 21A shows an example in which a subblock located in the upper left corner of the current block is set as a representative subblock, and FIG. 21B 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.

[00264] То, использовать ли текущий блок в качестве кандидата на слияние между участками, также может быть определено на основании режима предсказания, осуществляемого между изображениями, текущего блока. В качестве примера, блок, который кодируется или декодируется на основании модели аффинного движения, может быть установлен как недоступный в качестве кандидата на слияние между участками. Соответственно, хотя текущий блок кодируется или декодируется посредством предсказания, осуществляемого между изображениями, таблица информации о движении с предсказанием, осуществляемым между изображениями, может не обновляться на основании текущего блока, когда режим предсказания, осуществляемого между изображениями, текущего блока представляет собой режим аффинного предсказания.[00264] Whether to use the current block as an inter-partition fusion candidate can also be determined based on the inter-image 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.

[00265] Альтернативно кандидат на слияние между участками может быть получен на основании вектора подблока по меньшей мере одного подблока, включенного в блок, который кодируется или декодируется на основании модели аффинного движения. В качестве примера, кандидат на слияние между участками может быть получен с использованием подблока, расположенного в верхнем левом углу текущего блока, подблока, расположенного в центре текущего блока, или подблока, расположенного в правом верхнем углу текущего блока. Альтернативно среднее значение векторов подблоков множества подблоков может быть установлено в качестве вектора движения кандидата на слияние между участками.[00265] 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 the cross-section fusion candidate.

[00266] Альтернативно кандидат на слияние между участками может быть получен на основании среднего значения аффинных исходных векторов блока, который кодируется или декодируется на основании модели аффинного движения. В качестве примера, среднее значение по меньшей мере одного из первого аффинного исходного вектора, второго аффинного исходного вектора или третьего аффинного исходного вектора текущего блока может быть установлено в качестве вектора движения кандидата на слияние между участками.[00266] Alternatively, a cross-patch 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.

[00267] Альтернативно таблица информации о движении между участками может быть сконфигурирована для каждого режима предсказания, осуществляемого между изображениями. В качестве примера, может быть задано по меньшей мере одно из таблицы информации о движении между участками для блока, кодированного или декодированного с помощью внутриблочного копирования, таблицы информации о движении между участками для блока, кодированного или декодированного на основании модели поступательного движения, или таблицы информации о движении между участками для блока, кодированного или декодированного на основании модели аффинного движения. Одна из множества таблиц информации о движении между участками может быть выбрана согласно режиму предсказания, осуществляемого между изображениями, текущего блока.[00267] Alternatively, a table of inter-plot motion information 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.

[00268] На фиг. 22 показан пример, в котором таблица информации о движении между участками генерируется для каждого режима предсказания, осуществляемого между изображениями.[00268] In FIG. 22 shows an example in which a table of inter-section motion information is generated for each inter-picture prediction mode.

[00269] Когда блок кодируется или декодируется на основании модели неаффинного движения, кандидат на слияние между участками mvCand, который получается на основании блока, может быть добавлен в таблицу информации о неаффинном движении между участками HmvpCandList. С другой стороны, когда блок кодируется или декодируется на основании модели аффинного движения, кандидат на слияние между участками mvAfCand, который получается на основании блока, может быть добавлен в таблицу информации об аффинном движении между участками HmvpAfCandList.[00269] 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.

[00270] Аффинные исходные векторы блока могут храниться в кандидате на слияние между участками, полученном из блока, который кодируется или декодируется на основании модели аффинного движения. Соответственно, кандидат на слияние между участками может использоваться в качестве кандидата на слияние для получения аффинного исходного вектора текущего блока.[00270] 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.

[00271] В дополнение к описанной выше таблице информации о движении между участками может быть задана дополнительная таблица информации о движении между участками. В дополнение к описанной выше таблице информации о движении между участками (далее называемой первой таблицей информации о движении между участками) может быть задана долговременная таблица информации о движении (далее называемая второй таблицей информации о движении между участками). В этом случае долговременная таблица информации о движении содержит долговременных кандидатов на слияние.[00271] 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.

[00272] Когда и первая таблица информации о движении между участками, и вторая таблица информации о движении между участками пусты, кандидаты на слияние между участками могут быть предпочтительно добавлены во вторую таблицу информации о движении между участками. Пока количество кандидатов на слияние между участками, разрешенное для второй таблицы информации о движении между участками, не достигнет максимального количества, кандидаты на слияние между участками могут не добавляться в первую таблицу информации о движении между участками.[00272] When both the first inter-site traffic information table and the second inter-site traffic information table are empty, inter-site fusion 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.

[00273] Альтернативно один кандидат на слияние предсказания, осуществляемого между изображениями, может быть добавлен как в первую таблицу информации о движении между участками, так и во вторую таблицу информации о движении между участками.[00273] 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.

[00274] В этом случае вторая таблица информации о движении между участками, где осуществлена конфигурация, может больше не выполнять обновление. Альтернативно, когда декодированная область больше или равна предварительно определенной пропорции слайса, может быть обновлена вторая таблица информации о движении между участками. Альтернативно вторая таблица информации о движении между участками может обновляться каждые N линий элементов кодового дерева.[00274] In this case, the second inter-section traffic information table where the configuration has been made may no longer be updated. Alternatively, when the decoded region is greater than or equal to the predetermined slice proportion, the second inter-section motion information table may be updated. Alternatively, the second inter-site traffic information table may be updated every N code tree element lines.

[00275] С другой стороны, первая таблица информации о движении между участками может обновляться всякий раз, когда генерируется блок, кодированный или декодированный посредством предсказания, осуществляемого между изображениями. Однако установка может быть выполнена таким образом, чтобы кандидаты на слияние между участками, добавленные во вторую таблицу информации о движении между участками, не использовались для обновления первой таблицы информации о движении между участками.[00275] 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.

[00276] Информация для выбора одной из первой таблицы информации о движении между участками или второй таблицы информации о движении между участками может передаваться в битовом потоке. Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем максимальное значение, кандидаты на слияние, включенные в таблицу информации о движении между участками, указанную посредством информации, могут быть добавлены в список кандидатов на слияние.[00276] Information for selecting one of the first inter-area motion information table or the second inter-area motion information table may be transmitted in a bit stream. When the number of merger candidates included in the merger candidate list is less than the maximum value, the merger candidates included in the inter-site traffic information table specified by the information may be added to the merger candidate list.

[00277] Альтернативно таблица информации о движении между участками может быть выбрана на основании размера, формы или режима предсказания, осуществляемого между изображениями, текущего блока, наличия двунаправленного предсказания, наличия уточнения вектора движения или наличия треугольного разбиения.[00277] 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.

[00278] Альтернативно, когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем максимальное количество, связанное со слиянием, даже если кандидаты на слияние между участками, включенные в первую таблицу информации о движении между участками, добавлены в список кандидатов на слияние, кандидаты на слияние между участками, включенные во вторую таблицу информации о движении между участками, могут быть добавлены в список кандидатов на слияние.[00278] 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 the 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.

[00279] На фиг. 23 представлено схематическое изображение, показывающее пример, в котором кандидат на слияние между участками, включенный в долговременную таблицу информации о движении, добавлен в список кандидатов на слияние.[00279] In FIG. 23 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.

[00280] Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше, чем максимальное количество, кандидаты на слияние между участками, включенные в первую таблицу информации о движении между участками HmvpCandList, могут быть добавлены в список кандидатов на слияние. Когда количество кандидатов на слияние, включенных в список кандидатов на слияние, меньше максимального количества, даже если кандидаты на слияние между участками, включенные в первую таблицу информации о движении между участками, добавлены в список кандидатов на слияние, кандидаты на слияние между участками, включенные в долгосрочную таблицу информации о движении HmvpLTCandList, могут быть добавлены в список кандидатов на слияние.[00280] When the number of merge candidates included in the merge candidate list is less than the maximum number, the 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.

[00281] Таблица 2 показывает процесс добавления кандидатов на слияние между участками, включенных в долговременную таблицу информации о движении, в список кандидатов на слияние.[00281] Table 2 shows the process of adding site fusion candidates included in the long-term traffic information table to the fusion candidate list.

[00282] [Таблица 2][00282] [Table 2]

[00283] Установка может быть выполнена таким образом, чтобы кандидат на слияние между участками содержал дополнительную информацию, а также информацию о движении. В качестве примера, размер, форма или информация о разделении блока могут быть дополнительно сохранены для кандидата на слияние между участками. При конфигурации списка кандидатов на слияние для текущего блока могут использоваться только кандидатов на слияние предсказания, осуществляемого между изображениями, имеющих такой же или подобный размер, форму или информацию о разделении, что и текущий блок, из кандидатов на слияние предсказания, осуществляемого между изображениями, или кандидатов на слияние предсказания, осуществляемого между изображениями, имеющих такой же или подобный размер, форму или информацию о разделении, что и текущий блок, могут быть предпочтительно добавлены в список кандидатов на слияние.[00283] 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.

[00284] Альтернативно таблица информации о движении между участками может быть сгенерирована для каждого размера, формы или части информации о разделении блока. Список кандидатов на слияние текущего блока может быть сгенерирован с использованием таблицы информации о движении между участками, соответствующей форме, размеру или информации о разделении текущего блока, из множества таблиц информации о движении между участками.[00284] 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-section traffic information table corresponding to the shape, size, or division information of the current block from a plurality of inter-section traffic information tables.

[00285] Альтернативно таблица информации о движении между участками может быть создана для каждого разрешения вектора движения. В качестве примера, когда вектор движения текущего блока имеет разрешение, составляющее 1/4 пикселя, кандидат на слияние между участками, полученный из текущего блока, может быть добавлен в список информации о движении между участками с разрешением, составляющим четверть пикселя. Когда вектор движения текущего блока имеет разрешение, составляющее 1 целый пиксель, кандидат на слияние между участками, полученный из текущего блока, может быть добавлен в список информации о движении между участками с разрешением, составляющим целый пиксель. Когда вектор движения текущего блока имеет разрешение, составляющее 4 целых пикселя, кандидат на слияние между участками, полученный из текущего блока, может быть добавлен в список информации о движении между участками с разрешением, составляющим 4 целых пикселя. Один из множества списков информации о движении между участками может быть выбран в соответствии с разрешением вектора движения блока, который подлежит кодированию или декодированию.[00285] Alternatively, a table of inter-site motion information can be created for each motion vector resolution. As an example, when the motion vector of the current block has a resolution of 1/4 pixel, an inter-region fusion candidate obtained from the current block may be added to the inter-region motion information list with a resolution of a quarter pixel. When the motion vector of the current block has a resolution of 1 whole pixel, the inter-region fusion candidate obtained from the current block can be added to the list of inter-region motion information of the full pixel resolution. When the motion vector of the current block has a resolution of 4 whole pixels, the inter-region fusion candidate obtained from the current block can be added to the list of inter-region motion information with a resolution of 4 whole pixels. One of a plurality of inter-section motion information lists may be selected in accordance with the motion vector resolution of the block to be encoded or decoded.

[00286] Когда способ кодирования вектора смещения слияния применяется к текущему блоку, кандидат на слияние между участками, полученный из текущего блока, может быть добавлен в список информации о движении смещения слияния между участками HmvpHMVDCandList вместо добавления в таблицу информации о движении между участками HmvpCandList. В этом случае кандидат на слияние между участками может содержать информацию смещения вектора движения текущего блока. HmvpHMVDCandList может использоваться для получения смещения блока, к которому применяется способ кодирования вектора смещения слияния.[00286] When the fusion offset vector encoding method is applied to the current block, the inter-section fusion candidate obtained from the current block may be added to the inter-section fusion offset movement information list HmvpHMVDCandList instead of adding to the inter-section movement information table HmvpCandList. In this case, the cross-section fusion candidate may contain motion vector offset information of the current block. HmvpHMVDCandList can be used to obtain the offset of the block to which the merge offset vector encoding method is applied.

[00287] Когда количество кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, не равно максимальному значению, кандидат на слияние между участками, включенный в таблицу информации о движении между участками, может быть добавлен в список кандидатов на слияние. Процесс добавления может выполняться в порядке возрастания или убывания на основании индексов. В качестве примера, кандидат на слияние между участками с наибольшим индексом может быть предпочтительно добавлен в список кандидатов на слияние.[00287] When the number of merge candidates included in the merge candidate list of the current block is not equal to the maximum 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.

[00288] Когда кандидат на слияние между участками, включенный в таблицу информации о движении между участками, должен быть добавлен в список кандидатов на слияние, может быть выполнен контроль по избыточности между кандидатом на слияние между участками и кандидатами на слияние, предварительно сохраненными в списке кандидатов на слияние.[00288] When an inter-site merging candidate included in the inter-site traffic information table is to be added to the merging candidate list, redundancy check can be performed between the inter-site merging candidate and the merging candidates previously stored in the candidate list. for the merger.

[00289] В качестве примера, в таблице 3 показан процесс добавления кандидата на слияние между участками в список кандидатов на слияние.[00289] As an example, Table 3 shows the process of adding a cross-site merge candidate to the merge candidate list.

[00290] [Таблица 3][00290] [Table 3]

[00291] Контроль по избыточности может выполняться только в отношении некоторых кандидатов на слияние между участками, включенных в таблицу информации о движении между участками. В качестве примера, контроль по избыточности может выполняться только в отношении кандидатов на слияние между участками с индексами, большими или равными пороговому значению, или индексами, меньшими или равными пороговому значению.[00291] 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.

[00292] Альтернативно контроль по избыточности может выполняться только в отношении некоторых кандидатов на слияние, предварительно сохраненных в списке кандидатов на слияние. В качестве примера, контроль по избыточности может выполняться только в отношении кандидата на слияние с индексом, большим или равным пороговому значению, или индексом, меньшим или равным пороговому значению, или кандидата на слияние, полученного из блока в конкретном местоположении. В этом случае конкретное местоположение может включать по меньшей мере один из левого соседнего блока, верхнего соседнего блока, верхнего правого соседнего блока или нижнего левого соседнего блока текущего блока.[00292] 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.

[00293] На фиг. 24 представлено схематическое изображение, показывающее пример, в котором контроль по избыточности выполняется только в отношении некоторых кандидатов на слияние.[00293] In FIG. 24 is a schematic diagram showing an example in which redundancy checking is performed only on some merge candidates.

[00294] Когда кандидат на слияние между участками HmvpCand[j] должен быть добавлен в список кандидатов на слияние, контроль по избыточности может быть выполнен в отношении кандидата на слияние между участками в отношении двух кандидатов на слияние mergeCandList[NumMerge-2] и mergeCandList[NumMerge -1], имеющих наибольшие индексы. В этом случае NumMerge может представлять количество доступных пространственных кандидатов на слияние и временных кандидатов на слияние.[00294] 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.

[00295] Когда найден кандидат на слияние, идентичный первому кандидату на слияние между участками, контроль по избыточности в отношении кандидата на слияние, идентичного первому кандидату на слияние между участками, может быть пропущен, в то время как контроль по избыточности в отношении второго кандидата на слияние между участками выполняется.[00295] When a fusion candidate identical to the first inter-site fusion candidate is found, a redundancy check with respect to the fusion candidate identical to the first inter-site fusion candidate may be skipped while a redundancy check with respect to the second inter-site fusion candidate merging between sections is performed.

[00296] На фиг. 25 представлено схематическое изображение, показывающее пример, в котором пропущен контроль по избыточности в отношении конкретного кандидата на слияние.[00296] In FIG. 25 is a schematic diagram showing an example in which redundancy checks are omitted with respect to a particular merger candidate.

[00297] Когда кандидат на слияние между участками HmvpCand[i] с индексом i должен быть добавлен в список кандидатов на слияние, может быть выполнен контроль по избыточности между кандидатом на слияние между участками и кандидатами на слияние, предварительно сохраненными в списке кандидатов на слияние. В этом случае, когда найден кандидат на слияние mergeCandList[j], идентичный кандидату на слияние между участками HmvpCand[i], кандидат на слияние между участками HmvpCand[i] может не добавляться в список кандидатов на слияние, и может быть выполнен контроль по избыточности между кандидатом на слияние между участками HmvpCand[i-1], имеющим индекс i-1, и кандидатами на слияние. В этом случае контроль по избыточности между кандидатом на слияние между участками HmvpCand[i-1] и кандидатом на слияние mergeCandList[j] может быть пропущен.[00297] 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 the fusion candidate between the sites HmvpCand[i-1] having index i-1 and the 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.

[00298] В качестве примера, в примере, показанном на фиг. 25, определяется, что HmvpCand[i] и mergeCandList[2] идентичны друг другу. Соответственно, HmvpCand[i] может не добавляться в список кандидатов на слияние, и контроль по избыточности может выполняться в отношении HmvpCand[i-1]. В этом случае контроль по избыточности между HvmpCand[i-1] и mergeCandList[2] может быть пропущен.[00298] As an example, in the example shown in FIG. 25, 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.

[00299] Когда количество кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, меньше, чем максимальное количество, по меньшей мере один из парного кандидата на слияние или нулевого кандидата на слияние может быть дополнительно включен в дополнение к кандидату на слияние между участками. Парный кандидат на слияние относится к кандидату на слияние с вектором движения, равным среднему из векторов движения двух или более кандидатов на слияние, а нулевой кандидат на слияние относится к кандидату на слияние с вектором движения, равным 0.[00299] When the number of merge candidates included in the list of merge candidates of the current block is less than the maximum number, 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.

[00300] Кандидат на слияние может быть добавлен в список кандидатов на слияние текущего блока в следующем порядке.[00300] A merge candidate may be added to the list of merge candidates of the current block in the following order.

[00301] Пространственный кандидат на слияние - Временной кандидат на слияние - Кандидат на слияние между участками - (Кандидат на аффинное слияние между участками) - Парный кандидат на слияние - Нулевой кандидат на слияние.[00301] Spatial merge candidate - Temporal merge candidate - Inter-site merge candidate - (Affine inter-site merge candidate) - Pairwise merge candidate - Null merge candidate.

[00302] Пространственный кандидат на слияние относится к кандидату на слияние, полученному из по меньшей мере одного из соседнего блока или несоседнего блока, и временной кандидат на слияние относится к кандидату на слияние, полученному из предыдущего опорного изображения. Кандидат на аффинное слияние между участками относится к кандидату на слияние между участками, полученному из блока, кодированного или декодированного с помощью модели аффинного движения.[00302] 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.

[00303] Таблица информации о движении между участками может использоваться даже в режиме предсказания вектора движения. В качестве примера, когда количество кандидатов предсказания вектора движения, включенных в список кандидатов предсказания вектора движения текущего блока, меньше, чем максимальное количество, кандидат на слияние между участками, включенный в таблицу информации о движении между участками, может быть установлен как кандидат предсказания вектора движения для текущего блока. Подробно вектор движения кандидата на слияние между участками может быть установлен в качестве кандидата предсказания вектора движения.[00303] 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 the maximum number, 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.

[00304] Когда выбирается один из кандидатов предсказания вектора движения, включенных в список кандидатов предсказания вектора движения текущего блока, выбранный кандидат может быть установлен как предсказатель вектора движения текущего блока. Впоследствии вектор движения текущего блока может быть получен путем декодирования остаточного значения вектора движения текущего блока и последующего сложения предсказателя вектора движения и остаточного значения вектора движения.[00304] 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.

[00305] Список кандидатов предсказания вектора движения текущего блока может быть сконфигурирован в следующем порядке.[00305] The motion vector prediction candidate list of the current block may be configured in the following order.

[00306] Пространственный кандидат предсказания вектора движения - Временной кандидат предсказания вектора движения - Кандидат на слияние в области декодирования между изображениями - (Кандидат на аффинное слияние в области декодирования между изображениями) - Нулевой кандидат предсказания вектора движения.[00306] Spatial motion vector prediction candidate - Temporal motion vector prediction candidate - Inter-picture decoding domain fusion candidate - (Inter-picture decoding domain affine fusion candidate) - Null motion vector prediction candidate.

[00307] Пространственный кандидат предсказания вектора движения относится к кандидату предсказания вектора движения, полученному из по меньшей мере одного из соседнего блока или несоседнего блока, и временной кандидат предсказания вектора движения относится к кандидату предсказания вектора движения, полученному из предыдущего опорного изображения. Кандидат на аффинное слияние между участками относится к кандидату предсказания вектора движения между участками, полученному из блока, кодированного или декодированного с помощью модели аффинного движения. Нулевой кандидат предсказания вектора движения представляет кандидата, имеющего вектор движения, равный 0.[00307] 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.

[00308] Может быть задана область обработки слияния, превышающая размер блока кодирования. Блоки кодирования, включенные в область обработки слияния, могут обрабатываться параллельно без последовательного кодирования или декодирования. В этом случае непоследовательное кодирование или декодирование означает, что порядок кодирования или декодирования не задан. Соответственно, процесс кодирования или декодирования блоков, включенных в область обработки слияния, может обрабатываться независимо. Альтернативно блоки, включенные в область обработки слияния, могут совместно использовать кандидатов на слияние. В этом случае кандидаты на слияние могут быть получены на основании области обработки слияния.[00308] The merge processing area may be set to be larger than the encoding block size. Encoding blocks included in the merge processing area can be processed in parallel without sequential encoding or decoding. In this case, inconsistent encoding or decoding means that the order of encoding or decoding is not specified. Accordingly, the encoding or decoding process of blocks included in the merge processing area can be processed independently. Alternatively, blocks included in the merge processing area may share merge candidates. In this case, merge candidates can be obtained based on the merge processing area.

[00309] Согласно вышеописанным характеристикам область обработки слияния может называться областью параллельной обработки, совместно используемым участком слияния (SMR) или участком оценки слияния (MER).[00309] According to the above-described characteristics, the merge processing region may be called a parallel processing region, a shared merge region (SMR), or a merge evaluation region (MER).

[00310] Кандидат на слияние текущего блока может быть получен на основании блока кодирования. Однако, когда текущий блок включен в область параллельного слияния, большую, чем текущий блок, кандидатный блок, включенный в ту же область параллельного слияния, что и текущий блок, может быть установлен как недоступный в качестве кандидата на слияние.[00310] A merge candidate of the current block may be obtained based on the encoding block. However, when the current block is included in a parallel merge region larger than the current block, a candidate block included in the same parallel merge region as the current block may be set as unavailable as a merge candidate.

[00311] На фиг. 26 представлено схематическое изображение, показывающее пример, в котором кандидатный блок, включенный в ту же область параллельного слияния, что и текущий блок, установлен как недоступный в качестве кандидата на слияние.[00311] In FIG. 26 is a schematic diagram showing an example in which a candidate block included in the same parallel merge region as the current block is set to unavailable as a merge candidate.

[00312] В примере, показанном на фиг. 26A, когда CU5 кодируется или декодируется, блоки, содержащие опорные отсчеты, смежные с CU5, могут быть установлены в качестве кандидатных блоков. В этом случае кандидатные блоки X3 и X4, которые включены в ту же область параллельного слияния, что и CU5, могут быть установлены как недоступные в качестве кандидатов на слияние. С другой стороны, кандидатные блоки X0, X1 и X2, которые не включены в ту же область параллельного слияния, что и CU5, могут быть установлены как доступные в качестве кандидатов на слияние.[00312] In the example shown in FIG. 26A, when CU5 is encoded or decoded, blocks containing reference samples adjacent to CU5 may be set as candidate blocks. In this case, candidate blocks X3 and X4, which are included in the same parallel merge area as CU5, may be set as unavailable as merge candidates. On the other hand, candidate blocks X0, X1 and X2, which are not included in the same parallel merge area as CU5, can be set as available as merge candidates.

[00313] В примере, показанном на фиг. 26B, когда CU8 кодируется или декодируется, блоки, содержащие опорные отсчеты, смежные с CU8, могут быть установлены в качестве кандидатных блоков. В этом случае кандидатные блоки X6, X7 и X8, которые включены в ту же область параллельного слияния, что и CU8, могут быть установлены как недоступные в качестве кандидатов на слияние. С другой стороны, кандидатные блоки X5 и X9, которые не включены в ту же область слияния, что и CU8, могут быть установлены как доступные в качестве кандидатов на слияние.[00313] In the example shown in FIG. 26B, when CU8 is encoded or decoded, blocks containing reference samples adjacent to CU8 may be set as candidate blocks. In this case, candidate blocks X6, X7 and X8, which are included in the same parallel merge area as CU8, may be set as unavailable as merge candidates. On the other hand, candidate blocks X5 and X9, which are not included in the same merge area as CU8, can be set as available as merge candidates.

[00314] Область параллельного слияния может быть квадратной или неквадратной. Информация для определения области параллельного слияния может передаваться в битовом потоке. Информация может содержать по меньшей мере одно из информации, указывающей форму области параллельного слияния, или информации, указывающей размер области параллельного слияния. Когда область параллельного слияния не является квадратной, по меньшей мере одна из информации, указывающей размер области параллельного слияния, информации, указывающей ширину и/или высоту области параллельного слияния, или информации, указывающей соотношение между шириной и высотой области параллельного слияния, может быть передана в битовом потоке.[00314] The parallel merge region may be square or non-square. Information for defining the parallel merge area may be transmitted in a bit stream. The information may comprise at least one of information indicating the shape of the parallel merge region or information indicating the size of the parallel merge region. When the parallel merge area is not square, at least one of information indicating the size of the parallel merge area, information indicating the width and/or height of the parallel merge area, or information indicating the ratio between the width and height of the parallel merge area may be transmitted to bit stream.

[00315] Размер области параллельного слияния может быть определен на основании по меньшей мере одного из информации, передаваемой в битовом потоке, разрешения изображения, размера слайса или размера тайла.[00315] The size of the parallel merge region may be determined based on at least one of information carried in the bit stream, image resolution, slice size, or tile size.

[00316] Когда предсказание с компенсацией движения выполняется в отношении блока, включенного в область параллельного слияния, кандидат на слияние между участками, полученный на основании информации о движении блока, подвергаемого предсказанию с компенсацией движения, может быть добавлен в таблицу информации о движении между участками.[00316] When motion compensation prediction is performed on a block included in a parallel fusion region, an inter-section fusion candidate obtained based on the motion information of the block subject to motion compensation prediction may be added to the inter-section motion information table.

[00317] Однако, когда кандидат на слияние между участками, полученный из блока, включенного в область параллельного слияния, добавляется в таблицу информации о движении между участками, кандидат на слияние между участками, полученный из блока, может использоваться, когда другой блок, включенный в область параллельного слияния, фактически кодируется или декодируется позже, чем этот блок. То есть, хотя зависимость между блоками должна быть исключена при кодировании или декодировании блоков, включенных в область параллельного слияния, компенсация предсказания движения может выполняться с использованием информации о движении другого блока, включенного в область параллельного слияния. С целью решения этой проблемы, даже если кодирование или декодирование блока, включенного в область параллельного слияния, осуществлено, информация о движении блока, в котором осуществлено кодирование или декодирование, может не добавляться в таблицу информации о движении между участками.[00317] However, when an inter-site merge candidate obtained from a block included in a parallel merge area is added to the inter-site traffic information table, an inter-site merge candidate obtained from the block can be used when another block included in the parallel merge region is actually encoded or decoded later than this block. That is, although the dependence between blocks must be eliminated when encoding or decoding blocks included in the parallel merge region, motion prediction compensation can be performed using motion information of another block included in the parallel merge region. In order to solve this problem, even if encoding or decoding of a block included in the parallel merge area is performed, motion information of the block in which encoding or decoding is performed may not be added to the inter-section motion information table.

[00318] Альтернативно, когда предсказание с компенсацией движения выполняется в отношении блоков, включенных в область параллельного слияния, кандидат на слияние между участками, полученный из блоков, может быть добавлен в таблицу информации о движении между участками в предварительно заданном порядке. В этом случае предварительно заданный порядок может быть определен в порядке сканирования блоков кодирования в элементе кодового дерева или области параллельного слияния. Порядок сканирования может быть по меньшей мере одним из растрового сканирования, горизонтального сканирования, вертикального сканирования или зигзагообразного сканирования. Альтернативно предварительно заданный порядок может быть определен на основании информации о движении каждого из блоков или количества блоков, имеющих одинаковую информацию о движении.[00318] Alternatively, when motion-compensated prediction is performed on blocks included in a parallel fusion region, an inter-site fusion candidate obtained from the blocks may be added to the inter-site motion information table in a predetermined order. In this case, a predetermined order may be determined in the scanning order of coding blocks in a code tree element or a parallel merge region. The scanning order may be at least one of raster scanning, horizontal scanning, vertical scanning, or zigzag scanning. Alternatively, the predetermined order may be determined based on the motion information of each of the blocks or the number of blocks having the same motion information.

[00319] Альтернативно кандидат на слияние между участками, содержащий информацию об однонаправленном движении, может быть добавлен в список слияния между участками раньше, чем кандидат на слияние между участками, содержащий информацию о двунаправленном движении. И наоборот, кандидат на слияние между участками, содержащий информацию о двунаправленном движении, может быть добавлен в список кандидатов на слияние между участками раньше, чем кандидат на слияние между участками, содержащий информацию об однонаправленном движении.[00319] Alternatively, an inter-site merge candidate containing unidirectional traffic information may be added to the inter-site merge list before an inter-site merge candidate containing bidirectional traffic information. Conversely, an inter-site fusion candidate containing bidirectional traffic information may be added to the list of inter-site fusion candidates earlier than an inter-site fusion candidate containing unidirectional traffic information.

[00320] Альтернативно кандидаты на слияние между участками могут быть добавлены в таблицу информации о движении между участками в порядке возрастания или убывания частоты использования в области параллельного слияния или элементе кодового дерева.[00320] Alternatively, inter-site fusion candidates may be added to the inter-site traffic information table in ascending or descending order of frequency of use in the parallel merge region or code tree element.

[00321] Когда текущий блок включен в область параллельного слияния, и количество кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, меньше максимального количества, кандидат на слияние между участками, включенный в таблицу информации о движении между участками, может быть добавлен в список кандидатов на слияние. В этом случае установка может быть выполнена таким образом, что кандидат на слияние между участками, полученный из блока, включенного в ту же область параллельного слияния, что и текущий блок, добавляется в список кандидатов на слияние текущего блока.[00321] When the current block is included in the parallel merge area, and the number of merge candidates included in the current block's merge candidate list is less than the maximum number, the inter-site merge candidate included in the inter-site traffic information table may be added to list of merger candidates. In this case, the setting may be made such that a cross-section merge candidate obtained from a block included in the same parallel merge region as the current block is added to the list of merge candidates of the current block.

[00322] Альтернативно установка может быть выполнена таким образом, что, когда текущий блок включен в область параллельного слияния, кандидат на слияние между участками, включенный в таблицу информации о движении между участками, не используется. То есть, даже когда количество кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, меньше, чем максимальное количество, кандидат на слияние между участками, включенный в таблицу информации о движении между участками, может не добавляться в список кандидатов на слияние.[00322] Alternatively, the setting may be made such that when the current block is included in the parallel merge region, the inter-site merge candidate included in the inter-site traffic information table is not used. That is, even when the number of merge candidates included in the merge candidate list of the current block is less than the maximum number, the inter-site merge candidate included in the inter-site traffic information table may not be added to the merge candidate list.

[00323] Таблица информации о движении между участками может быть сконфигурирована для области параллельного слияния или элемента кодового дерева. Эта таблица информации о движении между участками служит для временного хранения информации о движении блоков, включенных в область параллельного слияния. Чтобы отличить общую таблицу информации о движении между участками от таблицы информации о движении между участками для области параллельного слияния или элемента кодового дерева, таблица информации о движении между участками для области параллельного слияния или элемента кодового дерева будет называться временной таблицей информации о движении. Кроме того, кандидат на слияние между участками, хранящийся во временной таблице информации о движении, будет называться временным кандидатом на слияние.[00323] An inter-region traffic information table may be configured for a parallel merge region or code tree element. This inter-section movement information table serves to temporarily store movement information of blocks included in the parallel merge area. To distinguish the general inter-site motion information table from the inter-site motion information table for a parallel merge region or code tree element, the inter-site motion information table for a parallel merge region or code tree element will be referred to as a temporary motion information table. In addition, the cross-section merge candidate stored in the temporary traffic information table will be called a temporary merge candidate.

[00324] На фиг. 27 представлено схематическое изображение, показывающее временную таблицу информации о движении.[00324] In FIG. 27 is a schematic diagram showing a temporary motion information table.

[00325] Временная таблица информации о движении может быть сконфигурирована для элемента кодового дерева или области параллельного слияния. Когда предсказание с компенсацией движения выполняется в отношении текущего блока, включенного в элемент кодового дерева или область параллельного слияния, информация о движении блока может не добавляться в таблицу информации о движении с предсказанием, осуществляемым между изображениями, HmvpCandList. Вместо этого временной кандидат на слияние, полученный из блока, может быть добавлен во временную таблицу информации о движении HmvpMERCandList. То есть временной кандидат на слияние, добавленный во временную таблицу информации о движении, может не добавляться в таблицу информации о движении между участками. Соответственно, таблица информации о движении между участками может не содержать кандидата на слияние между участками, полученного на основании информации о движении блоков, включенных в область параллельного слияния или элемент кодового дерева, содержащий текущий блок.[00325] A temporary motion information table may be configured for a code tree element or a parallel merge region. When motion compensation prediction is performed on a current block included in a code tree element or a parallel merge region, motion information of the block may not be added to the inter-picture prediction motion information table HmvpCandList. Instead, the temporary merge candidate obtained from the block may be added to the temporary traffic information table HmvpMERCandList. That is, a temporary merge candidate added to the temporary traffic information table may not be added to the inter-section traffic information table. Accordingly, the inter-section motion information table may not contain an inter-site merge candidate derived from the motion information of blocks included in the parallel merge region or the code tree element containing the current block.

[00326] Максимальное количество кандидатов на слияние, которые могут быть включены во временную таблицу информации о движении, может быть установлено таким же, как и в таблице информации о движении между участками. Альтернативно максимальное количество кандидатов на слияние, которые могут быть включены во временную таблицу информации о движении, может быть определено согласно размеру элемента кодового дерева или области параллельного слияния.[00326] The maximum number of merge candidates that can be included in the temporary traffic information table can be set to the same as that in the inter-section traffic information table. Alternatively, the maximum number of merge candidates that can be included in the temporary motion information table can be determined according to the size of the code tree element or the parallel merge region.

[00327] Текущий блок, включенный в элемент кодового дерева или область параллельного слияния, может быть установлен таким образом, чтобы не использовать временную таблицу информации о движении для соответствующего элемента кодового дерева или соответствующей области параллельного слияния. То есть, когда количество кандидатов на слияние, включенных в список кандидатов на слияние текущего блока, меньше, чем максимальное значение, кандидат на слияние между участками, включенный в таблицу информации о движении между участками, может быть добавлен в список кандидатов на слияние, и временной кандидат на слияние, включенный во временную таблицу информации о движении, может не добавляться в список кандидатов на слияние. Соответственно, информация о движении других блоков, включенных в тот же элемент кодового дерева или область параллельного слияния, что и у текущего блока, может не использоваться для предсказания с компенсацией движения текущего блока.[00327] A current block included in a code tree element or parallel merge region may be set so as not to use a temporary motion information table for the corresponding code tree element or corresponding parallel merge region. That is, when the number of merge candidates included in the merge candidate list of the current block is less than the maximum value, the inter-section merge candidate included in the inter-section traffic information table may be added to the merge candidate list, and temporary A merge candidate included in the temporary motion information table may not be added to the merge candidate list. Accordingly, motion information of other blocks included in the same code tree element or parallel merge region as the current block may not be used for motion-compensated prediction of the current block.

[00328] При осуществлении кодирования или декодирования всех блоков, включенных в элемент кодового дерева или область параллельного слияния, может быть осуществлено слияние таблицы информации о движении между участками и временной таблицы информации о движении.[00328] When performing encoding or decoding of all blocks included in a code tree element or a parallel merge area, the inter-section motion information table and the temporary motion information table can be merged.

[00329] На фиг. 28 представлено схематическое изображение, показывающее пример слияния временной таблицы информации о движении с таблицей информации о движении между участками.[00329] In FIG. 28 is a schematic diagram showing an example of merging a temporary motion information table with an inter-section motion information table.

[00330] При осуществлении кодирования или декодирования всех блоков, включенных в элемент кодового дерева или область параллельного слияния, таблица информации о движении между участками может быть обновлена с помощью временного кандидата на слияние, включенного во временную таблицу информации о движении, в примере, показанном на фиг. 28.[00330] When performing encoding or decoding of all blocks included in a code tree element or a parallel merge region, the inter-section motion information table may be updated with a temporary merge candidate included in the temporary motion information table, in the example shown in fig. 28.

[00331] В этом случае временные кандидаты на слияние, включенные во временную таблицу информации о движении, могут быть добавлены в таблицу информации о движении между участками в том порядке, в котором временные кандидаты на слияние были вставлены во временную таблицу информации о движении (т.е. в порядке возрастания или убывания индексных значений).[00331] In this case, the temporary merge candidates included in the temporary traffic information table may be added to the inter-site traffic information table in the order in which the temporary merge candidates were inserted into the temporary traffic information table (i.e. i.e. in ascending or descending order of index values).

[00332] В качестве другого примера временные кандидаты на слияние, включенные во временную таблицу информации о движении, могут быть добавлены в таблицу информации о движении между участками в предварительно заданном порядке.[00332] As another example, temporary merge candidates included in the temporary traffic information table may be added to the inter-section traffic information table in a predetermined order.

[00333] В этом случае предварительно заданный порядок может быть определен в порядке сканирования блоков кодирования в элементе кодового дерева или области параллельного слияния. Порядок сканирования может быть по меньшей мере одним из растрового сканирования, горизонтального сканирования, вертикального сканирования или зигзагообразного сканирования. Альтернативно предварительно заданный порядок может быть определен на основании информации о движении каждого из блоков или количества блоков, имеющих одинаковую информацию о движении.[00333] In this case, a predetermined order may be determined in the scanning order of coding blocks in a code tree element or a parallel merge region. The scanning order may be at least one of raster scanning, horizontal scanning, vertical scanning, or zigzag scanning. Alternatively, the predetermined order may be determined based on the motion information of each of the blocks or the number of blocks having the same motion information.

[00334] Альтернативно временной кандидат на слияние, содержащий информацию об однонаправленном движении, может быть добавлен в список на слияние между участками раньше, чем временной кандидат на слияние, содержащий информацию о двунаправленном движении. И наоборот, временной кандидат на слияние, содержащий информацию о двунаправленном движении, может быть добавлен в список кандидатов на слияние между участками раньше, чем временной кандидат на слияние, содержащий информацию об однонаправленном движении.[00334] Alternatively, a temporary merge candidate containing unidirectional traffic information may be added to the inter-site merge list before a temporary merge candidate containing bidirectional traffic information. Conversely, a temporary merge candidate containing bidirectional traffic information may be added to the inter-site merge candidate list earlier than a temporary merge candidate containing unidirectional traffic information.

[00335] Альтернативно временные кандидаты на слияние могут быть добавлены в таблицу информации о движении между участками в порядке возрастания или убывания частоты использования в области параллельного слияния или элементе кодового дерева.[00335] Alternatively, temporary merge candidates may be added to the inter-site traffic information table in ascending or descending order of frequency of use in the parallel merge region or code tree element.

[00336] Когда временной кандидат на слияние, включенный во временную таблицу информации о движении, добавляется в таблицу информации о движении между участками, может выполняться контроль по избыточности для временного кандидата на слияние. В качестве примера, когда кандидат на слияние между участками, идентичный временному кандидату на слияние, включенному во временную таблицу информации о движении, предварительно сохраняется в таблице информации о движении между участками, временной кандидат на слияние может не добавляться в таблицу информации о движении между участками. В этом случае контроль по избыточности может выполняться только в отношении некоторых кандидатов на слияние между участками, включенных в таблицу информации о движении между участками. В качестве примера, контроль по избыточности может выполняться только в отношении кандидатов на слияние предсказания, осуществляемого между изображениями, с индексами, большими или равными пороговому значению, или индексами, меньшими или равными пороговому значению. В качестве примера, когда временной кандидат на слияние идентичен кандидату на слияние между участками с индексом, большим или равным предварительно заданному значению, временной кандидат на слияние может не добавляться в таблицу информации о движении между участками.[00336] When a temporary merge candidate included in the temporary traffic information table is added to the inter-section traffic information table, redundancy checking for the temporary merge candidate can be performed. As an example, when an inter-area merging candidate identical to a temporary merging candidate included in the temporary traffic information table is previously stored in the inter-site traffic information table, the temporary merging candidate may not be added to the inter-site traffic information table. In this case, 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 inter-image prediction fusion candidates with indices greater than or equal to a threshold, or indices less than or equal to a threshold. As an example, when the temporary merge candidate is identical to the inter-site merge candidate with an index greater than or equal to a predetermined value, the temporary merge candidate may not be added to the inter-site traffic information table.

[00337] Внутреннее предсказание предназначено для предсказания текущего блока с использованием восстановленного отсчета, в котором осуществлено кодирование или декодирование, и который находится рядом с текущим блоком. В этом случае восстановленный отсчет до применения фильтра в контуре может использоваться для внутреннего предсказания текущего блока.[00337] 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.

[00338] Метод внутреннего предсказания включает внутреннее предсказание на основании матрицы и нормальное внутреннее предсказание с учетом направленности по отношению к ближайшему восстановленному отсчету. Информация, указывающая метод внутреннего предсказания текущего блока, может передаваться в битовом потоке. Информация может представлять собой 1-битный флаг.Альтернативно метод внутреннего предсказания текущего блока может быть определен на основании по меньшей мере одного из местоположения, размера или формы текущего блока или метода внутреннего предсказания соседнего блока. В качестве примера, когда текущий блок присутствует на границе изображения, установка может быть выполнена таким образом, чтобы внутреннее предсказание на основании матрицы не применялось к текущему блоку.[00338] 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 an 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.

[00339] Внутреннее предсказание на основании матрицы может представлять собой способ получения блока предсказания текущего блока на основании произведения матриц между матрицей, предварительно сохраненной в кодере и декодере, и восстановленными отсчетами, находящимися рядом с текущим блоком. Информация для указания одной из множества предварительно сохраненных матриц может передаваться в битовом потоке. Декодер может определять матрицу для внутреннего предсказания текущего блока на основании информации и размера текущего блока.[00339] 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.

[00340] Нормальное внутреннее предсказание представляет собой способ получения блока предсказания для текущего блока на основании режима ненаправленного внутреннего предсказания или режима направленного внутреннего предсказания. Процесс выполнения внутреннего предсказания на основании нормального внутреннего предсказания будет подробно описан ниже со ссылкой на графические материалы.[00340] 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.

[00341] На фиг. 29 представлена блок-схема способа внутреннего предсказания согласно варианту осуществления настоящего изобретения.[00341] In FIG. 29 is a flowchart of an intra prediction method according to an embodiment of the present invention.

[00342] Может быть определена (S2901) линия опорных отсчетов текущего блока. Линия опорных отсчетов относится к набору опорных отсчетов, включенных в k-ю линию от верхней и/или левой стороны текущего блока. Опорные отсчеты могут быть получены из восстановленных отсчетов, в которых осуществлено кодирование или декодирование, и которые находятся рядом с текущим блоком.[00342] The reference sample line of the current block can be determined (S2901). A reference sample line refers to a set of reference samples included in the kth 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.

[00343] Информация об индексах для идентификации линии опорных отсчетов текущего блока из множества линий опорных отсчетов может передаваться в битовом потоке. Множество линий опорных отсчетов может содержать по меньшей мере одну из первой линии, второй линии, третьей линии или четвертой линии сверху и/или слева от текущего блока. В таблице 4 представлены индексы, присвоенные линиям опорных отсчетов. В таблице 4 предполагается, что первая линия, вторая линия и четвертая линия используются в качестве кандидатов линий опорных отсчетов.[00343] 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. 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. Table 4 presents the indices assigned to the reference reference lines. Table 4 assumes that the first line, second line, and fourth line are used as reference sample line candidates.

[00344] [Таблица 4][00344] [Table 4]

[00345] Линия опорных отсчетов текущего блока может быть определена на основании по меньшей мере одного из местоположения, размера или формы текущего блока или режима предсказания соседнего блока. В качестве примера, когда текущий блок прилегает к краю изображения, тайла, слайса или элемента кодового дерева, в качестве линии опорных отсчетов текущего блока может быть определена первая линия опорных отсчетов.[00345] The reference 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 prediction mode of the neighboring block. As an example, when the current block is adjacent to the edge of an image, tile, slice, or code tree element, the first reference sample line of the current block may be defined as the reference sample line of the current block.

[00346] Линия опорных отсчетов может содержать верхние опорные отсчеты, расположенные над текущим блоком, и левые опорные отсчеты, расположенные слева от текущего блока. Верхние опорные отсчеты и левые опорные отсчеты могут быть получены из восстановленных отсчетов рядом с текущим блоком. Восстановленные отсчеты могут находиться в состоянии до применения фильтра в контуре.[00346] 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.

[00347] На фиг. 30 представлено схематическое изображение, показывающее опорные отсчеты, включенные в каждую линию опорных отсчетов.[00347] In FIG. 30 is a schematic diagram showing reference samples included in each reference sample line.

[00348] Отсчет предсказания может быть получен с использованием по меньшей мере одного опорного отсчета, принадлежащего линии опорных отсчетов, в соответствии с режимом внутреннего предсказания текущего блока.[00348] A prediction sample may be obtained using at least one reference sample belonging to a reference sample line in accordance with the intra prediction mode of the current block.

[00349] Затем может быть определен (S2902) режим внутреннего предсказания текущего блока. Как режим внутреннего предсказания текущего блока может быть определен по меньшей мере один из режима ненаправленного внутреннего предсказания или режима направленного внутреннего предсказания. Режим ненаправленного внутреннего предсказания включает планарный режим и режим DC, а направленное внутреннее предсказание включает 33 или 65 режимов от диагонального направления вниз и влево до диагонального направления вверх и вправо.[00349] Next, the intra prediction mode of the current block can be determined (S2902). 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.

[00350] На фиг. 31 представлено схематическое изображение, показывающее режимы внутреннего предсказания.[00350] In FIG. 31 is a schematic diagram showing intra prediction modes.

[00351] На фиг. 31A показаны 35 режимов внутреннего предсказания, и на фиг. 31B показаны 67 режимов внутреннего предсказания.[00351] In FIG. 31A shows 35 intra prediction modes, and FIG. 31B shows 67 intra prediction modes.

[00352] Может быть задано большее количество режимов внутреннего предсказания или меньшее количество режимов внутреннего предсказания, чем показано на фиг. 31.[00352] More intra prediction modes or fewer intra prediction modes may be specified than shown in FIG. 31.

[00353] Наиболее вероятный режим (MPM) может быть установлен на основании режима внутреннего предсказания блока, соседнего с текущим блоком. В данном случае соседний блок может включать левый соседний блок, смежный с левой стороной текущего блока, и верхний соседний блок, смежный с верхней стороной текущего блока. Когда координатами верхнего левого отсчета текущего блока являются (0, 0), левый соседний блок может включать отсчет, расположенный при (-1, 0), (-1, H-1) или (-1, (H-1)/2). В данном случае H представляет высоту текущего блока. Верхний соседний блок может включать отсчет, расположенный при (0, -1), (W-1, -1) или ((W-1)/2, -1). В данном случае W представляет ширину текущего блока.[00353] The most probable mode (MPM) can 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. When the coordinates of the top left sample of the current block are (0, 0), the left adjacent block may include the sample located at (-1, 0), (-1, H-1) or (-1, (H-1)/2 ). In this case, H represents the height of the current block. The upper adjacent block may include a sample located at (0, -1), (W-1, -1) or ((W-1)/2, -1). In this case, W represents the width of the current block.

[00354] Когда соседний блок кодирован с помощью нормального внутреннего предсказания, MPM может быть получен на основании режима внутреннего предсказания соседнего блока. Подробно режим внутреннего предсказания левого соседнего блока может быть установлен с использованием переменной candIntraPredModeA, а режим внутреннего предсказания верхнего соседнего блока может быть установлен с использованием переменной candIntraPredModeB.[00354] When a neighboring block is encoded using normal intra prediction, the MPM can be obtained based on the intra prediction mode of the neighboring block. In detail, the intra prediction mode of the left neighbor block can be set using the variable candIntraPredModeA, and the intra prediction mode of the top neighbor block can be set using the variable candIntraPredModeB.

[00355] В этом случае, когда соседний блок недоступен (например, когда соседний блок еще не был кодирован или декодирован, или когда местоположение соседнего блока отклоняется от края изображения), когда соседний блок кодирован с использованием внутреннего предсказания на основе матрицы, когда соседний блок кодирован с помощью предсказания, осуществляемого между изображениями, или когда соседний блок включен в элемент кодового дерева, отличный от элемента текущего блока, в качестве режима по умолчанию может быть установлена переменная candIntraPredModeX (в данном случае X представляет собой A или B), полученная на основании режима внутреннего предсказания соседнего блока. В данном случае режим по умолчанию может включать по меньшей мере один из планарного режима, режима DC, вертикального режима или горизонтального режима.[00355] In this case, when a neighboring block is not available (for example, when a neighboring block has not yet been encoded or decoded, or when the location of a neighboring block deviates from the edge of the image), when the neighboring block is encoded using matrix-based intra prediction, when the neighboring block is encoded using inter-picture prediction, or when a neighboring block is included in a code tree element other than the current block element, the default mode can be set to the candIntraPredModeX variable (in this case X represents A or B) derived from neighboring block intra prediction mode. Here, the default mode may include at least one of a planar mode, a DC mode, a vertical mode, or a horizontal mode.

[00356] Альтернативно, когда соседний блок кодирован с помощью внутреннего предсказания на основе матрицы, режим внутреннего предсказания, соответствующий индексному значению для указания одной из множества матриц, может быть установлен как candIntraPredModeX. С этой целью в кодере и декодере может быть предварительно сохранена таблица поиска, указывающая соотношение отображения между режимами внутреннего предсказания и индексными значениями для указания матриц.[00356] Alternatively, when a neighboring block is encoded using matrix-based intra prediction, the intra prediction mode corresponding to the index value for indicating one of the plurality of matrices can be set to candIntraPredModeX. For this purpose, a lookup table indicating the mapping relationship between intra prediction modes and index values for specifying matrices may be previously stored in the encoder and decoder.

[00357] MPM могут быть получены на основании переменной candIntraPredModeA и переменной candIntraPredModeB. Количество MPM, включенных в список MPM, может быть предварительно установлено в кодере и декодере. В качестве примера, количество MPM может составлять три, четыре, пять или шесть. Альтернативно информация, указывающая количество МРМ, может передаваться в битовом потоке. Альтернативно количество МРМ может быть определено на основании по меньшей мере одного из режима предсказания соседнего блока или размера или формы текущего блока.[00357] MPMs can be obtained based on the candIntraPredModeA variable and the candIntraPredModeB variable. The number of MPMs included in the MPM list can 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 number of MPMs may be determined based on at least one of a neighboring block prediction mode or the size or shape of the current block.

[00358] В следующих вариантах осуществления предполагается, что количество MPM равно трем, и три MPM называются MPM[0], MPM[1] и MPM[2]. Когда количество МРМ больше трех, МРМ могут быть выполнены с возможностью включения трех МРМ, которые будут описаны в следующих вариантах осуществления.[00358] In the following embodiments, the number of MPMs is assumed to be three, and the three MPMs are called MPM[0], MPM[1], and MPM[2]. When the number of MRMs is greater than three, the MRMs may be configured to include three MRMs, which will be described in the following embodiments.

[00359] Когда candIntraPredA и candIntraPredB идентичны, и candIntraPredA представляет собой планарный режим или режим DC, MPM[0] и MPM[1] могут быть установлены для планарного режима и режима DC соответственно. MPM[2] может быть установлен для вертикального режима внутреннего предсказания, горизонтального режима внутреннего предсказания или диагонального режима внутреннего предсказания. Диагональный режим внутреннего предсказания может представлять собой диагональный режим внутреннего предсказания в направлении вниз и влево, режим внутреннего предсказания в направлении вверх и влево или режим внутреннего предсказания в направлении вверх и вправо.[00359] When candIntraPredA and candIntraPredB are identical, and candIntraPredA is planar mode or DC mode, MPM[0] and MPM[1] can be set for planar mode and DC mode, respectively. MPM[2] can be set for vertical intra prediction mode, horizontal intra prediction mode, or diagonal intra prediction mode. The diagonal intra prediction mode may be a diagonal down-left intra prediction mode, an up-left intra prediction mode, or an up-right intra prediction mode.

[00360] Когда candIntraPredA и candIntraPredB идентичны, и candIntraPredA представляет собой режим направленного внутреннего предсказания, MPM[0] может быть установлен как идентичный candIntraPredA. MPM[1] и MPM[2] могут быть установлены для режимов внутреннего предсказания, подобных candIntraPredA. Режим внутреннего предсказания, подобный candIntraPredA, может представлять собой режим внутреннего предсказания, в котором значение разности индексов по отношению к candIntraPredA равно±1 или±2. Для получения режима внутреннего предсказания, подобного candIntraPredA, могут использоваться операция по модулю (%) и смещение.[00360] When candIntraPredA and candIntraPredB are identical, and candIntraPredA is a directed intra prediction mode, MPM[0] can be set to be identical to candIntraPredA. MPM[1] and MPM[2] can be set for intra prediction modes like candIntraPredA. An intra prediction mode like candIntraPredA may be an intra prediction mode in which the index difference value with respect to candIntraPredA is ±1 or ±2. Modulo (%) and offset operations can be used to obtain an intra prediction mode similar to candIntraPredA.

[00361] Когда candIntraPredA и candIntraPredB различны, MPM[0] может быть установлен как идентичный candIntraPredA, и MPM[1] может быть установлен как идентичный candIntraPredB. В этом случае, когда и candIntraPredA, и candIntraPredB представляют собой режимы ненаправленного внутреннего предсказания, MPM[2] может быть установлен в качестве вертикального режима внутреннего предсказания, горизонтального режима внутреннего предсказания или диагонального режима внутреннего предсказания. Альтернативно, когда по меньшей мере один из candIntraPredA и candIntraPredB представляет собой режим направленного внутреннего предсказания, MPM[2] может быть установлен как режим внутреннего предсказания, полученный путем добавления смещения к планарному режиму, режиму DC или большему из candIntraPredA и candIntraPredB или вычитания их них. В данном случае смещение может быть равно 1 или 2.[00361] When candIntraPredA and candIntraPredB are different, MPM[0] can be set to be identical to candIntraPredA, and MPM[1] can be set to be identical to candIntraPredB. In this case, when both candIntraPredA and candIntraPredB are non-directional intra prediction modes, MPM[2] can be set as a vertical intra prediction mode, a horizontal intra prediction mode, or a diagonal intra prediction mode. Alternatively, when at least one of candIntraPredA and candIntraPredB is a directional intra prediction mode, MPM[2] may be set to be the intra prediction mode obtained by adding an offset to or subtracting the planar mode, DC mode, or greater of candIntraPredA and candIntraPredB . In this case, the offset can be 1 or 2.

[00362] Создается список MPM, содержащий множество MPM, и информация, указывающая, включен ли MPM, идентичный режиму внутреннего предсказания текущего блока, в список MPM, может передаваться в битовом потоке. Информация представляет собой 1-битный флаг, и флаг может называться флагом MPM. Когда флаг MPM указывает, что MPM, идентичный текущему блоку, включен в список MPM, информация об индексах для указания одного из MPM, может передаваться в битовом потоке. В качестве режима внутреннего предсказания текущего блока может быть установлен МРМ, указанный информацией об индексах. Когда флаг MPM указывает, что MPM, идентичный текущему блоку, не включен в список MPM, информация об остаточных режимах, указывающая один из оставшихся режимов внутреннего предсказания, отличных от MPM, может быть передана в битовом потоке. Информация об остаточных режимах указывает индексное значение, соответствующее режиму внутреннего предсказания текущего блока, когда индексы повторно присвоены оставшимся режимам внутреннего предсказания, отличным от MPM. Для определения режима внутреннего предсказания текущего блока, декодер может сортировать МРМ в порядке возрастания и сравнивать МРМ с информацией об остаточных режимах. В качестве примера, когда информация об остаточных режимах меньше или равна MPM, режим внутреннего предсказания текущего блока может быть получен путем добавления единицы к информации об остаточных режимах.[00362] 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. 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 bit stream. 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.

[00363] Вместо установки MPM в качестве режима по умолчанию, в битовом потоке может быть передана информация, указывающая, является ли режим внутреннего предсказания текущего блока режимом по умолчанию. Информация может представлять собой 1-битный флаг, и флаг может называться флагом режима по умолчанию. Флаг режима по умолчанию может быть передан только тогда, когда флаг MPM указывает, что MPM, идентичный текущему блоку, включен в список MPM. Как описано выше, режим по умолчанию может включать по меньшей мере один из планарного режима, режима DC, вертикального режима или горизонтального режима. В качестве примера, когда в качестве режима по умолчанию установлен планарный режим, флаг режима по умолчанию может указывать, является ли режим внутреннего предсказания текущего блока планарным режимом. Когда флаг режима по умолчанию указывает, что режим внутреннего предсказания текущего блока не является режимом по умолчанию, в качестве режима внутреннего предсказания текущего блока может быть установлен один из MPM, указанных информацией об индексах.[00363] 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 bitstream. 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.

[00364] Когда в качестве режимов по умолчанию установлены множество режимов внутреннего предсказания, дальше может быть передана информация об индексах, указывающая один из режимов по умолчанию. Режим внутреннего предсказания текущего блока может быть установлен в качестве режима по умолчанию, указанного информацией об индексах.[00364] 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.

[00365] Когда индекс линии опорных отсчетов текущего блока является ненулевым, установка может быть выполнена так, что режим по умолчанию не используется. Соответственно, когда индекс линии опорных отсчетов является ненулевым, флаг режима по умолчанию может не передаваться, и значение флага режима по умолчанию может быть установлено равным предварительно заданному значению (т.е. false).[00365] When the index of the reference sample line of the current block is non-zero, the setting can be made such that the default 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).

[00366] Когда режим внутреннего предсказания текущего блока определен, отсчеты предсказания для текущего блока могут быть получены (S2903) на основании определенного режима внутреннего предсказания.[00366] When the intra prediction mode of the current block is determined, prediction samples for the current block can be obtained (S2903) based on the determined intra prediction mode.

[00367] Когда выбран режим DC, отсчеты предсказания для текущего блока могут генерироваться на основании среднего значения опорных отсчетов. Подробно значения всех отсчетов в блоке предсказания могут генерироваться на основании среднего значения опорных отсчетов. Среднее значение может быть получено с использованием по меньшей мере одного из верхних опорных отсчетов, расположенных над текущим блоком, и левых опорных отсчетов, расположенных слева от текущего блока.[00367] 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.

[00368] Количество или диапазон опорных отсчетов, используемых для получения среднего значения, может меняться в зависимости от формы текущего блока. В качестве примера, когда текущий блок представляет собой блок неквадратной формы, в котором ширина больше высоты, среднее значение может быть рассчитано с использованием только верхних опорных отсчетов. С другой стороны, когда текущий блок представляет собой блок неквадратной формы, в котором ширина меньше высоты, среднее значение может быть рассчитано с использованием только левых опорных отсчетов. То есть, когда ширина и высота текущего блока отличаются друг от друга, среднее значение может быть рассчитано с использованием только опорных отсчетов, смежных с большей из ширины и высоты. Альтернативно то, следует ли рассчитывать среднее значение с использованием верхних опорных отсчетов или рассчитывать среднее значение с использованием левых опорных отсчетов, можно определить на основании соотношения ширины и высоты текущего блока.[00368] 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.

[00369] Когда выбран планарный режим, отсчет предсказания может быть получен с использованием отсчета горизонтального предсказания и отсчета вертикального предсказания. В данном случае отсчет горизонтального предсказания получается на основании левого опорного отсчета и правого опорного отсчета, расположенных на той же горизонтальной линии, что и отсчет предсказания, а отсчет вертикального предсказания получается на основании верхнего опорного отсчета и нижнего опорного отсчета, расположенных на той же вертикальной линии, что и отсчет предсказания. В данном случае правый опорный отсчет может генерироваться путем копирования опорного отсчета, смежного с верхним правым углом текущего блока, а нижний опорный отсчет может генерироваться путем копирования опорного отсчета, смежного с нижним левым углом текущего блока. Отсчет горизонтального предсказания может быть получен на основании операции взвешенной суммы левого опорного отсчета и правого опорного отсчета, а отсчет вертикального предсказания может быть получен на основании операции взвешенной суммы верхнего опорного отсчета и нижнего опорного отсчета. В этом случае весовой коэффициент, присваиваемый каждому опорному отсчету, может быть определен в зависимости от местоположения отсчета предсказания. Отсчет предсказания может быть получен на основании операции усреднения или операции взвешенной суммы отсчета горизонтального предсказания и отсчета вертикального предсказания. При выполнении операции взвешенной суммы весовые коэффициенты, присваиваемые отсчету горизонтального предсказания и отсчету вертикального предсказания, могут быть определены на основании местоположения отсчета предсказания.[00369] 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.

[00370] Когда выбран режим направленного предсказания, может быть определен параметр, указывающий направление предсказания (или угол предсказания) выбранного режима направленного предсказания. Ниже в таблице 5 представлен параметр внутреннего направления intraPredAng для каждого режима внутреннего предсказания.[00370] 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 5 below presents the intraPredAng intra direction parameter for each intra prediction mode.

[00371] [Таблица 5][00371] [Table 5]

[00372] В таблице 5 представлен параметр внутреннего направления для каждого режима внутреннего предсказания с индексом от 2 до 34, когда заданы 35 режимов внутреннего предсказания. Когда задано более 33 режимов направленного внутреннего предсказания, таблицу 5 можно подразделить с целью установки параметров внутреннего направления для каждого режима направленного внутреннего предсказания.[00372] Table 5 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 directional intra prediction modes are specified, Table 5 can be subdivided to set the intra direction parameters for each directional intra prediction mode.

[00373] После расположения верхних опорных отсчетов и левых опорных отсчетов текущего блока в линию отсчет предсказания может быть получен на основании значения параметра внутреннего направления. В этом случае левые опорные отсчеты и верхние опорные отсчеты могут быть расположены в линию, когда значение параметра внутреннего направления является отрицательным.[00373] 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.

[00374] На фиг. 32 и 33 представлены схематические изображения, показывающие пример одномерного массива, в котором опорные отсчеты расположены в линию.[00374] In FIG. 32 and 33 are schematic diagrams showing an example of a one-dimensional array in which reference samples are arranged in a line.

[00375] На фиг. 32 показан пример одномерного вертикального массива, в котором опорные отсчеты расположены вертикально, а на фиг. 33 показан пример одномерного горизонтального массива, в котором опорные отсчеты расположены горизонтально. Варианты осуществления, представленные на фиг. 32 и 33, будут описаны в предположении, что заданы 35 режимов внутреннего предсказания.[00375] In FIG. 32 shows an example of a one-dimensional vertical array in which the reference samples are located vertically, and FIG. Figure 33 shows an example of a one-dimensional horizontal array in which the reference samples are located horizontally. The embodiments shown in FIGS. 32 and 33 will be described assuming that 35 intra prediction modes are specified.

[00376] Одномерный горизонтальный массив, в котором верхние опорные отсчеты поворачиваются против часовой стрелки, может применяться тогда, когда индекс режима внутреннего предсказания находится между 11 и 18, а одномерный вертикальный массив, в котором левые опорные отсчеты поворачиваются по часовой стрелке, может иметь место тогда, когда индекс режима внутреннего предсказания находится между 19 и 25. Когда опорные отсчеты расположены в линию, может учитываться угол режима внутреннего предсказания.[00376] A one-dimensional horizontal array, in which the top reference samples are rotated counterclockwise, may 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, may be the case 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.

[00377] На основании параметра внутреннего направления может быть определен параметр определения опорного отсчета. Параметр определения опорного отсчета может содержать индекс опорного отсчета для указания опорного отсчета и параметр весового коэффициента для определения весового коэффициента, подлежащего применению к опорному отсчету.[00377] Based on the internal direction parameter, a reference count 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.

[00378] Индекс опорного отсчета iIdx и параметр весового коэффициента ifact могут быть получены с помощью приведенных ниже уравнений 2 и 3.[00378] The reference index iIdx and the weighting parameter ifact can be obtained using Equations 2 and 3 below.

[00379] [Уравнение 2][00379] [Equation 2]

[00380] [Уравнение 3][00380] [Equation 3]

[00381] В уравнениях 2 и 3 Pang представляет параметр внутреннего направления. Опорный отсчет, указываемый индексом опорного отсчета iIdx, соответствует целому пикселю.[00381] In Equations 2 and 3, Pang represents the internal direction parameter. The reference sample, indicated by the reference sample index iIdx, corresponds to an integer pixel.

[00382] Для получения отсчета предсказания может быть указан по меньшей мере один опорный отсчет.Подробно местоположение опорного отсчета для использования при получении отсчета предсказания может быть указано с учетом наклона режима предсказания. В качестве примера, опорный отсчет для использования при получении отсчета предсказания может быть указан с использованием индекса опорного отсчета iIdx.[00382] At least one reference sample may be specified to obtain the prediction sample. In detail, 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.

[00383] В этом случае, когда наклон режима внутреннего предсказания нельзя выразить одним опорным отсчетом, отсчет предсказания может быть сгенерирован путем интерполяции множества опорных отсчетов. В качестве примера, когда наклон режима внутреннего предсказания представляет собой значение между наклоном между отсчетом предсказания и первым опорным отсчетом и наклоном между отсчетом предсказания и вторым опорным отсчетом, отсчет предсказания может быть получен путем интерполяции первого опорного отсчета и второго опорного отсчета. То есть угловая линия, соответствующая углу внутреннего предсказания, не проходит через опорный отсчет, расположенный в целом пикселе, отсчет предсказания может быть получен путем интерполяции опорных отсчетов, смежных с левой, правой, верхней или нижней сторонами местоположения, через которое проходит угловая линия.[00383] 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.

[00384] Ниже в уравнении 4 показан пример получения отсчета предсказания на основании опорных отсчетов.[00384] Below, Equation 4 shows an example of obtaining a prediction sample based on the reference samples.

[00385] [Уравнение 4][00385] [Equation 4]

[00386] В уравнении 4 P представляет отсчет предсказания, и Ref_1D представляет один из опорных отсчетов, расположенных в одном измерении. В этом случае местоположение опорного отсчета может быть определено по индексу опорного отсчета iIdx и местоположению (х, у) отсчета предсказания.[00386] In Equation 4, 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.

[00387] Когда наклон режима внутреннего предсказания может быть выражен одним опорным отсчетом, параметр весового коэффициента ifact может быть установлен равным нулю. Соответственно, уравнение 4 можно упростить до приведенного ниже уравнения 5.[00387] When the slope of the intra prediction mode can be expressed by a single reference sample, the weight parameter ifact can be set to zero. Accordingly, Equation 4 can be simplified to Equation 5 below.

[00388] [Уравнение 5][00388] [Equation 5]

[00389] Внутреннее предсказание может быть выполнено в отношении текущего блока на основании множества режимов внутреннего предсказания. В качестве примера, режим внутреннего предсказания может быть получен для каждого отсчета предсказания, а отсчет предсказания может быть получен на основании режима внутреннего предсказания, присвоенного соответствующему отсчету предсказания.[00389] 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.

[00390] Альтернативно режим внутреннего предсказания может быть получен для каждой области, и внутреннее предсказание может быть выполнено в отношении соответствующей области на основании режима внутреннего предсказания, присвоенного соответствующей области. В данном случае область может содержать по меньшей мере один отсчет. По меньшей мере одно из размера или формы области может быть адаптивно определено на основании по меньшей мере одного из размера, формы или режима внутреннего предсказания текущего блока. Альтернативно по меньшей мере одно из размера или формы области может быть предварительно задано в кодере и декодере независимо от размера или формы текущего блока.[00390] Alternatively, an intra prediction mode may be obtained for each region, and intra prediction may be performed on the corresponding region based on the intra prediction mode assigned to the corresponding region. In this case, the region may contain at least one sample. At least one of the size or shape of the region 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.

[00391] Альтернативно внутреннее предсказание может выполняться многократно, и конечный отсчет предсказания может быть получен на основании операции усреднения или операции взвешенной суммы множества отсчетов предсказания, полученных путем многократного выполнения внутреннего предсказания. В качестве примера, первый отсчет предсказания может быть получен путем выполнения внутреннего предсказания на основании первого режима внутреннего предсказания, а второй отсчет предсказания может быть получен путем выполнения внутреннего предсказания на основании второго режима внутреннего предсказания. Затем конечный отсчет предсказания может быть получен на основании операции усреднения или операции взвешенной суммы первого отсчета предсказания и второго отсчета предсказания. В этом случае весовые коэффициенты, присваиваемые первому отсчету предсказания и второму отсчету предсказания, могут быть определены с учетом по меньшей мере одного из того, является ли первый режим внутреннего предсказания режимом ненаправленного предсказания или режимом направленного предсказания, того, является ли второй режим внутреннего предсказания режимом ненаправленного предсказания или режимом направленного предсказания, или режима внутреннего предсказания соседнего блока.[00391] 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.

[00392] Множество режимов внутреннего предсказания могут представлять собой комбинацию режима ненаправленного внутреннего предсказания и режима направленного внутреннего предсказания, комбинацию режимов направленного внутреннего предсказания или комбинацию режимов ненаправленного внутреннего предсказания.[00392] 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.

[00393] На фиг. 34 представлено схематическое изображение, иллюстрирующее углы, образованные между прямой линией, параллельной оси х, и режимами направленного внутреннего предсказания.[00393] In FIG. 34 is a schematic view illustrating the angles formed between a straight line parallel to the x-axis and the directional intra prediction modes.

[00394] В примере, показанном на фиг. 34, режимы направленного предсказания могут находиться в диапазоне от диагонального направления вниз и влево до диагонального направления вверх и вправо. Там, где следующее описание предполагает угол, образованный между осью x и режимом направленного предсказания, режимы направленного предсказания могут находиться в диапазоне от 45 градусов (в диагональном направлении вниз и влево) до -135 градусов (в диагональном направлении вверх и вправо).[00394] In the example shown in FIG. 34, 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).

[00395] Когда текущий блок имеет неквадратную форму, отсчет предсказания может быть получен с использованием опорного отсчета вдали от отсчета предсказания из опорных отсчетов, расположенных на угловой линии, соответствующей углу внутреннего предсказания, вместо опорного отсчета вблизи отсчета предсказания в зависимости от режима внутреннего предсказания текущего блока.[00395] 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.

[00396] На фиг. 35 представлено схематическое изображение, показывающее аспект, в котором отсчет предсказания получается, когда текущий блок имеет неквадратную форму.[00396] In FIG. 35 is a schematic view showing an aspect in which a prediction count is obtained when the current block has a non-square shape.

[00397] Например, как в примере, показанном на фиг. 35A, предполагается, что текущий блок имеет неквадратную форму, в которой ширина больше высоты, и что режимом внутреннего предсказания текущего блока является режим направленного внутреннего предсказания, имеющий угол от 0 градусов до 45 градусов. В этом случае при получении отсчета А предсказания рядом с правым столбцом текущего блока может использоваться левый опорный отсчет L вдали от отсчета предсказания вместо верхнего опорного отсчета Т вблизи отсчета предсказания из опорных отсчетов, расположенных на угловой линии, соответствующей углу.[00397] For example, as in the example shown in FIG. 35A, 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 may be used instead of the top reference sample T near the prediction sample from the reference samples located on the corner line corresponding to the corner.

[00398] В качестве другого примера, как в примере, показанном на фиг. 35B, предполагается, что текущий блок имеет неквадратную форму, в которой высота больше ширины, и что режимом внутреннего предсказания текущего блока является режим направленного внутреннего предсказания, имеющий угол от -90 градусов до -135 градусов. В этом случае при получении отсчета А предсказания рядом с нижней строкой текущего блока может использоваться верхний опорный отсчет Т вдали от отсчета предсказания из опорных отсчетов, расположенных на угловой линии, соответствующей углу, вместо левого опорного отсчета L вблизи отсчета предсказания.[00398] As another example, as in the example shown in FIG. 35B, 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.

[00399] Для решения данной проблемы, когда текущий блок имеет неквадратную форму, режим внутреннего предсказания текущего блока может быть заменен режимом внутреннего предсказания в противоположном направлении. Таким образом, для блоков неквадратной формы могут быть использованы режимы направленного предсказания, имеющие угол, который больше или меньше, чем у режимов направленного предсказания, показанных на фиг. 31. Такой режим направленного внутреннего предсказания может быть задан в качестве широкоугольного режима внутреннего предсказания. Широкоугольный режим внутреннего предсказания представляет режим направленного внутреннего предсказания, не находящийся в диапазоне от 45 градусов до -135 градусов.[00399] 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. 31. 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.

[00400] На фиг. 36 представлено схематическое изображение, показывающее широкоугольные режимы внутреннего предсказания.[00400] In FIG. 36 is a schematic diagram showing wide-angle intra prediction modes.

[00401] В примере, показанном на фиг. 36, широкоугольные режимы внутреннего предсказания указаны режимами внутреннего предсказания с индексом от -1 до -14 и режимами внутреннего предсказания с индексом от 67 до 80.[00401] In the example shown in FIG. 36, wide-angle intra prediction modes are indicated by intra prediction modes indexed from -1 to -14 and intra prediction modes indexed from 67 to 80.

[00402] На фиг. 36 проиллюстрированы 14 широкоугольных режимов внутреннего предсказания, имеющих угол, который больше 45 градусов (от -1 до -14), и 14 широкоугольных режимов внутреннего предсказания, имеющих угол, который меньше -135 градусов (от 67 до 80), однако может быть задано большее или меньшее количество широкоугольных режимов внутреннего предсказания.[00402] In FIG. 36 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.

[00403] Когда используется широкоугольный режим внутреннего предсказания, длина верхних опорных отсчетов может быть установлена равной 2W+1, и длина левых опорных отсчетов может быть установлена равной 2H+1.[00403] 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.

[00404] Когда используется широкоугольный режим внутреннего предсказания, отсчет А, показанный на фиг. 35A, может быть предсказан с использованием опорного отсчета Т, а отсчет А, показанный на фиг. 35B, может быть предсказан с использованием опорного отсчета L.[00404] When the wide-angle intra prediction mode is used, count A shown in FIG. 35A can be predicted using the reference sample T, and the sample A shown in FIG. 35B can be predicted using the reference sample L.

[00405] Путем добавления N широкоугольных режимов внутреннего предсказания к существующим режимам внутреннего предсказания может использоваться в общем 67+N режимов внутреннего предсказания. В качестве примера, в таблице 6 показаны параметры внутреннего направления режимов внутреннего предсказания, когда заданы 20 широкоугольных режимов внутреннего предсказания.[00405] 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 6 shows the inner direction parameters of the intra prediction modes when 20 wide-angle intra prediction modes are specified.

[00406] [Таблица 6][00406] [Table 6]

[00407] Параметры внутреннего направления могут быть установлены по-разному на основании по меньшей мере одного из размера, формы или линии опорных отсчетов текущего блока. В качестве примера, параметр внутреннего направления для конкретного режима внутреннего предсказания, когда текущий блок является квадратным, может отличаться от такового, когда текущий блок имеет неквадратную форму. В качестве примера, параметр внутреннего направления intraPredAngle режима внутреннего предсказания №15 может иметь большее значение, когда текущий блок является квадратным, чем в случае, когда текущий блок имеет неквадратную форму.[00407] The internal direction parameters may be set differently based on at least one of the size, shape, or reference line of the current block. As an example, the intra direction parameter for a particular intra prediction mode when the current block is square may be different from when the current block is non-square. As an example, the internal direction parameter intraPredAngle of intra prediction mode #15 may have a greater value when the current block is square than when the current block is non-square.

[00408] Альтернативно параметр внутреннего направления intraPredAngle режима внутреннего предсказания №75 может иметь большее значение, когда индекс линии опорных отсчетов текущего блока равен 1 или более, чем в случае, когда индекс линии опорных отсчетов текущего блока равен 0.[00408] Alternatively, the internal direction parameter intraPredAngle of intra prediction mode No. 75 may have a larger value when the reference sample line index of the current block is 1 or more than when the reference sample line index of the current block is 0.

[00409] Когда текущий блок имеет неквадратную форму, и режим внутреннего предсказания текущего блока, полученный на этапе S2902, находится в пределах диапазона преобразования, режим внутреннего предсказания текущего блока может быть преобразован в широкоугольный режим внутреннего предсказания. Диапазон преобразования может быть определен на основании по меньшей мере одного из размера, формы или соотношения текущего блока. В данном случае соотношение может указывать соотношение между шириной и высотой текущего блока.[00409] When the current block has a non-square shape, and the intra prediction mode of the current block obtained in step S2902 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.

[00410] Когда текущий блок имеет неквадратную форму, в которой ширина больше высоты, диапазон преобразования может быть установлен в диапазоне от индекса режима внутреннего предсказания в диагональном направлении вверх и вправо (например, 66) до индекса режима внутреннего предсказания в диагональном направлении вверх и вправо минус N. В данном случае N может быть определено на основании соотношения текущего блока. Когда режим внутреннего предсказания текущего блока находится в пределах диапазона преобразования, режим внутреннего предсказания может быть преобразован в широкоугольный режим внутреннего предсказания. Преобразование может представлять собой вычитание предварительно заданного значения из режима внутреннего предсказания, и предварительно заданное значение может представлять собой общее количество (например, 67) режимов внутреннего предсказания за исключением широкоугольных режимов внутреннего предсказания.[00410] When the current block has a non-square shape in which the width is greater than the height, the transformation 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.

[00411] Согласно вышеописанному варианту осуществления режимы внутреннего предсказания от №66 до №53 могут быть преобразованы в широкоугольные режимы внутреннего предсказания от №-1 до №-14 соответственно.[00411] 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.

[00412] Когда текущий блок имеет неквадратную форму, в которой высота больше ширины, диапазон преобразования может быть установлен в диапазоне от индекса режима внутреннего предсказания в диагональном направлении вниз и влево (например, 2) до индекса режима внутреннего предсказания в диагональном направлении вниз и влево плюс M. В данном случае М может быть определено на основании соотношения текущего блока. Когда режим внутреннего предсказания текущего блока находится в пределах диапазона преобразования, режим внутреннего предсказания может быть преобразован в широкоугольный режим внутреннего предсказания. Преобразование может представлять собой добавление предварительно заданного значения к режиму внутреннего предсказания, а предварительно заданное значение может представлять собой общее количество (например, 65) режимов направленного внутреннего предсказания за исключением широкоугольных режимов внутреннего предсказания.[00412] 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 a diagonal down-left intra prediction mode index (eg, 2) to a 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.

[00413] Согласно вышеописанному варианту осуществления режимы внутреннего предсказания от №2 до №15 могут быть преобразованы в широкоугольные режимы внутреннего предсказания от №67 до №80 соответственно.[00413] 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.

[00414] Режимы внутреннего предсказания, находящиеся в пределах диапазона преобразования, будут называться альтернативными широкоугольными режимами внутреннего предсказания.[00414] Intra prediction modes that are within the transform range will be referred to as alternative wide-angle intra prediction modes.

[00415] Диапазон преобразования может быть определен на основании соотношения текущего блока. В качестве примера, в таблице 7 и таблице 8 представлен диапазон преобразования, когда заданы 35 режимов внутреннего предсказания за исключением широкоугольных режимов внутреннего предсказания, и диапазон предсказания, когда заданы 67 режимов внутреннего предсказания.[00415] The conversion range can be determined based on the ratio of the current block. As an example, Table 7 and Table 8 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.

[00416] [Таблица 7][00416] [Table 7]

[00417] [Таблица 8][00417] [Table 8]

[00418] В примерах, показанных в таблице 7 и таблице 8, количество альтернативных широкоугольных режимов внутреннего предсказания, находящихся в пределах диапазона преобразования, может отличаться в зависимости от соотношения текущего блока.[00418] In the examples shown in Table 7 and Table 8, the number of alternative wide-angle intra prediction modes within the conversion range may differ depending on the ratio of the current block.

[00419] Так как широкоугольные режимы внутреннего предсказания используются в дополнение к существующим режимам внутреннего предсказания, ресурсы, необходимые для кодирования широкоугольных режимов внутреннего предсказания, могут увеличиваться, и, таким образом, может снижаться эффективность кодирования. Соответственно, эффективность кодирования можно повысить путем кодирования альтернативных режимов внутреннего предсказания для широкоугольных режимов внутреннего предсказания вместо кодирования широкоугольных режимов внутреннего предсказания как есть.[00419] 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.

[00420] В качестве примера, когда текущий блок кодируется в широкоугольном режиме внутреннего предсказания №67, в режим внутреннего предсказания текущего блока может кодироваться широкоугольный режим внутреннего предсказания №2, который представляет собой альтернативный широкоугольный режим внутреннего предсказания для №67. Кроме того, когда текущий блок кодируется в широкоугольном режиме внутреннего предсказания №-1, в режим внутреннего предсказания текущего блока может кодироваться широкоугольный режим внутреннего предсказания №66, который представляет собой альтернативный широкоугольный режим внутреннего предсказания для №-1.[00420] As an example, when the current block is encoded in the wide-angle intra prediction mode #67, the wide-angle intra prediction mode #2, which is an alternative wide-angle intra prediction mode for #67, may be encoded into the intra prediction mode of the current block. In addition, when 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.

[00421] Декодер может декодировать режим внутреннего предсказания текущего блока и может определять, находится ли декодированный режим внутреннего предсказания в пределах диапазона преобразования. Когда декодированный режим внутреннего предсказания представляет собой альтернативный широкоугольный режим внутреннего предсказания, режим внутреннего предсказания может быть преобразован в широкоугольный режим внутреннего предсказания.[00421] 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.

[00422] Альтернативно, когда текущий блок кодируется в широкоугольном режиме внутреннего предсказания, широкоугольный режим внутреннего предсказания может кодироваться как есть.[00422] 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.

[00423] Кодирование режима внутреннего предсказания может выполняться на основании вышеописанного списка МРМ. Подробно, когда соседний блок кодирован в широкоугольном режиме внутреннего предсказания, MPM может быть установлен на основании альтернативного широкоугольного режима внутреннего предсказания, соответствующего широкоугольному режиму внутреннего предсказания. В качестве примера, когда соседний блок кодирован в широкоугольном режиме внутреннего предсказания, в качестве альтернативного широкоугольного режима внутреннего предсказания может быть установлена переменная candIntraPredX (X представляет собой A или B).[00423] 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. As an example, when a neighboring block is encoded in the wide-angle intra prediction mode, the variable candIntraPredX (X represents A or B) may be set as the alternative wide-angle intra prediction mode.

[00424] Когда блок предсказания генерируется в результате выполнения внутреннего предсказания, отсчеты предсказания могут быть обновлены на основании местоположений отсчетов предсказания, включенных в блок предсказания. Способ обновления может называться способом внутреннего взвешенного предсказания на основе положения отсчетов (или комбинацией предсказаний в зависимости от положения (PDPC)).[00424] When a prediction block is generated as a result of performing intra prediction, the prediction samples may be updated based on the locations of the prediction samples included in the prediction block. The updating method may be called a position-based intra-weighted prediction method (or position-dependent prediction combination (PDPC)).

[00425] То, использовать ли PDPC, может быть определено с учетом режима внутреннего предсказания текущего блока, линии опорных отсчетов текущего блока, размера текущего блока или цветовой компоненты. В качестве примера, PDPC может использоваться, когда режимом внутреннего предсказания текущего блока является по меньшей мере один из режима, имеющего меньшее индексное значение, чем планарный режим, режим DC, вертикальный режим и горизонтальный режим, или режима, имеющего большее индексное значение, чем горизонтальный режим. Альтернативно PDPC может использоваться только тогда, когда по меньшей мере одна из ширины и высоты текущего блока больше 4. Альтернативно PDPC может использоваться только тогда, когда индекс линии опорного изображения текущего блока равен 0. Альтернативно PDPC может использоваться только тогда, когда индекс линии опорного изображения текущего блока больше или равен предварительно заданному значению. Альтернативно PDPC может использоваться только для компоненты яркости. Альтернативно то, использовать ли PDPC, может быть определено в соответствии с тем, удовлетворяются ли два или более вышеописанных условий.[00425] Whether to use PDPC may be determined taking into account the intra prediction mode of the current block, the reference sample line of the current block, the size of the current block, or the color component. As an example, PDPC may be used when the intra prediction mode of the current block is at least one of a mode having a lower index value than a planar mode, a DC mode, a vertical mode and a horizontal mode, or a mode having a higher index value than horizontal mode. Alternatively, PDPC may only be used when at least one of the current block's width and height is greater than 4. Alternatively, PDPC may only be used when the reference picture line index of the current block is 0. Alternatively, PDPC may only be used when the reference picture line index current block is greater than or equal to a preset value. Alternatively, PDPC can be used for the luminance component only. Alternatively, whether to use PDPC can be determined according to whether two or more of the above conditions are satisfied.

[00426] В качестве другого примера, информация, указывающая, применять ли PDPC, может быть передана в битовом потоке.[00426] As another example, information indicating whether to apply PDPC may be transmitted in a bitstream.

[00427] Когда отсчет предсказания получен с помощью отсчета внутреннего предсказания, опорный отсчет, используемый для коррекции отсчета предсказания, может быть определен на основании местоположения полученного отсчета предсказания. Для удобства описания в следующих вариантах осуществления опорный отсчет, используемый для коррекции отсчета предсказания, будет называться опорным отсчетом PDPC. В дополнение, отсчет предсказания, полученный с помощью внутреннего предсказания, будет называться первым отсчетом предсказания, а отсчет предсказания, полученный путем коррекции первого отсчета предсказания, будет называться вторым отсчетом предсказания.[00427] When a prediction sample is obtained using an intra prediction sample, a reference sample used to correct the prediction sample can be determined based on the location of the acquired prediction sample. For convenience of description, in the following embodiments, the reference sample used to correct the prediction sample will be referred to as a PDPC reference sample. In addition, the prediction sample obtained by intra prediction will be called the first prediction sample, and the prediction sample obtained by correcting the first prediction sample will be called the second prediction sample.

[00428] На фиг. 37 представлено схематическое изображение, показывающее аспект применения PDPC.[00428] In FIG. 37 is a schematic diagram showing an application aspect of PDPC.

[00429] Первый отсчет предсказания может корректироваться с использованием по меньшей мере одного опорного отсчета PDPC. Опорный отсчет PDPC может включать по меньшей мере одно из опорного отсчета, смежного с верхним левым углом текущего блока, верхнего опорного отсчета, расположенного сверху от текущего блока, и левого опорного отсчета, расположенного слева от текущего блока.[00429] The first prediction sample may be adjusted using at least one PDPC reference sample. The PDPC reference sample may include at least one of a reference sample adjacent to an upper left corner of the current block, an upper reference sample located above the current block, and a left reference sample located to the left of the current block.

[00430] Как опорный отсчет PDPC может быть установлен по меньшей мере один из опорных отсчетов, принадлежащих линии опорных отсчетов текущего блока. Альтернативно, независимо от линии опорных отсчетов текущего блока, в качестве опорного отсчета PDPC может быть установлен по меньшей мере один опорный отсчет, принадлежащий линии опорных отсчетов с индексом 0. В качестве примера, хотя первый отсчет предсказания получается с использованием опорных отсчетов, включенных в линию опорных отсчетов с индексом 1 или индексом 2, второй отсчет предсказания может быть получен с использованием опорных отсчетов, включенных в линию опорных отсчетов с индексом 0.[00430] At least one of the reference samples belonging to the reference sample line of the current block may be set as the PDPC reference sample. Alternatively, regardless of the reference sample line of the current block, at least one reference sample belonging to the reference sample line with index 0 may be set as the PDPC reference sample. As an example, although the first prediction sample is obtained using the reference samples included in the line reference samples with index 1 or index 2, a second prediction sample can be obtained using the reference samples included in the line of reference samples with index 0.

[00431] Количество или местоположения опорных отсчетов PDPC, используемых для коррекции первого отсчета предсказания, могут быть определены с учетом по меньшей мере одного из режимов внутреннего предсказания текущего блока, размера текущего блока, формы текущего блока или местоположения первого отсчета предсказания.[00431] The number or locations of PDPC reference samples used to correct the first prediction sample may be determined taking into account at least one of the intra prediction modes of the current block, the size of the current block, the shape of the current block, or the location of the first prediction sample.

[00432] В качестве примера, когда режимом внутреннего предсказания текущего блока является планарный режим или режим DC, второй отсчет предсказания может быть получен с использованием верхнего опорного отсчета и левого опорного отсчета. В этом случае верхний опорный отсчет может представлять собой опорный отсчет, перпендикулярный первому отсчету предсказания (например, опорный отсчет, имеющий такую же координату х), и левый опорный отсчет может представлять собой опорный отсчет, параллельный первому отсчету предсказания (например, опорный отсчет, имеющий такую же координату y).[00432] As an example, when the intra prediction mode of the current block is planar mode or DC mode, the second prediction sample may be obtained using the top reference sample and the left reference sample. In this case, the top reference sample may be a reference sample perpendicular to the first prediction sample (for example, a reference sample having the same x-coordinate), and the left reference sample may be a reference sample parallel to the first prediction sample (for example, a reference sample having the same y coordinate).

[00433] Когда режимом внутреннего предсказания текущего блока является горизонтальный режим внутреннего предсказания, второй отсчет предсказания может быть получен с использованием верхнего опорного отсчета. В этом случае верхний опорный отсчет может представлять собой опорный отсчет, перпендикулярный первому отсчету предсказания.[00433] When the intra prediction mode of the current block is the horizontal intra prediction mode, the second prediction sample may be obtained using the upper reference sample. In this case, the upper reference sample may be a reference sample perpendicular to the first prediction sample.

[00434] Когда режимом внутреннего предсказания текущего блока является вертикальный режим внутреннего предсказания, второй отсчет предсказания может быть получен с использованием левого опорного отсчета. В этом случае левый опорный отсчет может представлять собой опорный отсчет, параллельный первому отсчету предсказания.[00434] When the intra prediction mode of the current block is the vertical intra prediction mode, the second prediction sample may be obtained using the left reference sample. In this case, the left reference sample may be a reference sample parallel to the first prediction sample.

[00435] Когда режимом внутреннего предсказания текущего блока является диагональный режим внутреннего предсказания в направлении вниз и влево или диагональный режим внутреннего предсказания в направлении вверх и вправо, второй отсчет предсказания может быть получен на основании верхнего левого опорного отсчета, верхнего опорного отсчета и левого опорного отсчета. Верхний левый опорных отсчет может представлять собой опорный отсчет, смежный с верхним левым углом текущего блока (например, опорный отсчет, расположенный при (-1, -1)). Верхний опорный отсчет может представлять собой опорный отсчет, расположенный диагонально над и справа от первого отсчета предсказания, и левый опорный отсчет может представлять собой опорный отсчет, расположенный диагонально под и слева от первого отсчета предсказания.[00435] When the intra prediction mode of the current block is a diagonal intra prediction mode in the down and left direction or a diagonal intra prediction mode in the up and right direction, the second prediction sample can be obtained based on the upper left reference sample, the upper reference sample and the left reference sample . The top left reference sample may be a reference sample adjacent to the top left corner of the current block (eg, a reference sample located at (-1, -1)). The top reference sample may be a reference sample located diagonally above and to the right of the first prediction sample, and the left reference sample may be a reference sample located diagonally below and to the left of the first prediction sample.

[00436] Подводя итог, когда местоположением первого отсчета предсказания является (x, y), в качестве верхнего левого опорного отсчета может быть установлен R(-1, -1), и в качестве верхнего опорного отсчета может быть установлен R(x+y+1, -1) или R(x, -1). Кроме того, в качестве левого опорного отсчета может быть установлен R(-1, x+y+1) или R(-1, y).[00436] To summarize, when the location of the first prediction sample is (x, y), the top left reference sample can be set to R(-1, -1), and the top reference sample can be set to R(x+y +1, -1) or R(x, -1). In addition, R(-1, x+y+1) or R(-1, y) can be set as the left reference count.

[00437] В качестве другого примера, местоположение левого опорного отсчета или верхнего опорного отсчета может быть определено с учетом по меньшей мере одного из формы текущего блока или того, применялся ли широкоугольный внутренний режим.[00437] As another example, the location of the left reference count or the top reference count may be determined taking into account at least one of the shape of the current block or whether a wide-angle internal mode has been applied.

[00438] Подробно, когда режимом внутреннего предсказания текущего блока является широкоугольный режим внутреннего предсказания, в качестве опорного отсчета PDPC может быть установлен опорный отсчет, расположенный на расстоянии смещения от опорного отсчета, расположенного диагонально относительно первого отсчета предсказания. В качестве примера, верхний опорный отсчет R(x+y+k+1, -1) и левый опорный отсчет R(-1, x+y-k+1) могут быть установлены в качестве опорных отсчетов PDPC.[00438] In detail, when the intra prediction mode of the current block is the wide-angle intra prediction mode, the reference sample located at an offset distance from the reference sample located diagonally with respect to the first prediction sample can be set as the PDPC reference sample. As an example, the top reference sample R(x+y+k+1, -1) and the left reference sample R(-1, x+y-k+1) may be set as the PDPC reference samples.

[00439] В этом случае смещение k может быть определено на основании широкоугольного режима внутреннего предсказания. В уравнении 6 и уравнении 7 представлен пример получения смещения на основании широкоугольного режима внутреннего предсказания.[00439] In this case, the offset k can be determined based on the wide-angle intra prediction mode. Equation 6 and Equation 7 present an example of obtaining the offset based on the wide-angle intra prediction mode.

[00440] [Уравнение 6][00440] [Equation 6]

[00441] [Уравнение 7][00441] [Equation 7]

[00442] Второй отсчет предсказания может быть определен на основании операции взвешенной суммы первого отсчета предсказания и опорных отсчетов PDPC. В качестве примера, второй отсчет предсказания может быть получен на основании приведенного ниже уравнения 8.[00442] The second prediction sample may be determined based on a weighted sum operation of the first prediction sample and the PDPC reference samples. As an example, the second prediction sample can be obtained based on Equation 8 below.

[00443] [Уравнение 8][00443] [Equation 8]

[00444] В уравнении 8 RL представляет левый опорный отсчет, RT представляет верхний опорный отсчет, и RTL представляет верхний левый опорный отсчет. pred(x,y) представляет отсчет предсказания, расположенный при (x,y). wL представляет весовой коэффициент, присвоенный левому опорному отсчету, wT представляет весовой коэффициент, присвоенный верхнему опорному отсчету, и wTL представляет весовой коэффициент, присвоенный верхнему левому опорному отсчету. Весовой коэффициент, присваиваемый первому отсчету предсказания, может быть получен путем вычитания весовых коэффициентов, присвоенных опорным отсчетам, из максимального значения. Для удобства описания весовой коэффициент, присваиваемый опорному отсчету PDPC, будет называться весовым коэффициентом PDPC.[00444] In Equation 8, RL represents the left reference sample, RT represents the top reference sample, and RTL represents the top left reference sample. pred(x,y) represents the prediction sample located at (x,y). wL represents a weight assigned to the left reference sample, wT represents a weight assigned to the top reference sample, and wTL represents a weight assigned to the top left reference sample. The weight assigned to the first prediction sample can be obtained by subtracting the weights assigned to the reference samples from the maximum value. For ease of description, the weight assigned to the PDPC reference sample will be referred to as the PDPC weight.

[00445] Весовой коэффициент, присваиваемый каждому опорному отсчету, может быть определен на основании по меньшей мере одного из режима внутреннего предсказания текущего блока или местоположения первого отсчета предсказания.[00445] The weight assigned to each reference sample may be determined based on at least one of the intra prediction mode of the current block or the location of the first prediction sample.

[00446] В качестве примера, по меньшей мере один из wL, wT или wTL может являться прямо или обратно пропорциональным по меньшей мере одной из координаты x или координаты y отсчета предсказания. Альтернативно по меньшей мере один из wL, wT или wTL может являться прямо или обратно пропорциональным по меньшей мере одной из ширины или высоты текущего блока.[00446] As an example, at least one of wL, wT, or wTL may be directly or inversely proportional to at least one of the x coordinate or y coordinate of the prediction sample. Alternatively, at least one of wL, wT, or wTL may be directly or inversely proportional to at least one of the width or height of the current block.

[00447] Когда режимом внутреннего предсказания текущего блока является режим DC, весовые коэффициенты PDPC можно определить по приведенному ниже уравнению 9.[00447] When the intra prediction mode of the current block is DC mode, the PDPC weights can be determined from Equation 9 below.

[00448] [Уравнение 9][00448] [Equation 9]

[00449] В уравнении 9 x и y представляют местоположение первого отсчета предсказания.[00449] In Equation 9, x and y represent the location of the first prediction sample.

[00450] В уравнении 9 переменная shift, используемая для операции битового сдвига, может быть получен на основании ширины или высоты текущего блока. В качестве примера, переменная shift может быть получена на основании приведенного ниже уравнения 10 или 11.[00450] In Equation 9, the shift variable used for the bit shift operation can be obtained based on the width or height of the current block. As an example, the shift variable can be derived from Equation 10 or 11 below.

[00451] [Уравнение 10][00451] [Equation 10]

[00452] [Уравнение 11][00452] [Equation 11]

[00453] Альтернативно переменная shift может быть получена с учетом параметра внутреннего направления текущего блока.[00453] Alternatively, the shift variable can be derived from the current block's internal direction parameter.

[00454] Количество или типы параметров, используемых для получения переменной shift, могут определяться по-разному в зависимости от режима внутреннего предсказания текущего блока. В качестве примера, когда режимом внутреннего предсказания текущего блока является планарный режим, режим DC, вертикальный режим или горизонтальный режим, переменная shift может быть получена с использованием ширины (width) и высоты (height) текущего блока, как в примере, показанном в уравнении 10 или уравнении 11. Когда режимом внутреннего предсказания текущего блока является режим внутреннего предсказания, имеющий индекс, который больше, чем у вертикального режима внутреннего предсказания, переменная shift может быть получена с использованием параметра внутреннего направления и высоты текущего блока. Когда режимом внутреннего предсказания текущего блока является режим внутреннего предсказания, имеющий индекс, который меньше, чем у горизонтального режима внутреннего предсказания, переменная shift может быть получена с использованием параметра внутреннего направления и ширины текущего блока.[00454] The number or types of parameters used to obtain the shift variable may be determined differently depending on the intra prediction mode of the current block. As an example, when the intra prediction mode of the current block is planar mode, DC mode, vertical mode or horizontal mode, the shift variable can be obtained using the width and height of the current block, as in the example shown in Equation 10 or Equation 11. When the intra prediction mode of the current block is an intra prediction mode having an index that is greater than that of the vertical intra prediction mode, the shift variable can be obtained using the intra direction and height parameter of the current block. When the intra prediction mode of the current block is an intra prediction mode having an index that is smaller than that of the horizontal intra prediction mode, the shift variable can be obtained using the intra direction and width parameter of the current block.

[00455] Когда режимом внутреннего предсказания текущего блока является планарный режим, значение wTL может быть установлено равным 0. wL и wT могут быть получены на основании приведенного ниже уравнения 12.[00455] When the intra prediction mode of the current block is planar mode, the value of wTL can be set to 0. wL and wT can be obtained based on Equation 12 below.

[00456] [Уравнение 12][00456] [Equation 12]

[00457] Когда режимом внутреннего предсказания текущего блока является горизонтальный режим внутреннего предсказания, wT может быть установлен равным 0, и wTL и wL могут быть установлены идентично. С другой стороны, когда режимом внутреннего предсказания текущего блока является вертикальный режим внутреннего предсказания, wL может быть установлен равным 0, и wTL и wL могут быть установлены идентично.[00457] When the intra prediction mode of the current block is the horizontal intra prediction mode, wT may be set to 0, and wTL and wL may be set identically. On the other hand, when the intra prediction mode of the current block is the vertical intra prediction mode, wL can be set to 0, and wTL and wL can be set identically.

[00458] Когда режимом внутреннего предсказания текущего блока является режим внутреннего предсказания в направлении вверх и вправо, имеющий индексное значение, которое больше, чем у вертикального режима внутреннего предсказания, весовые коэффициенты PDPC могут быть получены с использованием приведенного ниже уравнения 13.[00458] When the intra prediction mode of the current block is an up-right intra prediction mode having an index value that is greater than that of the vertical intra prediction mode, the PDPC weights can be obtained using Equation 13 below.

[00459] [Уравнение 13][00459] [Equation 13]

[00460] С другой стороны, когда режимом внутреннего предсказания текущего блока является режим внутреннего предсказания в направлении вниз и влево, имеющий индексное значение, которое меньше, чем у горизонтального режима внутреннего предсказания, весовые коэффициенты PDPC могут быть получены с использованием приведенного ниже уравнения 14.[00460] On the other hand, when the intra prediction mode of the current block is a down-left intra prediction mode having an index value that is smaller than that of the horizontal intra prediction mode, the PDPC weights can be obtained using Equation 14 below.

[00461] [Уравнение 14][00461] [Equation 14]

[00462] Как и в вышеописанных вариантах осуществления, весовые коэффициенты PDPC могут быть определены на основании положений x и y отсчета предсказания.[00462] As in the above-described embodiments, the PDPC weights can be determined based on the x and y positions of the prediction sample.

[00463] В качестве другого примера, весовой коэффициент, присваиваемый каждому опорному отсчету PDPC, может быть определен в элементах подблоков. В отсчетах предсказания, включенных в подблок, могут совместно использоваться одинаковые весовые коэффициенты PDPC.[00463] As another example, a weight assigned to each PDPC reference sample may be defined in subblock elements. The prediction samples included in a sub-block may share the same PDPC weights.

[00464] Размер подблока, который является базовым элементом для определения весовых коэффициентов, может быть предварительно задан в кодере и декодере. В качестве примера, весовые коэффициенты могут быть определены для подблоков 2×2 или 4×4.[00464] The size of the subblock, which is the basis for determining the weights, can be preset in the encoder and decoder. As an example, weights may be determined for 2x2 or 4x4 subblocks.

[00465] Альтернативно размер, форма или количество подблоков могут быть определены в зависимости от размера или формы текущего блока. В качестве примера, блок кодирования может быть разбит на четыре подблока независимо от размера блока кодирования. Альтернативно в зависимости от размера блока кодирования блок кодирования может быть разбит на четыре или шестнадцать подблоков.[00465] Alternatively, the size, shape, or number of subblocks may be determined depending on the size or shape of the current block. As an example, a coding block may be divided into four sub-blocks regardless of the size of the coding block. Alternatively, depending on the size of the coding block, the coding block can be divided into four or sixteen sub-blocks.

[00466] Альтернативно размер, форма или количество подблоков могут быть определены в зависимости от режима внутреннего предсказания текущего блока. В качестве примера, когда режимом внутреннего предсказания текущего блока является горизонтальный режим, в качестве одного подблока могут быть установлены N столбцов (или N строк), а когда режимом внутреннего предсказания текущего блока является вертикальный режим, в качестве одного подблока могут быть установлены N строк (или N столбцов).[00466] Alternatively, the size, shape, or number of subblocks may be determined depending on the intra prediction mode of the current block. As an example, when the intra prediction mode of the current block is horizontal mode, N columns (or N rows) may be set as one sub-block, and when the intra prediction mode of the current block is vertical mode, N rows (or N rows) may be set as one sub-block. or N columns).

[00467] В уравнениях 15-17 представлен пример определения весовых коэффициентов PDPC для подблока 2×2. В уравнении 15 проиллюстрировано, что режимом внутреннего предсказания текущего блока является режим DC.[00467] Equations 15-17 provide an example of determining the PDPC weights for a 2x2 subblock. Equation 15 illustrates that the intra prediction mode of the current block is DC mode.

[00468] [Уравнение 15][00468] [Equation 15]

[00469] В уравнении 15 K может представлять собой значение, определяемое на основании режима внутреннего предсказания или размера подблока.[00469] In Equation 15, K may be a value determined based on the intra prediction mode or subblock size.

[00470] В уравнении 16 проиллюстрировано, что режимом внутреннего предсказания текущего блока является режим внутреннего предсказания в направлении вверх и вправо, имеющий индексное значение, которое больше, чем у вертикального режима внутреннего предсказания.[00470] In Equation 16, it is illustrated that the intra prediction mode of the current block is an up-right intra prediction mode having an index value that is greater than that of the vertical intra prediction mode.

[00471] [Уравнение 16][00471] [Equation 16]

[00472] В уравнении 17 проиллюстрировано, что режимом внутреннего предсказания текущего блока является режим внутреннего предсказания в направлении вниз и влево, имеющий индексное значение, которое меньше, чем у горизонтального режима внутреннего предсказания.[00472] In Equation 17, it is illustrated that the intra prediction mode of the current block is a down-left intra prediction mode having an index value that is less than that of the horizontal intra prediction mode.

[00473] [Уравнение 17][00473] [Equation 17]

[00474] В уравнениях 15-17 x и y представляют местоположение опорного отсчета в подблоке. Опорный отсчет может представлять собой один из отсчета, расположенного в верхнем левом углу подблока, отсчета, расположенного в центре подблока, или отсчета, расположенного в нижнем правом углу подблока.[00474] In equations 15-17, x and y represent the location of the reference sample in the subblock. The reference sample may be one of a sample located in the upper left corner of the subblock, a sample located in the center of the subblock, or a sample located in the lower right corner of the subblock.

[00475] В уравнениях 18-20 представлен пример определения весовых коэффициентов PDPC для подблока 4×4. В уравнении 18 проиллюстрировано, что режимом внутреннего предсказания текущего блока является режим DC.[00475] Equations 18-20 provide an example of determining the PDPC weights for a 4x4 subblock. Equation 18 illustrates that the intra prediction mode of the current block is DC mode.

[00476] [Уравнение 18][00476] [Equation 18]

[00477] В уравнении 19 проиллюстрировано, что режимом внутреннего предсказания текущего блока является режим внутреннего предсказания в направлении вверх и вправо, имеющий индексное значение, которое больше, чем у вертикального режима внутреннего предсказания.[00477] In Equation 19, it is illustrated that the intra prediction mode of the current block is an up-right intra prediction mode having an index value that is greater than that of the vertical intra prediction mode.

[00478] [Уравнение 19][00478] [Equation 19]

[00479] В уравнении 20 проиллюстрировано, что режимом внутреннего предсказания текущего блока является режим внутреннего предсказания в направлении вниз и влево, имеющий индексное значение, которое меньше, чем у горизонтального режима внутреннего предсказания.[00479] In Equation 20, it is illustrated that the intra prediction mode of the current block is a down-left intra prediction mode having an index value that is less than that of the horizontal intra prediction mode.

[00480] [Уравнение 20][00480] [Equation 20]

[00481] В приведенных выше вариантах осуществления весовые коэффициенты PDPC описаны как определяемые с учетом местоположений отсчетов предсказания, включенных в подблок, или первого отсчета предсказания. Весовые коэффициенты PDPC могут определяться дополнительно с учетом текущего блока.[00481] In the above embodiments, the PDPC weights are described as being determined taking into account the locations of the prediction samples included in the subblock or the first prediction sample. PDPC weights can be further determined based on the current block.

[00482] В качестве примера, в случае режима DC способ получения весовых коэффициентов PDPC может меняться в зависимости от того, имеет текущий блок неквадратную форму, в которой ширина больше высоты, или неквадратную форму, в которой высота больше ширины.[00482] As an example, in the case of DC mode, the method of obtaining the PDPC weights may vary depending on whether the current block has a non-square shape in which the width is greater than the height, or a non-square shape in which the height is greater than the width.

[00483] В уравнении 21 показан пример получения весовых коэффициентов PDPC, когда текущий блок имеет неквадратную форму, в которой ширина больше высоты, и в уравнении 22 показан пример получения весовых коэффициентов PDPC, когда текущий блок имеет неквадратную форму, в которой высота больше ширины.[00483] Equation 21 shows an example of obtaining PDPC weights when the current block has a non-square shape in which the width is greater than the height, and Equation 22 shows an example of obtaining the PDPC weights when the current block has a non-square shape in which the height is greater than the width.

[00484] [Уравнение 21][00484] [Equation 21]

[00485] [Уравнение 22][00485] [Equation 22]

[00486] Когда текущий блок имеет неквадратную форму, текущий блок может быть предсказан с использованием широкоугольного режима внутреннего предсказания. Даже при применении широкоугольного внутреннего предсказания первый отсчет предсказания может обновляться путем применения PDPC.[00486] When the current block has a non-square shape, the current block can be predicted using the wide-angle intra prediction mode. Even when wide-angle intra prediction is applied, the first prediction sample can be updated by applying PDPC.

[00487] Когда к текущему блоку применяется широкоугольное внутреннее предсказание, весовые коэффициенты PDPC могут определяться с учетом формы блока кодирования.[00487] When wide-angle intra prediction is applied to the current block, PDPC weights can be determined taking into account the shape of the coding block.

[00488] В качестве примера, когда текущий блок имеет неквадратную форму, в которой ширина больше высоты, верхний опорный отсчет, расположенный справа и над первым отсчетом предсказания, может находиться ближе к первому отсчету предсказания, чем левый опорный отсчет, расположенный слева и под первым отсчетом предсказания, в зависимости от местоположения первого отсчета предсказания. Соответственно, когда коррекции подвергается первый отсчет предсказания, весовой коэффициент, применяемый к верхнему опорному отсчету, может быть установлен так, что он имеет большее значение, чем весовой коэффициент, применяемый к левому опорному отсчету.[00488] As an example, when the current block has a non-square shape in which the width is greater than the height, the top reference sample located to the right and above the first prediction sample may be closer to the first prediction sample than the left reference sample located to the left and below the first prediction sample, depending on the location of the first prediction sample. Accordingly, when the first prediction sample is corrected, the weight applied to the upper reference sample can be set to be larger than the weight applied to the left reference sample.

[00489] С другой стороны, когда текущий блок имеет неквадратную форму, в которой высота больше ширины, левый опорный отсчет, расположенный слева и под первым отсчетом предсказания, может находиться ближе к первому отсчету предсказания, чем верхний опорный отсчет, расположенный справа и над первым отсчетом предсказания, в зависимости от местоположения первого отсчета предсказания. Соответственно, когда коррекции подвергается первый отсчет предсказания, весовой коэффициент, применяемый к левому опорному отсчету, может быть установлен так, что он имеет большее значение, чем весовой коэффициент, применяемый к верхнему опорному отсчету.[00489] On the other hand, when the current block has a non-square shape in which the height is greater than the width, the left reference sample located to the left and below the first prediction sample may be closer to the first prediction sample than the top reference sample located to the right and above the first prediction sample, depending on the location of the first prediction sample. Accordingly, when the first prediction sample is subject to correction, the weight applied to the left reference sample can be set to be larger than the weight applied to the upper reference sample.

[00490] В уравнении 23 представлен пример получения весовых коэффициентов PDPC, когда режимом внутреннего предсказания текущего блока является широкоугольный режим внутреннего предсказания с индексом, который больше 66.[00490] Equation 23 provides an example of obtaining PDPC weights when the intra prediction mode of the current block is a wide-angle intra prediction mode with an index that is greater than 66.

[00491] [Уравнение 23][00491] [Equation 23]

[00492] В уравнении 24 представлен пример получения весовых коэффициентов PDPC, когда режимом внутреннего предсказания текущего блока является широкоугольный режим внутреннего предсказания с индексом, который меньше 0.[00492] Equation 24 provides an example of obtaining PDPC weights when the intra prediction mode of the current block is a wide-angle intra prediction mode with an index that is less than 0.

[00493] [Уравнение 24][00493] [Equation 24]

[00494] Весовые коэффициенты PDPC могут определяться на основании соотношения текущего блока. Соотношение текущего блока указывает соотношение ширины и высоты текущего блока, и оно может быть задано с использованием приведенного ниже уравнения 25.[00494] PDPC weights may be determined based on the ratio of the current block. The current block ratio indicates the width and height ratio of the current block, and it can be set using Equation 25 below.

[00495] [Уравнение 25][00495] [Equation 25]

[00496] Способ получения весовых коэффициентов PDPC может определяться переменным образом в зависимости от режима внутреннего предсказания текущего блока.[00496] The method for obtaining the PDPC weights may be determined in a variable manner depending on the intra prediction mode of the current block.

[00497] В качестве примера, в уравнении 26 и уравнении 27 представлен пример получения весовых коэффициентов PDPC, когда режимом внутреннего предсказания текущего блока является режим DC. Подробно уравнение 26 представляет собой пример, в котором текущий блок имеет неквадратную форму, в которой ширина больше высоты, и уравнение 27 представляет собой пример, в котором текущий блок имеет неквадратную форму, в которой высота больше ширины.[00497] As an example, Equation 26 and Equation 27 present an example of obtaining PDPC weights when the intra prediction mode of the current block is DC mode. In detail, Equation 26 is an example in which the current block has a non-square shape in which the width is greater than the height, and Equation 27 is an example in which the current block has a non-square shape in which the height is greater than the width.

[00498] [Уравнение 26][00498] [Equation 26]

[00499] [Уравнение 27][00499] [Equation 27]

[00500] В уравнении 28 представлен пример получения весовых коэффициентов PDPC, когда режимом внутреннего предсказания текущего блока является широкоугольный режим внутреннего предсказания с индексом, который больше 66.[00500] Equation 28 provides an example of obtaining PDPC weights when the intra prediction mode of the current block is a wide-angle intra prediction mode with an index that is greater than 66.

[00501] [Уравнение 28][00501] [Equation 28]

[00502] В уравнении 29 представлен пример получения весовых коэффициентов PDPC, когда режимом внутреннего предсказания текущего блока является широкоугольный режим внутреннего предсказания с индексом, который меньше 0.[00502] Equation 29 provides an example of obtaining PDPC weights when the intra prediction mode of the current block is a wide-angle intra prediction mode with an index that is less than 0.

[00503] [Уравнение 29][00503] [Equation 29]

[00504] Остаточный блок может быть получен путем вычитания предсказания из исходного блока. В этом случае, когда остаточный блок изменяется на частотную область, субъективное качество видео значительно не снижается, даже если из частотных компонентов удалены высокочастотные компоненты. Соответственно, когда значения высокочастотных компонентов изменяются на небольшие значения, или когда значения высокочастотных компонентов установлены равными 0, можно повысить эффективность сжатия, не вызывая значительное зрительное искажение. С учетом вышеописанных характеристик, текущий блок может быть преобразован с целью разложения остаточного блока на двумерные частотные компоненты. Преобразование может выполняться с использованием такого метода преобразования, как дискретное косинусное преобразование (DCT) или дискретное синусное преобразование (DST).[00504] The residual block can be obtained by subtracting the prediction from the original block. In this case, when the residual block is changed to the frequency domain, the subjective quality of the video 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 block 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).

[00505] В DCT для разложения (или преобразования) остаточного блока на (в) двумерные частотные компоненты используется косинусное преобразование, и в DST для разложения (или преобразования) остаточного блока на (в) двумерные частотные компоненты используется синусное преобразование. В результате преобразования остаточного блока частотные компоненты могут быть выражены с помощью базовой схемы. В качестве примера, когда DCT выполняется в отношении блока N×N, может быть получено N2 компонентов базовой схемы. Размер каждого из компонентов базовой схемы, включенных в блок N×N, может быть получен с помощью преобразования. В соответствии с используемым методом преобразования, размер компонента базовой схемы может называться коэффициентом DCT или коэффициентом DST.[00505] In DCT, a cosine transform is used to decompose (or transform) a residual block into (in) two-dimensional frequency components, and in DST, a sine transform is used to decompose (or transform) a residual block into (in) two-dimensional frequency components. As a result of the residual block transformation, the frequency components can be expressed using the basic circuit. As an example, when DCT is performed on an N×N block, N2 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.

[00506] Метод преобразования DCT используется главным образом для преобразования блока, в котором распределены множество ненулевых низкочастотных компонентов. Метод преобразования DST используется главным образом для блока, в котором распределены множество высокочастотных компонентов.[00506] The DCT transform method is mainly used to transform a block in which a plurality of non-zero low-frequency components are distributed. The DST conversion method is mainly used for a block in which many high-frequency components are distributed.

[00507] Остаточный блок может преобразовываться с использованием метода преобразования, отличного от DCT или DST.[00507] The residual block may be transformed using a transformation method other than DCT or DST.

[00508] Преобразование остаточного блока в двумерные частотные компоненты будет называться двумерным преобразованием. В дополнение, размер компонентов базовой схемы, полученных с помощью результата преобразования, будет называться коэффициентом преобразования. В качестве примера, коэффициент преобразования может называться коэффициентом DCT или коэффициентом DST. Когда применяются оба из первого преобразования и второго преобразования, которые будут описаны ниже, коэффициент преобразования может относиться к размеру компонента базовой схемы, сгенерированного в результате второго преобразования.[00508] The transformation of the residual block into two-dimensional frequency components will be called a two-dimensional transformation. 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.

[00509] Метод преобразования может быть определен в элементах блоков. Метод преобразования может быть определен на основании по меньшей мере одного из режима предсказания текущего блока или размера текущего блока. В качестве примера, когда текущий блок кодируется в режиме внутреннего предсказания, и размер текущего блока меньше N×N, преобразование может выполняться с использованием метода преобразования DST. С другой стороны, когда вышеприведенное условие не удовлетворяется, преобразование может выполняться с использованием метода преобразования DCT.[00509] The conversion method may be defined in block elements. The transformation method may be determined based on at least one of a prediction 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 transformation may be performed using the DST transformation method. On the other hand, when the above condition is not satisfied, the conversion can be performed using the DCT conversion method.

[00510] Двумерное преобразование может не выполняться в отношении некоторых из остаточных блоков. Невыполнение двумерного преобразования может называться пропуском преобразования. При применении пропуска преобразования квантование может применяться к остаточным значениям, в отношении которых преобразование не выполняется.[00510] The two-dimensional transformation may not be performed on some of the residual 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.

[00511] После преобразования текущего блока с использованием DCT или DST преобразованный текущий блок может подвергаться повторному преобразованию. В этом случае преобразование на основании DCT или DST может быть задано в качестве первого преобразования, а повторное преобразование блока, подвергнутого первому преобразованию, может быть задано в качестве второго преобразования.[00511] 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.

[00512] Первое преобразование может выполняться с использованием одной из множества основ-кандидатов преобразования. В качестве примера, первое преобразование может выполняться с использованием одной из DCT2, DCT8 и DCT7.[00512] 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.

[00513] В горизонтальном направлении и вертикальном направлении могут использоваться разные основы преобразования. Информация, указывающая комбинацию основы вертикального преобразования и основы горизонтального преобразования, может передаваться в битовом потоке.[00513] 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.

[00514] Первое преобразование и второе преобразование могут выполняться в разных элементах. В качестве примера, первое преобразование может выполняться в отношении блока 8×8, и второе преобразование может выполняться в отношении подблока 4×4 преобразованного блока 8×8. В этом случае коэффициент преобразования остаточных областей, в которых второе преобразование не выполняется, может быть установлен равным 0.[00514] 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 transformation factor of the residual regions in which the second transformation is not performed can be set to 0.

[00515] Альтернативно первое преобразование может выполняться в отношении блока 4×4, а второе преобразование может выполняться в отношении области блока 8×8, содержащей преобразованный блок 4×4.[00515] Alternatively, the first transform may be performed on the 4x4 block and the second transform may be performed on the region of the 8x8 block containing the transformed 4x4 block.

[00516] Информация, указывающая, выполнять ли второе преобразование, может быть передана в битовом потоке.[00516] Information indicating whether to perform the second conversion may be transmitted in the bitstream.

[00517] Альтернативно то, выполнять ли второе преобразование, может быть определено на основании того, являются ли идентичными основа горизонтального преобразования и основа вертикального преобразования. В качестве примера, второе преобразование может выполняться только тогда, когда основа горизонтального преобразования и основа вертикального преобразования являются идентичными. Альтернативно второе преобразование может выполняться только тогда, когда основа горизонтального преобразования и основа вертикального преобразования отличаются.[00517] Alternatively, whether to perform the second transformation may be determined based on whether the horizontal transformation basis and the vertical transformation basis are identical. As an example, the second transformation can be performed only when the horizontal transformation basis and the vertical transformation basis are identical. Alternatively, the second transformation may be performed only when the horizontal transformation basis and the vertical transformation basis are different.

[00518] Альтернативно второе преобразование может являться допустимым только тогда, когда в горизонтальном преобразовании и вертикальном преобразовании используется предварительно заданная основа преобразования. В качестве примера, второе преобразование может являться допустимым, когда для горизонтального преобразования и вертикального преобразования используется основа преобразования DCT2.[00518] Alternatively, the second transform may only be valid when the horizontal transform and vertical transform use a predefined transform basis. As an example, the second transform may be valid when the DCT2 transform basis is used for the horizontal transform and vertical transform.

[00519] Альтернативно то, выполнять ли второе преобразование, может быть определено на основании количества ненулевых коэффициентов преобразования текущего блока. В качестве примера, может быть установлено не использовать второе преобразование, когда ненулевой коэффициент преобразования текущего блока меньше или равен пороговому значению, и может быть установлено использовать второе преобразование, когда ненулевой коэффициент преобразования текущего блока больше порогового значения. Может быть установлено использовать второе преобразование только тогда, когда текущий блок кодируется с помощью внутреннего предсказания.[00519] Alternatively, whether to perform the second transform may be determined based on the number of non-zero transform coefficients of the current block. As an example, it may be set to not use the second transform when the non-zero transform gain of the current block is less than or equal to a threshold value, and it may be set to use the second transform when the non-zero transform gain of the current block is greater than the threshold value. It can be set to use the second transform only when the current block is encoded using intra prediction.

[00520] Размер или форма подблока, который должен быть подвергнут второму преобразованию, могут быть определены на основании формы текущего блока.[00520] The size or shape of the subblock to be subjected to the second transformation may be determined based on the shape of the current block.

[00521] На фиг. 38 и 39 представлены схематические изображения, показывающие подблок, который должен быть подвергнут второму преобразованию.[00521] In FIG. 38 and 39 are schematic diagrams showing a subblock to be subjected to the second transformation.

[00522] Когда текущий блок является квадратным, второе преобразование может выполняться в отношении подблока N×N, расположенного в верхнем левом углу текущего блока, после выполнения первого преобразования. В качестве примера, когда текущим блоком является блок кодирования 8×8, второе преобразования может выполняться в отношении подблока 4×4, расположенного в верхнем левому углу текущего блока, после выполнения первого преобразования в отношении текущего блока (см. фиг. 38).[00522] When the current block is square, a second transformation may be performed on an N×N subblock located in the upper left corner of the current block after the first transformation is performed. As an example, when the current block is an 8×8 encoding block, a second transform may be performed on a 4×4 sub-block located in the upper left corner of the current block after performing the first transform on the current block (see FIG. 38).

[00523] Когда текущий блок имеет неквадратную форму, в которой ширина в четыре или более раз больше высоты, второе преобразование может выполняться в отношении подблока kN×4kN, расположенного в верхнем левом углу текущего блока, после выполнения первого преобразования. В качестве примера, когда текущий блок имеет неквадратную форму с размером 16×4, первое преобразование может выполняться в отношении текущего блока, а затем второе преобразование может выполняться в отношении подблока 2×8, расположенного в верхнем левом углу текущего блока (см. фиг. 39A).[00523] When the current block has a non-square shape in which the width is four or more times the height, the second transformation may be performed on the kN×4kN subblock located in the upper left corner of the current block after performing the first transformation. As an example, when the current block is non-square with a size of 16x4, a first transformation may be performed on the current block, and then a second transformation may be performed on a 2x8 subblock located in the upper left corner of the current block (see FIG. 39A).

[00524] Когда текущий блок имеет неквадратную форму, в которой высота в четыре или более раз больше ширины, второе преобразование может выполняться в отношении подблока 4kN×kN, расположенного в верхнем левому углу текущего блока, после выполнения первого преобразования. В качестве примера, когда текущий блок имеет неквадратную форму с размером 16×4, первое преобразование может выполняться в отношении текущего блока, а затем второе преобразование может выполняться в отношении подблока 2×8, расположенного в верхнем левом углу текущего блока (см. фиг. 39B).[00524] When the current block has a non-square shape in which the height is four or more times the width, a second transformation may be performed on a 4kN×kN subblock located in the upper left corner of the current block after the first transformation is performed. As an example, when the current block is non-square with a size of 16x4, a first transformation may be performed on the current block, and then a second transformation may be performed on a 2x8 subblock located in the upper left corner of the current block (see FIG. 39B).

[00525] Декодер может выполнять обратное преобразование второго преобразования (второе обратное преобразование) и может выполнять обратное преобразование первого преобразования (первое обратное преобразование) в отношении результата второго обратного преобразования. В результате выполнения второго обратного преобразования и первого обратного преобразования могут быть получены остаточные сигналы для текущего блока.[00525] 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.

[00526] Квантование выполняется с целью снижения энергии блока, и процесс квантования включает деление коэффициента преобразования на конкретное постоянное значение. Это постоянное значение может быть получено посредством параметра квантования, а параметр квантования может быть задан как значение от 1 до 63.[00526] Quantization is performed to reduce the block energy, and the quantization process involves dividing the conversion coefficient 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.

[00527] Когда кодер выполняет преобразование и квантование, декодер может получать остаточный блок путем обратного квантования и обратного преобразования. Декодер может получать восстановленный блок для текущего блока путем сложения блока предсказания и остаточного блока.[00527] When the encoder performs the transform and quantization, the decoder can obtain the residual block by inverse quantization and inverse transform. The decoder can obtain a reconstructed block for the current block by adding the prediction block and the residual block.

[00528] Информация, указывающая тип предсказания текущего блока, может передаваться в битовом потоке. Информация может представлять собой информацию об индексах tu_mts_idx, указывающую одну из множества комбинаций горизонтального типа преобразования и вертикального типа преобразования.[00528] Information indicating the prediction type of the current block may be transmitted in a bit stream. The information may be index information tu_mts_idx indicating one of a plurality of combinations of a horizontal transformation type and a vertical transformation type.

[00529] Основа вертикального преобразования и основа горизонтального преобразования могут определяться на основании типов-кандидатов преобразования, указываемых информацией об индексах tu_mts_idx. В таблице 9 и таблице 10 представлены комбинации типов преобразования, соответствующие tu_mts_idx.[00529] The vertical transformation basis and the horizontal transformation basis may be determined based on the transformation candidate types indicated by the index information tu_mts_idx. Table 9 and Table 10 show combinations of conversion types corresponding to tu_mts_idx.

[00530] [Таблица 9][00530] [Table 9]

[00531] [Таблица 10][00531] [Table 10]

[00532] Может быть определено, что типом преобразования является одно из DCT2, DST7, DCT8 или пропуска преобразования. Альтернативно комбинации-кандидаты типов преобразования могут быть составлены с использованием только основ преобразования за исключением пропуска преобразования.[00532] The conversion type may be determined to be one of DCT2, DST7, DCT8, or skip conversion. Alternatively, candidate transformation type combinations can be constructed using only the transformation stems excluding the skip transformation.

[00533] При использовании таблицы 9, когда tu_mts_idx равна 0, в горизонтальном направлении и вертикальном направлении может применяться пропуск преобразования. Когда tu_mts_idx равна 1, в горизонтальном направлении и вертикальном направлении может применяться DCT2. Когда tu_mts_idx равна 3, в горизонтальном направлении может применяться DCT8, и в вертикальном направлении может применяться DCT7.[00533] When using table 9, when tu_mts_idx is 0, skip conversion may be applied in the horizontal direction and vertical direction. When tu_mts_idx is 1, DCT2 can be applied in the horizontal direction and vertical direction. When tu_mts_idx is 3, DCT8 can be applied in the horizontal direction, and DCT7 can be applied in the vertical direction.

[00534] При использовании таблицы 10, когда tu_mts_idx равна 0, в горизонтальном направлении и вертикальном направлении может применяться DCT2. Когда tu_mts_idx равна 1, в горизонтальном направлении и вертикальном направлении может применяться пропуск преобразования. Когда tu_mts_idx равна 3, в горизонтальном направлении может применяться DCT8, и в вертикальном направлении может применяться DCT7.[00534] When using table 10, when tu_mts_idx is 0, DCT2 can be applied in the horizontal direction and vertical direction. When tu_mts_idx is 1, skip conversion can be applied in the horizontal direction and vertical direction. When tu_mts_idx is 3, DCT8 can be applied in the horizontal direction, and DCT7 can be applied in the vertical direction.

[00535] То, кодировать ли информацию об индексах, может быть определено на основании по меньшей мере одного из размера или формы текущего блока или количества ненулевых коэффициентов. В качестве примера, когда количество ненулевых коэффициентов меньше или равно пороговому значению, информация об индексах может не передаваться, и к текущему блоку может применяться тип преобразования по умолчанию. В данном случае типом преобразования по умолчанию может являться DST7. Альтернативно режим по умолчанию может меняться в зависимости от размера, формы или режима внутреннего предсказания текущего блока.[00535] Whether to encode index information may be determined based on at least one of the size or shape of the current block or the number of non-zero coefficients. As an example, when the number of non-zero coefficients is less than or equal to a threshold, index information may not be transmitted and a default transform type may be applied to the current block. In this case, the default conversion type may be DST7. Alternatively, the default mode may vary depending on the size, shape, or intra prediction mode of the current block.

[00536] Пороговое значение может определяться на основании размера или формы текущего блока. В качестве примера, пороговое значение может быть установлено равным 2, когда размер текущего блока меньше или равен 32×32, и пороговое значение может быть установлено равным 4, когда размер текущего блока больше 32×32 (например, когда текущим блоком является блок кодирования 32×64 или 64×32).[00536] The threshold value may be determined based on the size or shape of the current block. As an example, the threshold value may be set to 2 when the current block size is less than or equal to 32×32, and the threshold value may be set to 4 when the current block size is greater than 32×32 (for example, when the current block is encoding block 32 ×64 or 64×32).

[00537] В кодере или декодере могут быть предварительно сохранены множество таблиц поиска. По меньшей мере одно из индексных значений, присваиваемых комбинациям-кандидатам типов преобразования, типам комбинаций-кандидатов типов преобразования или количеству комбинаций-кандидатов типов преобразования может отличаться для каждой из множества таблиц поиска.[00537] A plurality of lookup tables may be previously stored in the encoder or decoder. At least one of the index values assigned to the transformation type candidate combinations, the transformation type candidate combination types, or the number of transformation type candidate combinations may be different for each of the plurality of lookup tables.

[00538] Таблица поиска текущего блока может быть выбрана на основании по меньшей мере одного из размера, формы, режима предсказания или режима внутреннего предсказания текущего блока, того, применять ли вторичное преобразование, или того, применять ли пропуск преобразования к соседнему блоку.[00538] The lookup table of the current block may be selected based on at least one of the size, shape, prediction mode, or intra prediction mode of the current block, whether to apply a secondary transform, or whether to apply a skip transform to an adjacent block.

[00539] В качестве примера, таблица поиска, представленная в таблице 9, может использоваться тогда, когда размер текущего блока меньше или равен 4×4, или когда текущий блок кодируется с помощью предсказания, осуществляемого между изображениями, а таблица поиска, представленная в таблице 10, может использоваться тогда, когда размер текущего блока больше 4×4, или когда текущий блок кодируется с помощью внутреннего предсказания.[00539] As an example, the lookup table presented in Table 9 may be used when the size of the current block is less than or equal to 4×4, or when the current block is encoded using inter-picture prediction and the lookup table presented in the table 10 may be used when the size of the current block is greater than 4x4, or when the current block is encoded using intra prediction.

[00540] Альтернативно информация, указывающая одну из множества таблиц поиска, может передаваться в битовом потоке. На основании информации декодер может выбирать таблицу поиска для текущего блока.[00540] Alternatively, information indicating one of a plurality of lookup tables may be transmitted in a bit stream. Based on the information, the decoder can select a lookup table for the current block.

[00541] В качестве другого примера, индекс, присваиваемый комбинации-кандидату типов преобразования, может определяться адаптивно на основании по меньшей мере одного из размера, формы, режима предсказания или режима внутреннего предсказания текущего блока, того, применять ли вторичное преобразование, или того, применять ли пропуск преобразования к соседнему блоку. В качестве примера, индекс, присваиваемый пропуску преобразования, когда размер текущего блока равен 4×4, может иметь меньшее значение, чем индекс, присваиваемый пропуску преобразования, когда размер текущего блока больше 4×4. Подробно индекс 0 может быть присвоен пропуску преобразования, когда размер текущего блока равен 4×4, и индекс, который больше 0 (например, индекс 1), может быть присвоен пропуску преобразования, когда размер текущего блока больше 4×4 и меньше или равен 16×16. Когда размер текущего блока больше 16×16, индексу пропуска преобразования может быть присвоено максимальное значение (например, 5).[00541] As another example, an index assigned to a candidate transform type combination may be determined adaptively based on at least one of the size, shape, prediction mode, or intra prediction mode of the current block, whether to apply a secondary transform, or whether whether to apply skip transformation to an adjacent block. As an example, the index assigned to the conversion skip when the current block size is 4×4 may have a smaller value than the index assigned to the conversion skip when the current block size is greater than 4×4. In detail, index 0 can be assigned to a conversion skip when the current block size is 4x4, and an index that is greater than 0 (for example, index 1) can be assigned to a conversion skip when the current block size is greater than 4x4 and less than or equal to 16 ×16. When the current block size is greater than 16x16, the transform skip index can be set to the maximum value (eg, 5).

[00542] Альтернативно, когда текущий блок кодируется с помощью предсказания, осуществляемого между изображениями, к пропуску преобразования может быть применен индекс 0. Когда текущий блок кодируется с помощью внутреннего предсказания, пропуску преобразования может быть присвоен индекс, который больше 0 (например, индекс 1).[00542] Alternatively, when the current block is encoded using inter-picture prediction, the transform skip may be assigned an index of 0. When the current block is encoded using intra-prediction, the transform skip may be assigned an index that is greater than 0 (e.g., index 1 ).

[00543] Альтернативно, когда текущий блок представляет собой блок 4×4, кодируемый с помощью предсказания, осуществляемого между изображениями, пропуску преобразования может быть присвоен индекс 0. С другой стороны, когда текущий блок не кодируется с помощью предсказания, осуществляемого между изображениями, или когда текущий блок имеет размер больше 4×4, пропуску преобразования может быть присвоен индекс, который больше 0 (например, индекс 1).[00543] Alternatively, when the current block is a 4x4 block encoded by inter-picture prediction, the transform skip may be assigned an index of 0. On the other hand, when the current block is not encoded by inter-picture prediction, or when the current block is larger than 4x4, the conversion skip may be assigned an index that is greater than 0 (for example, index 1).

[00544] Могут быть заданы и использованы комбинации-кандидаты типов преобразования, отличные от комбинаций-кандидатов типов преобразования, перечисленных в таблице 9 и таблице 10. В качестве примера, пропуск преобразования может применяться к одному из горизонтального преобразования или вертикального преобразования, а для другого из них может использоваться комбинация-кандидат типов преобразования, к которой применяется такая основа преобразования, как DCT7, DCT8 или DST2. В этом случае то, использовать ли пропуск преобразования для горизонтального типа-кандидата преобразования или вертикального типа-кандидата преобразования, может быть определено на основании по меньшей мере одного из размера (например, ширины и/или высоты), формы, режима предсказания или режима внутреннего предсказания текущего блока.[00544] Candidate transform type combinations other than the candidate transform type combinations listed in Table 9 and Table 10 may be defined and used. As an example, skip transform may be applied to one of the horizontal transform or the vertical transform, and for the other of these, a combination of candidate transformation types may be used to which a transformation basis such as DCT7, DCT8 or DST2 is applied. In this case, whether to use transformation skip for a horizontal transformation candidate type or a vertical transformation candidate type may be determined based on at least one of size (e.g., width and/or height), shape, prediction mode, or internal mode predictions of the current block.

[00545] Альтернативно информация, указывающая, является ли доступным конкретный тип-кандидат преобразования, может передаваться в битовом потоке. В качестве примера, может передаваться флаг, указывающий, использовать ли пропуск преобразования для горизонтального направления и вертикального направления в качестве типа-кандидата преобразования. В соответствии с флагом может быть определено, включена ли конкретная комбинация-кандидат типов преобразования из множества комбинаций-кандидатов типов преобразования.[00545] Alternatively, information indicating whether a particular conversion candidate type is available may be carried in the bit stream. As an example, a flag may be transmitted indicating whether to use skip conversion for the horizontal direction and vertical direction as the conversion candidate type. According to the flag, it can be determined whether a particular conversion type candidate combination is included from a plurality of conversion type candidate combinations.

[00546] Альтернативно то, применяется ли конкретный тип-кандидат преобразования к текущему блоку, может быть передано в битовом потоке. В качестве примера, может передаваться флаг cu_mts_flag, указывающий, применять ли DCT2 в горизонтальном направлении и вертикальном направлении. Когда значение cu_mts_flag равно 1, в качестве основы преобразования для вертикального направления и горизонтального направления может быть установлено DCT2. Когда значение cu_mts_flag равно 0, в качестве основы преобразования для вертикального направления и горизонтального направления может быть установлено DCT8 или DST7. Альтернативно, когда значение cu_mts_flag равно 0, может передаваться информация tu_mts_idx, указывающая одну из множества комбинаций-кандидатов типов преобразования.[00546] Alternatively, whether a particular conversion candidate type applies to the current block may be conveyed in the bit stream. As an example, a cu_mts_flag may be transmitted indicating whether to apply DCT2 in the horizontal direction and vertical direction. When the value of cu_mts_flag is 1, the conversion basis for the vertical direction and horizontal direction can be set to DCT2. When the value of cu_mts_flag is 0, the conversion basis for vertical direction and horizontal direction can be set to DCT8 or DST7. Alternatively, when the value of cu_mts_flag is 0, tu_mts_idx information may be transmitted indicating one of a plurality of candidate transformation type combinations.

[00547] Когда текущий блок имеет неквадратную форму, в которой ширина больше высоты, или неквадратную форму, в которой высота больше ширины, кодирование cu_mts_flag может быть пропущено, и значение cu_mts_flag может считаться нулевым.[00547] When the current block has a non-square shape in which the width is greater than the height, or a non-square shape in which the height is greater than the width, the cu_mts_flag encoding may be skipped and the value of cu_mts_flag may be considered zero.

[00548] Количество доступных комбинаций-кандидатов типов преобразования может быть установлено по-разному в зависимости от размера, формы или режима внутреннего предсказания текущего блока. В качестве примера, когда текущий блок является квадратным, может использоваться три или более комбинаций-кандидатов типов преобразования, а когда текущий блок имеет неквадратную форму, может использоваться две комбинации-кандидата типов преобразования. Альтернативно, когда текущий блок является квадратным, могут использоваться только комбинации-кандидаты типов преобразования, которые имеют горизонтальный тип преобразования и вертикальный тип преобразования, отличающиеся друг от друга, из комбинаций-кандидатов типов преобразования.[00548] The number of available transform type candidate combinations may be set differently depending on the size, shape, or intra prediction mode of the current block. As an example, when the current block is square, three or more candidate transformation type combinations may be used, and when the current block is non-square, two candidate transformation type combinations may be used. Alternatively, when the current block is square, only candidate transformation type combinations that have a horizontal transformation type and a vertical transformation type different from each other from the candidate transformation type combinations can be used.

[00549] Когда для текущего блока может использоваться три или более комбинаций-кандидатов типов преобразования, может передаваться информация об индексах tu_mts_idx, указывающая одну из комбинаций-кандидатов типов преобразования. С другой стороны, когда для текущего блока может использоваться две комбинации-кандидата типов преобразования, может передаваться флаг mts_flag, указывающий одну из комбинаций-кандидатов типов преобразования. Ниже в таблице 11 представлен аспект кодирования информации для указания комбинаций-кандидатов типов преобразования в соответствии с формой текущего блока.[00549] When three or more candidate transformation type combinations may be used for the current block, index information tu_mts_idx indicating one of the candidate transformation type combinations may be transmitted. On the other hand, when two candidate transformation type combinations may be used for the current block, an mts_flag may be transmitted indicating one of the candidate transformation type combinations. Table 11 below presents the information encoding aspect for indicating candidate combinations of transformation types according to the shape of the current block.

[00550] [Таблица 11][00550] [Table 11]

[00551] Индексы комбинаций-кандидатов типов преобразования могут быть переставлены (или переупорядочены) в соответствии с формой текущего блока. В качестве примера, индексы, присваиваемые комбинациям-кандидатам типов преобразования, когда текущий блок является квадратным, могут отличаться от индексов, присваиваемых комбинациям-кандидатам типов преобразования, когда текущий блок имеет неквадратную форму. В качестве примера, когда текущий блок является квадратным, комбинация типов преобразования может быть выбрана на основании таблицы 12, а когда текущий блок имеет неквадратную форму, комбинация типов преобразования может быть выбрана на основании таблицы 13.[00551] The indices of candidate transformation type combinations may be permuted (or reordered) according to the shape of the current block. As an example, the indices assigned to candidate transformation type combinations when the current block is square may be different from the indices assigned to candidate transformation type combinations when the current block is non-square. As an example, when the current block is square, a combination of transformation types can be selected based on Table 12, and when the current block is non-square, a combination of transformation types can be selected based on Table 13.

[00552] [Таблица 12][00552] [Table 12]

[00553] [Таблица 13][00553] [Table 13]

[00554] Тип преобразования может быть определен на основании количества горизонтальных ненулевых коэффициентов текущего блока или количества вертикальных ненулевых коэффициентов текущего блока. В данном случае количество горизонтальных ненулевых коэффициентов указывает количество ненулевых коэффициентов, включенных в 1×N (где N представляет собой ширину текущего блока), и количество вертикальных ненулевых коэффициентов указывает количество ненулевых коэффициентов, включенных в N×1 (где N представляет собой высоту текущего блока). Когда максимальное значение горизонтальных ненулевых коэффициентов меньше или равно пороговому значению, в горизонтальном направлении может применяться первый тип преобразования, а когда максимальное значение горизонтальных ненулевых коэффициентов больше порогового значения, в горизонтальном направлении может применяться второй тип преобразования. Когда максимальное значение вертикальных ненулевых коэффициентов меньше или равно пороговому значению, в вертикальном направлении может применяться первый тип преобразования, а когда максимальное значение вертикальных ненулевых коэффициентов больше порогового значения, в вертикальном направлении может применяться второй тип преобразования.[00554] The transformation type may be determined based on the number of horizontal non-zero coefficients of the current block or the number of vertical non-zero coefficients of the current block. In this case, the number of horizontal non-zero coefficients indicates the number of non-zero coefficients included in 1×N (where N represents the width of the current block), and the number of vertical non-zero coefficients indicates the number of non-zero coefficients included in N×1 (where N represents the height of the current block ). When the maximum value of the horizontal non-zero coefficients is less than or equal to the threshold value, the first type of transformation may be applied in the horizontal direction, and when the maximum value of the horizontal non-zero coefficients is greater than the threshold value, the second type of transformation may be applied in the horizontal direction. When the maximum value of the vertical non-zero coefficients is less than or equal to the threshold value, the first type of transformation may be applied in the vertical direction, and when the maximum value of the vertical non-zero coefficients is greater than the threshold value, the second type of transformation may be applied in the vertical direction.

[00555] На фиг. 40 представлено схематическое изображение для описания примера, в котором определяется тип преобразования текущего блока.[00555] In FIG. 40 is a schematic diagram for describing an example in which the transformation type of the current block is determined.

[00556] В качестве примера, когда текущий блок кодируется с помощью внутреннего предсказания, и максимальное значение горизонтальных ненулевых коэффициентов текущего блока меньше или равно 2 (см. фиг. 40A), в качестве горизонтального типа преобразования может быть определено DST7.[00556] As an example, when the current block is encoded using intra prediction, and the maximum value of the horizontal non-zero coefficients of the current block is less than or equal to 2 (see FIG. 40A), DST7 may be specified as the horizontal transform type.

[00557] Когда текущий блок кодируется с помощью внутреннего предсказания, и максимальное значение вертикальных ненулевых коэффициентов текущего блока больше 2 (см. фиг. 40B), в качестве вертикального типа преобразования может быть определено DCT2 или DCT8.[00557] When the current block is encoded using intra prediction, and the maximum value of the vertical non-zero coefficients of the current block is greater than 2 (see FIG. 40B), DCT2 or DCT8 may be specified as the vertical transform type.

[00558] Остаточный коэффициент может кодироваться в элементах преобразования или в элементах подпреобразования. В данном случае остаточный коэффициент относится к коэффициенту преобразования, сгенерированному путем преобразования, коэффициенту пропуска преобразования, сгенерированному путем пропуска преобразования, или квантованному коэффициенту, сгенерированному путем квантования коэффициента или коэффициента преобразования.[00558] The residual coefficient may be encoded in transform elements or in subtransform elements. Here, the residual coefficient refers to a transform coefficient generated by transforming, a transform skipping coefficient generated by skipping transforming, or a quantized coefficient generated by quantizing a transform coefficient or coefficient.

[00559] Элемент преобразования может относиться к блоку, который подвергается первому преобразованию или второму преобразованию. Элемент подпреобразования относится к блоку с меньшим размером, чем у элемента преобразования. В качестве примера, элемент подпреобразования может представлять собой блок 4×4, 2×8 или 8×2.[00559] A transform element may refer to a block that is subject to a first transform or a second transform. A subtransform element refers to a block with a smaller size than that of the transform element. As an example, the subtransform element may be a 4x4, 2x8, or 8x2 block.

[00560] По меньшей мере одно из размера или формы элемента подпреобразования может быть определено на основании размера или формы текущего блока. В качестве примера, элемент подпреобразования также установлен как имеющий неквадратную форму, в которой ширина больше высоты (например, 8×2), когда текущий блок имеет неквадратную форму, в которой ширина больше высоты, и элемент подпреобразования также может быть установлен как имеющий неквадратную форму, в которой высота больше ширины (например, 2×8), когда текущий блок имеет неквадратную форму, в которой высота больше ширины. Когда текущий блок является квадратным, элемент подпреобразования также может быть установлен как имеющий квадратную форму (например, 4×4).[00560] At least one of the size or shape of the subtransform element may be determined based on the size or shape of the current block. As an example, the subtransform element is also set to have a non-square shape in which the width is greater than the height (for example, 8×2), when the current block has a non-square shape in which the width is greater than the height, and the subtransform element may also be set to have a non-square shape , in which the height is greater than the width (for example, 2x8), when the current block has a non-square shape, in which the height is greater than the width. When the current block is square, the subtransform element can also be set to have a square shape (eg, 4x4).

[00561] Когда в текущий блок включены множество элементов подпреобразования, элементы подпреобразования могут кодироваться или декодироваться последовательно. Остаточный коэффициент может кодироваться с использованием такого энтропийного кодирования, как арифметическое кодирование. Способ кодирования или декодирования остаточного коэффициента будет подробно описан ниже со ссылкой на графические материалы.[00561] When multiple sub-transform elements are included in the current block, the sub-transform elements may be encoded or decoded sequentially. The residual coefficient may be encoded using entropy encoding such as arithmetic encoding. The method for encoding or decoding the residual coefficient will be described in detail below with reference to graphic materials.

[00562] На фиг. 41 представлена блок-схема, показывающая способ кодирования остаточного коэффициента.[00562] In FIG. 41 is a flowchart showing a residual coefficient encoding method.

[00563] В данном варианте осуществления предполагается, что текущий блок содержит один или более элементов подпреобразования. В дополнение, предполагается, что элемент подпреобразования имеет размер 4×4. Однако данный вариант осуществления может применяться как таковой даже тогда, когда размер элемента подпреобразования или форма элемента подпреобразования отличается от описанной выше.[00563] In this embodiment, it is assumed that the current block contains one or more subtransform elements. In addition, the subtransform element is assumed to be of size 4x4. However, this embodiment can be applied as such even when the size of the sub-transform element or the shape of the sub-transform element is different from that described above.

[00564] Может быть определено (S4101), присутствует ли ненулевой коэффициент в текущем блоке. Ненулевой коэффициент указывает остаточный коэффициент, абсолютное значение которого больше 0. Информация, указывающая, присутствует ли ненулевой коэффициент в текущем блоке, может быть кодирована и передана. В качестве примера, информация может представлять собой 1-битный флаг и может представлять собой флаг кодированного блока (CBF).[00564] It can be determined (S4101) whether a non-zero coefficient is present in the current block. A non-zero coefficient indicates a residual coefficient whose absolute value is greater than 0. Information indicating whether a non-zero coefficient is present in the current block may be encoded and transmitted. As an example, the information may be a 1-bit flag and may be a coded block flag (CBF).

[00565] Когда ненулевой коэффициент присутствует в текущем блоке, может быть определено (S4102), присутствует ли ненулевой коэффициент для каждого элемента подпреобразования. Информация, указывающая, присутствует ли ненулевой коэффициент для каждого элемента подпреобразования, может быть кодирована и передана. В качестве примера, информация может представлять собой 1-битный флаг и может представлять собой флаг кодированного подблока (CSBF). Элементы подпреобразования могут кодироваться в предварительно выбранном порядке сканирования.[00565] When a non-zero coefficient is present in the current block, it can be determined (S4102) whether a non-zero coefficient is present for each sub-transform element. Information indicating whether a non-zero coefficient is present for each subtransform element may be encoded and transmitted. As an example, the information may be a 1-bit flag and may be a coded subblock flag (CSBF). The subtransform elements can be encoded in a preselected scan order.

[00566] Когда в элементе подпреобразования присутствует ненулевой коэффициент, для кодирования (S4103) остаточных коэффициентов элемента подпреобразования остаточные коэффициенты в элементе подпреобразования могут быть расположены в одном измерении. Остаточные коэффициенты могут быть расположены в одном измерении в предварительно выбранном порядке сканирования.[00566] When a non-zero coefficient is present in the sub-transform element, to encode (S4103) the residual coefficients of the sub-transform element, the residual coefficients in the sub-transform element can be arranged in one dimension. The residual coefficients can be arranged in one dimension in a preselected scan order.

[00567] Порядок сканирования может включать по меньшей мере одно из диагонального сканирования, горизонтального сканирования, вертикального сканирования или обратных им порядков сканирования.[00567] The scanning order may include at least one of diagonal scanning, horizontal scanning, vertical scanning, or their inverse scanning orders.

[00568] На фиг. 42 и 43 представлены схематические изображения, показывающие порядок расположения остаточных коэффициентов для каждого порядка сканирования.[00568] In FIG. 42 and 43 are schematic diagrams showing the arrangement of residual coefficients for each scanning order.

[00569] На фиг. 42A-42C представлены диагональное сканирование, горизонтальное сканирование и вертикальное сканирование, и на фиг. 43A-43C представлены обратные им порядки сканирования.[00569] In FIG. 42A-42C show diagonal scanning, horizontal scanning and vertical scanning, and FIG. 43A-43C show their reverse scan orders.

[00570] Остаточные коэффициенты могут быть расположены в одном измерении в выбранном порядке сканирования.[00570] The residual coefficients can be arranged in one dimension in the selected scanning order.

[00571] Порядок сканирования может определяться с учетом по меньшей мере одного из размера, формы или режима внутреннего предсказания текущего блока, основы преобразования, используемой для первичного преобразования, или того, применять ли вторичное преобразование. В качестве примера, когда текущий блок имеет неквадратную форму, в которой ширина больше высоты, остаточный коэффициент может кодироваться с использованием обратного горизонтального сканирования. С другой стороны, когда текущий блок имеет неквадратную форму, в которой высота больше ширины, остаточный коэффициент может кодироваться с использованием обратного вертикального сканирования.[00571] The scan order may be determined based on at least one of the size, shape, or intra prediction mode of the current block, the transform basis used for the primary transform, or whether to apply a secondary transform. As an example, when the current block has a non-square shape in which the width is greater than the height, the residual coefficient may be encoded using an inverse horizontal scan. On the other hand, when the current block has a non-square shape in which the height is greater than the width, the residual coefficient can be encoded using an inverse vertical scan.

[00572] Альтернативно для каждого из множества порядков сканирования может быть вычислена оптимизация скорость-искажение (RDO), и в качестве порядка сканирования текущего блока может определяться порядок сканирования, имеющий минимальную RDO. В этом случае может быть кодирована и передана информация, указывающая порядок сканирования текущего блока.[00572] Alternatively, a rate-distortion optimization (RDO) may be calculated for each of the plurality of scan orders, and the scan order having the minimum RDO may be determined as the scan order of the current block. In this case, information indicating the scanning order of the current block can be encoded and transmitted.

[00573] Порядок-кандидат сканирования, который может использоваться при кодировании коэффициента пропуска преобразования, может отличаться от порядка-кандидата сканирования, который может использоваться при кодировании коэффициента преобразования. В качестве примера, порядок, обратный порядку-кандидату сканирования, который может использоваться при кодировании коэффициента преобразования, может быть установлен в качестве порядка-кандидата сканирования, который может использоваться для кодирования коэффициента пропуска преобразования.[00573] The candidate scan order that can be used when encoding the transform skip coefficient may be different from the candidate scan order that can be used when encoding the transform coefficient. As an example, an order inverse to a scan candidate order that can be used when encoding a transform coefficient can be set as a scan candidate order that can be used to encode a transform skip coefficient.

[00574] В качестве примера, когда коэффициент преобразования кодируется с использованием одного из обратного диагонального сканирования, обратного горизонтального сканирования или обратного вертикального сканирования, коэффициент пропуска преобразования может кодироваться с использованием одного из диагонального сканирования, горизонтального сканирования или вертикального сканирования.[00574] As an example, when the transform coefficient is encoded using one of an inverse diagonal scan, an inverse horizontal scan, or an inverse vertical scan, the transform skip coefficient may be encoded using one of a diagonal scan, a horizontal scan, or a vertical scan.

[00575] Затем может кодироваться (S4103) местоположение последнего сканированного ненулевого коэффициента в блоке преобразования. Может кодироваться местоположение по оси x и местоположение по оси y последнего ненулевого коэффициента.[00575] The location of the last scanned non-zero coefficient in the transform block may then be encoded (S4103). The x-axis location and y-axis location of the last non-zero coefficient may be encoded.

[00576] На фиг. 44 показан пример, в котором кодируется местоположение последнего ненулевого коэффициента.[00576] In FIG. 44 shows an example in which the location of the last non-zero coefficient is encoded.

[00577] В примере, показанном на фиг. 44, при применении диагонального сканирования остаточный коэффициент, расположенный в верхнем правом углу блока преобразования, может быть установлен в качестве последнего ненулевого коэффициента. Координата х, LastX, остаточного коэффициента равна 3, и координата у, LastY, остаточного коэффициента равна 0. LastX может кодироваться, являясь разделенной на last_sig_coeff_x_prefix, представляющую собой префиксную часть, и last_sig_coeff_x_suffix, представляющую собой суффиксную часть. LastY может также кодироваться, являясь разделенной на last_sig_coeff_y_prefix, представляющую собой префиксную часть, и last_sig_coeff_y_suffix, представляющую собой суффиксную часть.[00577] In the example shown in FIG. 44, when applying diagonal scanning, the residual coefficient located in the upper right corner of the transform block can be set as the last non-zero coefficient. The x-coordinate, LastX, of the residual coefficient is 3, and the y-coordinate, LastY, of the residual coefficient is 0. LastX can be encoded by being divided into last_sig_coeff_x_prefix, which is a prefix part, and last_sig_coeff_x_suffix, which is a suffix part. LastY may also be encoded being split into last_sig_coeff_y_prefix, which is the prefix part, and last_sig_coeff_y_suffix, which is the suffix part.

[00578] Когда местоположение последнего ненулевого коэффициента определено, может кодироваться (S4104) информация, указывающая, являются ли остаточные коэффициенты, более ранние, чем последний ненулевой коэффициент в порядке сканирования, ненулевыми коэффициентами. Информация может представлять собой 1-битный флаг sig_coeff_flag. Значение флага ненулевого коэффициента sig_coeff_flag может быть установлено равным 0, когда остаточный коэффициент равен 0, и значение флага ненулевого коэффициента sig_coeff_flag может быть установлено равным 1, когда остаточный коэффициент равен 1. Кодирование флага ненулевого коэффициента sig_coeff_flag для последнего ненулевого коэффициента может быть пропущено. Когда кодирование флага ненулевого коэффициента sig_coeff_flag пропущено, соответствующий остаточный коэффициент считается ненулевым.[00578] When the location of the last non-zero coefficient is determined, information indicating whether residual coefficients earlier than the last non-zero coefficient in the scanning order are non-zero coefficients may be encoded (S4104). The information may be a 1-bit flag sig_coeff_flag. The value of the non-zero coefficient flag sig_coeff_flag can be set to 0 when the residual coefficient is 0, and the value of the non-zero coefficient flag sig_coeff_flag can be set to 1 when the residual coefficient is 1. The encoding of the non-zero coefficient flag sig_coeff_flag for the last non-zero coefficient can be skipped. When encoding of the non-zero coefficient flag sig_coeff_flag is omitted, the corresponding residual coefficient is assumed to be non-zero.

[00579] Информация в отношении местоположения последнего ненулевого коэффициента для коэффициента пропуска преобразования может не кодироваться. В этом случае может кодироваться флаг ненулевого коэффициента sig_coeff_flag для всех коэффициентов пропуска преобразования в блоке.[00579] Information regarding the location of the last non-zero coefficient for the transform skip coefficient may not be encoded. In this case, a non-zero coefficient flag sig_coeff_flag may be encoded for all conversion skip coefficients in the block.

[00580] Альтернативно может кодироваться и передаваться информация, указывающая, кодируется ли информация в отношении местоположения последнего ненулевого коэффициента. Информация может представлять собой 1-битный флаг. Декодер может определять, декодировать ли информацию в отношении местоположения последнего ненулевого коэффициента, в соответствии со значением флага. Когда местоположение последнего ненулевого коэффициента не декодируется, флаг ненулевого коэффициента может декодироваться для всех коэффициентов пропуска преобразования. С другой стороны, когда местоположение последнего ненулевого коэффициента декодируется, может кодироваться информация, указывающая, являются ли коэффициенты пропуска преобразования, сканированные раньше, чем последний ненулевой коэффициент, ненулевыми коэффициентами.[00580] Alternatively, information indicating whether information is encoded regarding the location of the last non-zero coefficient may be encoded and transmitted. The information may be a 1-bit flag. The decoder may determine whether to decode information regarding the location of the last non-zero coefficient in accordance with the value of the flag. When the location of the last non-zero coefficient is not decoded, the non-zero coefficient flag may be decoded for all transform skip coefficients. On the other hand, when the location of the last non-zero coefficient is decoded, information indicating whether transform skip coefficients scanned earlier than the last non-zero coefficient are non-zero coefficients may be encoded.

[00581] Компонент DC коэффициента преобразования или коэффициента пропуска преобразования может быть не установлен равным нулю. В данном случае компонент DC может указывать последний сканированный отсчет или отсчет, расположенный в верхнем левом углу блока. Для компонента DC кодирование флага ненулевого коэффициента sig_coeff_flag может быть пропущено. Когда кодирование флага ненулевого коэффициента sig_coeff_flag пропущено, соответствующий остаточный коэффициент считается ненулевым.[00581] The DC component of the conversion coefficient or the conversion skip coefficient may not be set to zero. In this case, the DC component may indicate the last scanned sample or the sample located in the upper left corner of the block. For a DC component, the encoding of the non-zero coefficient flag sig_coeff_flag may be omitted. When encoding of the non-zero coefficient flag sig_coeff_flag is omitted, the corresponding residual coefficient is assumed to be non-zero.

[00582] Когда остаточный коэффициент является ненулевым, могут кодироваться (S4105) информация, указывающая абсолютное значение остаточного коэффициента, и информация, указывающая знак остаточного коэффициента. Процесс кодирования информации, указывающей абсолютное значение остаточного коэффициента, будет подробно описан со ссылкой на фиг. 45.[00582] When the residual coefficient is non-zero, information indicating the absolute value of the residual coefficient and information indicating the sign of the residual coefficient may be encoded (S4105). The process of encoding information indicating the absolute value of the residual coefficient will be described in detail with reference to FIG. 45.

[00583] Кодирование (S4106 и S4107) остаточного коэффициента может последовательно выполняться в отношении элементов подпреобразования, включенных в текущий блок, и всех остаточных коэффициентов после последнего ненулевого коэффициента.[00583] Encoding (S4106 and S4107) of the residual coefficient may be sequentially performed on the subtransform elements included in the current block and all residual coefficients after the last non-zero coefficient.

[00584] На фиг. 45 представлена блок-схема процесса кодирования абсолютного значения остаточного коэффициента.[00584] In FIG. 45 is a flowchart of a process for encoding the absolute value of a residual coefficient.

[00585] Когда абсолютное значение остаточного коэффициента больше 0, может кодироваться (S4501) информация, указывающая, является ли остаточный коэффициент или коэффициент остатка четным числом или нечетным числом. В данном случае коэффициент остатка может быть задан как абсолютное значение остаточного коэффициента минус 1. Информация может представлять собой 1-битный флаг четности. В качестве примера, значение элемента синтаксиса par_level_flag, равное 0, означает, что остаточный коэффициент или коэффициент остатка является четным числом, а значение элемента синтаксиса par_level_flag, равное 1, означает, что остаточный коэффициент или коэффициент остатка является нечетным числом. Значение элемента синтаксиса par_level_flag можно определить с использованием приведенного ниже уравнения 30.[00585] When the absolute value of the residual coefficient is greater than 0, information indicating whether the residual coefficient or the residual coefficient is an even number or an odd number can be encoded (S4501). In this case, the residual coefficient can be specified as the absolute value of the residual coefficient minus 1. The information can be a 1-bit parity flag. As an example, a par_level_flag syntax element value of 0 means that the residual coefficient or remainder coefficient is an even number, and a par_level_flag syntax element value equal to 1 means that the residual coefficient or remainder coefficient is an odd number. The value of the par_level_flag syntax element can be determined using Equation 30 below.

[00586] [Уравнение 30][00586] [Equation 30]

[00587] В уравнении 30 Tcoeff представляет остаточный коэффициент, и abs() представляет функцию абсолютного значения.[00587] In Equation 30, Tcoeff represents the residual coefficient, and abs() represents the absolute value function.

[00588] Скорректированный коэффициент остатка может быть получен (S4502) путем деления остаточного коэффициента или коэффициента остатка на 2 или путем применения к остаточному коэффициенту или коэффициенту остатка операции битового сдвига. Подробно в качестве скорректированного коэффициента остатка может быть установлено частное, полученное путем деления остаточного коэффициента на 2, или в качестве скорректированного коэффициента остатка может быть установлено значение, полученное путем сдвига остаточного коэффициента вправо на 1.[00588] The adjusted residual coefficient can be obtained (S4502) by dividing the residual coefficient or remainder coefficient by 2 or by applying a bit shift operation to the residual coefficient or residual coefficient. In detail, the adjusted residual coefficient can be set to the quotient obtained by dividing the residual coefficient by 2, or the adjusted residual coefficient can be set to the value obtained by shifting the residual coefficient to the right by 1.

[00589] В качестве примера, скорректированный коэффициент остатка может быть получен с использованием приведенного ниже уравнения 31.[00589] As an example, the adjusted residual factor can be obtained using Equation 31 below.

[00590] [Уравнение 31][00590] [Equation 31]

[00591] В уравнении 31 ReRemLevel представляет скорректированный коэффициент остатка, и RemLevel представляет коэффициент остатка.[00591] In Equation 31, ReRemLevel represents the adjusted residual coefficient, and RemLevel represents the residual coefficient.

[00592] Затем может кодироваться информация, указывающая размер скорректированного коэффициента остатка. Информация, указывающая размер скорректированного коэффициента остатка, может содержать информацию, указывающую, является ли скорректированный коэффициент остатка большим чем N. В данном случае N представляет собой натуральное число, такое как 1, 2, 3 и 4.[00592] Information indicating the size of the adjusted residual factor may then be encoded. The information indicating the size of the adjusted residual factor may include information indicating whether the adjusted residual factor is greater than N. In this case, N represents a natural number such as 1, 2, 3 and 4.

[00593] В качестве примера, может кодироваться информация, указывающая, является ли значение скорректированного коэффициента остатка большим чем 1. Информация может представлять собой 1-битный флаг rem_abs_gt1_flag.[00593] As an example, information indicating whether the value of the adjusted residual coefficient is greater than 1 may be encoded. The information may be a 1-bit flag rem_abs_gt1_flag.

[00594] Когда коэффициент остатка равен 0 или 1, значение rem_abs_gt1_flag может быть установлено равным 0. То есть, когда остаточный коэффициент равен 1 или 2, значение rem_abs_gt1_flag может быть установлено равным 0. В этом случае par_level_flag может быть установлен равным 0, когда коэффициент остатка равен 0, и par_level_flag может быть установлен равным 1, когда коэффициент остатка равен 1.[00594] When the residual coefficient is 0 or 1, the value of rem_abs_gt1_flag can be set to 0. That is, when the residual coefficient is 1 or 2, the value of rem_abs_gt1_flag can be set to 0. In this case, par_level_flag can be set to 0 when the coefficient the remainder is 0, and par_level_flag can be set to 1 when the remainder factor is 1.

[00595] Когда скорректированный коэффициент остатка равен 2 или более (S4504), значение rem_abs_gt1_flag может быть установлено равным 1, и может кодироваться (S4505) информация, указывающая, является ли значение скорректированного коэффициента остатка большим чем 2. Информация может представлять собой 1-битный флаг rem_abs_gt2_flag.[00595] When the adjusted residual coefficient is 2 or more (S4504), the value of rem_abs_gt1_flag may be set to 1, and information indicating whether the value of the adjusted residual coefficient is greater than 2 can be encoded (S4505). The information may be 1-bit flag rem_abs_gt2_flag.

[00596] Когда коэффициент остатка равен 1 или 2, значение rem_abs_gt2_flag может быть установлено равным 0. То есть, когда остаточный коэффициент равен 3 или 4, значение rem_abs_gt2_flag может быть установлено равным 0. В этом случае par_level_flag может быть установлен равным 2, когда коэффициент остатка равен 0, и par_level_flag может быть установлен равным 1, когда коэффициент остатка равен 3.[00596] When the residual coefficient is 1 or 2, the value of rem_abs_gt2_flag can be set to 0. That is, when the residual coefficient is 3 or 4, the value of rem_abs_gt2_flag can be set to 0. In this case, par_level_flag can be set to 2 when the coefficient the remainder is 0, and par_level_flag can be set to 1 when the remainder factor is 3.

[00597] Когда скорректированный коэффициент остатка больше 2, может кодироваться (S4506) информация об остаточном значении, указывающая скорректированный коэффициент остатка минус 2. То есть в качестве информации об остаточном значении может кодироваться значение, полученное путем вычитания 5 из абсолютного значения остаточного коэффициента, а затем деления результата вычитания на 2.[00597] When the adjusted residual coefficient is greater than 2, residual value information indicating the corrected residual coefficient minus 2 may be encoded (S4506). That is, a value obtained by subtracting 5 from the absolute value of the residual coefficient may be encoded as residual value information, and then divide the result of the subtraction by 2.

[00598] Хотя это не показано, остаточный коэффициент может дополнительно кодироваться с использованием флага, указывающего, является ли скорректированный коэффициент остатка большим чем 3 (например, rem_abs_gt3_flag), или флага, указывающего, является ли скорректированный коэффициент остатка большим чем 4 (например, rem_abs_gt4_flag). В этом случае в качестве остаточного значения может быть установлен скорректированный коэффициент остатка минус максимальное значение. Максимальное значение представляет максимальное N, примененное к rem_abs_gtN_flag.[00598] Although not shown, the residual coefficient may be further encoded using a flag indicating whether the adjusted residual coefficient is greater than 3 (eg, rem_abs_gt3_flag) or a flag indicating whether the adjusted residual coefficient is greater than 4 (eg, rem_abs_gt4_flag ). In this case, the residual value can be set to the adjusted residual coefficient minus the maximum value. The maximum value represents the maximum N applied to rem_abs_gtN_flag.

[00599] Вместо флагов для сравнения значения скорректированного коэффициента остатка с конкретным значением могут использоваться флаги для сравнения абсолютного значения скорректированного коэффициента или остаточного коэффициента с конкретным значением. В качестве примера, вместо rem_abs_gt1_flag может использоваться gr2_flag, указывающий, является ли абсолютное значение остаточного коэффициента большим чем 2, а вместо rem_abs_gt2_flag может использоваться gr4_flag, указывающий, является ли абсолютное значение остаточного коэффициента большим чем 4.[00599] Instead of flags for comparing the value of the adjusted residual coefficient to a specific value, flags may be used to compare the absolute value of the adjusted coefficient or the residual coefficient to a specific value. As an example, instead of rem_abs_gt1_flag, gr2_flag may be used to indicate whether the absolute value of the residual coefficient is greater than 2, and instead of rem_abs_gt2_flag, gr4_flag may be used to indicate whether the absolute value of the residual coefficient is greater than 4.

[00600] В таблице 14 просто представлен процесс кодирования остаточных коэффициентов с использованием элементов синтаксиса.[00600] Table 14 simply presents the process of encoding residual coefficients using syntax elements.

[00601] [Таблица 14][00601] [Table 14]

[00602] В приведенном выше примере остаточный коэффициент может кодироваться с использованием par_level_flag и по меньшей мере одного флага rem_abs_gtN_flag (где N представляет собой натуральное число, такое как 1, 2, 3 и 4).[00602] In the above example, the residual coefficient may be encoded using par_level_flag and at least one rem_abs_gtN_flag (where N represents a natural number such as 1, 2, 3 and 4).

[00603] rem_abs_gtN_flag представляет, является ли остаточный коэффициент большим чем 2N. Для остаточного коэффициента 2N-1 или 2N rem_abs_gt(N-1)_flag устанавливается равным значению true, а rem_abs_gtN_flag устанавливается равным значению false. В дополнение, значение par_level_flag может быть установлено равным 0 для остаточного коэффициента 2N-1, и значение par_level_flag может быть установлено равным 1 для остаточного коэффициента 2N. То есть остаточные коэффициенты, меньшие или равные 2N, могут кодироваться с использованием rem_abs_gtN_flag и par_level_flag.[00603] rem_abs_gtN_flag represents whether the residual coefficient is greater than 2N. For a residual coefficient of 2N-1 or 2N, rem_abs_gt(N-1)_flag is set to true and rem_abs_gtN_flag is set to false. In addition, the par_level_flag value can be set to 0 for a 2N-1 residual coefficient, and the par_level_flag value can be set to 1 for a 2N residual coefficient. That is, residual coefficients less than or equal to 2N can be encoded using rem_abs_gtN_flag and par_level_flag.

[00604] Для остаточных коэффициентов, больших или равных 2MAX+1, может кодироваться информация об остаточном значении, указывающая значение, полученное путем деления разности с 2MAX на 2. В данном случае MAX представляет максимальное значение N. В качестве примера, когда используются rem_abs_gt1_flag и rem_abs_gt2_flag, MAX может быть равно 2.[00604] For residual coefficients greater than or equal to 2MAX+1, residual value information may be encoded indicating the value obtained by dividing the difference from 2MAX by 2. In this case, MAX represents the maximum value of N. As an example, when rem_abs_gt1_flag and rem_abs_gt2_flag, MAX can be 2.

[00605] Декодер также может декодировать остаточные коэффициенты в порядке, показанном на фиг. 45. Подробно декодер может определять местоположение последнего ненулевого коэффициента и может декодировать sig_coeff_flag для каждого остаточного коэффициента, сканированного перед последним ненулевым коэффициентом.[00605] The decoder may also decode the residual coefficients in the order shown in FIG. 45. In detail, the decoder may locate the last non-zero coefficient and may decode a sig_coeff_flag for each residual coefficient scanned before the last non-zero coefficient.

[00606] Когда sig_coeff_flag имеет значение true, декодер может декодировать par_level_flag соответствующего остаточного коэффициента. Кроме того, декодер может декодировать rem_abs_gt1_flag соответствующего остаточного коэффициента. В этом случае rem_abs_gtN_flag может дополнительно декодироваться в зависимости от значения rem_abs_gt(N-1)_flag. В качестве примера, декодер может декодировать rem_abs_gtN_flag, когда значение rem_abs_gt(N-1)_flag равно 1. Например, когда значение rem_abs_gt1_flag для остаточного коэффициента равно 1, декодер может дополнительно анализировать rem_abs_gt2_flag на предмет остаточного коэффициента. Когда значение rem_abs_gt(MAX)_flag равно 1, декодер может декодировать информацию об остаточном значении.[00606] When sig_coeff_flag is true, the decoder can decode the par_level_flag of the corresponding residual coefficient. In addition, the decoder can decode the rem_abs_gt1_flag of the corresponding residual coefficient. In this case, rem_abs_gtN_flag may be further decoded depending on the value of rem_abs_gt(N-1)_flag. As an example, the decoder may decode rem_abs_gtN_flag when the value of rem_abs_gt(N-1)_flag is 1. For example, when the value of rem_abs_gt1_flag for the residual coefficient is 1, the decoder may further analyze rem_abs_gt2_flag for the residual coefficient. When the value of rem_abs_gt(MAX)_flag is 1, the decoder can decode the residual value information.

[00607] Когда значение rem_abs_gtN_flag остаточного коэффициента равно 0, значение остаточного коэффициента может быть определено как равное 2N-1 или 2N в зависимости от значения par_level_flag. Подробно остаточный коэффициент может быть установлен равным 2N-1, когда par_level_flag равен 0, и остаточный коэффициент может быть установлен равным 2N, когда par_level_flag равен 1.[00607] When the value of the residual coefficient rem_abs_gtN_flag is 0, the value of the residual coefficient can be determined to be 2N-1 or 2N depending on the value of par_level_flag. In detail, the residual coefficient can be set to 2N-1 when par_level_flag is 0, and the residual coefficient can be set to 2N when par_level_flag is 1.

[00608] Например, когда rem_abs_gt1_flag равен 0, абсолютное значение остаточного коэффициента может быть установлено равным 1 или 2 в зависимости от значения par_level_flag. Подробно абсолютное значение остаточного коэффициента равно 1, когда значение par_level_flag равно 0, и абсолютное значение остаточного коэффициента равно 2, когда значение par_level_flag равно 1.[00608] For example, when rem_abs_gt1_flag is 0, the absolute value of the residual coefficient can be set to 1 or 2 depending on the value of par_level_flag. In detail, the absolute value of the residual coefficient is 1 when the value of par_level_flag is 0, and the absolute value of the residual coefficient is 2 when the value of par_level_flag is 1.

[00609] Например, когда rem_abs_gt2_flag равен 0, абсолютное значение остаточного коэффициента может быть установлено равным 3 или 4 в зависимости от значения par_level_flag. Подробно абсолютное значение остаточного коэффициента равно 3, когда значение par_level_flag равно 0, и абсолютное значение остаточного коэффициента равно 4, когда значение par_level_flag равно 1.[00609] For example, when rem_abs_gt2_flag is 0, the absolute value of the residual coefficient can be set to 3 or 4 depending on the value of par_level_flag. In detail, the absolute value of the residual coefficient is 3 when the value of par_level_flag is 0, and the absolute value of the residual coefficient is 4 when the value of par_level_flag is 1.

[00610] При декодировании информации об остаточном значении остаточный коэффициент может быть установлен равным 2(MAX+R)-1 или 2(MAX+R) в зависимости от значения par_level_flag. В данном случае R представляет значение, указываемое информацией об остаточном значении. В качестве примера, остаточный коэффициент может быть установлен равным 2(MAX+R)-1, когда par_level_flag равен 0, и остаточный коэффициент может быть установлен равным 2(MAX+R), когда par_level_flag равен 1. В качестве примера, когда MAX равно 2, остаточный коэффициент может быть получен с использованием приведенного ниже уравнения 32.[00610] When decoding residual value information, the residual coefficient may be set to 2(MAX+R)-1 or 2(MAX+R) depending on the value of par_level_flag. Here, R represents the value indicated by the residual value information. As an example, the residual coefficient can be set to 2(MAX+R)-1 when par_level_flag is 0, and the residual coefficient can be set to 2(MAX+R) when par_level_flag is 1. As an example, when MAX is 2, the residual coefficient can be obtained using Equation 32 below.

[00611] [Уравнение 32][00611] [Equation 32]

[00612] Когда остаточный коэффициент кодируется в примере, показанном на фиг. 45, для каждого ненулевого коэффициента может кодироваться флаг четности. В качестве примера, даже когда остаточный коэффициент равен 1, должны кодироваться par_level_flag и rem_abs_gt1_flag. Вышеописанный способ кодирования может вызывать увеличение количества бит, необходимых для кодирования остаточных коэффициентов, имеющих абсолютное значение 1. Для решения проблемы сначала может кодироваться информация, указывающая, является ли остаточный коэффициент большим чем 1, а когда остаточный коэффициент равен 1, может кодироваться флаг четности.[00612] When the residual coefficient is encoded in the example shown in FIG. 45, a parity flag may be encoded for each non-zero coefficient. As an example, even when the residual coefficient is 1, par_level_flag and rem_abs_gt1_flag must be encoded. The above encoding method may cause an increase in the number of bits required to encode residual coefficients having an absolute value of 1. To solve the problem, information indicating whether the residual coefficient is greater than 1 may be encoded first, and when the residual coefficient is 1, a parity flag may be encoded.

[00613] На фиг. 46 представлена блок-схема процесса кодирования абсолютного значения остаточного коэффициента.[00613] In FIG. 46 is a flowchart of a process for encoding the absolute value of a residual coefficient.

[00614] Для ненулевого остаточного коэффициента может кодироваться (S4601) информация gr1_flag, указывающая, является ли абсолютное значение остаточного коэффициента большим чем 1. gr1_flag может быть установлен равным 0, когда остаточный коэффициент равен 1, и gr1_flag может быть установлен равным 1, когда остаточный коэффициент больше 1.[00614] For a non-zero residual coefficient, gr1_flag information may be encoded (S4601) indicating whether the absolute value of the residual coefficient is greater than 1. gr1_flag may be set to 0 when the residual coefficient is 1, and gr1_flag may be set to 1 when the residual coefficient is coefficient is greater than 1.

[00615] Когда абсолютное значение остаточного коэффициента больше 1, может кодироваться (S4602 и S4603) флаг четности, указывающий, является ли остаточный коэффициент или коэффициент остатка четным числом или нечетным числом. В данном случае коэффициент остатка может быть установлен равным остаточному коэффициенту минус 2. В качестве примера, par_level_flag может быть получен с использованием приведенного ниже уравнения 33.[00615] When the absolute value of the residual coefficient is greater than 1, a parity flag indicating whether the residual coefficient or the remainder coefficient is an even number or an odd number may be encoded (S4602 and S4603). In this case, the residual coefficient can be set to the residual coefficient minus 2. As an example, par_level_flag can be obtained using Equation 33 below.

[00616] [Уравнение 33][00616] [Equation 33]

[00617] Скорректированный коэффициент остатка может быть получен путем деления остаточного коэффициента или коэффициента остатка на 2 или путем битового сдвига остаточного коэффициента или коэффициента остатка вправо на 1, а затем может кодироваться (S4604) информация, указывающая, является ли скорректированный коэффициент остатка большим чем 1. В качестве примера, для остаточного коэффициента, gr1_flag которого равен 1, может кодироваться rem_abs_gt1_flag, указывающий, является ли скорректированный коэффициент остатка большим чем 1.[00617] The adjusted residual coefficient may be obtained by dividing the residual coefficient or remainder coefficient by 2 or by bit shifting the residual coefficient or residual coefficient to the right by 1, and then information indicating whether the corrected residual coefficient is greater than 1 may be encoded (S4604). As an example, for a residual coefficient whose gr1_flag is 1, a rem_abs_gt1_flag may be encoded indicating whether the adjusted residual coefficient is greater than 1.

[00618] Когда коэффициент остатка равен 0 или 1, значение rem_abs_gt1_flag может быть установлено равным 0. То есть, когда остаточный коэффициент равен 2 или 3, значение rem_abs_gt1_flag может быть установлено равным 0. В этом случае par_level_flag может быть установлен равным 0, когда скорректированный коэффициент остатка равен 0, и par_level_flag может быть установлен равным 1, когда коэффициент остатка равен 1.[00618] When the residual coefficient is 0 or 1, the value of rem_abs_gt1_flag can be set to 0. That is, when the residual coefficient is 2 or 3, the value of rem_abs_gt1_flag can be set to 0. In this case, par_level_flag can be set to 0 when the adjusted the residual coefficient is 0, and par_level_flag can be set to 1 when the residual coefficient is 1.

[00619] Когда скорректированный коэффициент остатка равен 2 или более (S4605), значение rem_abs_gt1_flag может быть установлено равным 1, и может кодироваться (S4606) информация, указывающая, является ли значение скорректированного коэффициента остатка большим чем 2. В качестве примера, для остаточного коэффициента, rem_abs_gt1_flag которого равен 1, может кодироваться rem_abs_gt2_flag, указывающий, является ли скорректированный коэффициент остатка большим чем 2.[00619] When the adjusted residual coefficient is 2 or more (S4605), the value of rem_abs_gt1_flag may be set to 1, and information indicating whether the value of the adjusted residual coefficient is greater than 2 can be encoded (S4606). As an example, for the residual coefficient , whose rem_abs_gt1_flag is 1, may be encoded with a rem_abs_gt2_flag indicating whether the adjusted residual factor is greater than 2.

[00620] Когда коэффициент остатка равен 2 или 3, значение rem_abs_gt2_flag может быть установлено равным 1. То есть, когда остаточный коэффициент равен 4 или 5, значение rem_abs_gt2_flag может быть установлено равным 0. В этом случае par_level_flag может быть установлен равным 0, когда коэффициент остатка равен 2, и par_level_flag может быть установлен равным 1, когда коэффициент остатка равен 3.[00620] When the residual coefficient is 2 or 3, the value of rem_abs_gt2_flag can be set to 1. That is, when the residual coefficient is 4 or 5, the value of rem_abs_gt2_flag can be set to 0. In this case, par_level_flag can be set to 0 when the coefficient the remainder is 2, and par_level_flag can be set to 1 when the remainder factor is 3.

[00621] Когда скорректированный коэффициент остатка больше 2 (S4607), может кодироваться (S4608) информация об остаточном значении, указывающая скорректированный коэффициент остатка минус 2. То есть в качестве информации об остаточном значении может кодироваться значение, полученное путем вычитания 6 из абсолютного значения остаточного коэффициента, а затем деления результата вычитания на 2.[00621] When the adjusted residual coefficient is greater than 2 (S4607), residual value information indicating the adjusted residual coefficient minus 2 may be encoded (S4608). That is, a value obtained by subtracting 6 from the absolute value of the residual may be encoded as residual value information. coefficient and then dividing the subtraction result by 2.

[00622] Остаточный коэффициент может дополнительно кодироваться с использованием флага, указывающего, является ли скорректированный коэффициент остатка большим чем 3 (например, rem_abs_gt3_flag), или флага, указывающего, является ли скорректированный коэффициент остатка большим чем 4 (например, rem_abs_gt4_flag). В этом случае в качестве остаточного значения может быть установлен скорректированный коэффициент остатка минус максимальное значение. Максимальное значение представляет максимальное N, примененное к rem_abs_gtN_flag.[00622] The residual coefficient may be further encoded using a flag indicating whether the adjusted residual coefficient is greater than 3 (eg, rem_abs_gt3_flag) or a flag indicating whether the adjusted residual coefficient is greater than 4 (eg, rem_abs_gt4_flag). In this case, the residual value can be set to the adjusted residual coefficient minus the maximum value. The maximum value represents the maximum N applied to rem_abs_gtN_flag.

[00623] Вместо флагов для сравнения значения скорректированного коэффициента остатка с конкретным значением могут использоваться флаги для сравнения абсолютного значения скорректированного коэффициента или остаточного коэффициента с конкретным значением. В качестве примера, вместо rem_abs_gt1_flag может использоваться gr3_flag, указывающий, является ли абсолютное значение остаточного коэффициента большим чем 3, а вместо rem_abs_gt2_flag может использоваться gr5_flag, указывающий, является ли абсолютное значение остаточного коэффициента большим чем 5.[00623] Instead of flags for comparing the value of the adjusted residual coefficient to a specific value, flags may be used to compare the absolute value of the adjusted coefficient or the residual coefficient to a specific value. As an example, instead of rem_abs_gt1_flag, gr3_flag may be used to indicate whether the absolute value of the residual coefficient is greater than 3, and instead of rem_abs_gt2_flag, gr5_flag may be used to indicate whether the absolute value of the residual coefficient is greater than 5.

[00624] В таблице 15 просто представлен процесс кодирования остаточных коэффициентов с использованием элементов синтаксиса.[00624] Table 15 simply presents the process of encoding residual coefficients using syntax elements.

[00625] [Таблица 15][00625] [Table 15]

[00626] Декодер также может декодировать остаточные коэффициенты в порядке, показанном на фиг. 46. Подробно декодер может определять местоположение последнего ненулевого коэффициента и может декодировать sig_coeff_flag для каждого остаточного коэффициента, сканированного перед последним ненулевым коэффициентом.[00626] The decoder may also decode the residual coefficients in the order shown in FIG. 46. In detail, the decoder may locate the last non-zero coefficient and may decode a sig_coeff_flag for each residual coefficient scanned before the last non-zero coefficient.

[00627] Когда sig_coeff_flag имеет значение true, декодер может декодировать gr1_flag соответствующего остаточного коэффициента. Декодер может определять, что абсолютное значение соответствующего остаточного коэффициента равно 1, когда gr1_flag равен 0, и может декодировать par_level_flag соответствующего остаточного коэффициента, когда gr1_flag равен 1. Затем декодер может декодировать rem_abs_gt1_flag соответствующего остаточного коэффициента. В этом случае rem_abs_gtN_flag может дополнительно декодироваться в зависимости от значения rem_abs_gt(N-1)_flag. В качестве примера, декодер может декодировать rem_abs_gtN_flag, когда значение rem_abs_gt(N-1)_flag равно 1. Например, когда значение rem_abs_gt1_flag для остаточного коэффициента равно 1, декодер может дополнительно анализировать rem_abs_gt2_flag на предмет остаточного коэффициента. Когда значение rem_abs_gt(MAX)_flag равно 1, декодер может декодировать информацию об остаточном значении.[00627] When sig_coeff_flag is true, the decoder can decode the gr1_flag of the corresponding residual coefficient. The decoder may determine that the absolute value of the corresponding residual coefficient is 1 when gr1_flag is 0, and may decode the par_level_flag of the corresponding residual coefficient when gr1_flag is 1. The decoder may then decode the rem_abs_gt1_flag of the corresponding residual coefficient. In this case, rem_abs_gtN_flag may be further decoded depending on the value of rem_abs_gt(N-1)_flag. As an example, the decoder may decode rem_abs_gtN_flag when the value of rem_abs_gt(N-1)_flag is 1. For example, when the value of rem_abs_gt1_flag for the residual coefficient is 1, the decoder may further analyze rem_abs_gt2_flag for the residual coefficient. When the value of rem_abs_gt(MAX)_flag is 1, the decoder can decode the residual value information.

[00628] Когда значение rem_abs_gtN_flag остаточного коэффициента равно 0, значение остаточного коэффициента может быть определено как равное 2N или 2N+1 в зависимости от значения par_level_flag. Подробно остаточный коэффициент может быть установлен равным 2N, когда par_level_flag равен 0, и остаточный коэффициент может быть установлен равным 2N+1, когда par_level_flag равен 1.[00628] When the rem_abs_gtN_flag value of the residual coefficient is 0, the value of the residual coefficient can be determined to be 2N or 2N+1 depending on the value of par_level_flag. In detail, the residual coefficient can be set to 2N when par_level_flag is 0, and the residual coefficient can be set to 2N+1 when par_level_flag is 1.

[00629] Например, когда rem_abs_gt1_flag равен 0, абсолютное значение остаточного коэффициента может быть установлено равным 2 или 3 в зависимости от значения par_level_flag. Подробно абсолютное значение остаточного коэффициента равно 2, когда значение par_level_flag равно 0, и абсолютное значение остаточного коэффициента равно 3, когда значение par_level_flag равно 1.[00629] For example, when rem_abs_gt1_flag is 0, the absolute value of the residual coefficient can be set to 2 or 3 depending on the value of par_level_flag. In detail, the absolute value of the residual coefficient is 2 when the value of par_level_flag is 0, and the absolute value of the residual coefficient is 3 when the value of par_level_flag is 1.

[00630] Например, когда rem_abs_gt2_flag равен 0, абсолютное значение остаточного коэффициента может быть установлено равным 4 или 5 в зависимости от значения par_level_flag. Подробно абсолютное значение остаточного коэффициента равно 4, когда значение par_level_flag равно 0, и абсолютное значение остаточного коэффициента равно 5, когда значение par_level_flag равно 1.[00630] For example, when rem_abs_gt2_flag is 0, the absolute value of the residual coefficient can be set to 4 or 5 depending on the value of par_level_flag. In detail, the absolute value of the residual coefficient is 4 when the value of par_level_flag is 0, and the absolute value of the residual coefficient is 5 when the value of par_level_flag is 1.

[00631] При декодировании информации об остаточном значении остаточный коэффициент может быть установлен равным 2(MAX+R) или 2(MAX+R)+1 в зависимости от значения par_level_flag. В данном случае R представляет значение информации об остаточном значении. В качестве примера, остаточный коэффициент может быть установлен равным 2(MAX+R), когда par_level_flag равен 0, и остаточный коэффициент может быть установлен равным 2(MAX+R)+1, когда par_level_flag равен 1.[00631] When decoding residual value information, the residual coefficient may be set to 2(MAX+R) or 2(MAX+R)+1 depending on the value of par_level_flag. Here, R represents the value of the residual value information. As an example, the residual coefficient can be set to 2(MAX+R) when par_level_flag is 0, and the residual coefficient can be set to 2(MAX+R)+1 when par_level_flag is 1.

[00632] В качестве другого примера, флаг четности может кодироваться только тогда, когда значение остаточного коэффициента больше 2. В качестве примера, после кодирования информации, указывающей, является ли значение остаточного коэффициента большим чем 1, и информации, указывающей, является ли значение остаточного коэффициента большим чем 2, когда определено, что значение остаточного коэффициента больше 2, может кодироваться флаг четности для соответствующего остаточного коэффициента.[00632] As another example, a parity flag may be encoded only when the residual coefficient value is greater than 2. As an example, after encoding the information indicating whether the residual coefficient value is greater than 1 and the information indicating whether the residual coefficient value is coefficient greater than 2, when it is determined that the value of the residual coefficient is greater than 2, a parity flag for the corresponding residual coefficient may be encoded.

[00633] На фиг. 47 представлена блок-схема процесса кодирования абсолютного значения остаточного коэффициента.[00633] In FIG. 47 is a flowchart of a process for encoding the absolute value of a residual coefficient.

[00634] Для ненулевого остаточного коэффициента может кодироваться (S4701) информация gr1_flag, указывающая, является ли абсолютное значение остаточного коэффициента большим чем 1. gr1_flag может быть установлен равным 0, когда остаточный коэффициент равен 1, и gr1_flag может быть установлен равным 1, когда остаточный коэффициент больше 1.[00634] For a non-zero residual coefficient, gr1_flag information may be encoded (S4701) indicating whether the absolute value of the residual coefficient is greater than 1. gr1_flag may be set to 0 when the residual coefficient is 1, and gr1_flag may be set to 1 when the residual coefficient is coefficient is greater than 1.

[00635] Для остаточного коэффициента, абсолютное значение которого больше 1, может кодироваться (S4702 и S4703) информация gr2_flag, указывающая, является ли абсолютное значение остаточного коэффициента большим чем 2. gr2_flag может быть установлен равным 0, когда остаточный коэффициент равен 2, и gr2_flag может быть установлен равным 1, когда остаточный коэффициент больше 2.[00635] For a residual coefficient whose absolute value is greater than 1, gr2_flag information indicating whether the absolute value of the residual coefficient is greater than 2 may be encoded (S4702 and S4703). gr2_flag may be set to 0 when the residual coefficient is 2, and gr2_flag can be set to 1 when the residual coefficient is greater than 2.

[00636] Когда абсолютное значение больше 2, может кодироваться (S4704 и S4705) флаг четности, указывающий, является остаточный коэффициент или коэффициент остатка четным числом или нечетным числом. В данном случае коэффициент остатка может быть установлен равным остаточному коэффициенту минус 3. В качестве примера, par_level_flag может быть получен с использованием приведенного ниже уравнения 34.[00636] When the absolute value is greater than 2, a parity flag indicating whether the remainder coefficient or the remainder coefficient is an even number or an odd number may be encoded (S4704 and S4705). In this case, the residual coefficient can be set to the residual coefficient minus 3. As an example, par_level_flag can be obtained using Equation 34 below.

[00637] [Уравнение 34][00637] [Equation 34]

[00638] Скорректированный коэффициент остатка может быть получен путем деления остаточного коэффициента или коэффициента остатка на 2 или путем битового сдвига остаточного коэффициента или коэффициента остатка вправо на 1, а затем может кодироваться информация, указывающая, является ли скорректированный коэффициент остатка большим чем 1. В качестве примера, для остаточного коэффициента, gr1_flag которого равен 1, может кодироваться (S4706) rem_abs_gt1_flag, указывающий, является ли скорректированный коэффициент остатка большим чем 1.[00638] The adjusted residual coefficient may be obtained by dividing the residual coefficient or residual coefficient by 2 or by bit shifting the residual coefficient or residual coefficient to the right by 1, and then information indicating whether the adjusted residual coefficient is greater than 1 can be encoded. For example, for a residual coefficient whose gr1_flag is 1, a rem_abs_gt1_flag indicating whether the adjusted residual coefficient is greater than 1 may be encoded (S4706).

[00639] Когда коэффициент остатка равен 0 или 1, значение rem_abs_gt1_flag может быть установлено равным 0. То есть, когда остаточный коэффициент равен 3 или 4, значение rem_abs_gt1_flag может быть установлено равным 0. В этом случае par_level_flag может быть установлен равным 0, когда скорректированный коэффициент остатка равен 0, и par_level_flag может быть установлен равным 1, когда коэффициент остатка равен 1.[00639] When the residual coefficient is 0 or 1, the value of rem_abs_gt1_flag can be set to 0. That is, when the residual coefficient is 3 or 4, the value of rem_abs_gt1_flag can be set to 0. In this case, par_level_flag can be set to 0 when the adjusted the residual coefficient is 0, and par_level_flag can be set to 1 when the residual coefficient is 1.

[00640] Когда скорректированный коэффициент остатка равен 2 или более (S4707), значение rem_abs_gt1_flag может быть установлено равным 1, и может кодироваться (S4708) информация, указывающая, является ли значение скорректированного коэффициента остатка большим чем 2. В качестве примера, для остаточного коэффициента, rem_abs_gt1_flag которого равен 1, может кодироваться rem_abs_gt2_flag, указывающий, является ли скорректированный коэффициент остатка большим чем 2.[00640] When the adjusted residual coefficient is 2 or more (S4707), the value of rem_abs_gt1_flag may be set to 1, and information indicating whether the value of the adjusted residual coefficient is greater than 2 can be encoded (S4708). As an example, for the residual coefficient , whose rem_abs_gt1_flag is 1, may be encoded with a rem_abs_gt2_flag indicating whether the adjusted residual factor is greater than 2.

[00641] Когда коэффициент остатка равен 2 или 3, значение rem_abs_gt2_flag может быть установлено равным 1. То есть, когда остаточный коэффициент равен 5 или 6, значение rem_abs_gt2_flag может быть установлено равным 0. В этом случае par_level_flag может быть установлен равным 0, когда коэффициент остатка равен 2, и par_level_flag может быть установлен равным 1, когда коэффициент остатка равен 3.[00641] When the residual coefficient is 2 or 3, the value of rem_abs_gt2_flag can be set to 1. That is, when the residual coefficient is 5 or 6, the value of rem_abs_gt2_flag can be set to 0. In this case, par_level_flag can be set to 0 when the coefficient the remainder is 2, and par_level_flag can be set to 1 when the remainder factor is 3.

[00642] Когда скорректированный коэффициент остатка больше 2, может кодироваться (S4709 и S4710) остаточное значение, равное скорректированному коэффициенту остатка минус 2. То есть в качестве остаточного значения может кодироваться значение, полученное путем вычитания 7 из абсолютного значения остаточного коэффициента, а затем деления результата вычитания на 2.[00642] When the adjusted residual coefficient is greater than 2, a residual value equal to the adjusted residual coefficient minus 2 may be encoded (S4709 and S4710). That is, a value obtained by subtracting 7 from the absolute value of the residual coefficient and then dividing may be encoded as the residual value. the result of subtraction by 2.

[00643] Остаточный коэффициент может дополнительно кодироваться с использованием флага, указывающего, является ли скорректированный коэффициент остатка большим чем 3 (например, rem_abs_gt3_flag), или флага, указывающего, является ли скорректированный коэффициент остатка большим чем 4 (например, rem_abs_gt4_flag). В этом случае в качестве остаточного значения может быть установлен скорректированный коэффициент остатка минус максимальное значение. Максимальное значение представляет максимальное N, примененное к rem_abs_gtN_flag.[00643] The residual coefficient may be further encoded using a flag indicating whether the adjusted residual coefficient is greater than 3 (eg, rem_abs_gt3_flag) or a flag indicating whether the adjusted residual coefficient is greater than 4 (eg, rem_abs_gt4_flag). In this case, the residual value can be set to the adjusted residual coefficient minus the maximum value. The maximum value represents the maximum N applied to rem_abs_gtN_flag.

[00644] Вместо флагов для сравнения значения скорректированного коэффициента остатка с конкретным значением могут использоваться флаги для сравнения абсолютного значения скорректированного коэффициента или остаточного коэффициента с конкретным значением. В качестве примера, вместо rem_abs_gt1_flag может использоваться gr4_flag, указывающий, является ли абсолютное значение остаточного коэффициента большим чем 4, а вместо rem_abs_gt2_flag может использоваться gr6_flag, указывающий, является ли абсолютное значение остаточного коэффициента большим чем 6.[00644] Instead of flags for comparing the value of the adjusted residual coefficient to a specific value, flags may be used to compare the absolute value of the adjusted coefficient or the residual coefficient to a specific value. As an example, instead of rem_abs_gt1_flag, gr4_flag may be used to indicate whether the absolute value of the residual coefficient is greater than 4, and instead of rem_abs_gt2_flag, gr6_flag may be used to indicate whether the absolute value of the residual coefficient is greater than 6.

[00645] Декодер также может декодировать остаточные коэффициенты в таком же порядке, как показано на фиг. 47. Подробно декодер может определять местоположение последнего ненулевого коэффициента и может декодировать sig_coeff_flag для каждого остаточного коэффициента, сканированного перед последним ненулевым коэффициентом.[00645] The decoder may also decode the residual coefficients in the same order as shown in FIG. 47. In detail, the decoder may locate the last non-zero coefficient and may decode a sig_coeff_flag for each residual coefficient scanned before the last non-zero coefficient.

[00646] Когда sig_coeff_flag имеет значение true, декодер может декодировать gr1_flag соответствующего остаточного коэффициента. Декодер может определять, что абсолютное значение соответствующего остаточного коэффициента равно 1, когда gr1_flag равен 0, и может декодировать gr2_flag, когда gr1_flag равен 1. Декодер может определять, что абсолютное значение соответствующего остаточного коэффициента равно 2, когда gr2_flag равен 0, и может декодировать par_level_flag соответствующего остаточного коэффициента, когда gr2_flag равен 1. Затем декодер может декодировать rem_abs_gt1_flag соответствующего остаточного коэффициента. В этом случае rem_abs_gtN_flag может дополнительно декодироваться в зависимости от значения rem_abs_gt(N-1)_flag. В качестве примера, декодер может декодировать rem_abs_gtN_flag, когда значение rem_abs_gt(N-1)_flag равно 1. Например, когда значение rem_abs_gt1_flag для остаточного коэффициента равно 1, декодер может дополнительно анализировать rem_abs_gt2_flag на предмет остаточного коэффициента. Когда значение rem_abs_gt(MAX)_flag равно 1, декодер может декодировать информацию об остаточном значении.[00646] When sig_coeff_flag is true, the decoder can decode the gr1_flag of the corresponding residual coefficient. The decoder may determine that the absolute value of the corresponding residual coefficient is 1 when gr1_flag is 0, and may decode gr2_flag when gr1_flag is 1. The decoder may determine that the absolute value of the corresponding residual coefficient is 2 when gr2_flag is 0, and may decode par_level_flag the corresponding residual coefficient when gr2_flag is 1. The decoder can then decode the rem_abs_gt1_flag of the corresponding residual coefficient. In this case, rem_abs_gtN_flag may be further decoded depending on the value of rem_abs_gt(N-1)_flag. As an example, the decoder may decode rem_abs_gtN_flag when the value of rem_abs_gt(N-1)_flag is 1. For example, when the value of rem_abs_gt1_flag for the residual coefficient is 1, the decoder may further analyze rem_abs_gt2_flag for the residual coefficient. When the value of rem_abs_gt(MAX)_flag is 1, the decoder can decode the residual value information.

[00647] Когда значение rem_abs_gtN_flag остаточного коэффициента равно 0, значение остаточного коэффициента может быть определено как равное 2N+1 или 2(N+1) в зависимости от значения par_level_flag. Подробно остаточный коэффициент может быть установлен равным 2N+1, когда par_level_flag равен 0, и остаточный коэффициент может быть установлен равным 2(N+1), когда par_level_flag равен 1.[00647] When the value of the residual coefficient rem_abs_gtN_flag is 0, the value of the residual coefficient can be determined to be 2N+1 or 2(N+1) depending on the value of par_level_flag. In detail, the residual coefficient can be set to 2N+1 when par_level_flag is 0, and the residual coefficient can be set to 2(N+1) when par_level_flag is 1.

[00648] Например, когда rem_abs_gt1_flag равен 0, абсолютное значение остаточного коэффициента может быть установлено равным 3 или 4 в зависимости от значения par_level_flag. Подробно абсолютное значение остаточного коэффициента равно 3, когда значение par_level_flag равно 0, и абсолютное значение остаточного коэффициента равно 4, когда значение par_level_flag равно 1.[00648] For example, when rem_abs_gt1_flag is 0, the absolute value of the residual coefficient can be set to 3 or 4 depending on the value of par_level_flag. In detail, the absolute value of the residual coefficient is 3 when the value of par_level_flag is 0, and the absolute value of the residual coefficient is 4 when the value of par_level_flag is 1.

[00649] Например, когда rem_abs_gt2_flag равен 0, абсолютное значение остаточного коэффициента может быть установлено равным 5 или 6 в зависимости от значения par_level_flag. Подробно абсолютное значение остаточного коэффициента равно 5, когда значение par_level_flag равно 0, и абсолютное значение остаточного коэффициента равно 6, когда значение par_level_flag равно 1.[00649] For example, when rem_abs_gt2_flag is 0, the absolute value of the residual coefficient can be set to 5 or 6 depending on the value of par_level_flag. In detail, the absolute value of the residual coefficient is 5 when the value of par_level_flag is 0, and the absolute value of the residual coefficient is 6 when the value of par_level_flag is 1.

[00650] При декодировании информации об остаточном значении остаточный коэффициент может быть установлен равным 2(MAX+R) или 2(MAX+R)+1 в зависимости от значения par_level_flag. В данном случае R представляет значение информации об остаточном значении. В качестве примера, остаточный коэффициент может быть установлен равным 2(MAX+R), когда par_level_flag равен 0, и остаточный коэффициент может быть установлен равным 2(MAX+R)+1, когда par_level_flag равен 1.[00650] When decoding residual value information, the residual coefficient may be set to 2(MAX+R) or 2(MAX+R)+1 depending on the value of par_level_flag. Here, R represents the value of the residual value information. As an example, the residual coefficient can be set to 2(MAX+R) when par_level_flag is 0, and the residual coefficient can be set to 2(MAX+R)+1 when par_level_flag is 1.

[00651] Может быть определено по меньшей мере одно из количества или типов флагов сравнения для сравнения скорректированных коэффициентов остатка с конкретным значением на основании по меньшей мере одного из размера или формы текущего блока, присутствия пропуска преобразования, основы преобразования, количества ненулевых коэффициентов или местоположения последнего ненулевого коэффициента. В качестве примера, при кодировании коэффициента преобразования, может использоваться только rem_abs_gt1_flag. С другой стороны, при кодировании коэффициента пропуска преобразования могут использоваться rem_abs_gt1_flag и rem_abs_gt2_flag.[00651] At least one of a number or types of comparison flags may be defined to compare the adjusted remainder coefficients to a particular value based on at least one of the size or shape of the current block, the presence of a conversion skip, the basis of the conversion, the number of non-zero coefficients, or the location of the latter non-zero coefficient. As an example, when encoding the transform coefficient, only rem_abs_gt1_flag can be used. On the other hand, when encoding the transform skip factor, rem_abs_gt1_flag and rem_abs_gt2_flag can be used.

[00652] Альтернативно в элементе подпреобразования 4×4 количество флагов rem_abs_gt1_fag может быть установлено равным вплоть до 8, а количество флагов rem_abs_gt2_flag может быть установлено равным вплоть до 1. Альтернативно, когда количество флагов ненулевых коэффициентов равно (16-N), количество флагов rem_abs_gt1_flag может быть установлено равным вплоть до 8+(N/2), и количество флагов rem_abs_gt2_flag может быть установлено равным вплоть до 1+(N-(N/2)).[00652] Alternatively, in a 4x4 sub-transform element, the number of rem_abs_gt1_fag flags can be set to up to 8, and the number of rem_abs_gt2_flag flags can be set to up to 1. Alternatively, when the number of non-zero coefficient flags is (16-N), the number of rem_abs_gt1_flag flags can be set to up to 8+(N/2), and the number of rem_abs_gt2_flags can be set to up to 1+(N-(N/2)).

[00653] При получении восстановленного блока текущего блока потеря информации, происходящая в ходе квантования и кодирования, может быть уменьшена с помощью фильтрации в контуре. Фильтр в контуре может содержать по меньшей мере один из деблочного фильтра, фильтра адаптивного смещения отсчета (SAO) или адаптивного контурного фильтра (ALF). Восстановленный блок до применения фильтра в контуре будет называться первым восстановленным блоком, а восстановленный блок после применения фильтра в контуре будет называться вторым восстановленным блоком.[00653] When obtaining a 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.

[00654] Второй восстановленный блок может быть получен путем применения по меньшей мере одного из деблочного фильтра, SAO или ALF к первому восстановленному блоку. В этом случае SAO или ALF может быть применен после применения деблочного фильтра.[00654] 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.

[00655] Деблочный фильтр предназначен для ослабления ухудшения качества видео (блочного артефакта), возникающего на крае блока при выполнении квантования в элементах блоков. Для применения деблочного фильтра может быть определен качественный показатель блока (BS) между первым восстановленным блоком и соседним восстановленным блоком.[00655] The deblocking filter is designed to mitigate video quality degradation (blocking artifact) that occurs at the block edge when performing quantization on block elements. To apply a deblocking filter, a block quality score (BS) between the first reconstructed block and an adjacent reconstructed block can be determined.

[00656] На фиг. 48 представлена блок-схема, показывающая процесс определения качественного показателя блока.[00656] In FIG. 48 is a flowchart showing the process of determining the quality of a block.

[00657] В примере, показанном на фиг. 48, P представляет первый восстановленный блок, и Q представляет соседний восстановленный блок. В данном случае соседний восстановленный блок может представлять собой блок, соседний с текущим блоком слева или сверху.[00657] In the example shown in FIG. 48, 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.

[00658] В примере, показанном на фиг. 48, показано, что качественный показатель блока определяется с учетом режимов предсказания P и Q, того, включены ли ненулевые коэффициенты преобразования, того, выполнено ли предсказание, осуществляемое между изображениями, с использованием того же опорного изображения, или того, является ли значение разности между векторами движения большим или равным пороговому значению.[00658] In the example shown in FIG. 48, it is shown that the block quality is determined taking into account the prediction modes P and Q, whether non-zero transform coefficients are included, whether prediction carried out between pictures is performed using the same reference picture, or whether the difference value between motion vectors greater than or equal to the threshold value.

[00659] На основании качественного показателя блока можно определить, применять ли деблочный фильтр. В качестве примера, фильтрация может не выполняться, когда качественный показатель блока равен 0.[00659] Based on the quality of the block, it can be determined whether to apply a deblocking filter. As an example, filtering may not be performed when the block quality score is 0.

[00660] SAO предназначено для ослабления артефакта в виде колец, возникающего при выполнении квантования в частотной области. SAO может быть выполнено путем добавления или вычитания смещения, определенного с учетом схемы первого восстановленного блока. Способ определения смещения включает смещение по краю (EO) или смещение по полосам (ВО). EO указывает способ определения смещения текущего отсчета согласно схеме ближайших пикселей. BO указывает способ применения общего смещения к набору пикселей, имеющих подобные значения яркости в области. Подробно яркость пикселей делится на 32 равные секции, и как один набор могут быть установлены пиксели, имеющие подобные значения яркости. В качестве примера, как одна группа могут быть установлены четыре смежные полосы из 32 полос, и к отсчетам, принадлежащим четырем полосам, может быть применено одинаковое значение смещения.[00660] 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 block. 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 a way to apply a common offset to a set of pixels having similar brightness values in an area. 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.

[00661] ALF представляет собой способ генерирования второго восстановленного блока путем применения фильтра предварительно заданного размера или формы к первому восстановленному блоку или к восстановленному блоку, к которому был применен деблочный фильтр. В приведенном ниже уравнении 35 представлен пример применения ALF.[00661] ALF is a method of generating a second reconstructed block by applying a filter of a predetermined size or shape to a first reconstructed block or to a reconstructed block to which a deblocking filter has been applied. Equation 35 below provides an example application of ALF.

[00662] [Уравнение 35][00662] [Equation 35]

[00663] Один из предварительно заданных фильтров-кандидатов может быть выбран в элементах изображения, элементах кодового дерева, блоках кодирования, блоках предсказания или блоках преобразования. Фильтры-кандидаты могут отличаться по размеру или форме.[00663] 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.

[00664] На фиг. 49 показаны предварительно заданные фильтры-кандидаты.[00664] In FIG. 49 shows predefined candidate filters.

[00665] В примере, показанном на фиг. 49, может быть выбрана по меньшей мере одна из ромбовидной формы 5×5, ромбовидной формы 7×7 или ромбовидной формы 9×9.[00665] In the example shown in FIG. 49, at least one of a 5x5 diamond shape, a 7x7 diamond shape, or a 9x9 diamond shape can be selected.

[00666] Для компонента цветности может быть использована только ромбовидная форма 5×5.[00666] For the chrominance component, only a 5x5 diamond shape can be used.

[00667] Применение вариантов осуществления, которые были описаны как направленные на процесс декодирования или процесс кодирования, к процессу декодирования или процессу кодирования находится в пределах объема настоящего изобретения. Изменение предварительно определенного порядка, в котором были описаны варианты осуществления, на порядок, отличный от вышеописанного, также находится в пределах объема настоящего изобретения.[00667] 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.

[00668] Хотя приведенные выше варианты осуществления были описаны на основании ряда этапов или последовательностей операций, этапы или последовательности операций не ограничивают порядок настоящего изобретения во временном ряду и при необходимости могут выполняться одновременно или в других порядках. Кроме того, каждый из компонентов (например, элементы, модули и т.д.), составляющих блок-схему в вышеописанных вариантах осуществления, может быть реализован аппаратным устройством или программным обеспечением, и множество компонентов могут быть скомбинированы и реализованы одним аппаратным устройством или программным обеспечением. Вышеописанные варианты осуществления могут быть реализованы в форме программных команд, которые могут исполняться посредством различных компьютерных средств и записываться в машиночитаемом носителе данных. Машиночитаемый носитель данных может содержать программную команду, файл данных, структуру данных и т.п. отдельно или в комбинации. Примеры машиночитаемого носителя данных включают магнитные носители, такие как жесткий диск, дискета и магнитная лента, оптические носители, таки как постоянное запоминающее устройство на компакт-диске (CD-ROM) и цифровой универсальный диск (DVD), магнитооптические носители, такие как гибкий магнитооптический диск, и аппаратные устройства, такие как ROM, оперативное запоминающее устройство (RAM) и флеш-память, которые специально рассчитаны на хранение и исполнение программных команд. Аппаратное устройство может быть выполнено с возможностью работы в качестве одного или более модулей программного обеспечения для выполнения операций настоящего изобретения, и наоборот.[00668] 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 (eg, 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. separately 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]

[00669] Настоящее изобретение может быть применено к электронному устройству для кодирования или декодирования видео.[00669] The present invention can be applied to an electronic device for encoding or decoding video.

Claims (25)

1. Способ декодирования видео, включающий следующие этапы:1. A method for video decoding, including the following steps: анализ ненулевого флага, указывающего, является ли остаточный коэффициент ненулевым, из битового потока, при этом когда кодирование ненулевого флага остаточного коэффициента оказывается опущенным, остаточный коэффициент считается ненулевым и местоположение остаточного коэффициента определяется как местоположение последнего ненулевого остаточного коэффициента;analyzing a non-zero flag indicating whether the residual coefficient is non-zero from the bit stream, wherein when encoding of the non-zero residual coefficient flag is omitted, the residual coefficient is considered to be non-zero and the location of the residual coefficient is determined as the location of the last non-zero residual coefficient; анализ информации об абсолютном значении для определения абсолютного значения остаточного коэффициента из битового потока, когда ненулевой флаг указывает, что остаточный коэффициент является ненулевым; иanalyzing the absolute value information to determine the absolute value of the residual coefficient from the bit stream, when the non-zero flag indicates that the residual coefficient is non-zero; And определение абсолютного значения остаточного коэффициента на основании информации об абсолютном значении,determining the absolute value of the residual coefficient based on information about the absolute value, при этомwherein информация об абсолютном значении содержит флаг сравнения остаточного коэффициента, указывающий, больше ли остаточный коэффициент, чем первое значение;the absolute value information includes a residual coefficient comparison flag indicating whether the residual coefficient is greater than the first value; флаг четности дополнительно анализируют из битового потока только тогда, когда остаточный коэффициент больше, чем первое значение; и флаг четности указывает, является ли значение остаточного коэффициента четным числом или нечетным числом.the parity flag is further parsed from the bitstream only when the residual coefficient is greater than the first value; and a parity flag indicates whether the residual coefficient value is an even number or an odd number. 2. Способ по п. 1, отличающийся тем, что первый флаг сравнения скорректированного коэффициента остатка, указывающий, больше ли скорректированный коэффициент остатка, полученный путем битового сдвига остаточного коэффициента вправо на 1, чем второе значение, дополнительно анализируют, когда остаточный коэффициент больше, чем первое значение.2. The method according to claim 1, characterized in that the first adjusted residual coefficient comparison flag indicating whether the adjusted residual coefficient obtained by bit shifting the residual coefficient to the right by 1 than the second value is further analyzed when the residual coefficient is greater than first value. 3. Способ по п. 2, отличающийся тем, что N является вторым значением, и остаточный коэффициент определяют как равный 2N или 2N+1 в зависимости от флага четности, когда скорректированный коэффициент остатка меньше, чем второе значение, или равен ему.3. The method of claim 2, wherein N is the second value and the residual coefficient is determined to be 2N or 2N+1 depending on the parity flag when the adjusted residual coefficient is less than or equal to the second value. 4. Способ по п. 2, отличающийся тем, что второй флаг сравнения скорректированного коэффициента остатка, указывающий, больше ли скорректированный коэффициент остатка, чем третье значение, дополнительно анализируют, когда скорректированный коэффициент остатка больше, чем второе значение.4. The method of claim 2, wherein the second adjusted residual ratio comparison flag indicating whether the adjusted residual ratio is greater than the third value is further analyzed when the adjusted residual ratio is greater than the second value. 5. Способ по п. 2, отличающийся тем, что5. Method according to claim 2, characterized in that информацию об остаточном значении дополнительно анализируют, когда скорректированный коэффициент остатка больше, чем второе значение, иthe residual value information is further analyzed when the adjusted residual ratio is greater than the second value, and информация об остаточном значении содержит значение, полученное путем вычитания второго значения из скорректированного коэффициента остатка.the residual value information contains the value obtained by subtracting the second value from the adjusted residual coefficient. 6. Способ кодирования видео, включающий следующие этапы:6. Video encoding method, including the following steps: кодирование ненулевого флага, указывающего, является ли остаточный коэффициент ненулевым, при этом кодирование ненулевого флага последнего ненулевого остаточного коэффициента пропущено; иencoding a non-zero flag indicating whether the residual coefficient is non-zero, while encoding the non-zero flag of the last non-zero residual coefficient is omitted; And кодирование информации об абсолютном значении для определения абсолютного значения остаточного коэффициента, когда остаточный коэффициент является ненулевым,encoding absolute value information to determine the absolute value of the residual coefficient when the residual coefficient is non-zero, при этомwherein информация об абсолютном значении содержит флаг сравнения остаточного коэффициента, указывающий, больше ли остаточный коэффициент, чем первое значение;the absolute value information includes a residual coefficient comparison flag indicating whether the residual coefficient is greater than the first value; флаг четности для остаточного коэффициента дополнительно кодируют только тогда, когда остаточный коэффициент больше, чем первое значение; и флаг четности указывает, является ли значение остаточного коэффициента четным числом или нечетным числом.a parity flag for the residual coefficient is further encoded only when the residual coefficient is greater than the first value; and a parity flag indicates whether the residual coefficient value is an even number or an odd number. 7. Способ по п. 6, отличающийся тем, что первый флаг сравнения скорректированного коэффициента остатка, указывающий, больше ли скорректированный коэффициент остатка, полученный путем битового сдвига остаточного коэффициента вправо на 1, чем второе значение, дополнительно кодируют, когда остаточный коэффициент больше, чем первое значение.7. The method of claim 6, wherein the first adjusted residual coefficient comparison flag indicating whether the adjusted residual coefficient obtained by bit shifting the residual coefficient to the right by 1 than the second value is further encoded when the residual coefficient is greater than first value. 8. Способ по п. 7, отличающийся тем, что N является вторым значением, и остаточный коэффициент определяют как равный 2N или 2N+1 в зависимости от флага четности, когда скорректированный коэффициент остатка меньше, чем второе значение, или равен ему.8. The method of claim 7, wherein N is the second value and the residual coefficient is determined to be 2N or 2N+1 depending on the parity flag when the adjusted residual coefficient is less than or equal to the second value. 9. Способ по п. 7, отличающийся тем, что второй флаг сравнения скорректированного коэффициента остатка, указывающий, больше ли скорректированный коэффициент остатка, чем третье значение, дополнительно кодируют, когда скорректированный коэффициент остатка больше, чем второе значение.9. The method of claim 7, wherein a second adjusted residual ratio comparison flag indicating whether the adjusted residual ratio is greater than the third value is further encoded when the adjusted residual ratio is greater than the second value. 10. Способ по п. 7, отличающийся тем, что10. Method according to claim 7, characterized in that информацию об остаточном значении дополнительно кодируют, когда скорректированный коэффициент остатка больше, чем второе значение, иthe residual value information is further encoded when the adjusted residual coefficient is greater than the second value, and информация об остаточном значении содержит значение, полученное путем вычитания второго значения из скорректированного коэффициента остатка.the residual value information contains the value obtained by subtracting the second value from the adjusted residual coefficient.
RU2023120534A 2018-09-21 2019-09-20 Method and device for encoding/decoding image signals RU2818972C2 (en)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
KR10-2018-0114346 2018-09-21
KR0-2018-0114347 2018-09-21
KR10-2018-0114350 2018-09-21
KR10-20180114345 2018-09-21
KR0-20180114345 2018-09-21
KR0-2018-0114350 2018-09-21
KR0-2018-0114346 2018-09-21
KR10-2018-0114347 2018-09-21
KR0-2019-0022754 2019-02-26
KR10-2019-0022754 2019-02-26

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
RU2021110788A Division RU2801585C2 (en) 2018-09-21 2019-09-20 Method and device for coding/decoding image signals

Publications (2)

Publication Number Publication Date
RU2023120534A RU2023120534A (en) 2023-08-11
RU2818972C2 true RU2818972C2 (en) 2024-05-08

Family

ID=

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2607250C2 (en) * 2009-10-28 2017-01-10 Самсунг Электроникс Ко., Лтд. Method and apparatus for encoding residual block, method and apparatus for decoding residual block
RU2611992C2 (en) * 2012-01-17 2017-03-01 Квэлкомм Инкорпорейтед Increasing throughput capacity for cabac coefficients level encoding
WO2017043760A1 (en) * 2015-09-08 2017-03-16 삼성전자 주식회사 Device and method for entropy encoding and decoding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2607250C2 (en) * 2009-10-28 2017-01-10 Самсунг Электроникс Ко., Лтд. Method and apparatus for encoding residual block, method and apparatus for decoding residual block
RU2611992C2 (en) * 2012-01-17 2017-03-01 Квэлкомм Инкорпорейтед Increasing throughput capacity for cabac coefficients level encoding
WO2017043760A1 (en) * 2015-09-08 2017-03-16 삼성전자 주식회사 Device and method for entropy encoding and decoding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BENJAMIN BROSS et al., Versatile Video Coding (Draft 2), Joint Video Experts Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC 29/WG11, JVET-K1001-v5, 11th Meeting: Ljubljana, 10-18 July 2018. HEIKO SCHWARZ et al., Non-CE7: Alternative Entropy Coding for Dependent Quantization, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-K0072-v2, 11th Meeting: Ljubljana, 10-18 July 2018. *

Similar Documents

Publication Publication Date Title
JP7434486B2 (en) Image decoding method, image encoding method, and computer-readable recording medium
JP7451504B2 (en) Video signal encoding/decoding method and equipment therefor
RU2766152C1 (en) Method and device for encoding/decoding an image signal
JP7430716B2 (en) Video signal encoding method and decoding method and device thereof
JP7459069B2 (en) Video signal encoding/decoding method and device
CN113491116B (en) Video signal processing method and device based on intra-frame prediction
JP2022548220A (en) Video signal encoding/decoding method and apparatus therefor
KR20210022510A (en) Method for encoding/decoidng video signal and apparatus therefor
KR20200132766A (en) Method for encoding/decoidng video signal and apparatus therefor
RU2818972C2 (en) Method and device for encoding/decoding image signals
RU2801585C2 (en) Method and device for coding/decoding image signals
RU2811980C2 (en) Method and device for encoding/decoding image signals
RU2817331C2 (en) Method and device for encoding/decoding image signal
RU2805056C2 (en) Method and device for encoding/decoding image signals
RU2820118C2 (en) Method and device for encoding/decoding image signals
RU2811985C2 (en) Method and device for encoding/decoding image signals
KR20200141399A (en) Method for encoding/decoidng video signal and apparatus therefor
CN118694972A (en) Video signal processing method and device based on intra-frame prediction
CN118694974A (en) Video signal processing method and device based on intra-frame prediction
CN118694973A (en) Video signal processing method and device based on intra-frame prediction