+

BR122025000828A2 - VIDEO DECODING METHOD, VIDEO CODING METHOD, VIDEO DECODER AND VIDEO ENCODER - Google Patents

VIDEO DECODING METHOD, VIDEO CODING METHOD, VIDEO DECODER AND VIDEO ENCODER Download PDF

Info

Publication number
BR122025000828A2
BR122025000828A2 BR122025000828-1A BR122025000828A BR122025000828A2 BR 122025000828 A2 BR122025000828 A2 BR 122025000828A2 BR 122025000828 A BR122025000828 A BR 122025000828A BR 122025000828 A2 BR122025000828 A2 BR 122025000828A2
Authority
BR
Brazil
Prior art keywords
block
affine
current block
vector
prediction
Prior art date
Application number
BR122025000828-1A
Other languages
Portuguese (pt)
Inventor
Bae Keun Lee
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp., Ltd
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 Guangdong Oppo Mobile Telecommunications Corp., Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp., Ltd
Publication of BR122025000828A2 publication Critical patent/BR122025000828A2/en

Links

Abstract

Trata-se de um método de decodificação de imagem deacordo com a presente invenção que compreende as etapas de:gerar uma lista de candidatos de fusão em um bloco atual;especificar um de uma pluralidade de candidatos de fusãoincluídos na lista de candidatos de fusão; derivar um primeirovetor de origem afim e um segundo vetor de origem afim do blocoatual baseados em um primeiro vetor de origem afim e um segundovetor de origem afim do candidato de fusão especificado;derivar um vetor afim para um sub-bloco no bloco atual com ouso do primeiro vetor de origem afim e o segundo vetor deorigem afim do bloco atual; e realizar a predição decompensação de movimento para o sub-bloco baseada no vetorafim.An image decoding method according to the present invention comprises the steps of: generating a list of fusion candidates in a current block; specifying one of a plurality of fusion candidates included in the list of fusion candidates; deriving a first affine seed vector and a second affine seed vector of the current block based on a first affine seed vector and a second affine seed vector of the specified fusion candidate; deriving an affine vector for a sub-block in the current block using the first affine seed vector and the second affine seed vector of the current block; and performing motion compensation prediction for the sub-block based on the affine vector.

Description

O presente pedido de patente consiste em pedido dividido do pedido de patente de invenção BR 112021004922-3, de 20/09/2019.This patent application consists of a split application of the invention patent application BR 112021004922-3, dated 09/20/2019. ANTECEDENTES DA INVENÇÃOBACKGROUND OF THE INVENTION CAMPO DA INVENÇÃOFIELD OF INVENTION

[001] A presente invenção refere-se a um métodode codificação e decodificação de sinal de vídeo e um aparelho para o mesmo.[001] The present invention relates to a method of encoding and decoding video signals and an apparatus for the same.

ANTECEDENTES DA TÉCNICA RELACIONADABACKGROUND OF THE RELATED ART

[002] Como os painéis de exibição estão ficandocada vez maiores, os serviços de vídeo de qualidade ainda mais alta são necessários cada vez mais. O maior problema dos serviços de vídeo de alta definição é o aumento significativo do volume de dados e, para resolver esse problema, estudos para melhorar a taxa de compressão de vídeo são realizados ativamente. Como um exemplo representativo, o Motion Picture Experts Group (MPEG) e o Video Coding Experts Group (VCEG) sob a International Telecommunication Union-Telecommunication (ITU-T) formaram a Joint Collaborative Team on Video Coding (JCT-VC) em 2009. O JCT-VC propôs o High Efficiency Video Coding (HEVC), que é um padrão de compressão de vídeo com um desempenho de compressão cerca de duas vezes superior ao desempenho de compressão de H.264/AVC, e foi aprovado como padrão em 25 de janeiro de 2013. Com o rápido avanço nos serviços de vídeo de alta definição, o desempenho do HEVC gradualmente revela suas limitações.[002] As display panels are getting larger and larger, even higher quality video services are increasingly required. The biggest problem of high-definition video services is the significant increase in data volume, and in order to solve this problem, studies to improve the video compression rate are actively carried out. As a representative example, the Motion Picture Experts Group (MPEG) and the Video Coding Experts Group (VCEG) under the International Telecommunication Union-Telecommunication (ITU-T) formed the Joint Collaborative Team on Video Coding (JCT-VC) in 2009. JCT-VC proposed High Efficiency Video Coding (HEVC), which is a video compression standard with a compression performance about twice that of H.264/AVC, and was approved as a standard on January 25, 2013. With the rapid advancement of high-definition video services, the performance of HEVC gradually reveals its limitations.

SUMARIO DA INVENÇÃOSUMMARY OF THE INVENTION

[003] Um objeto da presente invenção é fornecer um método interpredição com o uso de um modelo afim, e um aparelho para o mesmo, na codificação/decodificação de um sinal de vídeo.[003] An object of the present invention is to provide an interprediction method using an affine model, and an apparatus for the same, in encoding/decoding a video signal.

[004] Um outro objeto da presente invenção é fornecer um método de derivação de um vetor de origem afim com o uso de um vetor de movimento translacional de um sub-bloco, e um aparelho para realizar o método, na codificação/decodificação de um sinal de vídeo.[004] Another object of the present invention is to provide a method of deriving an affine source vector using a translational motion vector of a sub-block, and an apparatus for performing the method, in encoding/decoding a video signal.

[005] Um outro objeto da presente invenção é fornecer um método de derivação de um vetor de origem afim por meio da transformação de uma distância entre um bloco vizinho e um bloco atual para uma série de potência de 2, e um aparelho para realizar o método, na codificação/decodificação de um sinal de vídeo.[005] Another object of the present invention is to provide a method of deriving an affine source vector by transforming a distance between a neighboring block and a current block into a power-of-2 series, and an apparatus for performing the method, in encoding/decoding a video signal.

[006] Os problemas técnicos a serem alcançados na presente invenção não estão limitados aos problemas técnicos mencionados acima, e outros problemas não mencionados podem ser claramente compreendidos por aqueles versados na técnica a partir da seguinte descrição.[006] The technical problems to be achieved in the present invention are not limited to the technical problems mentioned above, and other problems not mentioned can be clearly understood by those skilled in the art from the following description.

[007] Um método de decodificação e codificação de um sinal de vídeo de acordo com a presente invenção inclui as etapas de: gerar uma lista de candidatos de fusão para um bloco atual; especificar um dentre uma pluralidade de candidatos de fusão incluídos na lista de candidatos de fusão; derivar um primeiro vetor de origem afim e um segundo vetor de origem afim do bloco atual com base em um primeiro vetor de origem afim e um segundo vetor de origem afim do candidato de fusão especificado; derivar um vetor afim para um sub-bloco no bloco atual por meio do uso do primeiro vetor de origem afim e o segundo vetor de origem afim do bloco atual; e realizar uma predição de compensação de movimento para o sub-bloco com base no vetor afim. Nesse ponto, o sub-bloco é uma região de um tamanho menor que aquele do bloco atual. Além disso, o primeiro vetor de origem afim e o segundo vetor de origem afim do candidato de fusão podem ser derivados com base em informações de movimento de um bloco vizinho adjacente ao bloco atual.[007] A method of decoding and encoding a video signal according to the present invention includes the steps of: generating a list of fusion candidates for a current block; specifying one of a plurality of fusion candidates included in the list of fusion candidates; deriving a first affine source vector and a second affine source vector of the current block based on a first affine source vector and a second affine source vector of the specified fusion candidate; deriving an affine vector for a sub-block in the current block by using the first affine source vector and the second affine source vector of the current block; and performing a motion compensation prediction for the sub-block based on the affine vector. At this point, the sub-block is a region of a size smaller than that of the current block. Furthermore, the first affine source vector and the second affine source vector of the fusion candidate may be derived based on motion information of a neighboring block adjacent to the current block.

[008] No método de decodificação e codificação de um sinal de vídeo de acordo com a presente invenção, quando o bloco vizinho é incluído em uma unidade de árvore de codificação diferente de uma unidade de árvore de codificação do bloco atual, o primeiro vetor de origem afim e o segundo vetor de origem afim do candidato de fusão podem ser derivados com base em vetores de movimento de um sub-bloco inferior à esquerda e um sub-bloco inferior à direita do bloco vizinho.[008] In the method of decoding and encoding a video signal according to the present invention, when the neighboring block is included in a coding tree unit other than a coding tree unit of the current block, the first affine source vector and the second affine source vector of the fusion candidate may be derived based on motion vectors of a lower left sub-block and a lower right sub-block of the neighboring block.

[009] No método de decodificação e codificação de um sinal de vídeo de acordo com a presente invenção, o sub- bloco inferior à esquerda pode incluir uma amostra de referência inferior à esquerda posicionada em um canto inferior esquerdo do bloco vizinho, e o sub-bloco inferior à direita pode incluir uma amostra de referência inferior à direita situada em um canto inferior esquerdo do bloco vizinho.[009] In the method of decoding and encoding a video signal according to the present invention, the lower left sub-block may include a lower left reference sample positioned at a lower left corner of the neighboring block, and the lower right sub-block may include a lower right reference sample positioned at a lower left corner of the neighboring block.

[0010] No método de decodificação e codificação de um sinal de vídeo de acordo com a presente invenção, o primeiro vetor de origem afim e o segundo vetor de origem afim do candidato de fusão podem ser derivados com base em um valor obtido com base em uma operação de compensação realizada em um valor de diferença entre vetores de movimento do sub-bloco inferior à esquerda e do sub-bloco inferior à direita com o uso de um fator de escalonamento, e o fator de escalonamento pode ser derivado com base em um valor obtido por meio da adição de uma distância horizontal entre a amostra de referência inferior à esquerda e a amostra de referência inferior à direita e um deslocamento.[0010] In the method of decoding and encoding a video signal according to the present invention, the first affine source vector and the second affine source vector of the fusion candidate may be derived based on a value obtained based on a compensation operation performed on a difference value between motion vectors of the lower left sub-block and the lower right sub-block using a scaling factor, and the scaling factor may be derived based on a value obtained by adding a horizontal distance between the lower left reference sample and the lower right reference sample and an offset.

[0011] No método de decodificação e codificação de um sinal de vídeo de acordo com a presente invenção, o primeiro vetor de origem afim e o segundo vetor de origem afim do candidato de fusão podem ser derivados com base em um valor obtido com base em uma operação de compensação realizada em um valor de diferença entre vetores de movimento do sub-bloco inferior à esquerda e do sub-bloco inferior à direita com o uso de um fator de escalonamento, e o fator de escalonamento pode ser derivado com base em uma distância entre uma amostra vizinha adjacente a um lado direito da amostra de referência inferior à direita e da amostra de referência inferior à esquerda.[0011] In the method of decoding and encoding a video signal according to the present invention, the first affine source vector and the second affine source vector of the fusion candidate may be derived based on a value obtained based on a compensation operation performed on a difference value between motion vectors of the lower left sub-block and the lower right sub-block using a scaling factor, and the scaling factor may be derived based on a distance between a neighboring sample adjacent to a right side of the lower right reference sample and the lower left reference sample.

[0012] No método de decodificação e codificação de um sinal de vídeo de acordo com a presente invenção, a lista de candidatos de fusão inclui um primeiro candidato de fusão derivado com base em um bloco vizinho superior determinado como um primeiro bloco disponível dentre blocos vizinhos superiores posicionados em um topo do bloco atual, e um segundo candidato de fusão derivado com base em um bloco vizinho esquerdo determinado como um primeiro bloco disponível dentre blocos vizinhos esquerdos posicionados em um lado esquerdo do bloco atual.[0012] In the method of decoding and encoding a video signal according to the present invention, the list of fusion candidates includes a first fusion candidate derived based on an upper neighbor block determined as a first available block among upper neighbor blocks positioned on a top of the current block, and a second fusion candidate derived based on a left neighbor block determined as a first available block among left neighbor blocks positioned on a left side of the current block.

[0013] No método de decodificação e codificação de um sinal de vídeo de acordo com a presente invenção, quando o bloco vizinho é incluído em uma unidade de árvore de codificação igual a uma unidade de árvore de codificação do bloco atual, o primeiro vetor de origem afim e o segundo vetor de origem afim do candidato de fusão podem ser derivados com base em um primeiro vetor de origem afim e um segundo vetor de origem afim do bloco vizinho.[0013] In the method of decoding and encoding a video signal according to the present invention, when the neighboring block is included in a coding tree unit equal to a coding tree unit of the current block, the first affine source vector and the second affine source vector of the fusion candidate may be derived based on a first affine source vector and a second affine source vector of the neighboring block.

[0014] Os recursos resumidos brevemente acima em relação à presente invenção são aspectos meramente exemplificadores da descrição detalhada da presente invenção que será descrita abaixo e não limitam o escopo da presente invenção.[0014] The features briefly summarized above in relation to the present invention are merely exemplary aspects of the detailed description of the present invention that will be described below and do not limit the scope of the present invention.

[0015] De acordo com a presente invenção, existe um efeito de aprimoramento de eficácia de predição através de um método interpredição com o uso de um modelo afim.[0015] According to the present invention, there is an effect of improving prediction efficiency through an interprediction method using an affine model.

[0016] De acordo com a presente invenção, existe um efeito de aprimoramento de eficiência de codificação por meio da derivação de um vetor de origem afim com o uso de um vetor de movimento translacional de um sub-bloco.[0016] According to the present invention, there is a coding efficiency improvement effect by deriving an affine source vector using a translational motion vector of a sub-block.

[0017] De acordo com a presente invenção, existe um efeito de aprimoramento de eficiência de codificação por meio da derivação de um vetor de origem afim por meio da transformação de uma distância entre um bloco vizinho e um bloco atual para uma série de potência de 2.[0017] According to the present invention, there is a coding efficiency improvement effect by deriving an affine source vector by transforming a distance between a neighboring block and a current block to a power-of-2 series.

[0018] Os efeitos que podem ser obtidos a partir da presente invenção não estão limitados aos efeitos mencionados acima, e outros efeitos não mencionados podem ser claramente compreendidos por aqueles versados na técnica a partir da seguinte descrição.[0018] The effects that can be obtained from the present invention are not limited to the effects mentioned above, and other effects not mentioned can be clearly understood by those skilled in the art from the following description.

BREVE DESCRIÇÃO DAS FIGURASBRIEF DESCRIPTION OF THE FIGURES

[0019] A Figura 1 é um diagrama de blocos que mostra um codificador de vídeo de acordo com uma modalidade da presente invenção.[0019] Figure 1 is a block diagram showing a video encoder in accordance with one embodiment of the present invention.

[0020] A Figura 2 é um diagrama de blocos que mostra um decodificador de vídeo de acordo com uma modalidade da presente invenção.[0020] Figure 2 is a block diagram showing a video decoder in accordance with one embodiment of the present invention.

[0021] A Figura 3 é uma vista que mostra uma unidade de árvore de codificação básica de acordo com uma modalidade da presente invenção.[0021] Figure 3 is a view showing a basic coding tree unit in accordance with an embodiment of the present invention.

[0022] A Figura 4 é uma vista que mostra vários tipos de partição de um bloco de codificação.[0022] Figure 4 is a view showing various types of partitioning of a coding block.

[0023] A Figura 5 é uma vista que mostra um padrão de partição de uma unidade de árvore de codificação.[0023] Figure 5 is a view showing a partition pattern of a coding tree unit.

[0024] A Figura 6 é um fluxograma que ilustra um método interpredição de acordo com uma modalidade da presente invenção.[0024] Figure 6 is a flowchart illustrating an interprediction method in accordance with an embodiment of the present invention.

[0025] A Figura 7 é uma vista que mostra um movimento não linear de um objeto.[0025] Figure 7 is a view showing non-linear motion of an object.

[0026] A Figura 8 é um fluxograma que ilustra um método interpredição com base em um movimento afim de acordo com uma modalidade da presente invenção.[0026] Figure 8 is a flowchart illustrating an interprediction method based on an affine motion in accordance with an embodiment of the present invention.

[0027] A Figura 9 é uma vista que mostra um exemplo de vetores de origem afim de cada modelo de movimento afim.[0027] Figure 9 is a view showing an example of affine source vectors for each affine motion model.

[0028] A Figura 10 é uma vista que mostra um exemplo de vetores afins de sub-blocos em um modelo de movimento de 4 parâmetros.[0028] Figure 10 is a view showing an example of sub-block affine vectors in a 4-parameter motion model.

[0029] A Figura 11 é uma vista que mostra um bloco vizinho que pode ser usado para derivar um candidato de fusão.[0029] Figure 11 is a view showing a neighboring block that can be used to derive a fusion candidate.

[0030] A Figura 12 é uma vista que mostra um exemplo de derivação de um vetor de origem afim de um bloco atual com base em um vetor de origem afim de um bloco vizinho afim.[0030] Figure 12 is a view showing an example of deriving an affine source vector of a current block based on an affine source vector of an affine neighboring block.

[0031] A Figura 13 é uma vista que mostra um exemplo de ajuste de um vetor de movimento de um sub-bloco como um vetor de origem afim de um bloco vizinho afim.[0031] Figure 13 is a view showing an example of adjusting a motion vector of a sub-block as an affine source vector of an affine neighboring block.

[0032] As Figuras 14 a 16 são vistas que mostram posições de amostras de referência.[0032] Figures 14 to 16 are views showing positions of reference samples.

[0033] A Figura 17 é uma vista que mostra um exemplo de aplicação de um método de derivação de vetor de fusão afim modificado.[0033] Figure 17 is a view showing an example application of a modified affine fusion vector derivation method.

[0034] A Figura 18 é uma vista que mostra um exemplo de derivação de um vetor de origem afim de um bloco atual com base em um bloco vizinho não-afim.[0034] Figure 18 is a view showing an example of deriving an affine source vector of a current block based on a non-affine neighboring block.

[0035] A Figura 19 é uma vista que mostra um exemplo de substituição de um bloco vizinho por um outro bloco vizinho.[0035] Figure 19 is a view showing an example of replacing a neighboring block with another neighboring block.

[0036] As Figuras 20 e 21 são vistas que mostram o fluxo de um método de predição de compensação de movimento com o uso de uma pluralidade de candidatos de fusão.[0036] Figures 20 and 21 are views showing the flow of a motion compensation prediction method using a plurality of fusion candidates.

[0037] A Figura 22 é um fluxograma que ilustra um método intrapredição de acordo com uma modalidade da presente invenção.[0037] Figure 22 is a flowchart illustrating an intraprediction method in accordance with an embodiment of the present invention.

[0038] A Figura 23 é uma vista que mostra amostras de referência incluídas em cada linha de amostra de referência.[0038] Figure 23 is a view showing reference samples included in each reference sample line.

[0039] A Figura 24 é uma vista que mostra modos intrapredição.[0039] Figure 24 is a view showing intraprediction modes.

[0040] As Figuras 25 e 26 são vistas que mostram um exemplo de um arranjo unidimensional que dispõe amostras de referência em uma linha.[0040] Figures 25 and 26 are views showing an example of a one-dimensional array arranging reference samples in a row.

[0041] A Figura 27 é uma vista que mostra um exemplo de ângulos formados entre modos intrapredição angulares e uma linha reta paralela ao eixo geométrico x.[0041] Figure 27 is a view showing an example of angles formed between angular intraprediction modes and a straight line parallel to the x-axis.

[0042] A Figura 28 é uma vista que mostra uma modalidade de aquisição de amostras de predição quando o bloco atual é um formato não-quadrado.[0042] Figure 28 is a view showing an embodiment of acquiring prediction samples when the current block is a non-square shape.

[0043] A Figura 29 é uma vista que mostra modos intrapredição de ângulo amplo.[0043] Figure 29 is a view showing wide-angle intraprediction modes.

[0044] A Figura 30 é um fluxograma que ilustra um processo de determinação de resistência de bloco.[0044] Figure 30 is a flowchart illustrating a block resistance determination process.

[0045] A Figura 31 é uma vista que mostra candidatos de filtro predefinidos.[0045] Figure 31 is a view showing predefined filter candidates.

[0046] A Figura 32 é uma vista que mostra um exemplo de partição de uma figuração em uma pluralidade de ladrilhos.[0046] Figure 32 is a view showing an example of partitioning a figuration into a plurality of tiles.

[0047] A Figura 33 é uma vista que mostra um padrão de partição de uma figuração de acordo com uma técnica de ladrilho flexível.[0047] Figure 33 is a view showing a pattern of partitioning a figuration according to a flexible tiling technique.

[0048] A Figura 34 é uma vista que mostra um exemplo de atribuição de um ID de ladrilho a cada unidade de árvore de codificação.[0048] Figure 34 is a view showing an example of assigning a tile ID to each coding tree unit.

[0049] A Figura 35 é uma vista que mostra um exemplo de determinação seletiva da aplicação ou não de um filtro em circuito a cada ladrilho.[0049] Figure 35 is a view showing an example of selectively determining whether or not to apply a circuit filter to each tile.

DESCRIÇÃO DETALHADA DA MODALIDADE PREFERENCIALDETAILED DESCRIPTION OF THE PREFERENTIAL MODALITY

[0050] Doravante no presente documento, uma modalidade da presente invenção será descrita em detalhes com referência aos desenhos anexos.[0050] Hereinafter in this document, an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

[0051] A codificação e a decodificação de um vídeo são realizadas pela unidade de bloco. Por exemplo, um processo de codificação/decodificação como transformada, quantização, predição, filtração em circuito, reconstrução ou similares pode ser realizado em um bloco de codificação, um bloco de transformada ou um bloco de predição.[0051] Encoding and decoding of a video are performed by the block unit. For example, an encoding/decoding process such as transform, quantization, prediction, in-loop filtering, reconstruction or the like may be performed in a coding block, a transform block or a prediction block.

[0052] Doravante no presente documento, um bloco a ser codificado/decodificado será referido como ‘bloco atual’. Por exemplo, o bloco atual pode representar um bloco de codificação, um bloco de transformada ou um bloco de predição de acordo com uma etapa de processo de codificação/decodificação atual.[0052] Hereinafter in this document, a block to be encoded/decoded will be referred to as ‘current block’. For example, the current block may represent an encoding block, a transform block or a prediction block according to a current encoding/decoding process step.

[0053] Além disso, pode-se compreender que o termo ‘unidade’ usado neste relatório descritivo indica uma unidade básica para realizar um processo de codificação/decodificação específico, e o termo ‘bloco’ indica um arranjo de amostra de um tamanho predeterminado. Exceto se estabelecido de outro modo, o ‘bloco’ e a ‘unidade’ podem ser usadas como tendo o mesmo significado. Por exemplo, em uma modalidade descrita abaixo, pode-se compreender que um bloco de codificação e uma unidade de codificação têm o mesmo significado.[0053] Furthermore, it can be understood that the term ‘unit’ used in this specification indicates a basic unit for performing a specific encoding/decoding process, and the term ‘block’ indicates a sample array of a predetermined size. Unless otherwise stated, ‘block’ and ‘unit’ can be used as having the same meaning. For example, in an embodiment described below, it can be understood that a coding block and a coding unit have the same meaning.

[0054] A Figura 1 é um diagrama de blocos que mostra um codificador de vídeo de acordo com uma modalidade da presente invenção.[0054] Figure 1 is a block diagram showing a video encoder in accordance with one embodiment of the present invention.

[0055] Referindo-se à Figura 1, um aparelho de codificação de vídeo 100 pode incluir uma parte de partição de figuração 110, uma parte de partição 120 e 125, uma parte de transformada 130, uma parte de quantização 135, uma parte de rearranjo 160, uma parte de codificação de entropia 165, uma parte de quantização inversa 140, uma parte de transformada inversa 145, uma parte de filtro 150 e uma memória 155.[0055] Referring to Figure 1, a video coding apparatus 100 may include a figuring partition part 110, a partition part 120 and 125, a transform part 130, a quantization part 135, a rearrangement part 160, an entropy coding part 165, an inverse quantization part 140, an inverse transform part 145, a filter part 150, and a memory 155.

[0056] Cada um dos componentes mostrados na Figura 1 é independentemente mostrado para representar funções características diferentes entre si em um aparelho de codificação de vídeo, e não significa que cada componente é formado pela unidade de configuração de hardware separado ou hardware simples. Isto é, cada componente é incluído para ser listado como um componente para conveniência de explicação, e pelo menos dois dos componentes podem ser combinados para formar um componente simples, ou um componente pode ser dividido em uma pluralidade de componentes para realizar uma função. As modalidades integradas e as modalidades separadas dos componentes também estão incluídas no escopo da presente invenção, se não se afastarem da essência da presente invenção.[0056] Each of the components shown in Figure 1 is independently shown to represent different characteristic functions from each other in a video encoding apparatus, and it does not mean that each component is formed by the separate hardware configuration unit or simple hardware. That is, each component is included to be listed as a component for convenience of explanation, and at least two of the components can be combined to form a simple component, or a component can be divided into a plurality of components to realize a function. Integrated embodiments and separate embodiments of the components are also included in the scope of the present invention, if they do not depart from the essence of the present invention.

[0057] Além disso, alguns dos componentes não são componentes essenciais que executam funções essenciais na presente invenção, mas podem ser componentes opcionais apenas para melhorar o desempenho. A presente invenção pode ser implantada incluindo apenas componentes essenciais para implantar a essência da presente invenção, excluindo os componentes usados para aprimorar o desempenho, e uma estrutura incluindo apenas os componentes essenciais, excluindo os componentes opcionais usados para aprimorar o desempenho também está incluída no escopo da presente invenção.[0057] Furthermore, some of the components are not essential components that perform essential functions in the present invention, but may be optional components only to improve performance. The present invention may be implemented by including only essential components to implement the essence of the present invention, excluding the components used to improve performance, and a structure including only the essential components, excluding the optional components used to improve performance is also included in the scope of the present invention.

[0058] A parte de partição de figuração 110 pode particionar uma figuração de entrada em pelo menos uma unidade de processamento. Nesse ponto, a unidade de processamento pode ser uma unidade de predição (PU), uma unidade de transformada (TU) ou uma unidade de codificação (CU). A parte de partição de figuração 110 pode particionar uma figuração em uma combinação de uma pluralidade de unidades de codificação, unidades de predição e unidades de transformada, e codificar uma figuração por meio da seleção de uma combinação de um a unidade de codificação, uma unidade de predição e uma unidade de transformada com base em um critério predeterminado (por exemplo, uma função de custo).[0058] The pattern partitioning portion 110 may partition an input pattern into at least one processing unit. At this point, the processing unit may be a prediction unit (PU), a transform unit (TU), or an encoding unit (CU). The pattern partitioning portion 110 may partition a pattern into a combination of a plurality of encoding units, prediction units, and transform units, and encode a pattern by selecting a combination of a coding unit, a prediction unit, and a transform unit based on a predetermined criterion (e.g., a cost function).

[0059] Por exemplo, uma figuração pode ser particionada em uma pluralidade de unidades de codificação. A fim de particionar as unidades de codificação em uma figuração, uma estrutura de árvore recursiva como uma estrutura de árvore quádrupla pode ser usada. Uma unidade de codificação particionada em diferentes unidades de codificação com o uso de um vídeo ou da maior unidade de codificação como uma raiz pode ser particionada para ter tantos nós filhos como o número de unidades de codificação particionadas. Uma unidade de codificação que não é mais particionada de acordo com uma restrição predeterminada se torna um nó folha. Isto é, quando é presumido que apenas partição quadrada é possível para uma unidade de codificação, essa unidade de codificação pode ser particionada em até quatro unidades de codificação diferentes.[0059] For example, a figuration may be partitioned into a plurality of coding units. In order to partition the coding units in a figuration, a recursive tree structure such as a quad tree structure may be used. A coding unit partitioned into different coding units using a video or the largest coding unit as a root may be partitioned to have as many child nodes as the number of partitioned coding units. A coding unit that is no longer partitioned according to a predetermined constraint becomes a leaf node. That is, when it is assumed that only square partitioning is possible for a coding unit, that coding unit may be partitioned into up to four different coding units.

[0060] Doravante no presente documento, em uma modalidade da presente invenção, a unidade de codificação pode ser usada como um significado de uma unidade que realiza codificação ou um significado de uma unidade que realiza decodificação.[0060] Hereinafter in the present document, in one embodiment of the present invention, the coding unit can be used as a meaning of a unit that performs encoding or a meaning of a unit that performs decoding.

[0061] A unidade de predição pode ser uma que é particionada em um formato de pelo menos um quadrado, retângulo ou similares do mesmo tamanho em uma unidade de codificação, ou pode ser qualquer unidade de predição, dentre as unidades de predição particionadas em uma unidade de codificação, que é particionada para ter um formato e/ou tamanho diferente daquele de uma outra unidade de predição.[0061] The prediction unit may be one that is partitioned into a shape of at least one square, rectangle or the like of the same size in a coding unit, or it may be any prediction unit, among the prediction units partitioned in a coding unit, that is partitioned to have a different shape and/or size than that of another prediction unit.

[0062] Se a unidade de codificação não é a menor unidade de codificação quando uma unidade de predição que realiza intrapredição com base na unidade de codificação é gerada, a intrapredição pode ser realizada sem particionar uma figuração em uma pluralidade de unidades de predição N x N.[0062] If the coding unit is not the smallest coding unit when a prediction unit that performs intraprediction based on the coding unit is generated, intraprediction can be performed without partitioning a figuration into a plurality of N x N prediction units.

[0063] A parte de partição 120 e 125 pode incluir uma parte interpartição 120 que realiza interpredição e uma parte intrapartição 125 que realiza intrapredição. Pode ser determinado se usar interpredição ou realizar intrapredição para uma unidade de predição e determinar informações específicas (por exemplo, modo intrapredição, vetor de movimento, figuração de referência, etc.) de acordo com cada método de predição. Nesse ponto, uma unidade de processamento para realizar predição pode ser diferente de uma unidade de processamento para determinar um método de predição e conteúdo específico. Por exemplo, um método de predição e um modo de predição podem ser determinados em uma unidade de predição, e a predição pode ser realizada em uma unidade de transformada. Um coeficiente residual (bloco residual) entre o bloco de predição gerado e o bloco original pode ser inserido na parte de transformada 130. Além disso, informações de modo de predição, informações de vetor de movimento e similares usadas para predição podem ser codificadas pela parte de codificação de entropia 165 em conjunto com o coeficiente residual e transferidas para um decodificador. Quando é usado um modo de codificação específico, um bloco original pode ser codificado conforme é transmitido para um decodificador sem gerar um bloco de predição através da parte de partição 120 e 125.[0063] The partition part 120 and 125 may include an inter-partition part 120 that performs inter-prediction and an intra-partition part 125 that performs intra-prediction. It may be determined whether to use inter-prediction or perform intra-prediction for a prediction unit, and determine specific information (e.g., intra-prediction mode, motion vector, reference figure, etc.) according to each prediction method. At this point, a processing unit for performing prediction may be different from a processing unit for determining a prediction method and specific content. For example, a prediction method and a prediction mode may be determined in a prediction unit, and prediction may be performed in a transform unit. A residual coefficient (residual block) between the generated prediction block and the original block may be input to the transform part 130. Furthermore, prediction mode information, motion vector information, and the like used for prediction may be encoded by the entropy coding part 165 together with the residual coefficient and passed to a decoder. When a specific coding mode is used, an original block may be encoded as it is transmitted to a decoder without generating a prediction block through the partition part 120 and 125.

[0064] A parte interpartição 120 pode predizer uma unidade de predição com base em informações em pelo menos uma figuração dentre figurações antes ou após a figuração atual e, em alguns casos, pode predizer uma unidade de predição com base em informações em uma área parcial que foi codificada na figuração atual. A parte interpartição 120 pode incluir uma parte de interpolação de figuração de referência, uma parte de partição de movimento e uma parte de compensação de movimento.[0064] The inter-partition portion 120 may predict a prediction unit based on information in at least one picture among pictures before or after the current picture, and in some cases may predict a prediction unit based on information in a partial area that has been encoded in the current picture. The inter-partition portion 120 may include a reference picture interpolation portion, a motion partition portion, and a motion compensation portion.

[0065] A parte de interpolação de figuração de referência pode receber informações de figuração de referência da memória 155 e gerar informações de pixel de um número inteiro de pixels ou menos da figuração de referência. No caso de um pixel de luminância, um filtro de interpolação de 8 toques baseado em DCT com um coeficiente de filtro variável pode ser usado para gerar informações de pixel de um número inteiro de pixels ou menos pela unidade de 1/4 pixel. No caso de um sinal de diferença de cor, um filtro de interpolação de 4 toques baseado em DCT com um coeficiente de filtro variável pode ser usado para gerar informações de pixel de um número inteiro de pixels ou menos pela unidade de 1/8 pixel.[0065] The reference picture interpolation part may receive reference picture information from memory 155 and generate pixel information of an integer number of pixels or less of the reference picture. In the case of a luminance pixel, a DCT-based 8-tap interpolation filter with a variable filter coefficient may be used to generate pixel information of an integer number of pixels or less by the unit of 1/4 pixel. In the case of a color difference signal, a DCT-based 4-tap interpolation filter with a variable filter coefficient may be used to generate pixel information of an integer number of pixels or less by the unit of 1/8 pixel.

[0066] A parte de partição de movimento pode realizar predição de movimento com base na figuração de referência interpolada pela parte de interpolação de figuração de referência. Vários métodos, como um algoritmo de correspondência de bloco baseado em pesquisa completa (FBMA), uma pesquisa em três etapas (TSS) e um novo algoritmo de pesquisa em três etapas (NTS), podem ser usados como um método de cálculo de um vetor de movimento. O vetor de movimento pode ter um vetor de movimento valor de uma unidade de 1/2 ou 1/4 pixel com base em pixels interpolados. A parte de partição de movimento pode predizer uma unidade de predição atual por meio da variação do método de predição de movimento. Vários métodos, como um método de salto, um método de fusão, um método de predição de vetor de movimento avançado (AMVP), um método de cópia intrabloco e similares, podem ser usados como o método de predição de movimento.[0066] The motion partitioning part may perform motion prediction based on the reference picture interpolated by the reference picture interpolation part. Various methods, such as a full search-based block matching algorithm (FBMA), a three-step search (TSS), and a novel three-step search (NTS) algorithm, may be used as a method of calculating a motion vector. The motion vector may have a motion vector value of a 1/2 or 1/4 pixel unit based on interpolated pixels. The motion partitioning part may predict a current prediction unit by varying the motion prediction method. Various methods, such as a skip method, a fusion method, an advanced motion vector prediction (AMVP) method, an intra-block copy method, and the like, may be used as the motion prediction method.

[0067] A parte intrapartição 125 pode gerar uma unidade de predição com base nas informações acerca de pixels de referência ao redor do bloco atual, que são informações de pixel na figuração atual. Quando um bloco na vizinhança da unidade de predição atual é um bloco no qual foi realizada interpredição e, dessa forma, o pixel de referência é um pixel no qual foi realizada interpredição, o pixel de referência incluído no bloco no qual foi realizada interpredição pode ser usado no lugar de informações de pixel de referência de um bloco na vizinhança no qual foi realizada intrapredição. Isto é, quando a pixel de referência está indisponível, pelo menos um pixel de referência dentre pixels de referência disponíveis pode ser usado no lugar de informações de pixel de referência indisponíveis.[0067] The intra-partition portion 125 may generate a prediction unit based on information about reference pixels around the current block, which are pixel information in the current figure. When a block in the neighborhood of the current prediction unit is a block on which interprediction has been performed, and thus the reference pixel is a pixel on which interprediction has been performed, the reference pixel included in the block on which interprediction has been performed may be used in place of reference pixel information of a block in the neighborhood on which intraprediction has been performed. That is, when the reference pixel is unavailable, at least one reference pixel among available reference pixels may be used in place of unavailable reference pixel information.

[0068] Na intrapredição, o modo de predição pode ter um modo de predição angular que usa informações de pixel de referência de acordo com uma direção de predição, e um modo de predição não-angular que não usa informações direcionais durante a realização de predição. Um modo para predizer informações de luminância pode ser diferente de um modo para predizer informações de diferença de cor, e informações de modo intrapredição usadas para predizer informações de luminância ou informações de sinal de luminância preditas podem ser usadas para predizer as informações de diferença de cores.[0068] In intraprediction, the prediction mode may have an angular prediction mode that uses reference pixel information according to a prediction direction, and a non-angular prediction mode that does not use directional information when performing prediction. A mode for predicting luminance information may be different from a mode for predicting color difference information, and intraprediction mode information used to predict luminance information or predicted luminance signal information may be used to predict color difference information.

[0069] Se o tamanho da unidade de predição for o mesmo que o tamanho da unidade de transformada quando a intrapredição é realizada, a intrapredição pode ser realizada para a unidade de predição com base em um pixel no lado esquerdo, um pixel no lado superior esquerdo e um pixel na parte superior da unidade de previsão. No entanto, se o tamanho da unidade de predição for diferente do tamanho da unidade de transformada quando a intrapredição é realizada, a intrapredição pode ser realizada com uso de um pixel de referência com base na unidade de transformada. Além disso, intrapredição com o uso de N x N partição pode ser usada apenas para a menor unidade de codificação.[0069] If the size of the prediction unit is the same as the size of the transform unit when intra-prediction is performed, intra-prediction can be performed for the prediction unit based on a pixel on the left side, a pixel on the top left side, and a pixel on the top of the prediction unit. However, if the size of the prediction unit is different from the size of the transform unit when intra-prediction is performed, intra-prediction can be performed using a reference pixel based on the transform unit. Furthermore, intra-prediction using N x N partition can be used only for the smallest coding unit.

[0070] O método intrapredição pode gerar um blocode predição após aplicar um filtro de Adaptive Intra Smoothing (AIS) ao pixel de referência de acordo com um modo de predição. O tipo de filtro AIS aplicado ao pixel de referência pode variar. A fim de realizar o método intrapredição, o modo intrapredição da unidade de predição atual pode ser predito do modo intrapredição da unidade de predição existente na vizinhança da unidade de predição atual. Quando um modo de predição da unidade de predição atual é predito com o uso das informações de modo preditas da unidade de predição vizinha, se os modos intrapredição da unidade de predição atual são iguais à unidade de predição na vizinhança, informações que indicam que os modos de predição da unidade de predição atual é igual à unidade de predição na vizinhança podem ser transmitidas com o uso de informações de marcação predeterminadas, e se os modos de predição da unidade de predição atual e da unidade de predição na vizinhança são diferentes entre si, informações de modo de predição do bloco atual podem ser codificadas por meio da realização de codificação de entropia.[0070] The intra-prediction method may generate a prediction block after applying an Adaptive Intra Smoothing (AIS) filter to the reference pixel according to a prediction mode. The type of AIS filter applied to the reference pixel may vary. In order to perform the intra-prediction method, the intra-prediction mode of the current prediction unit may be predicted from the intra-prediction mode of the existing prediction unit in the neighborhood of the current prediction unit. When a prediction mode of the current prediction unit is predicted using the predicted mode information of the neighboring prediction unit, if the intra-prediction modes of the current prediction unit are the same as the prediction unit in the neighborhood, information indicating that the prediction modes of the current prediction unit are the same as the prediction unit in the neighborhood may be transmitted using predetermined marking information, and if the prediction modes of the current prediction unit and the prediction unit in the neighborhood are different from each other, prediction mode information of the current block may be encoded by performing entropy coding.

[0071] Além disso, pode ser gerado um bloco residual que inclui uma unidade de predição que realizou predição com base na unidade de predição gerada pela parte departição 120 e 125 e informações de coeficiente residual, queé um valor de diferença da unidade de predição com o bloco original. O bloco residual gerado pode ser inserido na parte de transformada 130.[0071] Furthermore, a residual block may be generated that includes a prediction unit that performed prediction based on the prediction unit generated by the partition part 120 and 125 and residual coefficient information, which is a difference value of the prediction unit with the original block. The generated residual block may be input to the transform part 130.

[0072] A parte de transformada 130 podetransformar o bloco residual que inclui o bloco original e as informações de coeficiente residual da unidade de predição geradas através da parte de partição 120 e 125 com o uso de um método de transformada como Transformada Discreta de Cosseno (DCT), Transformada Discreta de Seno (DST), ou salto de transformada. A aplicação de DCT, DST ou KLT para transformaro bloco residual pode ser determinada com base nas informaçõesdo modo intrapredição de uma unidade de predição usada para gerar o bloco residual.[0072] The transform part 130 may transform the residual block that includes the original block and the residual coefficient information of the prediction unit generated through the partition part 120 and 125 using a transform method such as Discrete Cosine Transform (DCT), Discrete Sine Transform (DST), or jump transform. The application of DCT, DST, or KLT to transform the residual block may be determined based on the intra-prediction mode information of a prediction unit used to generate the residual block.

[0073] A parte de quantização 135 pode quantizarvalores transformados no domínio de frequência pela parte de transformada 130. Os coeficientes de quantização podem variar de acordo com o bloco ou a importância de um vídeo. Um valor calculado pela parte de quantização 135 pode ser fornecido para a parte de quantização inversa 140 e a parte de rearranjo 160.[0073] Quantization part 135 may quantize values transformed into the frequency domain by transform part 130. Quantization coefficients may vary depending on the block or importance of a video. A value calculated by quantization part 135 may be provided to inverse quantization part 140 and rearrangement part 160.

[0074] A parte de rearranjo 160 pode rearranjarvalores de coeficiente para os coeficientes residuais quantificados.[0074] The rearrangement part 160 may rearrange coefficient values for the quantized residual coefficients.

[0075] A parte de rearranjo 160 pode mudarcoeficientes de um formato de bloco bidimensional em um formato de vetor unidimensional através de um método de varredura de coeficiente. Por exemplo, a parte de rearranjo 160 pode varrer coeficientes de DC até coeficientes de domínio de alta frequência com o uso de um método de varredura em zigue-zague, e mudar os coeficientes em um formato de vetor unidimensional. De acordo com o tamanho da unidade de transformada e o modo intrapredição, uma varredura vertical de varredura dos coeficientes de um formato de bloco bidimensional na direção de coluna e uma varredura horizontal de varredura dos coeficientes de um formato de bloco bidimensional na direção de fileira podem ser usadas em vez da varredura em zigue-zague. Isto é, de acordo com o tamanho da unidade de transformada e o modo intrapredição, um método de varredura que será usado pode ser determinado dentre a varredura em zigue-zague, a varredura de direção vertical e a varredura de direção horizontal.[0075] The rearrangement part 160 may change coefficients of a two-dimensional block format into a one-dimensional vector format through a coefficient scanning method. For example, the rearrangement part 160 may scan coefficients from DC to high-frequency domain coefficients using a zigzag scanning method, and change the coefficients into a one-dimensional vector format. According to the size of the transform unit and the intra-prediction mode, a vertical sweep of scanning the coefficients of a two-dimensional block format in the column direction and a horizontal sweep of scanning the coefficients of a two-dimensional block format in the row direction may be used instead of the zigzag scanning. That is, according to the size of the transform unit and the intra-prediction mode, a scanning method to be used may be determined from among the zigzag scanning, the vertical direction scanning, and the horizontal direction scanning.

[0076] A parte de codificação de entropia 165 pode realizar codificação de entropia com base em valores calculados pela parte de rearranjo 160. A codificação de entropia pode usar vários métodos de codificação como Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), Context- Adaptive Binary Arithmetic Coding (CABAC) e similares.[0076] The entropy coding part 165 may perform entropy coding based on values calculated by the rearrangement part 160. The entropy coding may use various coding methods such as Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), Context-Adaptive Binary Arithmetic Coding (CABAC), and the like.

[0077] A parte de codificação de entropia 165 pode codificar várias informações como informações de coeficiente residual e informações de tipo de bloco de uma unidade de codificação, informações de modo de predição, informações de unidade de partição, informações de unidade de predição e informações de unidade de transmissão, informações de vetor de movimento, informações de quadro de referência, informações de interpolação de bloco e informações de filtração inseridas da parte de rearranjo 160 e das partes de predição 120 e 125.[0077] The entropy coding part 165 may encode various information such as residual coefficient information and block type information of a coding unit, prediction mode information, partition unit information, prediction unit information and transmission unit information, motion vector information, reference frame information, block interpolation information and filtering information input from the rearrangement part 160 and the prediction parts 120 and 125.

[0078] A parte de codificação de entropia 165 pode codificar por entropia o valor de coeficiente de uma unidade de codificação inserida da parte de rearranjo 160.[0078] The entropy coding part 165 may entropy encode the coefficient value of an input coding unit of the rearrangement part 160.

[0079] A parte de quantização inversa 140 e aparte de transformada inversa 145 quantificam inversamente os valores quantificados pela parte de quantização 135 e transformam inversamente os valores transformados pela parte de transformada 130. O coeficiente residual gerado pela parte de quantização inversa 140 e pela parte de transformada inversa 145 pode ser combinado com a unidade de predição predita através de uma parte de estimativa de movimento, uma parte de compensação de movimento e uma parte intrapartição incluída na parte de partição 120 e 125 para gerar um bloco reconstruído.[0079] The inverse quantization part 140 and inverse transform part 145 inversely quantize the values quantized by the quantization part 135 and inversely transform the values transformed by the transform part 130. The residual coefficient generated by the inverse quantization part 140 and the inverse transform part 145 may be combined with the prediction unit predicted by a motion estimation part, a motion compensation part, and an intra-partition part included in the partition part 120 and 125 to generate a reconstructed block.

[0080] A parte de filtro 150 pode incluir pelomenos um dentre um filtro de desbloqueio, uma unidade de correção de deslocamento e um filtro de circuito adaptativo (ALF).[0080] The filter portion 150 may include at least one of a deblocking filter, an offset correction unit, and an adaptive loop filter (ALF).

[0081] O filtro de desbloqueio pode removerdistorção de bloco gerada pela delimitação entre blocos na figuração reconstruída. A fim de determinar a realização ou não do desbloqueio, a aplicação ou não do filtro de desbloqueio ao bloco atual pode ser determinado com base nos pixels incluídos em diversas colunas ou fileiras incluídas no bloco. Um filtro forte ou um filtro fraco pode ser aplicado de acordo com a força de filtração de desbloqueio necessária quando o filtro de desbloqueio é aplicado a um bloco. Além disso, quando são realizadas a filtração na direção vertical e a filtração na direção horizontal na aplicação do filtro de desbloqueio, a filtração na direção horizontal e a filtração na direção vertical podem ser processadas em paralelo.[0081] The deblocking filter can remove block distortion generated by the boundary between blocks in the reconstructed figure. In order to determine whether or not to perform deblocking, whether or not to apply the deblocking filter to the current block can be determined based on the pixels included in several columns or rows included in the block. A strong filter or a weak filter can be applied according to the required deblocking filtration strength when the deblocking filter is applied to a block. Furthermore, when both vertical direction filtration and horizontal direction filtration are performed when applying the deblocking filter, the horizontal direction filtration and vertical direction filtration can be processed in parallel.

[0082] A unidade de correção de deslocamento pode corrigir um deslocamento para o vídeo original pela unidade de pixel para um vídeo no qual o desbloqueio foi realizado. A fim de realizar correção de deslocamento para uma figuração específica, é possível usar um método de divisão de pixels incluídos no vídeo em um determinado número de áreas, de determinação de uma área para realizar deslocamento e de aplicação do deslocamento para a área, ou um método de aplicação de um deslocamento que considera informações de borda de cada pixel.[0082] The displacement correction unit may correct a displacement for the original video by the pixel unit for a video on which deblocking has been performed. In order to perform displacement correction for a specific figuration, it is possible to use a method of dividing pixels included in the video into a certain number of areas, determining an area to perform displacement, and applying the displacement to the area, or a method of applying a displacement that considers edge information of each pixel.

[0083] A Filtração de Loop Adaptativo (ALF) pode ser realizada com base em um valor obtido por meio da comparação do vídeo reconstruído e filtrado e do vídeo original. Após a divisão dos pixels incluídos no vídeo em grupos predeterminados, um filtro a ser aplicado a um grupo correspondente pode ser determinado, e a filtração pode ser realizada de maneira diferente para cada grupo. Um sinal de luminância, que é a informação relacionada à aplicação ou não de ALF, pode ser transmitido para cada unidade de codificação (CU), e a forma e o coeficiente de filtro de um filtro ALF a ser aplicado podem variar de acordo com cada bloco. Além disso, um filtro ALF do mesmo tipo (tipo fixo) pode ser aplicado independentemente da característica do bloco a ser aplicado.[0083] Adaptive Loop Filtering (ALF) can be performed based on a value obtained by comparing the reconstructed and filtered video and the original video. After dividing the pixels included in the video into predetermined groups, a filter to be applied to a corresponding group can be determined, and the filtering can be performed differently for each group. A luminance signal, which is the information related to whether or not ALF is applied, can be output to each coding unit (CU), and the shape and filter coefficient of an ALF filter to be applied can vary according to each block. In addition, an ALF filter of the same type (fixed type) can be applied regardless of the characteristic of the block to be applied.

[0084] A memória 155 pode armazenar o bloco ou figuração reconstruída calculada através da parte de filtro 150, o bloco ou figuração reconstruída e armazenada pode ser fornecida para a parte de partição 120 e 125 quando for realizada interpredição.[0084] The memory 155 may store the reconstructed block or pattern calculated by the filter part 150, the reconstructed and stored block or pattern may be provided to the partition part 120 and 125 when interprediction is performed.

[0085] A Figura 2 é um diagrama de blocos que mostra um decodificador de vídeo de acordo com uma modalidade da presente invenção.[0085] Figure 2 is a block diagram showing a video decoder in accordance with one embodiment of the present invention.

[0086] Referindo-se à Figura 2, um decodificador de vídeo 200 pode incluir uma parte de decodificação de entropia 210, uma parte de rearranjo 215, uma parte de quantização inversa 220, uma parte de transformada inversa 225, uma parte de partição 230 e 235, uma parte de filtro 240 e uma memória 245.[0086] Referring to Figure 2, a video decoder 200 may include an entropy decoding part 210, a rearrangement part 215, an inverse quantization part 220, an inverse transform part 225, a partition part 230 and 235, a filter part 240, and a memory 245.

[0087] Quando uma corrente de bits de vídeo é inserida de um codificador de vídeo, a corrente de bits inserida pode ser decodificada em um procedimento oposto àquele do codificador de vídeo.[0087] When a video bitstream is input from a video encoder, the input bitstream may be decoded in a procedure opposite to that of the video encoder.

[0088] A parte de decodificação de entropia 210 pode realizar decodificação de entropia em um procedimento oposto àquele da realização de codificação de entropia na parte de decodificação de entropia do codificador de vídeo. Por exemplo, vários métodos que correspondem ao método realizado pelo codificador de vídeo, como Exponential Golomb, Context- Adaptive Variable Length Coding (CAVLC) e Context-Adaptive Binary Arithmetic Coding (CABAC), podem ser aplicados.[0088] The entropy decoding part 210 may perform entropy decoding in a procedure opposite to that of performing entropy coding in the entropy decoding part of the video encoder. For example, various methods that correspond to the method performed by the video encoder, such as Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC), may be applied.

[0089] A parte de decodificação de entropia 210 pode decodificar informações relacionadas à intrapredição e à interpredição realizadas pelo codificador.[0089] The entropy decoding part 210 may decode information related to the intraprediction and interprediction performed by the encoder.

[0090] A parte de rearranjo 215 pode realizar o rearranjo na corrente de bits decodificada por entropia pela parte de decodificação de entropia 210 com base no método de rearranjo realizado pelo codificador. Os coeficientes expressos em uma forma de vetor unidimensional podem ser reconstruídos e rearranjados como coeficientes de forma de bloco bidimensional. A parte de rearranjo 215 pode receber informações relacionadas à varredura de coeficiente realizada pela parte de codificação e realizar a reconstrução por meio de um método de varredura inversa com base na ordem de varredura realizada pela parte de codificação correspondente.[0090] The rearrangement part 215 may perform rearrangement on the bit stream decoded by entropy by the entropy decoding part 210 based on the rearrangement method performed by the encoder. The coefficients expressed in a one-dimensional vector form may be reconstructed and rearranged as two-dimensional block form coefficients. The rearrangement part 215 may receive information related to the coefficient scan performed by the coding part and perform reconstruction by a backward scan method based on the scan order performed by the corresponding coding part.

[0091] A parte de quantização inversa 220 pode realizar quantização inversa com base em um parâmetro de quantização fornecido pelo codificador e um valor de coeficiente do bloco rearranjado.[0091] The inverse quantization part 220 may perform inverse quantization based on a quantization parameter provided by the encoder and a coefficient value of the rearranged block.

[0092] A parte de transformada inversa 225 pode realizar transformada inversa, isto é, DCT inversa, DST inversa ou KLT inversa, para a transformada, isto é, DCT, DST ou KLT, realizada pela parte de transformada no resultado da quantização realizada pelo codificador de vídeo. A transformada inversa pode ser realizada com base em uma unidade de transmissão determinada pelo codificador de vídeo. A parte de transformada inversa 225 do decodificador de vídeo pode seletivamente realizar uma técnica de transformada (por exemplo, DCT, DST, KLT) de acordo com uma pluralidade de partes de informações como um método de predição, um tamanho de um bloco atual, uma direção de predição e similares.[0092] The inverse transform part 225 may perform inverse transform, i.e., inverse DCT, inverse DST, or inverse KLT, to the transform, i.e., DCT, DST, or KLT, performed by the transform part on the quantization result performed by the video encoder. The inverse transform may be performed based on a transmission unit determined by the video encoder. The inverse transform part 225 of the video decoder may selectively perform a transform technique (e.g., DCT, DST, KLT) according to a plurality of pieces of information such as a prediction method, a size of a current block, a prediction direction, and the like.

[0093] A parte de partição 230 e 235 pode gerar um bloco de predição com base em informações relacionadas à geração de um bloco de predição fornecido pelo decodificador de entropia 210 e informações acerca de um bloco ou figuração anteriormente decodificada fornecida pela memória 245.[0093] The partition portion 230 and 235 may generate a prediction block based on information related to the generation of a prediction block provided by the entropy decoder 210 and information about a previously decoded block or pattern provided by the memory 245.

[0094] Conforme descrito acima, se o tamanho da unidade de predição e o tamanho da unidade de transformada são iguais quando é realizada intrapredição da mesma maneira que a operação do codificador de vídeo, intrapredição é realizada na unidade de predição com base no pixel existente no lado esquerdo, no pixel no lado esquerdo superior e no pixel no topo da unidade de predição. Contudo, se o tamanho da unidade de predição e o tamanho da unidade de transformada são diferentes quando é realizada intrapredição, a intrapredição pode ser realizada com o uso de um pixel de referência com base em uma unidade de transformada. Além disso, intrapredição com o uso de N x N partição pode ser usada apenas para a menor unidade de codificação.[0094] As described above, if the size of the prediction unit and the size of the transform unit are the same when intra-prediction is performed in the same manner as the video encoder operation, intra-prediction is performed on the prediction unit based on the pixel on the left side, the pixel on the top left side, and the pixel on the top of the prediction unit. However, if the size of the prediction unit and the size of the transform unit are different when intra-prediction is performed, intra-prediction can be performed using a reference pixel based on a transform unit. Furthermore, intra-prediction using N x N partition can be used only for the smallest coding unit.

[0095] A parte de partição 230 e 235 pode incluir uma parte de determinação de unidade de predição, uma parte interpartição e uma parte intrapartição. A parte de determinação de unidade de predição pode receber várias informações como informações de unidade de predição inseridas da parte de decodificação de entropia 210, informações de modo de predição do método intrapredição, informações relacionadas à predição de movimento de um método interpredição, e similares, identificar a unidade de predição da unidade de codificação atual, e determinar se a unidade de predição realiza interpredição ou intrapredição. A parte interpartição 230 pode realizar interpredição na unidade de predição atual com base em informações incluídas em pelo menos uma figuração dentre figurações antes ou após a figuração atual que inclui a unidade de predição atual por meio do uso de informações necessárias para interpredição da unidade de predição atual fornecidas pelo codificador de vídeo. Alternativamente, a parte interpartição 230 pode realizar interpredição com base em informações em uma área parcial anteriormente reconstruída na figuração atual incluindo a unidade de predição atual.[0095] The partitioning part 230 and 235 may include a prediction unit determination part, an inter-partition part, and an intra-partition part. The prediction unit determination part may receive various information such as prediction unit information input from the entropy decoding part 210, prediction mode information from the intra-prediction method, information related to motion prediction from an inter-prediction method, and the like, identify the prediction unit of the current coding unit, and determine whether the prediction unit performs inter-prediction or intra-prediction. The inter-partition part 230 may perform inter-prediction on the current prediction unit based on information included in at least one picture among pictures before or after the current picture that includes the current prediction unit by using information necessary for inter-prediction of the current prediction unit provided by the video encoder. Alternatively, the inter-partition portion 230 may perform inter-prediction based on information in a previously reconstructed partial area in the current picture including the current prediction unit.

[0096] A fim de realizar interpredição, pode ser determinado, com base na unidade de codificação, se o método de predição de movimento da unidade de predição incluída em uma unidade de codificação correspondente é um modo de salto, um modo de fusão, um modo de predição de vetor de movimento (modo AMVP) ou um modo de cópia intrabloco.[0096] In order to perform interprediction, it may be determined, based on the coding unit, whether the motion prediction method of the prediction unit included in a corresponding coding unit is a hopping mode, a merging mode, a motion vector prediction mode (AMVP mode), or an intrablock copy mode.

[0097] A parte intrapartição 235 pode gerar um bloco de predição com base nas informações acerca do pixel na figuração atual. Quando a unidade de predição é uma unidade de predição que realizou intrapredição, a intrapredição pode ser realizada com base em informações de modo intrapredição da unidade de predição fornecidas pelo codificador de vídeo. A parte intrapartição 235 pode incluir um filtro Adaptive Intra Smoothing (AIS), uma parte de interpolação de pixel de referência e um filtro CC. O filtro AIS é uma parte que realiza a filtragem no pixel de referência do bloco atual e pode determinar se deve ou não aplicar o filtro de acordo com o modo de previsão da unidade de previsão atual e aplicar o filtro. A filtração AIS pode ser realizada no pixel de referência do bloco atual com o uso do modo de previsão e das informações de filtro AIS da unidade de previsão fornecidas pelo codificador de vídeo. Quando o modo de predição do bloco atual é um modo que não realiza filtração AIS, o filtro AIS pode não ser aplicado.[0097] The intra-partition portion 235 may generate a prediction block based on information about the pixel in the current picture. When the prediction unit is a prediction unit that has performed intra-prediction, the intra-prediction may be performed based on intra-prediction mode information of the prediction unit provided by the video encoder. The intra-partition portion 235 may include an Adaptive Intra Smoothing (AIS) filter, a reference pixel interpolation portion, and a CC filter. The AIS filter is a portion that performs filtering on the reference pixel of the current block and may determine whether or not to apply the filter according to the prediction mode of the current prediction unit and apply the filter. AIS filtering may be performed on the reference pixel of the current block using the prediction mode and AIS filter information of the prediction unit provided by the video encoder. When the prediction mode of the current block is a mode that does not perform AIS filtering, the AIS filter may not be applied.

[0098] Quando o modo de predição da unidade de predição é uma unidade de predição que realiza intrapredição com base em um valor de pixel obtido por meio da interpolação do pixel de referência, a parte de interpolação de pixel de referência pode gerar um pixel de referência de uma unidade de pixel que tem um valor de número inteiro ou menos por meio da interpolação do pixel de referência. Quando o modo de predição da unidade de predição atual é um modo de predição que gera um bloco de predição sem interpolação do pixel de referência, o pixel de referência pode não ser interpolado. O filtro CC pode gerar um bloco de predição através da filtração quando o modo de predição do bloco atual é o modo DC.[0098] When the prediction mode of the prediction unit is a prediction unit that performs intra-prediction based on a pixel value obtained by interpolating the reference pixel, the reference pixel interpolation part may generate a reference pixel of a pixel unit that has an integer value or less by interpolating the reference pixel. When the prediction mode of the current prediction unit is a prediction mode that generates a prediction block without interpolating the reference pixel, the reference pixel may not be interpolated. The CC filter may generate a prediction block by filtering when the prediction mode of the current block is the DC mode.

[0099] O bloco ou figuração reconstruída pode ser fornecida para a parte de filtro 240. A parte de filtro 240 pode incluir um filtro de desbloqueio, uma unidade de correção de deslocamento e um ALF.[0099] The reconstructed block or figuration may be provided to the filter portion 240. The filter portion 240 may include a deblocking filter, an offset correction unit, and an ALF.

[00100] Informações se um filtro de desbloqueio é ou não aplicado a um bloco ou figuração correspondente e informações se um filtro forte ou um filtro fraco é ou não aplicado quando um filtro de desbloqueio é aplicado podem ser fornecidas pelo codificador de vídeo. O filtro de desbloqueio do decodificador de vídeo pode ser dotado de informações relacionadas ao filtro de desbloqueio fornecidas pelo codificador de vídeo, e o decodificador de vídeo pode realizar filtração de desbloqueio em um bloco correspondente.[00100] Information whether or not a deblocking filter is applied to a corresponding block or figure and information whether or not a strong filter or a weak filter is applied when a deblocking filter is applied may be provided by the video encoder. The deblocking filter of the video decoder may be provided with deblocking filter-related information provided by the video encoder, and the video decoder may perform deblocking filtering on a corresponding block.

[00101] A unidade de correção de deslocamento pode realizar correção de deslocamento no vídeo reconstruído com base no tipo de correção de deslocamento e informações de valor de deslocamento aplicados ao vídeo quando a codificação é realizada.[00101] The offset correction unit may perform offset correction on the reconstructed video based on the offset correction type and offset value information applied to the video when encoding is performed.

[00102] A ALF pode ser aplicada a uma unidade de codificação com base em informações sobre a aplicação ou não da ALF e informações acerca de coeficientes de ALF fornecidas pelo codificador. As informações de ALF podem ser fornecidas para serem incluídas em um conjunto específico de parâmetros.[00102] ALF may be applied to a coding unit based on information about whether or not ALF is applied and information about ALF coefficients provided by the encoder. The ALF information may be provided to be included in a specific set of parameters.

[00103] A memória 245 pode armazenar a figuração ou bloco reconstruído e usar como uma figuração de referência ou um bloco de referência e pode fornecer a figuração reconstruída para uma unidade de saída.[00103] Memory 245 may store the reconstructed picture or block and use it as a reference picture or reference block and may provide the reconstructed picture to an output unit.

[00104] A Figura 3 é uma vista que mostra uma unidade de árvore de codificação básica de acordo com uma modalidade da presente invenção.[00104] Figure 3 is a view showing a basic coding tree unit in accordance with an embodiment of the present invention.

[00105] Um bloco de codificação de um tamanho máximo pode ser definido como um bloco de árvore de codificação. Uma figuração é particionada em uma pluralidade de unidades de árvore de codificação (CTUs). A unidade de árvore de codificação é uma unidade de codificação que tem um tamanho máximo e pode ser referida como uma Grande Unidade de Codificação (LCU). A Figura 3 mostra um exemplo no qual uma figuração é particionada em uma pluralidade de unidades de árvore de codificação.[00105] A coding block of a maximum size may be defined as a coding tree block. A figuration is partitioned into a plurality of coding tree units (CTUs). The coding tree unit is a coding unit that has a maximum size and may be referred to as a Large Coding Unit (LCU). Figure 3 shows an example in which a figuration is partitioned into a plurality of coding tree units.

[00106] O tamanho da unidade de árvore de codificação pode ser definido a um nível de figuração ou um nível de sequência. Para essa finalidade, informações indicando o tamanho da unidade de árvore de codificação podem ser sinalizadas através de um conjunto de parâmetros de figuração ou um conjunto de parâmetros de sequência.[00106] The size of the coding tree unit may be set at a figuration level or a sequence level. For this purpose, information indicating the size of the coding tree unit may be signaled via a set of figuration parameters or a set of sequence parameters.

[00107] Por exemplo, o tamanho da unidade de árvore de codificação para toda a figuração em uma sequência pode ser ajustado para 128 x 128. Alternativamente, no nível de figuração, qualquer um dentre 128 x 128 e 256 x 256 pode ser determinado como o tamanho da unidade de árvore de codificação. Por exemplo, o tamanho da unidade de árvore de codificação pode ser ajustado para 128 x 128 em uma primeira figuração, e o tamanho da unidade de árvore de codificação pode ser ajustado para 256 x 256 em uma segunda figuração.[00107] For example, the coding tree unit size for all the drawing in a sequence may be set to 128 x 128. Alternatively, at the drawing level, any of 128 x 128 and 256 x 256 may be determined as the coding tree unit size. For example, the coding tree unit size may be set to 128 x 128 in a first drawing, and the coding tree unit size may be set to 256 x 256 in a second drawing.

[00108] Blocos de codificação podem ser gerados por meio da partição de uma unidade de árvore de codificação. O bloco de codificação indica uma unidade básica para realizar codificação/decodificação. Por exemplo, a predição ou transformada pode ser realizada para cada bloco de codificação, ou um modo de codificação de predição pode ser determinado para cada bloco de codificação. Aqui, o modo de codificação de predição indica um método de geração de um vídeo de predição. Por exemplo, o modo de codificação de predição pode incluir predição em uma tela (intrapredição), predição entre telas (interpredição), referência de figuração atual (CPR) ou cópia intrabloco (IBC), ou predição combinada. Para o bloco de codificação, um bloco de predição pode ser gerado por meio do uso de pelo menos um modo de codificação de predição dentre a intrapredição, a interpredição, a referência de figuração atual e a predição combinada.[00108] Coding blocks may be generated by partitioning a coding tree unit. The coding block denotes a basic unit for performing encoding/decoding. For example, prediction or transform may be performed for each coding block, or a prediction coding mode may be determined for each coding block. Here, the prediction coding mode denotes a method of generating a prediction video. For example, the prediction coding mode may include prediction within a screen (intra-prediction), prediction between screens (inter-prediction), current picture reference (CPR) or intra-block copy (IBC), or combined prediction. For the coding block, a prediction block may be generated by using at least one prediction coding mode among intra-prediction, inter-prediction, current picture reference, and combined prediction.

[00109] Informações que indicam o modo de codificação de predição do bloco atual podem ser sinalizadas através de uma corrente de bits. Por exemplo, as informações podem ser uma marcação de 1 bit indicando se o modo de codificação de predição é um modo intra ou um modo inter. Apenas quando o modo de codificação de predição do bloco atual é determinado como o modo inter, a referência de figuração atual ou a predição combinada pode ser usada.[00109] Information indicating the prediction coding mode of the current block may be signaled via a bit stream. For example, the information may be a 1-bit flag indicating whether the prediction coding mode is an intra mode or an inter mode. Only when the prediction coding mode of the current block is determined to be the inter mode, the current figuration reference or combined prediction may be used.

[00110] A referência de figuração atual é para ajustar a figuração atual como uma figuração de referência e obter um bloco de predição do bloco atual de uma área que já foi codificada/decodificada na figuração atual. Aqui, a figuração atual significa uma figuração que inclui o bloco atual. Informações indicando se a referência de figuração atual é aplicada ao bloco atual pode ser sinalizada através de uma corrente de bits. Por exemplo, as informações podem ser uma marcação de 1 bit. Quando a marcação é verdadeira, o modo de codificação de predição do bloco atual pode ser determinado como a referência de figuração atual, e quando a marcação é falsa, o modo de predição do bloco atual pode ser determinado como interpredição.[00110] The current figuration reference is to set the current figuration as a reference figuration and obtain a prediction block of the current block from an area that has already been coded/decoded in the current figuration. Here, the current figuration means a figuration that includes the current block. Information indicating whether the current figuration reference is applied to the current block may be signaled by a bit stream. For example, the information may be a 1-bit flag. When the flag is true, the prediction coding mode of the current block may be determined as the current figuration reference, and when the flag is false, the prediction mode of the current block may be determined as interprediction.

[00111] Alternativamente, o modo de codificação de predição do bloco atual pode ser determinado com base em um índice de figuração de referência. Por exemplo, quando o índice de figuração de referência indica a figuração atual, o modo de codificação de predição do bloco atual pode ser determinado como a referência de figuração atual. Quando o índice de figuração de referência indica uma figuração além da figuração atual, o modo de codificação de predição do bloco atual pode ser determinado como interpredição. Isto é, a referência de figuração atual é um método de predição com o uso de informações acerca de uma área na qual a codificação/decodificação foi concluída na figuração atual, e a interpredição é um método de predição com o uso de informações acerca de outra figuração na qual a codificação/decodificação foi concluída.[00111] Alternatively, the prediction coding mode of the current block may be determined based on a reference picture index. For example, when the reference picture index indicates the current picture, the prediction coding mode of the current block may be determined as the current picture reference. When the reference picture index indicates a picture other than the current picture, the prediction coding mode of the current block may be determined as inter-prediction. That is, the current picture reference is a prediction method using information about an area in which encoding/decoding has been completed in the current picture, and inter-prediction is a prediction method using information about another picture in which encoding/decoding has been completed.

[00112] A predição combinada representa um modo de codificação no qual duas ou mais dentre a intrapredição, a interpredição e a referência de figuração atual são combinadas. Por exemplo, quando a predição combinada é aplicada, um primeiro bloco de predição pode ser gerado com base em uma dentre a intrapredição, a interpredição e a referência de figuração atual, e um segundo bloco de predição pode ser gerado com base em uma outra. Quando o primeiro bloco de predição e o segundo bloco de predição são gerados, um bloco de predição final pode ser gerado através de uma operação média ou uma operação de soma ponderada do primeiro bloco de predição e do segundo bloco de predição. Informações indicando se a predição combinada é ou não aplicada podem ser sinalizadas através de uma corrente de bits. As informações podem ser uma marcação de 1 bit.[00112] Combined prediction represents a coding mode in which two or more of the intra-prediction, the inter-prediction, and the current figuration reference are combined. For example, when combined prediction is applied, a first prediction block may be generated based on one of the intra-prediction, the inter-prediction, and the current figuration reference, and a second prediction block may be generated based on another. When the first prediction block and the second prediction block are generated, a final prediction block may be generated by an average operation or a weighted sum operation of the first prediction block and the second prediction block. Information indicating whether or not the combined prediction is applied may be signaled by a bit stream. The information may be a 1-bit flag.

[00113] A Figura 4 é uma vista que mostra vários tipos de partição de um bloco de codificação.[00113] Figure 4 is a view showing various types of partitioning of a coding block.

[00114] O bloco de codificação pode ser particionado em uma pluralidade de blocos de codificação com base em partição de árvore quádrupla, partição de árvore binária ou partição de árvore quádrupla. O bloco de codificação particionado pode ser particionado novamente em uma pluralidade de blocos de codificação com base em partição de árvore quádrupla, partição de árvore binária ou partição de árvore quádrupla.[00114] The coding block may be partitioned into a plurality of coding blocks based on quad tree partition, binary tree partition, or quad tree partition. The partitioned coding block may be partitioned again into a plurality of coding blocks based on quad tree partition, binary tree partition, or quad tree partition.

[00115] A partição de árvore quádrupla se refere a uma técnica de partição que particiona um bloco atual em quatro blocos. Como resultado da partição de árvore quádrupla, o bloco atual pode ser particionado em quatro partições com formato quadrado (consulte ‘SPLIT_QT’ da Figura 4 (a)).[00115] Quad-tree partitioning refers to a partitioning technique that partitions a current block into four blocks. As a result of quad-tree partitioning, the current block can be partitioned into four square-shaped partitions (see ‘SPLIT_QT’ of Figure 4(a)).

[00116] A partição de árvore binária se refere a uma técnica de partição que particiona um bloco atual em dois blocos. A partição de um bloco atual em dois blocos ao longo da direção vertical (isto é, com o uso de uma linha vertical que crua o bloco atual) pode ser referida como partição de árvore binária de direção vertical, e a partição de um bloco atual em dois blocos ao longo da direção horizontal (isto é, com o uso de uma linha horizontal que cruza o bloco atual) pode ser referida como partição de árvore binária de direção horizontal. Como resultado da partição de árvore binária, o bloco atual pode ser particionado em duas partições sem formato de quadrado. ‘SPLIT_BT_VER’ da Figura 4 (b) mostra um resultado da partição de árvore binária de direção vertical, e ‘SPLIT_BT_HOR’ da Figura 4 (c) mostra um resultado da partição de árvore binária de direção horizontal.[00116] Binary tree partition refers to a partition technique that partitions a current block into two blocks. Partitioning a current block into two blocks along the vertical direction (i.e., using a vertical line crossing the current block) can be referred to as vertical direction binary tree partition, and partitioning a current block into two blocks along the horizontal direction (i.e., using a horizontal line crossing the current block) can be referred to as horizontal direction binary tree partition. As a result of binary tree partition, the current block can be partitioned into two non-square-shaped partitions. ‘SPLIT_BT_VER’ of Figure 4(b) shows a result of vertical direction binary tree partition, and ‘SPLIT_BT_HOR’ of Figure 4(c) shows a result of horizontal direction binary tree partition.

[00117] A partição de árvore quádrupla se refere a uma técnica de partição que particiona um bloco atual em três blocos. A partição de um bloco atual em três blocos ao longo da direção vertical (isto é, com o uso de duas linhas verticais que cruzam o bloco atual) pode ser referida como partição de árvore quádrupla de direção vertical, e a partição de um bloco atual em três blocos ao longo da direção horizontal (isto é, com o uso de duas linhas horizontais que cruzam o bloco atual) pode ser referida como partição de árvore quádrupla de direção horizontal. Como resultado da partição de árvore tripla, o bloco atual pode ser particionado em três partições sem formato de quadrado. Nesse ponto, a largura/altura de uma partição posicionada no centro do bloco atual pode ser duas vezes maior que a largura/altura das outras partições. ‘SPLIT_TT_VER’ da Figura 4 (d) mostra um resultado da partição de árvore quádrupla de direção vertical e ‘SPLIT_TT_HOR’ da Figura 4 (e) mostra um resultado da partição de árvore quádrupla de direção horizontal.[00117] Quad-tree partitioning refers to a partitioning technique that partitions a current block into three blocks. Partitioning a current block into three blocks along the vertical direction (i.e., using two vertical lines that intersect the current block) can be referred to as vertical-direction quad-tree partitioning, and partitioning a current block into three blocks along the horizontal direction (i.e., using two horizontal lines that intersect the current block) can be referred to as horizontal-direction quad-tree partitioning. As a result of triple-tree partitioning, the current block can be partitioned into three non-square-shaped partitions. At this point, the width/height of a partition positioned at the center of the current block can be twice as large as the width/height of the other partitions. ‘SPLIT_TT_VER’ of Figure 4(d) shows a result of vertical direction quadruple tree partition and ‘SPLIT_TT_HOR’ of Figure 4(e) shows a result of horizontal direction quadruple tree partition.

[00118] O número de vezes de partição de uma unidade de árvore de codificação pode ser definido como uma profundidade de partição. A profundidade máxima de partição de uma unidade de árvore de codificação pode ser determinada no nível de sequência ou figuração. Consequentemente, a profundidade máxima de partição de uma unidade de árvore de codificação pode ser diferente para cada sequência ou figuração.[00118] The number of times a coding tree unit can be partitioned may be defined as a partition depth. The maximum partition depth of a coding tree unit may be determined at the sequence or picture level. Accordingly, the maximum partition depth of a coding tree unit may be different for each sequence or picture.

[00119] Alternativamente, a profundidade máxima de partição para cada técnica de partição pode ser individualmente determinada. Por exemplo, a profundidade máxima de partição permitida para a partição de árvore quádrupla pode ser diferente da profundidade máxima de partição permitida para a partição de árvore binária e/ou a partição de árvore quádrupla.[00119] Alternatively, the maximum partition depth for each partition technique may be individually determined. For example, the maximum partition depth allowed for quad tree partitioning may be different from the maximum partition depth allowed for binary tree partitioning and/or quad tree partitioning.

[00120] O codificador pode sinalizar informações indicando pelo menos um dentre o tipo de partição e a profundidade de partição do bloco atual através de uma corrente de bits. O decodificador pode determinar o tipo de partição e a profundidade de partição de uma unidade de árvore de codificação com base nas informações analisadas da corrente de bits.[00120] The encoder may signal information indicating at least one of the partition type and partition depth of the current block via a bit stream. The decoder may determine the partition type and partition depth of a coding tree unit based on information parsed from the bit stream.

[00121] A Figura 5 é uma vista que mostra um padrão de partição de uma unidade de árvore de codificação.[00121] Figure 5 is a view showing a partition pattern of a coding tree unit.

[00122] A partição de um bloco de codificação com o uso de uma técnica de partição como partição de árvore quádrupla, partição de árvore binária e/ou partição de árvore quádrupla pode ser referida como partição de múltiplas árvores.[00122] Partitioning a cipher block using a partitioning technique such as quad tree partitioning, binary tree partitioning, and/or quad tree partitioning may be referred to as multi-tree partitioning.

[00123] Os blocos de codificação gerados por meio da aplicação da partição de múltiplas árvores a um bloco de codificação podem ser referidos como blocos de codificação inferiores. Quando a profundidade de partição de um bloco de codificação é k, a profundidade de partição dos blocos de codificação inferiores é ajustada para k + 1.[00123] The coding blocks generated by applying multiple tree partitioning to a coding block may be referred to as lower coding blocks. When the partition depth of a coding block is k, the partition depth of the lower coding blocks is set to k + 1.

[00124] Em contrapartida, para blocos de codificação que têm uma profundidade de partição de k + 1, um bloco de codificação que tem uma profundidade de partição de k pode ser referida como um bloco de codificação superior.[00124] In contrast, for coding blocks that have a partition depth of k + 1, a coding block that has a partition depth of k may be referred to as an upper coding block.

[00125] O tipo de partição do bloco de codificação atual pode ser determinado com base em pelo menos um dentre um tipo de partição de um bloco de codificação superior e um tipo de partição de um bloco de codificação vizinho. Aqui, o bloco de codificação vizinho é um bloco de codificação adjacente ao bloco de codificação atual e pode incluir pelo menos um dentre um bloco vizinho superior e um bloco vizinho esquerdo do bloco de codificação atual, e um bloco vizinho adjacente ao canto superior esquerdo. Aqui, o tipo de partição pode incluir pelo menos um dentre uma partição de árvore quádrupla ou não, uma partição de árvore binária ou não, direção de partição de árvore binária, uma partição de árvore quádrupla ou não, e direção de partição de árvore quádrupla.[00125] The partition type of the current coding block may be determined based on at least one of a partition type of a top coding block and a partition type of a neighboring coding block. Here, the neighboring coding block is a coding block adjacent to the current coding block and may include at least one of a top neighboring block and a left neighboring block of the current coding block, and a neighboring block adjacent to the top left corner. Here, the partition type may include at least one of a quad tree partition or not, a binary tree partition or not, binary tree partition direction, a quad tree partition or not, and quad tree partition direction.

[00126] A fim de determinar um tipo de partição de um bloco de codificação, informações indicando se o bloco de codificação pode ser ou não particionado podem ser sinalizadas através de uma corrente de bits. As informações são uma marcação de 1 bit de ‘split_cu_flag’, e quando a marcação é verdadeira, isso indica que o bloco de codificação é particionado por uma técnica de partição de árvore de cabeça (^ quad).[00126] In order to determine a partition type of a coding block, information indicating whether or not the coding block can be partitioned may be signaled via a bit stream. The information is a 1-bit ‘split_cu_flag’ flag, and when the flag is true, it indicates that the coding block is partitioned by a head-tree (^quad) partitioning technique.

[00127] Quando split_cu_flag é verdadeira,informações indicando se o bloco de codificação é de particionado em árvore quádrupla podem ser sinalizadas através de uma corrente de bits. As informações são uma marcação de 1 bit de split_qt_flag, e quando a marcação é verdadeira, o bloco de codificação pode ser particionado em quatro blocos.[00127] When split_cu_flag is true, information indicating whether the cipher block is quad-tree partitioned may be signaled via a bitstream. The information is a 1-bit split_qt_flag flag, and when the flag is true, the cipher block may be partitioned into four blocks.

[00128] Por exemplo, no exemplo mostrado na Figura 5, como uma unidade de árvore de codificação é particionada em árvore quádrupla, são gerados quatro blocos de codificação que têm uma profundidade de partição de 1. Além disso, é mostrado que a partição de árvore quádrupla é aplicada novamente ao primeiro e quarto blocos de codificação dentre os quatro blocos de codificação gerados como resultado da partição de árvore quádrupla. Como resultado, quatro blocos de codificação que têm uma profundidade de partição de 2 podem ser gerados.[00128] For example, in the example shown in Figure 5, as a coding tree unit is quad-tree partitioned, four coding blocks are generated that have a partition depth of 1. Furthermore, it is shown that quad-tree partitioning is applied again to the first and fourth coding blocks among the four coding blocks generated as a result of quad-tree partitioning. As a result, four coding blocks that have a partition depth of 2 can be generated.

[00129] Além disso, blocos de codificação que têm uma profundidade de partição de 3 podem ser gerados por meio da aplicação da partição de árvore quádrupla novamente a um bloco de codificação que tem uma profundidade de partição de 2.[00129] Furthermore, coding blocks that have a partition depth of 3 may be generated by applying the quad tree partition again to a coding block that has a partition depth of 2.

[00130] Quando a partição de árvore quádrupla não é aplicada ao bloco de codificação, a possibilidade de a partição de árvore binária ou partição de árvore quádrupla ser realizada no bloco de codificação pode ser determinada considerando pelo menos um dentre o tamanho do bloco de codificação, se o bloco de codificação é ou não posicionado na delimitação de figuração, a profundidade máxima de partição e o tipo de partição de um bloco vizinho. Quando é determinada a realização de partição de árvore binária ou partição de árvore quádrupla no bloco de codificação, informações indicando a direção de partição podem ser sinalizadas através de uma corrente de bits. As informações podem ser uma marcação de 1 bit de mtt_split_cu_vertical_flag. Com base na marcação, pode-se determinar se a direção de partição é uma direção vertical ou uma direção horizontal. Adicionalmente, informações indicando se partição de árvore binária ou partição de árvore quádrupla é aplicada ao bloco de codificação podem ser sinalizadas através de uma corrente de bits. As informações podem ser uma marcação de 1 bit de mtt_split_cu_binary_flag. Com base na marcação, pode-se determinar se a partição de árvore binária ou a partição de árvore quádrupla é aplicada ao bloco de codificação.[00130] When quad tree partitioning is not applied to the coding block, whether binary tree partitioning or quad tree partitioning is performed on the coding block can be determined by considering at least one of the size of the coding block, whether or not the coding block is positioned on the drawing boundary, the maximum partition depth, and the partition type of a neighboring block. When binary tree partitioning or quad tree partitioning is determined to be performed on the coding block, information indicating the partition direction can be signaled via a bit stream. The information can be a 1-bit flag of mtt_split_cu_vertical_flag. Based on the flag, it can be determined whether the partition direction is a vertical direction or a horizontal direction. Additionally, information indicating whether binary tree partitioning or quad tree partitioning is applied to the coding block can be signaled via a bit stream. The information can be a 1-bit flag of mtt_split_cu_binary_flag. Based on the flag, it can be determined whether binary tree partitioning or quad tree partitioning is applied to the cipher block.

[00131] Por exemplo, no exemplo mostrado na Figura 5, é mostrado que a partição de árvore binária de direção vertical é aplicada a um bloco de codificação que tem uma profundidade de partição de 1, a partição de árvore quádrupla de direção vertical é aplicada ao bloco de codificação do lado esquerdo dentre os blocos de codificação gerados como resultado da partição, e a partição de árvore binária de direção vertical é aplicada ao bloco de codificação do lado direito.[00131] For example, in the example shown in Figure 5, it is shown that the vertical direction binary tree partition is applied to a coding block that has a partition depth of 1, the vertical direction quad tree partition is applied to the left-hand coding block among the coding blocks generated as a result of the partition, and the vertical direction binary tree partition is applied to the right-hand coding block.

[00132] A interpredição é um modo de codificação de predição que predita um bloco atual por meio do uso de informações da figuração anterior. Por exemplo, um bloco na mesma posição que o bloco atual na figuração anterior (doravante no presente documento, um bloco coalocado) pode serajustado como o bloco de predição do bloco atual. Doravante nopresente documento, um bloco de predição gerado com base em umbloco na mesma posição que o bloco atual será referido como umbloco de predição coalocado.[00132] Interprediction is a prediction coding mode that predicts a current block by using information from the previous figure. For example, a block at the same position as the current block in the previous figure (hereinafter in this document, a co-allocated block) can be set as the prediction block of the current block. Hereinafter in this document, a prediction block generated based on a block at the same position as the current block will be referred to as a co-allocated prediction block.

[00133] Por outro lado, quando um objeto existente na figuração anterior se moveu para uma outra posição na figuração atual, o bloco atual pode ser predito de maneira eficaz por meio do uso de um movimento do objeto. Por exemplo, quando a direção de movimentação e o tamanho de um objeto podem ser conhecidos por meio da comparação da figuração anterior e da figuração atual, um bloco de predição (ou um vídeo de predição) do bloco atual pode ser gerado considerando informações de movimento do objeto. Doravante no presente documento, o bloco de predição gerado com o uso de informações de movimento pode ser referido como um bloco de predição de movimento.[00133] On the other hand, when an object in the previous picture has moved to another position in the current picture, the current block can be effectively predicted by using a motion of the object. For example, when the moving direction and size of an object can be known by comparing the previous picture and the current picture, a prediction block (or a prediction video) of the current block can be generated considering motion information of the object. Hereinafter in this document, the prediction block generated using motion information can be referred to as a motion prediction block.

[00134] Um bloco residual pode ser gerado por meio da subtração do bloco de predição do bloco atual. Nesse ponto, quando existe um movimento de um objeto, a energia do bloco residual pode ser reduzida por meio do uso do bloco de predição de movimento em vez do bloco de predição coalocado e, portanto, o desempenho de compressão do bloco residual pode ser aprimorado.[00134] A residual block may be generated by subtracting the prediction block from the current block. At this point, when there is a motion of an object, the energy of the residual block may be reduced by using the motion prediction block instead of the co-allocated prediction block, and therefore the compression performance of the residual block may be improved.

[00135] Conforme descrito acima, a geração de um bloco de predição por meio do uso de informações de movimento pode ser referida como predição de compensação de movimento. Na maior parte da interpredição, um bloco de predição pode ser gerado com base na predição de compensação de movimento.[00135] As described above, generating a prediction block using motion information may be referred to as motion compensation prediction. In most interprediction, a prediction block may be generated based on motion compensation prediction.

[00136] As informações de movimento podem incluir pelo menos um dentre um vetor de movimento, um índice de figuração de referência, uma direção de predição e um índice de peso bidirecional. O vetor de movimento representa a direção de movimentação e o tamanho de um objeto. O índice de figuração de referência especifica uma figuração de referência do bloco atual dentre figurações de referência incluídas em uma lista de figuração de referência. A direção de predição indica qualquer um dentre predição L0 unidirecional, predição L1 unidirecional e predição bidirecional (predição L0 e predição L1). De acordo com a direção de predição do bloco atual, pelo menos uma dentre informações de movimento na direção L0 e informações de movimento na direção L1 podem ser usadas. O índice de peso bidirecional especifica um valor de ponderação aplicado a um bloco de predição L0 e um valor de ponderação aplicado a um bloco de predição L1.[00136] The motion information may include at least one of a motion vector, a reference figure index, a prediction direction, and a bidirectional weight index. The motion vector represents the motion direction and size of an object. The reference figure index specifies a reference figure of the current block from among reference figures included in a reference figure list. The prediction direction indicates any one of unidirectional L0 prediction, unidirectional L1 prediction, and bidirectional prediction (L0 prediction and L1 prediction). According to the prediction direction of the current block, at least one of motion information in the L0 direction and motion information in the L1 direction may be used. The bidirectional weight index specifies a weighting value applied to an L0 prediction block and a weighting value applied to an L1 prediction block.

[00137] A Figura 6 é um fluxograma que ilustra um método interpredição de acordo com uma modalidade da presente invenção.[00137] Figure 6 is a flowchart illustrating an interprediction method in accordance with an embodiment of the present invention.

[00138] Referindo-se à Figura 6, o método interpredição inclui as etapas de determinação de um modo interpredição de um bloco atual (S601), de aquisição de informações de movimento do bloco atual de acordo com o modo interpredição determinado (S602) e de realização de predição de compensação de movimento para o bloco atual com base nas informações de movimento adquiridas (S603).[00138] Referring to Figure 6, the interprediction method includes the steps of determining an interprediction mode of a current block (S601), acquiring motion information of the current block according to the determined interprediction mode (S602), and performing motion compensation prediction for the current block based on the acquired motion information (S603).

[00139] Aqui, o modo interpredição representa várias técnicas para determinar informações de movimento do bloco atual, e pode incluir um modo interpredição que usa informações de movimento translacional e um modo interpredição que usa informações de movimento afim. Por exemplo, o modo interpredição com o uso de informações de movimento translacional pode incluir um modo de fusão e um modo de predição de vetor de movimento, e o modo interpredição com o uso de informações de movimento afim pode incluir um modo de fusão afim e um modo de predição de vetor de movimento afim. As informações de movimento do bloco atual podem ser determinadas com base em um bloco vizinho adjacente ao bloco atual ou informações analisadas de uma corrente de bits de acordo com o modo interpredição.[00139] Here, the interprediction mode represents various techniques for determining motion information of the current block, and may include an interprediction mode using translational motion information and an interprediction mode using affine motion information. For example, the interprediction mode using translational motion information may include a fusion mode and a motion vector prediction mode, and the interprediction mode using affine motion information may include an affine fusion mode and an affine motion vector prediction mode. The motion information of the current block may be determined based on a neighboring block adjacent to the current block or information analyzed from a bit stream according to the interprediction mode.

[00140] Doravante no presente documento, o método interpredição com o uso de informações de movimento afim será descrito em detalhes.[00140] Hereinafter in this document, the interprediction method using affine motion information will be described in detail.

[00141] A Figura 7 é uma vista que mostra um movimento não linear de um objeto.[00141] Figure 7 is a view showing non-linear motion of an object.

[00142] Um movimento não linear de um objeto pode ser gerado em um vídeo. Por exemplo, conforme mostrado no exemplo da Figura 7, pode ocorrer um movimento não linear de um objeto, como aproximação, afastamento, rotação,transformada afim ou similares de uma câmera. Quando ocorre um movimento não linear de um objeto, o movimento do objeto não pode ser eficazmente expresso com um vetor de movimento translacional. Consequentemente, a eficiência de codificação pode ser aprimorada por meio do uso de um movimento afim em vez de um movimento translacional em uma área em que ocorre um movimento não linear de um objeto.[00142] A non-linear motion of an object may be generated in a video. For example, as shown in the example in Figure 7, a non-linear motion of an object may occur, such as zooming in, out, rotating, affine transforming, or the like of a camera. When a non-linear motion of an object occurs, the motion of the object cannot be effectively expressed with a translational motion vector. Accordingly, coding efficiency may be improved by using an affine motion instead of a translational motion in an area where a non-linear motion of an object occurs.

[00143] A Figura 8 é um fluxograma que ilustra ummétodo interpredição com base em um movimento afim de acordo com uma modalidade da presente invenção.[00143] Figure 8 is a flowchart illustrating an interprediction method based on an affine motion in accordance with an embodiment of the present invention.

[00144] A possibilidade de aplicação de uma técnica de interpredição com base em um movimento afim ao bloco atual pode ser determinada com base nas informações analisadas de uma corrente de bits. Especificamente, a possibilidade dea técnica de interpredição com base em um movimento afim ser aplicada ao bloco atual pode ser determinada com base em pelo menos um dentre uma marcação indicando se o modo de fusão afim é aplicado ao bloco atual e uma marcação indicando se o modo de predição de vetor de movimento afim é aplicado ao bloco atual.[00144] Whether an affine motion-based interprediction technique can be applied to the current block can be determined based on information analyzed from a bit stream. Specifically, whether the affine motion-based interprediction technique can be applied to the current block can be determined based on at least one of a flag indicating whether the affine fusion mode is applied to the current block and a flag indicating whether the affine motion vector prediction mode is applied to the current block.

[00145] Quando a técnica de interpredição com base em um movimento afim é aplicada ao bloco atual, um modelo de movimento afim do bloco atual pode ser determinado (S801). O modelo de movimento afim pode ser determinado como pelo menos um dentre um modelo de movimento afim de seis parâmetros e um modelo de movimento afim de quatro parâmetros. O modelo de movimento afim de seis parâmetros expressa um movimento afim com o uso de seis parâmetros e o modelo de movimento afim de quatro parâmetros expressa um movimento afim com o uso de quatro parâmetros.[00145] When the interprediction technique based on an affine motion is applied to the current block, an affine motion model of the current block may be determined (S801). The affine motion model may be determined as at least one of a six-parameter affine motion model and a four-parameter affine motion model. The six-parameter affine motion model expresses an affine motion using six parameters, and the four-parameter affine motion model expresses an affine motion using four parameters.

[00146] A Equação 1 expressa um movimento afim com o uso de seis parâmetros. O movimento afim representa um movimento translacional para uma área predeterminada determinada por vetores de origem afim. [00146] Equation 1 expresses an affine motion using six parameters. The affine motion represents a translational motion for a predetermined area determined by affine source vectors.

[00147] [150] Quando um movimento afim é expressocom o uso de seis parâmetros, um movimento complicado pode ser expresso. No entanto, conforme o número de bits necessários para a codificação de cada um dos parâmetros aumenta, a eficiência da codificação pode ser reduzida. Consequentemente, o movimento afim pode ser expresso com o uso de quatro parâmetros. A Equação 2 expressa um movimento afim com o uso de quatro parâmetros. [00147] [150] When an affine motion is expressed using six parameters, a complicated motion can be expressed. However, as the number of bits required to encode each of the parameters increases, the coding efficiency may be reduced. Consequently, the affine motion can be expressed using four parameters. Equation 2 expresses an affine motion using four parameters.

[00148] Informações para determinar um modelo de movimento afim do bloco atual podem ser codificadas e sinalizadas através de uma corrente de bits. Por exemplo, as informações podem ser uma marcação de 1 bit de ‘affine_type_flag’. Quando o valor da marcação é 0, isso podeindicar que um modelo de movimento de 4 parâmetros afim é aplicado, e quando o valor da marcação é 1, isso pode indicarque um modelo de movimento afim de 6 parâmetros é aplicado. Amarcação pode ser codificada pela unidade de fatia, ladrilho ou bloco (por exemplo, pela unidade de bloco de codificação ou árvore de codificação). Quando uma marcação é sinalizada no nível de fatia, um modelo de movimento afim determinado no nível de fatia pode ser aplicado a todos os blocos que pertencem à fatia.[00148] Information for determining an affine motion model of the current block may be encoded and flagged via a bit stream. For example, the information may be a 1-bit flag of ‘affine_type_flag’. When the flag value is 0, this may indicate that a 4-parameter affine motion model is applied, and when the flag value is 1, this may indicate that a 6-parameter affine motion model is applied. The flag may be encoded by the slice, tile, or block unit (e.g., by the coding block or coding tree unit). When a flag is flagged at the slice level, an affine motion model determined at the slice level may be applied to all blocks belonging to the slice.

[00149] Alternativamente, um modelo de movimento afim do bloco atual pode ser determinado com base em um modo interpredição afim do bloco atual. Por exemplo, quando o modo de fusão afim é aplicado, o modelo de movimento afim do bloco atual pode ser determinado como um modelo de movimento de 4 parâmetros. Por outro lado, quando o modo de predição de vetor de movimento afim é aplicado, informações para determinar o modelo de movimento afim do bloco atual podem ser codificadas e sinalizadas através de uma corrente de bits. Por exemplo, quando o modo de predição de vetor de movimento afim é aplicado ao bloco atual, o modelo de movimento afim do bloco atual pode ser determinado com base na marcação de 1 bit de ‘affine_type_flag’.[00149] Alternatively, an affine motion model of the current block may be determined based on an affine interprediction mode of the current block. For example, when the affine fusion mode is applied, the affine motion model of the current block may be determined as a 4-parameter motion model. On the other hand, when the affine motion vector prediction mode is applied, information for determining the affine motion model of the current block may be encoded and signaled via a bit stream. For example, when the affine motion vector prediction mode is applied to the current block, the affine motion model of the current block may be determined based on the 1-bit flag of ‘affine_type_flag’.

[00150] Posteriormente, um vetor de origem afim do bloco atual pode ser derivado (S802). Quando um modelo de movimento de 4 parâmetros afim é selecionado, vetores de movimento em dois pontos de controle do bloco atual podem ser derivados. Por outro lado, quando um modelo de movimento afim de 6 parâmetros é selecionado, vetores de movimento em três pontos de controle do bloco atual podem ser derivados. O vetor de movimento em um ponto de controle pode ser referido como um vetor de origem afim. O ponto de controle pode incluir pelo menos um dentre o canto superior esquerdo, o canto superior direito e o canto inferior esquerdo do bloco atual.[00150] Subsequently, an affine source vector of the current block may be derived (S802). When a 4-parameter affine motion model is selected, motion vectors at two control points of the current block may be derived. Conversely, when a 6-parameter affine motion model is selected, motion vectors at three control points of the current block may be derived. The motion vector at a control point may be referred to as an affine source vector. The control point may include at least one of the upper left corner, the upper right corner, and the lower left corner of the current block.

[00151] A Figura 9 é uma vista que mostra um exemplo de vetores de origem afim de cada modelo de movimento afim.[00151] Figure 9 is a view showing an example of affine source vectors for each affine motion model.

[00152] No modelo de movimento de 4 parâmetros afim, vetores de origem afim podem ser derivados para dois dentre o canto superior esquerdo, o canto superior direito e o canto inferior esquerdo. Por exemplo, conforme mostrado no exemplo da Figura 9(a), quando um modelo de movimento de 4 parâmetros afim é selecionado, um vetor afim pode ser derivado com o uso do vetor de origem afim sv0 para o canto superior esquerdo do bloco atual (por exemplo, amostra superior à esquerda (x1, y1)) e o vetor de origem afim sv1 para o canto superior direito do bloco atual (por exemplo, a amostra superior à direita (x1, y1)). Também é possível usar um vetor de origem afim para o canto inferior esquerdo em vez do vetor de origem afim para o canto superior esquerdo, ou usar um vetor de origem afim para o canto inferior esquerdo em vez do vetor de origem afim para o canto superior direito.[00152] In the affine 4-parameter motion model, affine source vectors can be derived for two of the top left corner, the top right corner, and the bottom left corner. For example, as shown in the example of Figure 9(a), when an affine 4-parameter motion model is selected, an affine vector can be derived using the affine source vector sv0 for the top left corner of the current block (e.g., top left sample (x1, y1)) and the affine source vector sv1 for the top right corner of the current block (e.g., top right sample (x1, y1)). It is also possible to use an affine source vector for the bottom left corner instead of the affine source vector for the top left corner, or to use an affine source vector for the bottom left corner instead of the affine source vector for the top right corner.

[00153] No modelo de movimento de 6 parâmetros afim, vetores de origem afim podem ser derivados para o canto superior esquerdo, o canto superior direito e o canto inferior esquerdo. Por exemplo, conforme mostrado no exemplo da Figura 9(b), quando um modelo de movimento afim de 6 parâmetros é selecionado, um vetor afim pode ser derivado com o uso do vetor de origem afim sv0 para o canto superior esquerdo do bloco atual (por exemplo, amostra superior à esquerda (x1, y1)), o vetor de origem afim sv1 para o canto superior direito do bloco atual (por exemplo, a amostra superior à direita (x1, y1)), e o vetor de origem afim sv2 para o canto superior esquerdo do bloco atual (por exemplo, amostra superior à esquerda (x2, y2)).[00153] In the affine 6-parameter motion model, affine source vectors can be derived for the top left corner, the top right corner, and the bottom left corner. For example, as shown in the example of Figure 9(b), when a 6-parameter affine motion model is selected, an affine vector can be derived using the affine source vector sv0 for the top left corner of the current block (e.g., top left sample (x1, y1)), the affine source vector sv1 for the top right corner of the current block (e.g., top right sample (x1, y1)), and the affine source vector sv2 for the top left corner of the current block (e.g., top left sample (x2, y2)).

[00154] Na modalidade descrita abaixo, no modelo de movimento de 4 parâmetros afim, os vetores de origem afim do ponto de controle superior à esquerda e do ponto de controle superior à direita serão referidos como um primeiro vetor de origem afim e um segundo vetor de origem afim, respectivamente. Nas modalidades que usam o primeiro vetor de origem afim e o segundo vetor de origem afim descritos abaixo, pelo menos um dentre o primeiro vetor de origem afim e o segundo vetor de origem afim pode ser substituído pelo vetor de origem afim do ponto de controle inferior à esquerda (um terceiro vetor de origem afim) ou o vetor de origem afim do ponto de controle inferior à direita (um quarto vetor de origem afim).[00154] In the embodiment described below, in the affine 4-parameter motion model, the affine source vectors of the top left control point and the top right control point will be referred to as a first affine source vector and a second affine source vector, respectively. In embodiments using the first affine source vector and the second affine source vector described below, at least one of the first affine source vector and the second affine source vector may be replaced by the affine source vector of the bottom left control point (a third affine source vector) or the affine source vector of the bottom right control point (a fourth affine source vector).

[00155] Além disso, no modelo de movimento afim de 6 parâmetros, os vetores de origem afim do ponto de controle superior à esquerda, do ponto de controle superior à direita e do ponto de controle inferior à esquerda serão referidos como um primeiro vetor de origem afim, um segundo vetor de origem afim e um terceiro vetor de origem afim, respectivamente. Nas modalidades que usam o primeiro vetor de origem afim, o segundo vetor de origem afim e o terceiro vetor de origem afim descritos abaixo, pelo menos um dentre o primeiro vetor de origem afim, o segundo vetor de origem afim e o terceiro vetor de origem afim pode ser substituído pelo vetor de origem afim do ponto de controle inferior à direita (um quarto vetor de origem afim).[00155] Furthermore, in the 6-parameter affine motion model, the affine source vectors of the top left control point, the top right control point, and the bottom left control point will be referred to as a first affine source vector, a second affine source vector, and a third affine source vector, respectively. In embodiments using the first affine source vector, the second affine source vector, and the third affine source vector described below, at least one of the first affine source vector, the second affine source vector, and the third affine source vector may be replaced by the affine source vector of the bottom right control point (a fourth affine source vector).

[00156] Um vetor afim pode ser derivado para cada sub-bloco por meio do uso dos vetores de origem afim (S803). Aqui, o vetor afim representa um vetor de movimento translacional derivado com base nos vetores de origem afim. O vetor afim de um sub-bloco pode ser referido como um vetor de movimento de sub-bloco afim ou um vetor de movimento de sub- bloco.[00156] An affine vector may be derived for each sub-block by use of the affine source vectors (S803). Here, the affine vector represents a translational motion vector derived based on the affine source vectors. The affine vector of a sub-block may be referred to as an affine sub-block motion vector or a sub-block motion vector.

[00157] A Figura 10 é uma vista que mostra um exemplo de vetores afins de sub-blocos em um modelo de movimento de 4 parâmetros.[00157] Figure 10 is a view showing an example of sub-block affine vectors in a 4-parameter motion model.

[00158] O vetor afim do sub-bloco pode ser derivado com base na posição do ponto de controle, na posição do sub- bloco e o vetor de origem afim. Por exemplo, a Equação 3 mostra um exemplo de derivação de um vetor de sub-bloco afim. [00158] The subblock affine vector can be derived based on the control point position, the subblock position, and the affine source vector. For example, Equation 3 shows an example of deriving an affine subblock vector.

[00159] Na Equação 3, (x, y) denota a posição deum sub-bloco. Aqui, a posição de um sub-bloco indica a posiçãode uma amostra de referência incluída no sub-bloco. A amostrade referência pode ser uma amostra posicionada no canto superior esquerdo do sub-bloco, ou uma amostra da qual pelo menos uma das coordenadas do eixo geométrico x e do eixo geométrico y é um ponto central. (x0, y0) denota a posição do primeiro ponto de controle e (sv0x, sv0y) denota o primeiro vetor de origem afim. Além disso, (x1, y1) denota a posição do segundo ponto de controle e (sv1x, sv1y) denota o segundo vetor de origem afim.[00159] In Equation 3, (x, y) denotes the position of a subblock. Here, the position of a subblock denotes the position of a reference sample included in the subblock. The reference sample may be a sample positioned in the upper left corner of the subblock, or a sample of which at least one of the x-axis and y-axis coordinates is a center point. (x0, y0) denotes the position of the first control point, and (sv0x, sv0y) denotes the first affine seed vector. Furthermore, (x1, y1) denotes the position of the second control point, and (sv1x, sv1y) denotes the second affine seed vector.

[00160] Quando o primeiro ponto de controle e o segundo ponto de controle correspondem ao canto superior esquerdo e ao canto superior direito do bloco atual, respectivamente, x1-x0 pode ser ajustado para um valor igual à largura do bloco atual.[00160] When the first control point and the second control point correspond to the upper left corner and upper right corner of the current block, respectively, x1-x0 can be set to a value equal to the width of the current block.

[00161] Posteriormente, a predição de compensação de movimento para cada sub-bloco pode ser realizada com o uso do vetor afim de cada sub-bloco (S804). Como resultado da realização da predição de compensação de movimento, um bloco de predição para cada sub-bloco pode ser gerado. Os blocos de predição dos sub-blocos podem ser ajustados como os blocos de predição do bloco atual.[00161] Subsequently, motion compensation prediction for each sub-block may be performed using the affine vector of each sub-block (S804). As a result of performing motion compensation prediction, a prediction block for each sub-block may be generated. The prediction blocks of the sub-blocks may be adjusted as the prediction blocks of the current block.

[00162] O vetor de origem afim do bloco atual pode ser derivado com base no vetor de origem afim de um bloco vizinho adjacente ao bloco atual. Quando o modo interpredição do bloco atual é um modo de fusão afim, o vetor de origem afim de um candidato de fusão incluído na lista de candidatos de fusão pode ser determinado como o vetor de origem afim do bloco atual. Além disso, quando o modo interpredição do bloco atual é um modo de fusão afim, informações de movimento incluindo pelo menos um dentre o índice de figuração de referência do bloco atual, uma marcação de predição de uma direção específica e um valor de ponderação bidirecional podem ser ajustadas para serem iguais àquelas do candidato de fusão.[00162] The affine seed vector of the current block may be derived based on the affine seed vector of a neighboring block adjacent to the current block. When the interprediction mode of the current block is an affine fusion mode, the affine seed vector of a fusion candidate included in the fusion candidate list may be determined as the affine seed vector of the current block. Further, when the interprediction mode of the current block is an affine fusion mode, motion information including at least one of the reference figuration index of the current block, a prediction flag of a specific direction, and a bidirectional weighting value may be adjusted to be equal to that of the fusion candidate.

[00163] O candidato de fusão pode ser derivado com base em um bloco vizinho do bloco atual. O bloco vizinho pode incluir pelo menos um dentre um bloco vizinho espacial espacialmente adjacente ao bloco atual, e um bloco vizinho temporal incluído em uma figuração diferente da figuração atual.[00163] The merge candidate may be derived based on a neighboring block of the current block. The neighboring block may include at least one of a spatial neighboring block spatially adjacent to the current block, and a temporal neighboring block included in a figuration other than the current figuration.

[00164] A Figura 11 é uma vista que mostra um bloco vizinho que pode ser usado para derivar um candidato de fusão.[00164] Figure 11 is a view showing a neighboring block that can be used to derive a fusion candidate.

[00165] Um bloco vizinho do bloco atual pode incluir pelo menos um dentre um bloco vizinho (A) adjacente ao lado esquerdo do bloco atual, um bloco vizinho (B) adjacente ao topo do bloco atual, um bloco vizinho (C) adjacente ao canto superior direito do bloco atual, um bloco vizinho (D) adjacente ao canto inferior esquerdo do bloco atual, e um bloco vizinho (E) adjacente ao canto superior esquerdo do bloco atual. Quando as coordenadas da amostra superior à esquerda do bloco atual são (x0, y0), o bloco vizinho esquerdo A inclui uma amostra na posição de (x0-1, y0 + H-1), e o bloco vizinho superior B inclui uma amostra na posição de (x0 + W-1, y0-1). Aqui, W e H denotam a largura e a altura do bloco atual, respectivamente. O bloco vizinho superior à direita C inclui uma amostra na posição de (x0 + W, y0-1), e o bloco vizinho inferior à esquerda D inclui uma amostra na posição de (x0-1, y0 + H). O bloco vizinho superior à esquerda E inclui uma amostra na posição de (x0-1, y0-1).[00165] A neighboring block of the current block may include at least one of a neighboring block (A) adjacent to the left side of the current block, a neighboring block (B) adjacent to the top of the current block, a neighboring block (C) adjacent to the top right corner of the current block, a neighboring block (D) adjacent to the bottom left corner of the current block, and a neighboring block (E) adjacent to the top left corner of the current block. When the coordinates of the top left sample of the current block are (x0, y0), the left neighboring block A includes a sample at the position of (x0-1, y0 + H-1), and the top neighboring block B includes a sample at the position of (x0 + W-1, y0-1). Here, W and H denote the width and height of the current block, respectively. The top right neighboring block C includes a sample at the position of (x0 + W, y0-1), and the bottom left neighboring block D includes a sample at the position of (x0-1, y0 + H). The upper left neighboring block E includes a sample at the position of (x0-1, y0-1).

[00166] Quando um bloco vizinho é codificado no modo interpredição afim, um vetor de origem afim de um candidato de fusão pode ser derivado com base no vetor de origem afim do bloco vizinho. Doravante no presente documento, o bloco vizinho codificado em um modo interpredição afim será referido como um bloco vizinho afim.[00166] When a neighboring block is encoded in the affine interprediction mode, an affine seed vector of a fusion candidate may be derived based on the affine seed vector of the neighboring block. Hereinafter in this document, the neighboring block encoded in an affine interprediction mode will be referred to as an affine neighboring block.

[00167] Um candidato de fusão para o bloco atual pode ser gerado por meio da busca de blocos vizinhos em uma ordem predefinida de varredura. A ordem de varredura pode ser predefinida no codificador e no decodificador. Por exemplo, blocos vizinhos podem ser pesquisados na ordem de A, B, C, D e. Além disso, candidatos de fusão podem ser sequencialmente derivados dos blocos vizinhos afins pesquisados. Alternativamente, a ordem de varredura pode ser adaptativamente determinada com base em pelo menos um dentre o tamanho, o formato e o modelo de movimento afim do bloco atual. Isto é, as ordens de varredura de blocos dos quais pelo menos um dentre o tamanho, o formato e o modelo de movimento afim que é diferente podem ser diferentes entre si.[00167] A merge candidate for the current block may be generated by searching neighboring blocks in a predefined scan order. The scan order may be predefined in the encoder and decoder. For example, neighboring blocks may be searched in the order of A, B, C, and D. Furthermore, merge candidates may be sequentially derived from the searched affine neighboring blocks. Alternatively, the scan order may be adaptively determined based on at least one of the size, shape, and affine motion model of the current block. That is, the scan orders of blocks of which at least one of the size, shape, and affine motion model is different may be different from each other.

[00168] Alternativamente, blocos posicionados no topo do bloco atual são sequencialmente pesquisados, e um candidato de fusão é derivado de um bloco vizinho afim encontrado primeiro, e blocos posicionados no lado esquerdo do bloco atual são sequencialmente pesquisados, e um candidato de fusão pode ser derivado de um bloco vizinho afim encontrado primeiro. Aqui, os blocos vizinhos posicionados no topo do bloco atual incluem pelo menos um dentre o bloco vizinho E, o bloco vizinho B e o bloco vizinho C, e os blocos posicionados no lado esquerdo do bloco atual podem incluir pelo menos um dentre o bloco A e o bloco D. Nesse ponto, o bloco vizinho E também pode ser classificado como um bloco posicionado no lado esquerdo do bloco atual.[00168] Alternatively, blocks positioned on top of the current block are sequentially searched, and a merge candidate is derived from a first-found affine neighboring block, and blocks positioned on the left side of the current block are sequentially searched, and a merge candidate may be derived from a first-found affine neighboring block. Here, the neighboring blocks positioned on top of the current block include at least one of neighboring block E, neighboring block B, and neighboring block C, and the blocks positioned on the left side of the current block may include at least one of block A and block D. At this point, neighboring block E may also be classified as a block positioned on the left side of the current block.

[00169] Embora não mostrado, um candidato de fusão pode ser derivado de um bloco vizinho temporal do bloco atual. Aqui, o bloco vizinho temporal pode incluir um bloco em uma posição igual àquela do bloco atual em uma figuração coalocada ou um bloco adjacente a isso. Especificamente, quando um bloco vizinho temporal do bloco atual é codificado em um modo interpredição afim, um candidato de fusão pode ser derivado com base em um vetor de origem afim de um candidato de fusão temporal.[00169] Although not shown, a fusion candidate may be derived from a temporal neighboring block of the current block. Here, the temporal neighboring block may include a block at a position equal to that of the current block in a co-located figuration or a block adjacent thereto. Specifically, when a temporal neighboring block of the current block is coded in an affine interprediction mode, a fusion candidate may be derived based on an affine seed vector of a temporal fusion candidate.

[00170] Uma lista de candidatos de fusão incluindo candidatos de fusão pode ser gerada, e um vetor de origem afim de um dentre os candidatos de fusão incluídos na lista de candidatos de fusão pode ser determinado como um vetor de origem afim do bloco atual. Para essa finalidade, informações de índice para identificar qualquer um dos candidatos de fusão podem ser codificadas e transmitidas através de uma corrente de bits.[00170] A merge candidate list including merge candidates may be generated, and an affine seed vector of one of the merge candidates included in the merge candidate list may be determined as an affine seed vector of the current block. For this purpose, index information for identifying any of the merge candidates may be encoded and transmitted via a bit stream.

[00171] Como um outro exemplo, blocos vizinhos são pesquisados de acordo com uma ordem de varredura, e um vetor de origem afim do bloco atual pode ser derivado do vetor de origem afim de um bloco vizinho afim encontrado primeiro.[00171] As another example, neighboring blocks are searched according to a scan order, and an affine seed vector of the current block may be derived from the affine seed vector of a first encountered affine neighboring block.

[00172] Conforme descrito acima, no modo de fusão afim, um vetor de origem afim do bloco atual pode ser derivado com o uso de um vetor de origem afim de um bloco vizinho.[00172] As described above, in affine fusion mode, an affine seed vector of the current block may be derived using an affine seed vector of a neighboring block.

[00173] Quando o modo interpredição do bloco atual é um modo de predição de vetor de movimento afim, o vetor de origem afim de um candidato de predição de vetor de movimento incluído em uma lista de candidatos de predição de vetor de movimento pode ser determinado como um valor de predição de vetor de origem afim do bloco atual. O vetor de origem afim do bloco atual pode ser derivado por meio da adição de um valor de diferença de vetor de origem afim ao valor de predição de vetor de origem afim.[00173] When the interprediction mode of the current block is an affine motion vector prediction mode, the affine seed vector of a motion vector prediction candidate included in a list of motion vector prediction candidates may be determined as an affine seed vector prediction value of the current block. The affine seed vector of the current block may be derived by adding an affine seed vector difference value to the affine source vector prediction value.

[00174] Um candidato de predição de vetor de origem afim pode ser derivado com base em um bloco vizinho do bloco atual. Especificamente, blocos vizinhos posicionados no topo do bloco atual são pesquisados de acordo com uma ordem predeterminada de varredura, e um primeiro candidato de predição de vetor de origem afim pode ser derivado de um bloco vizinho afim encontrado primeiro. Além disso, blocos vizinhos posicionados no lado esquerdo do bloco atual são pesquisados de acordo com uma ordem predeterminada de varredura, e um segundo candidato de predição de vetor de origem afim pode ser derivado de um bloco vizinho afim encontrado primeiro.[00174] An affine source vector prediction candidate may be derived based on a neighboring block of the current block. Specifically, neighboring blocks positioned on top of the current block are searched according to a predetermined scan order, and a first affine source vector prediction candidate may be derived from a first-encountered affine neighboring block. Furthermore, neighboring blocks positioned on the left side of the current block are searched according to a predetermined scan order, and a second affine source vector prediction candidate may be derived from a first-encountered affine neighboring block.

[00175] Informações para determinar um valor de diferença de vetor de origem afim podem ser codificadas e transmitidas através de uma corrente de bits. As informações podem incluir informações de tamanho indicando a magnitude do valor de diferença de vetor de origem afim, e codificar informações indicando um sinal do valor de diferença de vetor de origem afim. O valor de diferença de vetor de origem afim para cada ponto de controle pode ser ajustado para ser o mesmo. Alternativamente, o valor de diferença de vetor de origem afim pode ser ajustado de maneira diferente para cada ponto de controle.[00175] Information for determining an affine source vector difference value may be encoded and transmitted via a bit stream. The information may include size information indicating the magnitude of the affine source vector difference value, and encode information indicating a sign of the affine source vector difference value. The affine source vector difference value for each control point may be set to be the same. Alternatively, the affine source vector difference value may be set differently for each control point.

[00176] Conforme descrito acima, um vetor de origem afim de um candidato de fusão ou um candidato de predição de vetor de origem afim pode ser derivado de um vetor de origem afim de um bloco vizinho afim, e um vetor de origem afim do bloco atual pode ser derivado com o uso do vetor de origem afim derivado do candidato de fusão ou do candidato de predição de vetor de origem afim. Alternativamente, após pesquisar blocos vizinhos afins de acordo com uma ordem predeterminada de varredura, o vetor de origem afim do bloco atual pode ser derivado do vetor de origem afim de um bloco vizinho afim encontrado primeiro.[00176] As described above, an affine seed vector of a merge candidate or an affine seed vector prediction candidate may be derived from an affine seed vector of an affine neighboring block, and an affine seed vector of the current block may be derived using the affine seed vector derived from the merge candidate or the affine seed vector prediction candidate. Alternatively, after searching affine neighboring blocks according to a predetermined scan order, the affine seed vector of the current block may be derived from the affine seed vector of a first-encountered affine neighboring block.

[00177] Doravante no presente documento, será descrito em detalhes um método de derivação de um vetor de origem afim do bloco atual, um candidato de fusão ou um candidato de predição de vetor de origem afim de um vetor de origem afim de um bloco vizinho afim. Nas modalidades descritas abaixo, pode-se compreender que a derivação de um vetor de origem afim do bloco atual é a derivação de um vetor de origem afim de um candidato de fusão ou a derivação de um vetor de origem afim de um candidato de predição de vetor de origem afim.[00177] Hereinafter in this document, a method of deriving an affine seed vector of the current block, a fusion candidate, or an affine seed vector prediction candidate from an affine seed vector of an affine neighboring block will be described in detail. In the embodiments described below, it can be understood that the derivation of an affine seed vector of the current block is the derivation of an affine seed vector of a fusion candidate or the derivation of an affine seed vector from an affine seed vector prediction candidate.

[00178] A Figura 12 é uma vista que mostra um exemplo de derivação de um vetor de origem afim de um bloco atual com base em um vetor de origem afim de um bloco vizinho afim.[00178] Figure 12 is a view showing an example of deriving an affine source vector of a current block based on an affine source vector of an affine neighboring block.

[00179] Quando um primeiro vetor de origem afim nv0 para o ponto de controle superior à esquerda e um segundo vetor de origem afim nv1 para o ponto de controle superior à direita são armazenados para um bloco vizinho afim, um terceiro vetor de origem afim nv2 para o ponto de controle inferior à esquerda do bloco vizinho afim pode ser derivado com base no primeiro vetor de origem afim e no segundo vetor de origem afim. A Equação 4 mostra um exemplo de derivação do terceiro vetor de origem afim. [00179] When a first affine source vector nv0 for the top left control point and a second affine source vector nv1 for the top right control point are stored for an affine neighboring block, a third affine source vector nv2 for the bottom left control point of the affine neighboring block can be derived based on the first affine source vector and the second affine source vector. Equation 4 shows an example of deriving the third affine source vector.

[00180] Na Equação 4, (nv0x, nv0y) denota umprimeiro vetor de origem afim nv0, (nv1x, nv1y) denota um segundo vetor de origem afim nv1 e (nv2x, nv2y) denota um terceiro vetor de origem afim nv2. Além disso, (xn0, xn0) denota a posição do primeiro ponto de controle, (xn1, xn1) denota a posição dosegundo ponto de controle e (xn2, xn2) denota a posição doterceiro ponto de controle.[00180] In Equation 4, (nv0x, nv0y) denotes a first affine source vector nv0, (nv1x, nv1y) denotes a second affine source vector nv1, and (nv2x, nv2y) denotes a third affine source vector nv2. Furthermore, (xn0, xn0) denotes the position of the first control point, (xn1, xn1) denotes the position of the second control point, and (xn2, xn2) denotes the position of the third control point.

[00181] Posteriormente, um vetor de origem afim do bloco atual pode ser derivado com o uso do primeiro vetor de origem afim, do segundo vetor de origem afim e do terceiro vetor de origem afim. A Equação 5 mostra um exemplo de derivação do primeiro vetor de origem afim vo do bloco atual e a Equação 6 mostra um exemplo de derivação do segundo vetor de origem afim v1 do bloco atual. [00181] Subsequently, an affine source vector of the current block can be derived using the first affine source vector, the second affine source vector, and the third affine source vector. Equation 5 shows an example of deriving the first affine source vector vo of the current block, and Equation 6 shows an example of deriving the second affine source vector v1 of the current block.

[00182] Nas Equações 5 e 6, (v0x, v0y) denota oprimeiro vetor de origem afim SVO do bloco atual e (VIX, VIY) denota o segundo vetor de origem afim sv1 do bloco atual. Além disso, (XO, YO) denota a posição do primeiro ponto de controle e (XI, YI) denota a posição do segundo ponto de controle. Por exemplo, o primeiro ponto de controle indica o canto superior esquerdo do bloco atual e o segundo ponto de controle indica o canto superior direito do bloco atual.[00182] In Equations 5 and 6, (v0x, v0y) denotes the first affine source vector SVO of the current block and (VIX, VIY) denotes the second affine source vector sv1 of the current block. Additionally, (XO, YO) denotes the position of the first control point and (XI, YI) denotes the position of the second control point. For example, the first control point denotes the top left corner of the current block and the second control point denotes the top right corner of the current block.

[00183] No exemplo descrito acima, foi descrito que vetores de origem afim do bloco atual são derivados com o uso de três vetores de origem afim para um bloco vizinho afim. Como um outro exemplo, os vetores de origem afim do bloco atual podem ser derivados com o uso apenas de dois dos vetores de origem afim de um bloco vizinho afim.[00183] In the example described above, it was described that affine source vectors of the current block are derived using three affine source vectors for an affine neighboring block. As another example, the affine source vectors of the current block may be derived using only two of the affine source vectors of an affine neighboring block.

[00184] Alternativamente, os vetores de origem afim do bloco atual podem ser derivados com o uso de um quarto vetor de origem afim para o canto inferior à direita, em vez do primeiro vetor de origem afim do canto superior esquerdo, do segundo vetor de origem afim do canto superior direito ou do terceiro vetor de origem afim do canto inferior esquerdo de um bloco vizinho afim.[00184] Alternatively, the affine seed vectors of the current block may be derived using a fourth affine seed vector for the lower right corner, instead of the first affine seed vector for the upper left corner, the second affine seed vector for the upper right corner, or the third affine seed vector for the lower left corner of an affine neighboring block.

[00185] Particularmente, quando a delimitação superior do bloco atual está em contato com a delimitação superior de uma unidade de árvore de codificação, e for desejado usar um vetor de origem afim para um ponto de controle superior (por exemplo, o canto superior esquerdo ou o canto superior direito) de um bloco vizinho afim adjacente ao topo do bloco atual (doravante no presente documento, referido como bloco vizinho afim superior), esses deveriam ser armazenados na memória antecipadamente, e pode ocorrer um problema de aumento no número de armazenamentos temporários de linha. Consequentemente, quando a delimitação superior do bloco atual está em contato com a delimitação superior da unidade de árvore de codificação, isso pode ser ajustado para usar um vetor de origem afim de um ponto de controle inferior (por exemplo, o canto inferior esquerdo ou o canto inferior à direita), em vez do vetor de origem afim do ponto de controle superior, para o bloco vizinho afim superior. Por exemplo, vetores de origem afim do bloco atual podem ser derivados com o uso do terceiro vetor de origem afim para o canto inferior esquerdo e do quarto vetor de origem afim para o canto inferior à direita do bloco vizinho afim superior. Nesse ponto, os vetores de origem afim para os cantos inferiores podem ser copiados dos vetores de origem afim para os cantos superiores ou derivados dos vetores de origem afim para os cantos superiores. Por exemplo, o primeiro vetor de origem afim, o segundo vetor de origem afim ou o terceiro vetor de origem afim pode ser convertido em ou substituir o quarto vetor de origem afim para o canto inferior à direita.[00185] In particular, when the upper boundary of the current block is in contact with the upper boundary of a coding tree unit, and it is desired to use an affine source vector for an upper control point (e.g., the upper left corner or the upper right corner) of an affine neighboring block adjacent to the top of the current block (hereinafter referred to as the upper affine neighboring block), these should be stored in memory in advance, and a problem of increasing the number of line buffers may occur. Accordingly, when the upper boundary of the current block is in contact with the upper boundary of the coding tree unit, this may be adjusted to use an affine source vector of a lower control point (e.g., the lower left corner or the lower right corner), instead of the affine source vector of the upper control point, for the upper affine neighboring block. For example, affine source vectors of the current block can be derived using the third affine source vector for the lower left corner and the fourth affine source vector for the lower right corner of the upper affine neighboring block. At this point, the affine source vectors for the lower corners can be copied from the affine source vectors for the upper corners or derived from the affine source vectors for the upper corners. For example, the first affine source vector, the second affine source vector, or the third affine source vector can be converted to or replaced by the fourth affine source vector for the lower right corner.

[00186] As Equações 7 e 8 mostram um exemplo de derivação do primeiro vetor de origem afim e do segundo vetor de origem afim do bloco atual com o uso do terceiro vetor de origem afim para o ponto de controle inferior à esquerda e do quarto vetor de origem afim para o ponto de controle inferior à direita de um vetor afim vizinho. [00186] Equations 7 and 8 show an example of deriving the first affine source vector and the second affine source vector of the current block using the third affine source vector for the lower left control point and the fourth affine source vector for the lower right control point of a neighboring affine vector.

[00187] Nas Equações 7 e 8, (xn2, yn2) denota ascoordenadas do ponto de controle inferior à esquerda de um bloco vizinho afim e (xn3, yn3) denota as coordenadas do ponto de controle inferior à direita do bloco vizinho afim. (x0, y0) denota as coordenadas do ponto de controle superior à esquerda do bloco atual e (x1, y1) denota as coordenadas do ponto decontrole superior à direita do bloco atual. (nv2x, nv2y) denota o vetor de origem afim do ponto de controle inferior à esquerda de um bloco vizinho afim (isto é, o terceiro vetor de origem afim) e (nv3x, nv3y) denota o vetor de origem afim do ponto de controle inferior à direita do bloco vizinho afim (isto é, o quarto vetor de origem afim). (v0x, v0y) denota o vetor de origem afim do ponto de controle superior à esquerda do bloco atual (isto é, o primeiro vetor de origem afim) e (v1x, v1y) denota o vetor de origem afim do ponto de controle superior à direita do bloco atual (isto é, o segundo vetor de origem afim).[00187] In Equations 7 and 8, (xn2, yn2) denotes the coordinates of the lower left control point of an affine neighboring block, and (xn3, yn3) denotes the coordinates of the lower right control point of the affine neighboring block. (x0, y0) denotes the coordinates of the upper left control point of the current block, and (x1, y1) denotes the coordinates of the upper right control point of the current block. (nv2x, nv2y) denotes the affine seed vector of the lower left control point of an affine neighboring block (i.e., the third affine seed vector), and (nv3x, nv3y) denotes the affine seed vector of the lower right control point of the affine neighboring block (i.e., the fourth affine seed vector). (v0x, v0y) denotes the affine source vector of the top left control point of the current block (i.e., the first affine source vector), and (v1x, v1y) denotes the affine source vector of the top right control point of the current block (i.e., the second affine source vector).

[00188] A operação de divisão incluída nas Equações 7 e 8 pode ser mudada para uma operação de compensação. A operação de compensação pode ser realizada com base em um valor derivado pela largura entre o ponto de controle inferior à esquerda e o ponto de controle inferior à direita (isto é, (xn3-xn2)).[00188] The division operation included in Equations 7 and 8 may be changed to a compensation operation. The compensation operation may be performed based on a value derived by the width between the lower left control point and the lower right control point (i.e., (xn3-xn2)).

[00189] Conforme mostrado no exemplo descrito acima, vetores de origem afim do bloco atual podem ser derivados de vetores de origem afim de um bloco vizinho afim que foi codificado/decodificado. Para essa finalidade, vetores de origem afim do bloco vizinho afim que foi codificado/decodificado deveriam ser armazenados na memória. Contudo, como os vetores de origem afim do bloco vizinho afim são armazenados na memória além de vetores de movimento translacional (isto é, vetores afins) de sub-blocos incluídos no bloco vizinho afim, existe um problema de aumento do uso de memória. A fim de resolver esse problema, o vetor de origem afim do bloco atual pode ser derivado com o uso do vetor de movimento de um sub-bloco adjacente ao ponto de controle do bloco vizinho afim, em vez do vetor de origem afim do bloco vizinho afim. Isto é, um vetor de movimento de um sub-bloco adjacente ao ponto de controle de um bloco vizinho afim pode ser ajustado como o vetor de origem afim do bloco vizinho afim. Aqui, o sub-bloco é um bloco que tem um tamanho/formato predefinido no codificador e no decodificador, e pode ser um bloco que tem um tamanho/formato básico para armazenar um vetor de movimento. Por exemplo, o sub-bloco pode ser um bloco quadrado de um tamanho de 4x4. Alternativamente, um vetor de movimento para uma posição de amostra específica pode ser ajustado como o vetor de origem afim do bloco vizinho afim.[00189] As shown in the example described above, affine source vectors of the current block can be derived from affine source vectors of an affine neighboring block that has been encoded/decoded. For this purpose, affine source vectors of the affine neighboring block that has been encoded/decoded should be stored in memory. However, since the affine source vectors of the affine neighboring block are stored in memory in addition to translational motion vectors (i.e., affine vectors) of sub-blocks included in the affine neighboring block, there is a problem of increased memory usage. In order to solve this problem, the affine source vector of the current block can be derived using the motion vector of a sub-block adjacent to the control point of the affine neighboring block, instead of the affine source vector of the affine neighboring block. That is, a motion vector of a sub-block adjacent to the control point of an affine neighboring block can be set as the affine source vector of the affine neighboring block. Here, the sub-block is a block that has a predefined size/shape in the encoder and decoder, and can be a block that has a basic size/shape for storing a motion vector. For example, the sub-block can be a square block of a size of 4x4. Alternatively, a motion vector for a specific sample position can be set as the affine seed vector of the affine neighboring block.

[00190] A Figura 13 é uma vista que mostra um exemplo de ajuste de um vetor de movimento de um sub-bloco como um vetor de origem afim de um bloco vizinho afim.[00190] Figure 13 is a view showing an example of adjusting a motion vector of a sub-block as an affine source vector of an affine neighboring block.

[00191] Um vetor de movimento de um sub-bloco adjacente a um ponto de controle pode ser ajustado como um vetor de origem afim do ponto de controle. Por exemplo, no exemplo mostrado na Figura 13, um vetor de movimento (nv4x, nv4y) de um sub-bloco (sub-bloco inferior à esquerda) adjacente ao canto inferior esquerdo de um bloco vizinho afim pode ser ajustado como o vetor de origem afim (nv2x, nv2x) do ponto de controle inferior à esquerda e um vetor de movimento (nv5x, nv5y) de um sub-bloco (sub-bloco inferior à direita) adjacente ao canto inferior à direita pode ser ajustado como o vetor de origem afim (nv3x, nv3y) do ponto de controle no canto inferior à direita. Aqui, o sub-bloco inferior à esquerda pode significar um sub-bloco que inclui uma amostra (por exemplo, uma amostra na posição de (xn2, yn2-1)) adjacente ao ponto de controle inferior à esquerda (xn2, yn2) no bloco afim vizinho e o sub-bloco inferior à direita pode significar um bloco que inclui uma amostra (por exemplo, uma amostra na posição de (xn3-1, yn3-1)) adjacente ao ponto de controle inferior à direita (xn3, yn3) no bloco afim vizinho. Quando vetores de origem afim do bloco atual são derivados com base nas Equações 7 e 8, o terceiro vetor de origem afim do bloco vizinho afim pode ser substituído pelo vetor de movimento do sub-bloco inferior à esquerda, e o quarto vetor de origem afim pode ser substituído pelo vetor de movimento do sub-bloco inferior à direita.[00191] A motion vector of a subblock adjacent to a control point may be set as an affine source vector of the control point. For example, in the example shown in Figure 13, a motion vector (nv4x, nv4y) of a subblock (bottom left subblock) adjacent to the bottom left corner of an affine neighboring block may be set as the affine source vector (nv2x, nv2x) of the bottom left control point, and a motion vector (nv5x, nv5y) of a subblock (bottom right subblock) adjacent to the bottom right corner may be set as the affine source vector (nv3x, nv3y) of the control point in the bottom right corner. Here, the bottom left sub-block may mean a sub-block that includes a sample (e.g., a sample at the position of (xn2, yn2-1)) adjacent to the bottom left control point (xn2, yn2) in the neighboring affine block, and the bottom right sub-block may mean a block that includes a sample (e.g., a sample at the position of (xn3-1, yn3-1)) adjacent to the bottom right control point (xn3, yn3) in the neighboring affine block. When affine source vectors of the current block are derived based on Equations 7 and 8, the third affine source vector of the neighboring affine block may be replaced by the motion vector of the bottom left sub-block, and the fourth affine source vector may be replaced by the motion vector of the bottom right sub-block.

[00192] Doravante no presente documento, na modalidade descrita abaixo, um sub-bloco usado como o vetor de origem afim de um bloco vizinho afim será referido como um sub-bloco afim.[00192] Hereinafter in this document, in the embodiment described below, a sub-block used as the affine source vector of an affine neighboring block will be referred to as an affine sub-block.

[00193] De acordo com uma modalidade da presente invenção, um sub-bloco afim pode ser determinado com base em uma amostra em uma posição específica. Por exemplo, um sub- bloco que inclui uma amostra em uma posição específica pode ser ajustado como um sub-bloco afim. Doravante no presente documento, uma amostra em uma posição específica será referida como uma amostra de referência afim. Além disso, uma amostra de referência usada para determinar um sub-bloco afim do ponto de controle inferior à esquerda é referida como uma amostra de referência inferior à esquerda e uma amostra de referência usada para determinar um sub-bloco afim do ponto de controle inferior à direita é referida como uma amostra de referência inferior à direita.[00193] According to one embodiment of the present invention, an affine subblock can be determined based on a sample at a specific position. For example, a subblock that includes a sample at a specific position can be set as an affine subblock. Hereinafter, a sample at a specific position will be referred to as an affine reference sample. Furthermore, a reference sample used to determine an affine subblock of the lower left control point is referred to as a lower left reference sample, and a reference sample used to determine an affine subblock of the lower right control point is referred to as a lower right reference sample.

[00194] A amostra de referência inferior à esquerda e a amostra de referência inferior à direita podem ser selecionadas de amostras incluídas no bloco vizinho afim. Por exemplo, pelo menos uma dentre a amostra superior à esquerda, a amostra inferior à esquerda, a amostra superior à direita e a amostra inferior à esquerda do sub-bloco inferior à esquerda pode ser ajustada como a amostra de referência inferior à esquerda, e pelo menos uma dentre a amostra superior à esquerda, a amostra inferior à esquerda, a amostra superior à direita e a amostra inferior à esquerda do sub-bloco inferior à direita pode ser ajustada como a amostra de referência inferior à direita. Consequentemente, vetores de movimento do sub-bloco inferior à esquerda incluindo a amostra de referência inferior à esquerda e do sub-bloco inferior à direita incluindo a amostra de referência inferior à direita podem ser ajustados como um vetor de origem afim para o ponto de controle inferior à esquerda e um vetor de origem afim para o ponto de controle inferior à direita, respectivamente.[00194] The lower left reference sample and the lower right reference sample may be selected from samples included in the affine neighboring block. For example, at least one of the upper left sample, the lower left sample, the upper right sample, and the lower left sample of the lower left sub-block may be set as the lower left reference sample, and at least one of the upper left sample, the lower left sample, the upper right sample, and the lower left sample of the lower right sub-block may be set as the lower right reference sample. Accordingly, motion vectors of the lower left sub-block including the lower left reference sample and of the lower right sub-block including the lower right reference sample may be set as an affine seed vector for the lower left control point and an affine seed vector for the lower right control point, respectively.

[00195] Como um outro exemplo, pelo menos uma dentre a amostra de referência inferior à esquerda e a amostra de referência inferior à direita pode ser ajustada como uma amostra posicionada fora do bloco vizinho afim. Isso será descrito em detalhes com referência às Figuras 14 a 16.[00195] As a further example, at least one of the lower left reference sample and the lower right reference sample may be set as a sample positioned outside of the neighboring affine block. This will be described in detail with reference to Figures 14 to 16.

[00196] As Figuras 14 a 16 são vistas que mostram posições de amostras de referência.[00196] Figures 14 to 16 are views showing positions of reference samples.

[00197] Conforme mostrado no exemplo da Figura 14(a), a amostra superior à esquerda do sub-bloco inferior à esquerda pode ser ajustada como a amostra de referência (xn4, yn4) para o ponto de controle inferior à esquerda. Consequentemente, o sub-bloco inferior à esquerda incluindo a amostra de referência (xn4 e yn4) pode ser ajustado como o sub- bloco afim para o ponto de controle inferior à esquerda.[00197] As shown in the example of Figure 14(a), the upper left sample of the lower left sub-block can be set as the reference sample (xn4, yn4) for the lower left control point. Accordingly, the lower left sub-block including the reference sample (xn4 and yn4) can be set as the affine sub-block for the lower left control point.

[00198] Uma amostra posicionada no lado direito da amostra superior à direita do sub-bloco inferior à direita pode ser ajustada como a amostra de referência (xn5, yn5) para o ponto de controle inferior à direita. Consequentemente, um sub-bloco adjacente ao lado direito do sub-bloco inferior à direita incluindo a amostra de referência (xn5 e yn5) pode ser ajustado como um sub-bloco afim para o ponto de controle inferior à direita.[00198] A sample positioned on the right side of the upper right sample of the lower right sub-block may be set as the reference sample (xn5, yn5) for the lower right control point. Accordingly, a sub-block adjacent to the right side of the lower right sub-block including the reference sample (xn5 and yn5) may be set as an affine sub-block for the lower right control point.

[00199] Alternativamente, conforme mostrado no exemplo da Figura 14(b), uma amostra posicionada no lado esquerdo da amostra superior à esquerda do sub-bloco inferior à esquerda pode ser ajustada como a amostra de referência (xn4, yn4) para o ponto de controle inferior à esquerda. Consequentemente, um sub-bloco adjacente ao lado esquerdo do sub-bloco inferior à esquerda incluindo a amostra de referência (xn4 e yn4) pode ser ajustado como o sub-bloco afim para o ponto de controle inferior à esquerda.[00199] Alternatively, as shown in the example of Figure 14(b), a sample positioned on the left side of the upper left sample of the lower left sub-block may be set as the reference sample (xn4, yn4) for the lower left control point. Accordingly, a sub-block adjacent to the left side of the lower left sub-block including the reference sample (xn4 and yn4) may be set as the affine sub-block for the lower left control point.

[00200] A amostra superior à direita do sub-bloco inferior à direita pode ser ajustada como a amostra de referência (xn5, yn5) para o ponto de controle inferior à direita. Consequentemente, o sub-bloco inferior à direita incluindo a amostra de referência (xn5 e yn5) pode ser ajustado como o sub-bloco afim para o ponto de controle inferior à direita.[00200] The upper right sample of the lower right sub-block may be set as the reference sample (xn5, yn5) for the lower right control point. Accordingly, the lower right sub-block including the reference sample (xn5 and yn5) may be set as the affine sub-block for the lower right control point.

[00201] Alternativamente, conforme mostrado no exemplo da Figura 15(a), a amostra inferior à esquerda do sub- bloco inferior à esquerda pode ser ajustada como a amostra de referência (xn4, yn4) para o ponto de controle inferior à esquerda. Consequentemente, o sub-bloco inferior à esquerda incluindo a amostra de referência (xn4 e yn4) pode ser ajustado como o sub-bloco afim para o ponto de controle inferior à esquerda.[00201] Alternatively, as shown in the example of Figure 15(a), the lower left sample of the lower left sub-block may be set as the reference sample (xn4, yn4) for the lower left control point. Accordingly, the lower left sub-block including the reference sample (xn4 and yn4) may be set as the affine sub-block for the lower left control point.

[00202] A amostra posicionada no lado direito da amostra inferior à direita do sub-bloco inferior à direita pode ser ajustada como a amostra de referência (xn5, yn5) para o ponto de controle inferior à direita. Consequentemente, um sub-bloco adjacente ao lado direito do sub-bloco inferior à direita incluindo a amostra de referência (xn5 e yn5) pode ser ajustado como o sub-bloco afim para o ponto de controle inferior à direita.[00202] The sample positioned on the right side of the lower right sample of the lower right sub-block may be set as the reference sample (xn5, yn5) for the lower right control point. Accordingly, a sub-block adjacent to the right side of the lower right sub-block including the reference sample (xn5 and yn5) may be set as the affine sub-block for the lower right control point.

[00203] Alternativamente, conforme mostrado no exemplo da Figura 15(b), uma amostra posicionada no lado esquerdo da amostra inferior à esquerda do sub-bloco inferior à esquerda pode ser ajustada como a amostra de referência (xn4, yn4) para o ponto de controle inferior à esquerda. Consequentemente, um sub-bloco adjacente ao lado esquerdo do sub-bloco inferior à esquerda incluindo a amostra de referência (xn4 e yn4) pode ser ajustado como o sub-bloco afim para o ponto de controle inferior à esquerda.[00203] Alternatively, as shown in the example of Figure 15(b), a sample positioned on the left side of the lower left sample of the lower left sub-block may be set as the reference sample (xn4, yn4) for the lower left control point. Accordingly, a sub-block adjacent to the left side of the lower left sub-block including the reference sample (xn4 and yn4) may be set as the affine sub-block for the lower left control point.

[00204] A amostra superior à direita do sub-bloco superior à direita pode ser ajustada como a amostra de referência (xn5, yn5) para o ponto de controle inferior à direita. Consequentemente, o sub-bloco inferior à direita incluindo a amostra de referência (xn5 e yn5) pode ser ajustado como o sub-bloco afim para o ponto de controle inferior à direita.[00204] The upper right sample of the upper right sub-block may be set as the reference sample (xn5, yn5) for the lower right control point. Accordingly, the lower right sub-block including the reference sample (xn5 and yn5) may be set as the affine sub-block for the lower right control point.

[00205] Alternativamente, conforme mostrado no exemplo da Figura 16(a), uma amostra posicionada entre a amostra superior à esquerda e amostra inferior à esquerda do sub-bloco inferior à esquerda (por exemplo, uma amostra intermediária à esquerda) pode ser ajustada como a amostra de referência (xn4, yn4) para o ponto de controle inferior à esquerda. Consequentemente, o sub-bloco inferior à esquerda incluindo a amostra de referência (xn4 e yn4) pode ser ajustado como o sub-bloco afim para o ponto de controle inferior à esquerda.[00205] Alternatively, as shown in the example of Figure 16(a), a sample positioned between the top left sample and bottom left sample of the bottom left sub-block (e.g., a middle left sample) may be set as the reference sample (xn4, yn4) for the bottom left control point. Accordingly, the bottom left sub-block including the reference sample (xn4 and yn4) may be set as the affine sub-block for the bottom left control point.

[00206] A amostra posicionada no lado direito de uma amostra posicionada entre a amostra superior à direita e a amostra inferior à direita do sub-bloco inferior à direita (por exemplo, uma amostra intermediária à direita) pode ser ajustada como a amostra de referência (xn5, yn5) para o ponto de controle inferior à direita. Consequentemente, um sub-bloco adjacente ao lado direito do sub-bloco inferior à direita incluindo a amostra de referência (xn5 e yn5) pode ser ajustado como o sub-bloco afim para o ponto de controle inferior à direita.[00206] The sample positioned on the right side of a sample positioned between the upper right sample and the lower right sample of the lower right subblock (e.g., a right intermediate sample) may be set as the reference sample (xn5, yn5) for the lower right control point. Accordingly, a subblock adjacent to the right side of the lower right subblock including the reference sample (xn5 and yn5) may be set as the affine subblock for the lower right control point.

[00207] Alternativamente, conforme mostrado no exemplo da Figura 16 (b), uma amostra posicionada no ladoesquerdo de uma amostra posicionada entre a amostra superior à esquerda e a amostra inferior à esquerda do sub-bloco inferior à esquerda pode ser ajustada como a amostra de referência (xn4, yn4) para o ponto de controle inferior àesquerda. Consequentemente, um sub-bloco adjacente ao lado esquerdo do sub-bloco inferior à esquerda incluindo a amostra de referência (xn4 e yn4) pode ser ajustado como o sub-blocoafim para o ponto de controle inferior à esquerda.[00207] Alternatively, as shown in the example of Figure 16(b), a sample positioned on the left side of a sample positioned between the upper left sample and the lower left sample of the lower left sub-block may be set as the reference sample (xn4, yn4) for the lower left control point. Accordingly, a sub-block adjacent to the left side of the lower left sub-block including the reference sample (xn4 and yn4) may be set as the affine sub-block for the lower left control point.

[00208] Uma amostra posicionada entre a amostra superior à direita e a amostra inferior à direita do sub-bloco inferior à direita pode ser ajustada como a amostra de referência (xn5, yn5) para o ponto de controle inferior àdireita. Consequentemente, o sub-bloco inferior à direita incluindo a amostra de referência (xn5 e yn5) pode ser ajustado como o sub-bloco afim para o ponto de controle inferior à direita.[00208] A sample positioned between the upper right sample and the lower right sample of the lower right sub-block may be set as the reference sample (xn5, yn5) for the lower right control point. Accordingly, the lower right sub-block including the reference sample (xn5 and yn5) may be set as the affine sub-block for the lower right control point.

[00209] Quando os vetores de origem afim do bloco atual são derivados com base nas Equações 7 e 8, o terceiro vetor de origem afim de um bloco vizinho afim pode ser substituído pelo vetor de movimento do sub-bloco afim para o ponto de controle inferior à esquerda, e o quarto vetor de origem afim pode ser substituído pelo vetor de movimento do sub-bloco afim para o ponto de controle inferior à direita. Além disso, a posição do ponto de controle inferior à esquerda pode ser substituída pela posição da amostra de referência inferior à esquerda, e a posição do ponto de controle inferior à direita pode ser substituída pela posição da amostra de referência inferior à direita.[00209] When the affine source vectors of the current block are derived based on Equations 7 and 8, the third affine source vector of an affine neighboring block may be replaced by the motion vector of the affine sub-block for the lower left control point, and the fourth affine source vector may be replaced by the motion vector of the affine sub-block for the lower right control point. Furthermore, the position of the lower left control point may be replaced by the position of the lower left reference sample, and the position of the lower right control point may be replaced by the position of the lower right reference sample.

[00210] Diferente das modalidades descritas com referência às Figuras 14 a 16, um sub-bloco que inclui uma amostra adjacente a uma amostra de referência pode ser ajustado como um sub-bloco afim. Especificamente, uma amostra posicionada fora de um sub-bloco vizinho afim pode ser ajustada como uma amostra de referência e um sub-bloco incluído em um bloco vizinho afim pode ser ajustado como um sub-bloco afim. Por exemplo, no exemplo mostrado na Figura 14(a), a amostra posicionada no lado direito da amostra superior à direita do sub-bloco inferior à direita pode ser ajustada como a amostra de referência (xn5, yn5) e o sub-bloco inferior à direita pode ser ajustado como o sub-bloco afim para o canto inferior à direita. Alternativamente, no exemplo mostrado na Figura 14(b), a amostra posicionada à esquerda da amostra superior à esquerda do sub-bloco inferior à esquerda pode ser ajustada como a amostra de referência (xn4, yn4) e o sub-bloco inferior à esquerda pode ser ajustado como o sub-bloco afim para o canto inferior esquerdo.[00210] Different from the embodiments described with reference to Figures 14-16, a subblock that includes a sample adjacent to a reference sample may be set as an affine subblock. Specifically, a sample positioned outside of an affine neighboring subblock may be set as a reference sample, and a subblock included in an affine neighboring block may be set as an affine subblock. For example, in the example shown in Figure 14(a), the sample positioned on the right side of the top right sample of the bottom right subblock may be set as the reference sample (xn5, yn5), and the bottom right subblock may be set as the affine subblock for the bottom right corner. Alternatively, in the example shown in Figure 14(b), the sample positioned to the left of the top left sample of the bottom left sub-block can be set as the reference sample (xn4, yn4) and the bottom left sub-block can be set as the affine sub-block for the bottom left.

[00211] As modalidades descritas acima podem ser igualmente aplicadas às Figuras 15 e 16. Isto é, no exemplo mostrado na Figura 15(a) ou 16(a), a amostra posicionada no lado direito da amostra inferior à direita ou da amostra intermediária à direita do sub-bloco inferior à direita pode ser ajustada como a amostra de referência (xn5, yn5) e o sub- bloco inferior à direita pode ser ajustado como o sub-bloco afim para o canto inferior à direita. Alternativamente, no exemplo mostrado na Figura 15(b) ou 16(b), a amostra posicionada no lado esquerdo da amostra inferior à esquerda ou a amostra intermediária à esquerda do sub-bloco inferior à esquerda pode ser ajustada como a amostra de referência (xn4, yn4) e o sub-bloco inferior à esquerda pode ser ajustado como o sub-bloco afim para o canto inferior esquerdo.[00211] The embodiments described above may be equally applied to Figures 15 and 16. That is, in the example shown in Figure 15(a) or 16(a), the sample positioned on the right side of the bottom right sample or the middle right sample of the bottom right subblock may be set as the reference sample (xn5, yn5) and the bottom right subblock may be set as the affine subblock for the bottom right corner. Alternatively, in the example shown in Figure 15(b) or 16(b), the sample positioned on the left side of the bottom left sample or the middle left sample of the bottom left subblock may be set as the reference sample (xn4, yn4) and the bottom left subblock may be set as the affine subblock for the bottom left corner.

[00212] Conforme mostrado nos exemplos descritos acima, um vetor de origem afim de um bloco vizinho afim pode ser derivado com o uso do vetor de movimento de um sub-bloco afim. Para essa finalidade, no caso de um bloco que foi codificado/decodificado, o vetor de movimento pode ser armazenado pela unidade de sub-bloco.[00212] As shown in the examples described above, an affine source vector of an affine neighboring block may be derived using the motion vector of an affine sub-block. For this purpose, in the case of a block that has been encoded/decoded, the motion vector may be stored by the sub-block unit.

[00213] Como um outro exemplo, após oarmazenamento de um número mínimo de vetores de origem afim para um bloco vizinho afim, um vetor de movimento de um sub- bloco afim pode ser derivado com o uso dos vetores de origem afim armazenados.[00213] As another example, after storing a minimum number of affine source vectors for an affine neighboring block, a motion vector of an affine sub-block can be derived using the stored affine source vectors.

[00214] As Equações 9 e 10 mostram um exemplo de derivação de um vetor de movimento de um sub-bloco afim com o uso de vetores de origem afim de um bloco vizinho afim. [00214] Equations 9 and 10 show an example of deriving a motion vector of an affine sub-block using affine source vectors from a neighboring affine block.

[00215] Nas Equações 9 e 10, (nv4x, nv4y) denota umvetor de movimento de um sub-bloco afim para o ponto de controle inferior à esquerda e (nv5x, nv5y) denota um vetor de movimento de um sub-bloco afim para o ponto de controle inferior à direita. Visto que o vetor de movimento de um sub- bloco afim e o vetor de origem afim de um ponto de controle são ajustados igualmente, (nv4x, nv4y) pode ser substituído pelo vetor de origem afim (nv2x, nv2y) para o ponto de controleinferior à esquerda ou (nv5x, nv5y) pode ser substituído pelo vetor de origem afim (nv3x, nv3y) para o ponto de controleinferior à direita.[00215] In Equations 9 and 10, (nv4x, nv4y) denotes a motion vector from an affine subblock to the lower left control point and (nv5x, nv5y) denotes a motion vector from an affine subblock to the lower right control point. Since the motion vector of an affine subblock and the affine source vector of a control point are adjusted equally, (nv4x, nv4y) can be replaced by the affine source vector (nv2x, nv2y) for the lower left control point or (nv5x, nv5y) can be replaced by the affine source vector (nv3x, nv3y) for the lower right control point.

[00216] (xn4, yn4) denota a posição da amostra dereferência para o sub-bloco inferior à esquerda. Alternativamente, a posição central do sub-bloco inferior à esquerda ou a posição do ponto de controle inferior à esquerda pode ser usada em vez disso. (xn5, yn5) denota a posição daamostra de referência para o sub-bloco inferior à direita. Alternativamente, a posição central do sub-bloco inferior àdireita ou a posição do ponto de controle inferior à direita pode ser usada em vez disso.[00216] (xn4, yn4) denotes the position of the reference sample for the lower left sub-block. Alternatively, the center position of the lower left sub-block or the position of the lower left control point may be used instead. (xn5, yn5) denotes the position of the reference sample for the lower right sub-block. Alternatively, the center position of the lower right sub-block or the position of the lower right control point may be used instead.

[00217] As Equações 9 e 10 podem ser aplicadasquando o bloco atual não está em contato com a delimitação de uma unidade de árvore de codificação. Quando o bloco atual está em contato com a delimitação superior de uma unidade de árvore de codificação, em vez de usar as Equações 9 e 10, um vetor de movimento translacional de um sub-bloco afim determinado com base na amostra de referência inferior à esquerda pode ser ajustado como o terceiro vetor de origem afim, e um vetor de movimento translacional de um sub-bloco afim determinado com base na amostra de referência inferior à direita pode ser ajustado como o quarto vetor de origem afim.[00217] Equations 9 and 10 may be applied when the current block is not in contact with the boundary of a coding tree unit. When the current block is in contact with the upper boundary of a coding tree unit, instead of using Equations 9 and 10, a translational motion vector of an affine sub-block determined based on the lower left reference sample may be set as the third affine seed vector, and a translational motion vector of an affine sub-block determined based on the lower right reference sample may be set as the fourth affine seed vector.

[00218] Nas Equações 7 e 8, (xn3-xn2) denota a largura entre o ponto de controle inferior à esquerda e o ponto de controle inferior à direita. Conforme descrito acima, xn3 pode ser substituída pela posição xn5 da amostra de referência inferior à direita e xn2 pode ser substituída pela posição xn4 da amostra de referência inferior à esquerda. Doravante no presente documento, (xn3-xn2) ou um valor obtido por meio da substituição das posições da equação acima pelas posições de amostras de referência (por exemplo, (xn5-xn4)) é definido como Wseed variável, e a variável é referida como uma largura de vetor de suborigem.[00218] In Equations 7 and 8, (xn3-xn2) denotes the width between the lower left control point and the lower right control point. As described above, xn3 may be replaced by the position xn5 of the lower right reference sample, and xn2 may be replaced by the position xn4 of the lower left reference sample. Hereinafter, (xn3-xn2) or a value obtained by replacing the positions of the above equation with the positions of reference samples (e.g., (xn5-xn4)) is defined as the Wseed variable, and the variable is referred to as a suborigin vector width.

[00219] De acordo com as posições de amostras de referência, pode ocorrer um caso em que a largura de vetor de suborigem não é uma série de potência de 2 (por exemplo, 2n). Por exemplo, quando a amostra inferior à esquerda do sub-bloco inferior à esquerda é ajustada como a amostra de referência inferior à esquerda, e a amostra inferior à direita do sub- bloco inferior à direita é ajustada como a amostra de referência inferior à direita, a largura de vetor de suborigem não é um múltiplo de 2. Conforme descrito acima, quando a largura de vetor de suborigem não é uma série de potência de 2, a largura de vetor de suborigem pode ser transformada para ser uma série de potência de 2. A transformada pode incluir a adição ou subtração de um deslocamento para ou da largura de vetor de suborigem, ou com o uso de uma posição da amostra adjacente à amostra de referência em vez da posição da amostra de referência. Por exemplo, uma largura de vetor de suborigem transformada pode ser derivada por meio da adição de 1 à largura entre a amostra de referência inferior à esquerda e a amostra de referência inferior à direita. Alternativamente, uma largura entre uma amostra de referência vizinha adjacente ao lado direito da amostra de referência inferior à direita e uma amostra de referência inferior à esquerda pode ser ajustada como a largura de vetor de suborigem transformada. Posteriormente, um vetor de origem afim do bloco atual pode ser derivado por meio da aplicação da largura de vetor de suborigem transformada às Equações 7 e 8.[00219] Depending on the reference sample positions, a case may occur where the suborigin vector width is not a power-of-2 series (e.g., 2n). For example, when the bottom left sample of the bottom left subblock is set as the bottom left reference sample, and the bottom right sample of the bottom right subblock is set as the bottom right reference sample, the suborigin vector width is not a multiple of 2. As described above, when the suborigin vector width is not a power-of-2 series, the suborigin vector width may be transformed to be a power-of-2 series. The transform may include adding or subtracting an offset to or from the suborigin vector width, or using a sample position adjacent to the reference sample instead of the reference sample position. For example, a transformed suborigin vector width can be derived by adding 1 to the width between the lower left reference sample and the lower right reference sample. Alternatively, a width between a neighboring reference sample adjacent to the right side of the lower right reference sample and a lower left reference sample can be set as the transformed suborigin vector width. Subsequently, an affine source vector of the current block can be derived by applying the transformed suborigin vector width to Equations 7 and 8.

[00220] A operação de divisão incluída nas Equações 7 e 8 pode ser mudada para uma operação de compensação. A operação de compensação pode ser realizada com base em um valor derivado pela largura de vetor de suborigem transformada (isto é, um valor expresso como uma série de potência de 2).[00220] The division operation included in Equations 7 and 8 may be changed to a compensation operation. The compensation operation may be performed based on a value derived by the transformed suborigin vector width (i.e., a value expressed as a power-of-2 series).

[00221] Quando a amostra de referência usada para determinar o sub-bloco afim não pertence ao bloco vizinho afim, o vetor de origem afim do bloco vizinho afim pode ser derivado com base em uma amostra adjacente à amostra de referência dentre as amostras incluídas no bloco vizinho afim. Especificamente, um vetor de movimento translacional de um sub-bloco que inclui uma amostra adjacente à amostra de referência no bloco vizinho afim (doravante no presente documento, referida como uma amostra de referência vizinha) pode ser ajustado como o vetor de origem afim do bloco vizinho afim. Dessa maneira, um método de derivação de um vetor de origem afim com o uso de uma amostra de referência vizinha pode ser definido como um método de derivação de vetor de fusão afim modificado.[00221] When the reference sample used to determine the affine sub-block does not belong to the affine neighboring block, the affine source vector of the affine neighboring block may be derived based on a sample adjacent to the reference sample among the samples included in the affine neighboring block. Specifically, a translational motion vector of a sub-block that includes a sample adjacent to the reference sample in the affine neighboring block (hereinafter referred to as a neighboring reference sample) may be set as the affine source vector of the affine neighboring block. In this way, a method of deriving an affine source vector using a neighboring reference sample may be defined as a modified affine fusion vector derivation method.

[00222] A Figura 17 é uma vista que mostra um exemplo de aplicação de um método de derivação de vetor de fusão afim modificado.[00222] Figure 17 is a view showing an example application of a modified affine fusion vector derivation method.

[00223] Quando a amostra de referência inferior à direita (xn5, yn5) do bloco vizinho afim E não pertence ao bloco vizinho afim, um vetor de origem afim pode ser derivado com base em uma amostra (xn5-1, yn5) adjacente ao lado esquerdo da amostra de referência inferior à direita dentre as amostras incluídas no bloco vizinho afim. Especificamente, um vetor de movimento translacional de um sub-bloco que inclui a amostra de referência vizinha (xn5-1, yn5) pode ser ajustado como o vetor de origem afim do ponto de controle inferior à direita.[00223] When the lower right reference sample (xn5, yn5) of the affine neighboring block E does not belong to the affine neighboring block, an affine seed vector may be derived based on a sample (xn5-1, yn5) adjacent to the left side of the lower right reference sample from among the samples included in the affine neighboring block. Specifically, a translational motion vector of a sub-block that includes the neighboring reference sample (xn5-1, yn5) may be set as the affine seed vector of the lower right control point.

[00224] No exemplo mostrado na Figura 17, é mostrado que uma amostra adjacente ao lado direito da amostra superior à direita do sub-bloco inferior à direita é a amostra de referência inferior à direita. Mesmo quando uma amostra adjacente ao lado direito da amostra inferior à direita do sub-bloco inferior à direita ou uma amostra adjacente ao lado direito da amostra intermediária à direita do sub-bloco inferior à direita é ajustada como a amostra de referência inferior à direita, um vetor de origem afim pode ser derivado com base em uma amostra adjacente ao lado esquerdo da amostra de referência vizinha.[00224] In the example shown in Figure 17, it is shown that a sample adjacent to the right side of the top right sample of the bottom right sub-block is the bottom right reference sample. Even when a sample adjacent to the right side of the bottom right sample of the bottom right sub-block or a sample adjacent to the right side of the middle right sample of the bottom right sub-block is set as the bottom right reference sample, an affine seed vector can be derived based on a sample adjacent to the left side of the neighboring reference sample.

[00225] Além disso, mesmo quando a amostra de referência inferior à esquerda não pertence ao bloco vizinho afim, de acordo com a modalidade descrita acima, o vetor de origem afim pode ser derivado com base em uma amostra adjacente ao lado direito da amostra de referência inferior à esquerda.[00225] Furthermore, even when the lower left reference sample does not belong to the affine neighboring block, according to the embodiment described above, the affine seed vector may be derived based on a sample adjacent to the right side of the lower left reference sample.

[00226] Como a posição da amostra de referência e do sub-bloco para derivar um vetor de origem afim são ajustados de maneira diferente, a largura de vetor de suborigem pode ser ajustada para uma série de potência de 2.[00226] Since the position of the reference sample and the sub-block for deriving an affine source vector are adjusted differently, the sub-source vector width can be adjusted to a power-of-2 series.

[00227] Um candidato de fusão, um candidato de predição de vetor de origem afim ou um vetor de origem afim do bloco atual pode ser derivado com o uso de um bloco vizinho que não foi codificado em um modo inter afim na vizinhança do bloco atual. Especificamente, blocos não codificados no modo inter afim podem ser combinados e uma combinação dos mesmos pode ser ajustada como um candidato de fusão ou um candidato de predição de vetor de origem afim. Por exemplo, uma combinação de pelo menos um dentre um vetor de movimento de qualquer um dentre blocos vizinhos adjacentes ao canto superior esquerdo do bloco atual, um vetor de movimento de qualquer um dentre blocos vizinhos adjacentes ao canto superior direito do bloco atual e um vetor de movimento de qualquer um dentre blocos vizinhos adjacentes ao canto inferior esquerdo do bloco atual pode ser ajustada como um candidato de fusão ou um candidato de predição de vetor de origem afim. Nesse ponto, um vetor de movimento de um bloco vizinho adjacente ao canto superior esquerdo, um vetor de movimento de um bloco vizinho adjacente ao canto superior direito e um vetor de movimento de um bloco vizinho adjacente ao canto inferior esquerdo pode ser ajustado como um primeiro vetor de origem afim para o ponto de controle superior à esquerda, um segundo vetor de origem afim para o ponto de controle superior à direita e um terceiro vetor de origem afim para o ponto de controle inferior à esquerda, respectivamente.[00227] A fusion candidate, an affine seed vector prediction candidate, or an affine seed vector of the current block may be derived using a neighboring block that has not been encoded in an inter-affine mode in the neighborhood of the current block. Specifically, blocks not encoded in the inter-affine mode may be combined and a combination thereof may be set as a fusion candidate or an affine seed vector prediction candidate. For example, a combination of at least one of a motion vector of any of neighboring blocks adjacent to the upper left corner of the current block, a motion vector of any of neighboring blocks adjacent to the upper right corner of the current block, and a motion vector of any of neighboring blocks adjacent to the lower left corner of the current block may be set as a fusion candidate or an affine seed vector prediction candidate. At this point, a motion vector of a neighboring block adjacent to the upper left corner, a motion vector of a neighboring block adjacent to the upper right corner, and a motion vector of a neighboring block adjacent to the lower left corner can be set as a first affine source vector for the upper left control point, a second affine source vector for the upper right control point, and a third affine source vector for the lower left control point, respectively.

[00228] Alternativamente, um candidato de fusão, um candidato de predição de vetor de origem afim ou um vetor de origem afim do bloco atual pode ser derivado com o uso de um bloco vizinho que não é codificado no modo inter afim no método de derivação de vetor de fusão afim modificado descrito acima. Doravante no presente documento, um bloco vizinho que não é codificado no modo inter afim será referido como um bloco vizinho não-afim.[00228] Alternatively, a fusion candidate, an affine seed vector prediction candidate, or an affine seed vector of the current block may be derived using a neighboring block that is not encoded in the inter-affine mode in the modified affine fusion vector derivation method described above. Hereinafter in this document, a neighboring block that is not encoded in the inter-affine mode will be referred to as a non-affine neighboring block.

[00229] A Figura 18 é uma vista que mostra um exemplo de derivação de um vetor de origem afim de um bloco atual com base em um bloco vizinho não-afim.[00229] Figure 18 is a view showing an example of deriving an affine source vector of a current block based on a non-affine neighboring block.

[00230] No exemplo mostrado na Figura 18, presume- se que todos os blocos vizinhos adjacentes ao bloco atual são blocos vizinhos não-afins.[00230] In the example shown in Figure 18, it is assumed that all neighboring blocks adjacent to the current block are non-affine neighboring blocks.

[00231] Quando é desejado derivar um vetor de origem afim do bloco atual do bloco vizinho não-afim A dentre os blocos vizinhos adjacentes ao bloco atual, uma amostra de referência inferior à esquerda e uma amostra de referência inferior à direita podem ser ajustadas para o bloco A. Por exemplo, uma amostra adjacente ao lado esquerdo da amostra inferior à esquerda do bloco A pode ser ajustada como a amostra de referência inferior à esquerda, e a amostra inferior à direita do bloco A pode ser ajustada como a amostra de referência inferior à direita. Visto que a amostra de referência inferior à esquerda está fora do bloco A, o vetor de movimento de um sub-bloco que inclui uma amostra adjacente ao lado direito da amostra de referência inferior à esquerda pode ser ajustado como um terceiro vetor de origem afim do bloco A. Além disso, o vetor de movimento de um sub-bloco que inclui a amostra de referência inferior à direita pode ser ajustado como um quarto vetor de origem afim do bloco A. Posteriormente, um primeiro vetor de origem afim e um segundo vetor de origem afim para o bloco atual pode ser derivado de bloco A com base nas Equações 9 e 10.[00231] When it is desired to derive an affine seed vector of the current block from the non-affine neighboring block A among the neighboring blocks adjacent to the current block, a lower left reference sample and a lower right reference sample may be set for block A. For example, a sample adjacent to the left side of the lower left sample of block A may be set as the lower left reference sample, and the lower right sample of block A may be set as the lower right reference sample. Since the lower left reference sample is outside of block A, the motion vector of a sub-block that includes a sample adjacent to the right side of the lower left reference sample can be set as a third affine source vector of block A. Furthermore, the motion vector of a sub-block that includes the lower right reference sample can be set as a fourth affine source vector of block A. Subsequently, a first affine source vector and a second affine source vector for the current block can be derived from block A based on Equations 9 and 10.

[00232] Um método de derivação de um vetor de origem afim de um bloco vizinho não-afim pode ser usado apenas quando a predição de compensação de movimento para um bloco vizinho não-afim é realizada pela unidade de sub-bloco. Aqui, a técnica de predição para realizar a predição de compensação de movimento pela unidade de sub-bloco pode incluir pelo menos um dentre STMVP, ATMVP, Bi-Directional Optical Flow (BIO), Overlapped Block Motion Compensation (OBMC) e Decoder side Motion Vector Refinement (DMVR).[00232] A method of deriving an affine source vector from a non-affine neighboring block may be used only when motion compensation prediction for a non-affine neighboring block is performed by the sub-block unit. Here, the prediction technique for performing motion compensation prediction by the sub-block unit may include at least one of STMVP, ATMVP, Bi-Directional Optical Flow (BIO), Overlapped Block Motion Compensation (OBMC), and Decoder side Motion Vector Refinement (DMVR).

[00233] Na modalidade descrita acima, foi descrito que quando a delimitação superior do bloco atual está em contato com a delimitação de uma unidade de árvore de codificação, um candidato de fusão, um candidato de predição de vetor de origem afim ou um vetor de origem afim do bloco atual é derivado com o uso do terceiro vetor de origem afim para o ponto de controle inferior à esquerda e do quarto vetor de origem afim para o ponto de controle inferior à direita do bloco vizinho afim posicionado no topo do bloco atual.[00233] In the embodiment described above, it has been described that when the upper boundary of the current block is in contact with the boundary of a coding tree unit, a fusion candidate, an affine seed vector prediction candidate, or an affine seed vector of the current block is derived using the third affine seed vector for the lower left control point and the fourth affine source vector for the lower right control point of the affine neighboring block positioned at the top of the current block.

[00234] Como um outro exemplo, quando a delimitação superior do bloco atual está em contato com a delimitação de uma unidade de árvore de codificação, e um bloco vizinho posicionado no topo do bloco atual pertence a uma unidade de árvore de codificação diferente daquela do bloco atual, um candidato de fusão, um candidato de predição de vetor de origem afim ou um vetor de origem afim do bloco atual pode ser derivado com o uso de um bloco vizinho mais próximo ao bloco vizinho dentre os blocos incluídos na unidade de árvore de codificação a qual o bloco atual pertence, em vez do bloco vizinho.[00234] As another example, when the upper boundary of the current block is in contact with the boundary of a coding tree unit, and a neighboring block positioned at the top of the current block belongs to a different coding tree unit than that of the current block, a fusion candidate, an affine seed vector prediction candidate, or an affine seed vector of the current block may be derived using a neighboring block closest to the neighboring block among the blocks included in the coding tree unit to which the current block belongs, instead of the neighboring block.

[00235] No exemplo mostrado na Figura 19, é mostrado que o bloco atual está em contato com a delimitação superior de uma unidade de árvore de codificação, e os blocos B, C e E posicionados no topo do bloco atual pertencem a uma unidade de árvore de codificação diferente daquela do bloco atual. Consequentemente, em vez de usar de bloco E, um vetor de origem afim do bloco atual pode ser derivado com o uso de bloco F adjacente um bloco E dentre os blocos incluídos na unidade de árvore de codificação a qual o bloco atual pertence.[00235] In the example shown in Figure 19, it is shown that the current block is in contact with the upper boundary of a coding tree unit, and the blocks B, C and E positioned at the top of the current block belong to a different coding tree unit than that of the current block. Consequently, instead of using block E, an affine seed vector of the current block can be derived using block F adjacent to a block E among the blocks included in the coding tree unit to which the current block belongs.

[00236] Devido à predição de compensação de movimento do bloco atual, podem ser usados vetores de origem afim de uma pluralidade de blocos. Por exemplo, é possível selecionar uma pluralidade de candidatos de fusão da lista de candidatos de fusão, e derivar um vetor de origem afim ou um sub-bloco vector para o bloco atual com base nos vetores de origem afim dos candidatos de fusão selecionados. A codificação/decodificação do bloco atual com o uso de os vetores de origem afim de uma pluralidade de blocos pode ser referida como um método de codificação de fusão afim múltiplo.[00236] Due to the motion compensation prediction of the current block, affine source vectors from a plurality of blocks may be used. For example, it is possible to select a plurality of fusion candidates from the list of fusion candidates, and derive an affine source vector or a sub-block vector for the current block based on the affine source vectors of the selected fusion candidates. Encoding/decoding the current block using the affine source vectors from a plurality of blocks may be referred to as a multiple affine fusion coding method.

[00237] Informações indicando se o método de codificação de fusão afim múltiplo é ou não aplicado ao bloco atual podem ser codificadas e transmitidas através de uma corrente de bits. Alternativamente, a aplicação ou não do método de codificação de fusão afim múltiplo ao bloco atual pode ser determinada com base em pelo menos um dentre o número de blocos vizinhos afins dentre os blocos vizinhos adjacentes ao bloco atual, o número de candidatos de fusão incluídos na lista de candidatos de fusão e o modelo de movimento afim do bloco atual.[00237] Information indicating whether or not the multiple affine fusion coding method is applied to the current block may be encoded and transmitted via a bit stream. Alternatively, whether or not the multiple affine fusion coding method is applied to the current block may be determined based on at least one of the number of affine neighboring blocks among the neighboring blocks adjacent to the current block, the number of fusion candidates included in the fusion candidate list, and the affine motion model of the current block.

[00238] As Figuras 20 e 21 são vistas que mostram o fluxo de um método de predição de compensação de movimento com o uso de uma pluralidade de candidatos de fusão.[00238] Figures 20 and 21 are views showing the flow of a motion compensation prediction method using a plurality of fusion candidates.

[00239] A Figura 20 é uma vista que mostra um exemplo de derivação de vetores de origem afim do bloco atual com o uso de vetores de origem afim de uma pluralidade de candidatos de fusão. A Figura 21 é uma vista que mostra um exemplo de derivação de um vetor de movimento de cada sub- bloco com o uso de vetores de origem afim de uma pluralidade de candidatos de fusão.[00239] Figure 20 is a view showing an example of deriving affine source vectors of the current block using affine source vectors of a plurality of fusion candidates. Figure 21 is a view showing an example of deriving a motion vector of each sub-block using affine source vectors of a plurality of fusion candidates.

[00240] Os vetores de origem afim do bloco atual podem ser gerados com base em uma soma, diferença, média, ou operação de soma ponderada de vetores de origem afim de dois candidatos de fusão.[00240] The affine seed vectors of the current block may be generated based on a sum, difference, average, or weighted sum operation of affine seed vectors of two merge candidates.

[00241] As Equações 11 e 12 mostram um exemplo de derivação de um vetor de origem afim do bloco atual através da soma de vetores de origem afim de candidatos de fusão. [00241] Equations 11 and 12 show an example of deriving an affine seed vector of the current block by summing affine seed vectors of merge candidates.

[00242] Nas Equações 11 e 12, sv4 denota um primeiro vetor de origem afim do bloco atual, sv0 denota um primeiro vetor de origem afim de um primeiro candidato de fusão e sv2 denota um primeiro vetor de origem afim de um segundo candidato de fusão. Além disso, sv5 denota um segundo vetor de origem afim do bloco atual, sv1 denota um segundo vetor de origem afim do primeiro candidato de fusão e sv3 denota um segundo vetor de origem afim do segundo candidato de fusão.[00242] In Equations 11 and 12, sv4 denotes a first affine source vector of the current block, sv0 denotes a first affine source vector of a first merge candidate, and sv2 denotes a first affine source vector of a second merge candidate. Additionally, sv5 denotes a second affine source vector of the current block, sv1 denotes a second affine source vector of the first merge candidate, and sv3 denotes a second affine source vector of the second merge candidate.

[00243] Além disso, as Equações 13 e 14 mostram um exemplo de derivação de um vetor de origem afim do bloco atual através de uma operação de soma ponderada de vetores de origem afim de candidatos de fusão. [00243] Furthermore, Equations 13 and 14 show an example of deriving an affine seed vector of the current block through a weighted sum operation of affine seed vectors of merge candidates.

[00244] Como um outro exemplo, um primeiro vetor de movimento de sub-bloco e um segundo vetor de movimento desub-bloco podem ser gerados para cada sub-bloco no bloco atual, com base nos vetores de origem afim do primeiro candidato defusão e nos vetores de origem afim do segundo candidato defusão. Posteriormente, um vetor de movimento de sub-bloco final pode ser gerado com base em uma soma, diferença, média, ou operação de soma ponderada do primeiro vetor de movimento de sub-bloco e do segundo vetor de movimento de sub-bloco.[00244] As another example, a first sub-block motion vector and a second sub-block motion vector may be generated for each sub-block in the current block, based on the affine seed vectors of the first defusion candidate and the affine seed vectors of the second defusion candidate. Thereafter, a final sub-block motion vector may be generated based on a sum, difference, average, or weighted sum operation of the first sub-block motion vector and the second sub-block motion vector.

[00245] A Equação 15 mostra um exemplo de derivação de um vetor de movimento de sub-bloco final através da soma do primeiro vetor de movimento de sub-bloco e do segundo vetor de movimento de sub-bloco. [00245] Equation 15 shows an example of deriving a final sub-block motion vector by summing the first sub-block motion vector and the second sub-block motion vector.

[00246] Na Equação 15, V0 denota um primeiro vetor de movimento de sub-bloco, V1 denota um segundo vetor demovimento de sub-bloco e V2 denota um vetor de movimento de sub-bloco final.[00246] In Equation 15, V0 denotes a first sub-block motion vector, V1 denotes a second sub-block motion vector, and V2 denotes a final sub-block motion vector.

[00247] Além disso, a Equação 16 mostra um exemplo de derivação de um vetor de movimento de sub-bloco final através de uma operação de soma ponderada do primeiro vetor de movimento de sub-bloco e do segundo vetor de movimento de sub- bloco. [00247] Furthermore, Equation 16 shows an example of deriving a final sub-block motion vector via a weighted sum operation of the first sub-block motion vector and the second sub-block motion vector.

[00248] Intrapredição é para predizer um bloco atual com o uso de amostras reconstruídas que foram codificadas/decodificadas ao redor do bloco atual. Nesse ponto, amostras reconstruídas antes de um filtro em circuito ser aplicado podem ser usadas para intrapredição do bloco atual.[00248] Intraprediction is to predict a current block using reconstructed samples that were encoded/decoded around the current block. At this point, samples reconstructed before an in-loop filter was applied can be used for intraprediction of the current block.

[00249] A técnica de intrapredição inclui intrapredição baseada em matriz, e intrapredição geral considerando direcionalidade em relação a amostras reconstruídas vizinhas. Informações indicando a técnica de intrapredição do bloco atual podem ser sinalizadas através de uma corrente de bits. As informações podem ser uma marcação de 1 bit. Alternativamente, a técnica de intrapredição do bloco atual pode ser determinada com base em pelo menos um dentre o local, o tamanho e o formato do bloco atual, ou com base em uma técnica de intrapredição de um bloco vizinho. Por exemplo, quando o bloco atual existe em uma delimitação de figuração, isso pode ser ajustado para não aplicar a intrapredição baseada em matriz ao bloco atual.[00249] The intraprediction technique includes matrix-based intraprediction, and general intraprediction considering directionality with respect to neighboring reconstructed samples. Information indicating the intraprediction technique of the current block may be signaled via a bit stream. The information may be a 1-bit flag. Alternatively, the intraprediction technique of the current block may be determined based on at least one of the location, size, and shape of the current block, or based on an intraprediction technique of a neighboring block. For example, when the current block exists in a figuration boundary, this may be adjusted to not apply matrix-based intraprediction to the current block.

[00250] A intrapredição baseada em matriz é um método de adquirir um bloco de predição do bloco atual por um codificador e um decodificador com base em um produto de matriz entre uma matriz anteriormente armazenada e amostras reconstruídas ao redor do bloco atual. Informações para especificar qualquer uma dentre uma pluralidade de matrizes anteriormente armazenadas podem ser sinalizadas através de uma corrente de bits. O decodificador pode determinar uma matriz para intrapredição do bloco atual com base nas informações e no tamanho do bloco atual.[00250] Matrix-based intraprediction is a method of acquiring a prediction block of the current block by an encoder and a decoder based on a matrix product between a previously stored matrix and reconstructed samples around the current block. Information for specifying any of a plurality of previously stored matrices may be signaled via a bit stream. The decoder may determine a matrix for intraprediction of the current block based on the information and size of the current block.

[00251] A intrapredição geral é um método de aquisição de um bloco de predição para o bloco atual com base em um modo intrapredição não angular ou um modo intrapredição angular. Doravante no presente documento, um processo de realização de intrapredição com base em intrapredição geral será descrito em mais detalhes com referência aos desenhos.[00251] General intraprediction is a method of acquiring a prediction block for the current block based on a non-angular intraprediction mode or an angular intraprediction mode. Hereinafter in this document, a process of performing intraprediction based on general intraprediction will be described in more detail with reference to the drawings.

[00252] A Figura 22 é um fluxograma que ilustra ummétodo intrapredição de acordo com uma modalidade da presente invenção.[00252] Figure 22 is a flowchart illustrating an intraprediction method in accordance with an embodiment of the present invention.

[00253] Uma linha de amostra de referência do bloco atual pode ser determinada (S2201). A linha de amostra de referência significa um conjunto de amostras de referência incluídas em uma k-ésima linha separada do topo e/ou do lado esquerdo do bloco atual. As amostras de referência podem ser derivadas de amostras reconstruídas que foram codificadas/decodificadas ao redor do bloco atual.[00253] A reference sample line of the current block may be determined (S2201). The reference sample line means a set of reference samples included in a k-th separate line from the top and/or left side of the current block. The reference samples may be derived from reconstructed samples that were encoded/decoded around the current block.

[00254] Informações de índice para identificar a linha de amostra de referência do bloco atual dentre uma pluralidade de linhas de amostra de referência podem ser sinalizadas através de uma corrente de bits. A pluralidade de linhas de amostra de referência pode incluir pelo menos uma dentre uma primeira linha, uma segunda linha, uma terceira linha e uma quarta linha no topo e/ou lado esquerdo do bloco atual. A Tabela 1 mostra índices atribuídos às linhas de amostra de referência, respectivamente. Na Tabela 1, presume- se que a primeira linha, a segunda linha e a quarta linha são usadas como candidatos de linha de amostra de referência.[TABELA 1] [00254] Index information for identifying the reference sample line of the current block from among a plurality of reference sample lines may be signaled via a bit stream. The plurality of reference sample lines may include at least one of a first line, a second line, a third line, and a fourth line at the top and/or left side of the current block. Table 1 shows indices assigned to the reference sample lines, respectively. In Table 1, it is assumed that the first line, the second line, and the fourth line are used as reference sample line candidates.[TABLE 1]

[00255] A linha de amostra de referência do bloco atual pode ser determinada com base em pelo menos um dentre o local, o tamanho e o formato do bloco atual, ou com base em um modo de codificação de predição de um bloco vizinho. Por exemplo, quando o bloco atual está em contato com a delimitação de uma figuração, um ladrilho, uma fatia, ou uma unidade de árvore de codificação, a primeira linha de amostra de referência pode ser determinada como a linha de amostra de referência do bloco atual.[00255] The reference sample line of the current block may be determined based on at least one of the location, size, and shape of the current block, or based on a predictive coding mode of a neighboring block. For example, when the current block is in contact with the boundary of a figuration, a tile, a slice, or a coding tree unit, the first reference sample line may be determined as the reference sample line of the current block.

[00256] A linha de amostra de referência pode incluir amostras de referência superiores posicionadas no topo do bloco atual e amostras de referência à esquerda posicionadas no lado esquerdo do bloco atual. As amostras de referência superiores e as amostras de referência à esquerda podem ser derivadas de amostras reconstruídas ao redor do bloco atual. As amostras reconstruídas podem estar em um estado antes de o filtro em circuito ser aplicado.[00256] The reference sample line may include top reference samples positioned at the top of the current block and left reference samples positioned on the left side of the current block. The top reference samples and the left reference samples may be derived from reconstructed samples around the current block. The reconstructed samples may be in a state before the in-loop filter is applied.

[00257] A Figura 23 é uma vista que mostra amostras de referência incluídas em cada linha de amostra de referência.[00257] Figure 23 is a view showing reference samples included in each reference sample line.

[00258] De acordo com o modo intrapredição do bloco atual, uma amostra de predição pode ser adquirida por meio do uso de pelo menos uma das amostras de referência que pertencem a uma linha de amostra de referência.[00258] According to the intra-prediction mode of the current block, a prediction sample may be acquired by using at least one of the reference samples belonging to a reference sample line.

[00259] Posteriormente, o modo intrapredição do bloco atual pode ser determinado (S2202). Como para o modo intrapredição do bloco atual, pelo menos um dentre um modo intrapredição não angular e um modo intrapredição angular pode ser determinado como o modo intrapredição do bloco atual. O modo intrapredição não angular inclui um modo plano e um modo DC, e o modo intrapredição angular inclui 33 ou 65 modos entre a direção diagonal inferior à esquerda e a direção diagonal inferior à direita.[00259] Subsequently, the intra-prediction mode of the current block may be determined (S2202). As for the intra-prediction mode of the current block, at least one of a non-angular intra-prediction mode and an angular intra-prediction mode may be determined as the intra-prediction mode of the current block. The non-angular intra-prediction mode includes a flat mode and a DC mode, and the angular intra-prediction mode includes 33 or 65 modes between the lower left diagonal direction and the lower right diagonal direction.

[00260] A Figura 24 é uma vista que mostra modos intrapredição.[00260] Figure 24 is a view showing intraprediction modes.

[00261] A Figura 24(a) mostra 35 modos intrapredição e a Figura 24(b) mostra 67 modos intrapredição.[00261] Figure 24(a) shows 35 intra-prediction modes and Figure 24(b) shows 67 intra-prediction modes.

[00262] Um número maior ou menor de modos intrapredição do que aqueles mostrados na Figura 24 pode ser definido.[00262] A greater or lesser number of intraprediction modes than those shown in Figure 24 may be defined.

[00263] Um Modo Mais Provável (MPM) pode ser ajustado com base no modo intrapredição de um bloco vizinho adjacente ao bloco atual. Aqui, o bloco vizinho pode incluir um bloco vizinho esquerdo adjacente ao lado esquerdo do bloco atual e um bloco vizinho superior adjacente ao topo do bloco atual. Quando as coordenadas da amostra superior à esquerda do bloco atual são (0, 0), o bloco vizinho esquerdo pode incluir uma amostra na posição de (-1, 0), (-1, H-1) ou (-1, (H-1)/2). Aqui, H denota a altura do bloco atual. O bloco vizinho superior pode incluir uma amostra na posição de (0, -1), (W- 1, -1) ou ((W-1)/2, -1). Aqui, W denota a largura do bloco atual.[00263] A Most Likely Mode (MPM) may be adjusted based on the intraprediction mode of a neighboring block adjacent to the current block. Here, the neighboring block may include a left neighboring block adjacent to the left side of the current block and an upper neighboring block adjacent to the top of the current block. When the coordinates of the upper left sample of the current block are (0, 0), the left neighboring block may include a sample at the position of (-1, 0), (-1, H-1), or (-1, (H-1)/2). Here, H denotes the height of the current block. The upper neighboring block may include a sample at the position of (0, -1), (W-1, -1), or ((W-1)/2, -1). Here, W denotes the width of the current block.

[00264] Quando o bloco vizinho é codificado por normal intrapredição, o MPM pode ser derivado com base no modo intrapredição do bloco vizinho. Especificamente, o modo intrapredição do bloco vizinho esquerdo pode ser ajustado para variável candIntraPredModeA, e o modo intrapredição do bloco vizinho superior pode ser ajustado para variável candIntraPredModeB.[00264] When the neighboring block is coded by intraprediction normal, the MPM may be derived based on the intraprediction mode of the neighboring block. Specifically, the intraprediction mode of the left neighboring block may be set to variable candIntraPredModeA, and the intraprediction mode of the upper neighboring block may be set to variable candIntraPredModeB.

[00265] Nesse ponto, quando o bloco vizinho está indisponível (por exemplo, quando o bloco vizinho ainda não está codificado/decodificado ou quando a posição do bloco vizinho está fora da delimitação de figuração), quando o bloco vizinho é codificado por intrapredição baseada em matriz, quando o bloco vizinho é codificado por interpredição, ou quando o bloco vizinho é incluído em uma unidade de árvore de codificação diferente do bloco atual, a variável candIntraPredModeX (aqui, X é A ou B) derivada com base no modo intrapredição do bloco vizinho pode ser ajustada como um modo padrão. Aqui, o modo padrão pode incluir pelo menos um dentre um modo plano, um modo DC, um modo de direção vertical e um modo de direção horizontal.[00265] At this point, when the neighboring block is unavailable (e.g., when the neighboring block is not yet coded/decoded or when the position of the neighboring block is outside the figuration boundary), when the neighboring block is coded by matrix-based intraprediction, when the neighboring block is coded by interprediction, or when the neighboring block is included in a different coding tree unit than the current block, the variable candIntraPredModeX (here, X is A or B) derived based on the intraprediction mode of the neighboring block may be set as a default mode. Here, the default mode may include at least one of a flat mode, a DC mode, a vertical direction mode, and a horizontal direction mode.

[00266] Alternativamente, quando o bloco vizinho é codificado por intrapredição baseada em matriz, um modo intrapredição que corresponde a um valor de índice para especificar qualquer uma das matrizes pode ser ajustado para candIntraPredModeX. Para essa finalidade, uma tabela de consulta que mostra a relação de mapeamento entre valores de índice para especificar uma matriz e modos intrapredição pode ser anteriormente armazenada no codificador e no decodificador.[00266] Alternatively, when the neighboring block is coded by matrix-based intraprediction, an intraprediction mode that corresponds to an index value for specifying either matrix may be set to candIntraPredModeX. For this purpose, a lookup table showing the mapping relationship between index values for specifying a matrix and intraprediction modes may be previously stored in the encoder and decoder.

[00267] MPMs podem ser derivados com base na variável candIntraPredModeA e na variável candIntraPredModeB. O número de MPMs incluídos em uma lista de MPM pode ser anteriormente ajustado no codificador e no decodificador. O número de MPMs incluídos na lista de MPM pode ser pré-ajustado no codificador e no decodificador. Por exemplo, o número de MPMs pode ser 3, 4, 5 ou 6. Alternativamente, informações indicando o número de MPMs podem ser sinalizadas através de uma corrente de bits. Alternativamente, o número de MPMs pode ser determinado com base em pelo menos um dentre o modo de codificação de predição do bloco vizinho e o tamanho e o formato do bloco atual.[00267] MPMs may be derived based on the candIntraPredModeA variable and the candIntraPredModeB variable. The number of MPMs included in an MPM list may be pre-set at the encoder and decoder. The number of MPMs included in the MPM list may be pre-set at the encoder and decoder. For example, the number of MPMs may be 3, 4, 5, or 6. Alternatively, information indicating the number of MPMs may be signaled via a bit stream. Alternatively, the number of MPMs may be determined based on at least one of the neighbor block prediction coding mode and the current block size and format.

[00268] Nas modalidades descritas abaixo, presume- se que o número de MPMs é três, e os três MPMs serão referidos como MPM[0], MPM[1] e MPM[2]. Quando o número de MPMs é mais que três, os MPMs podem ser configurados para incluir três MPMs descritos nas modalidades descritas abaixo.[00268] In the embodiments described below, it is assumed that the number of MPMs is three, and the three MPMs will be referred to as MPM[0], MPM[1], and MPM[2]. When the number of MPMs is more than three, the MPMs may be configured to include three MPMs described in the embodiments described below.

[00269] Quando candIntraPredA e candIntraPredB são iguais, e candIntraPredA é um modo plano ou um modo DC, MPM[0] e MPM[1] podem ser ajustados para um modo plano e um modo DC, respectivamente. MPM[2] pode ser ajustado para um modo intrapredição de direção vertical, um modo intrapredição de direção horizontal ou um modo intrapredição de direção diagonal. O modo intrapredição de direção diagonal pode ser um modo intrapredição de direção diagonal inferior à esquerda, um modo intrapredição de direção superior à direita ou um modo intrapredição de direção superior à direita.[00269] When candIntraPredA and candIntraPredB are equal, and candIntraPredA is a flat mode or a DC mode, MPM[0] and MPM[1] can be set to a flat mode and a DC mode, respectively. MPM[2] can be set to a vertical direction intra-prediction mode, a horizontal direction intra-prediction mode, or a diagonal direction intra-prediction mode. The diagonal direction intra-prediction mode can be a lower-left diagonal direction intra-prediction mode, an upper-right direction intra-prediction mode, or an upper-right direction intra-prediction mode.

[00270] Quando candIntraPredA e candIntraPredB são iguais, e candIntraPredA é um modo intrapredição angular, MPM [0] pode ser ajustado para ser igual à candIntraPredA. MPM[1] e MPM[2] podem ser ajustados para um modo intrapredição similar à candIntraPredA, respectivamente. O modointrapredição similar à candIntraPredA pode ser um modo intrapredição no qual a diferença entre candIntraPredA e um índice é ± 1 ou ± 2. Uma operação de módulo (%) e umdeslocamento podem ser usados para derivar o modo intrapredição similar à candIntraPredA.[00270] When candIntraPredA and candIntraPredB are equal, and candIntraPredA is an angular intraprediction mode, MPM[0] may be set to be equal to candIntraPredA. MPM[1] and MPM[2] may be set to an intraprediction mode similar to candIntraPredA, respectively. The intraprediction mode similar to candIntraPredA may be an intraprediction mode in which the difference between candIntraPredA and an index is ±1 or ±2. A modulo (%) operation and an offset may be used to derive the intraprediction mode similar to candIntraPredA.

[00271] Quando candIntraPredA e candIntraPredB são diferentes, MPM[0] pode ser ajustado para ser igual à candIntraPredA, e MPM[1] pode ser ajustado para ser igual à candIntraPredB. Nesse ponto, quando tanto candIntraPredA como candIntraPredB são o modo intrapredição não angular, MPM[2] pode ser ajustado para um modo intrapredição de direção vertical, um modo intrapredição de direção horizontal ou um modo intrapredição de direção diagonal. Alternativamente, quando pelo menos um dentre candIntraPredA e candIntraPredB é um modo intrapredição angular, MPM[2] pode ser ajustado para um modo intrapredição derivado por meio da adição de ou dasubtração de deslocamento de um modo plano, um modo DC, ou umdentre candIntraPredA e candIntraPredB que tem um valor maior.Aqui, o deslocamento pode ser 1 ou 2.[00271] When candIntraPredA and candIntraPredB are different, MPM[0] may be set to be equal to candIntraPredA, and MPM[1] may be set to be equal to candIntraPredB. At this point, when both candIntraPredA and candIntraPredB are non-angular intra-prediction mode, MPM[2] may be set to a vertical direction intra-prediction mode, a horizontal direction intra-prediction mode, or a diagonal direction intra-prediction mode. Alternatively, when at least one of candIntraPredA and candIntraPredB is an angular intra-prediction mode, MPM[2] may be set to an intra-prediction mode derived by adding or subtracting the offset of a planar mode, a DC mode, or the one of candIntraPredA and candIntraPredB that has a larger value. Here, the offset may be 1 or 2.

[00272] Uma lista de MPM incluindo uma pluralidade de MPMs é gerada, e informações indicando se um MPM que é igual ao modo intrapredição do bloco atual é incluído na lista de MPM podem ser sinalizadas através de uma corrente de bits. As informações são uma marcação de 1 bit e podem ser referidas como uma marcação de MPM. Quando a marcação de MPM indica que um MPM igual àquele do bloco atual é incluído na lista de MPM, informações de índice que identificam um dos MPMs podem ser sinalizadas através de uma corrente de bits. O MPM especificado pelas informações de índice podem ser ajustadas como o modo intrapredição do bloco atual. Quando a marcação de MPM indica que um MPM igual àquele do bloco atual não é incluído na lista de MPM, informações de modo residuais que indicam qualquer um dos modos intrapredição residuais além de MPMs podem ser sinalizadas através de uma corrente de bits. As informações de modo residuais indicam um valor de índice que corresponde ao modo intrapredição do bloco atual quando índices são reatribuídos aos modos intrapredição residuais excluindo os MPMs. O decodificador pode dispor os MPMs em ordem crescente e determinar o modo intrapredição do bloco atual por meio da comparação das informações de modo residuais com os MPMs. Por exemplo, quando as informações de modo residuais são iguais a ou menor que o MPM, o modo intrapredição do bloco atual pode ser derivado por meio da adição de 1 às informações de modo residuais.[00272] An MPM list including a plurality of MPMs is generated, and information indicating whether an MPM that is equal to the intraprediction mode of the current block is included in the MPM list may be signaled via a bit stream. The information is a 1-bit tag and may be referred to as an MPM tag. When the MPM tag indicates that an MPM equal to that of the current block is included in the MPM list, index information identifying one of the MPMs may be signaled via a bit stream. The MPM specified by the index information may be set as the intraprediction mode of the current block. When the MPM tag indicates that an MPM equal to that of the current block is not included in the MPM list, residual mode information indicating any of the residual intraprediction modes other than MPMs may be signaled via a bit stream. The residual mode information indicates an index value that corresponds to the intraprediction mode of the current block when indices are reassigned to the residual intraprediction modes excluding the MPMs. The decoder can arrange the MPMs in ascending order and determine the intraprediction mode of the current block by comparing the residual mode information with the MPMs. For example, when the residual mode information is equal to or less than the MPM, the intraprediction mode of the current block can be derived by adding 1 to the residual mode information.

[00273] Em vez de ajustar o modo padrão para MPM, informações indicando se o modo intrapredição do bloco atual é ou não o modo padrão podem ser sinalizadas através de uma corrente de bits. As informações são uma marcação de 1 bit, e a marcação pode ser referida como uma marcação de modo padrão. A marcação de modo padrão pode ser sinalizada apenas quando a marcação de MPM indica que um MPM igual àquele do bloco atual é incluída na lista de MPM. Conforme descrito acima, o modo padrão pode incluir pelo menos um dentre um modo plano, um modo DC, um modo de direção vertical e um modo de direção horizontal. Por exemplo, quando o modo plano é ajustado como o modo padrão, a marcação de modo padrão pode indicar se o modo intrapredição do bloco atual é ou não um modo plano. Quando a marcação de modo padrão indica que o modo intrapredição do bloco atual não é o modo padrão, um dos MPMs indicados pelas informações de índice pode ser ajustado como o modo intrapredição do bloco atual.[00273] Instead of setting the default mode for MPM, information indicating whether or not the intraprediction mode of the current block is the default mode may be signaled via a bit stream. The information is a 1-bit tag, and the tag may be referred to as a default mode tag. The default mode tag may be signaled only when the MPM tag indicates that an MPM equal to that of the current block is included in the MPM list. As described above, the default mode may include at least one of a flat mode, a DC mode, a vertical direction mode, and a horizontal direction mode. For example, when the flat mode is set as the default mode, the default mode tag may indicate whether or not the intraprediction mode of the current block is a flat mode. When the default mode tag indicates that the intraprediction mode of the current block is not the default mode, one of the MPMs indicated by the index information may be set as the intraprediction mode of the current block.

[00274] Quando uma pluralidade de modos intrapredição é ajustada como modos padrão, informações de índice que indicam qualquer um dos modos padrão podem ser adicionalmente sinalizadas. O modo intrapredição do bloco atual pode ser ajustado como o modo padrão indicado pelas informações de índice.[00274] When a plurality of intraprediction modes are set as default modes, index information indicating any of the default modes may be additionally signaled. The intraprediction mode of the current block may be set as the default mode indicated by the index information.

[00275] Quando o índice da linha de amostra de referência do bloco atual não é 0, isso pode ser ajustado para não usar o modo padrão. Consequentemente, quando o índice da linha de amostra de referência não é 0, a marcação de modo padrão não é sinalizada, e o valor da marcação de modo padrão pode ser ajustado para um valor predefinido (isto é, falso).[00275] When the reference sample line index of the current block is not 0, this may be set to not use the default mode. Accordingly, when the reference sample line index is not 0, the default mode flag is not signaled, and the value of the default mode flag may be set to a predefined value (i.e., false).

[00276] Quando o modo intrapredição do bloco atual é determinado, amostras de predição podem ser adquiridas para o bloco atual com base no modo intrapredição determinado (S2203).[00276] When the intraprediction mode of the current block is determined, prediction samples may be acquired for the current block based on the determined intraprediction mode (S2203).

[00277] Quando o modo DC é selecionado, amostras de predição são geradas para o bloco atual com base em um valor médio de amostras de referência. Especificamente, valores de todas as amostras em um bloco de predição podem ser gerados com base em um valor médio das amostras de referência. O valor médio pode ser derivado com o uso de pelo menos uma das amostras de referência superiores posicionadas no topo do bloco atual e amostras de referência à esquerda posicionadas no lado esquerdo do bloco atual.[00277] When DC mode is selected, prediction samples are generated for the current block based on an average value of reference samples. Specifically, values of all samples in a prediction block may be generated based on an average value of the reference samples. The average value may be derived using at least one of the top reference samples positioned at the top of the current block and left reference samples positioned on the left side of the current block.

[00278] Dependendo do formato do bloco atual, o número ou a faixa das amostras de referência usadas para derivar o valor médio pode variar. Por exemplo, quando o bloco atual é um bloco com formato não-quadrado do qual a largura é maior que a altura, o valor médio pode ser calculado com o uso apenas das amostras de referência superiores. Por outro lado, quando o bloco atual é um bloco com formato não-quadrado do qual a largura é menor que a altura, o valor médio pode ser calculado com o uso apenas das amostras de referência à esquerda. Isto é, quando a largura e a altura do bloco atual são diferentes, o valor médio pode ser calculado com o uso apenas de amostras de referência adjacentes àquela mais longa. Alternativamente, com base na razão entre largura e altura do bloco atual, pode ser determinada a possibilidade de calcular o valor médio com o uso apenas das amostras de referência superiores ou a possibilidade de não calcular o valor médio com o uso apenas das amostras de referência à esquerda.[00278] Depending on the shape of the current block, the number or range of reference samples used to derive the mean value may vary. For example, when the current block is a non-square shaped block of which the width is greater than the height, the mean value may be calculated using only the top reference samples. Conversely, when the current block is a non-square shaped block of which the width is less than the height, the mean value may be calculated using only the left reference samples. That is, when the width and height of the current block are different, the mean value may be calculated using only the reference samples adjacent to the longest one. Alternatively, based on the ratio of the width to height of the current block, it may be determined whether to calculate the mean value using only the top reference samples or whether to not calculate the mean value using only the left reference samples.

[00279] Quando o modo plano é selecionado, uma amostra de predição pode ser adquirida com o uso de uma amostra de predição de direção horizontal e uma amostra de predição de direção vertical. Aqui, a amostra de predição de direção horizontal é adquirida com base em uma amostra de referência esquerda e uma amostra de referência direita posicionada em uma linha horizontal igual àquela da amostra de predição, e a amostra de predição de direção vertical é adquirida com base em uma amostra de referência superior e uma amostra de referência inferior posicionada em uma linha vertical igual àquela da amostra de predição. Aqui, a amostra de referência direita pode ser gerada por meio da cópia de uma amostra de referência adjacente ao canto superior direito do bloco atual, e a amostra de referência inferior pode ser gerada por meio da cópia de uma amostra de referência adjacente ao canto inferior esquerdo do bloco atual. A amostra de predição de direção horizontal pode ser adquirida com base em uma operação de soma ponderada da amostra de referência esquerda e da amostra de referência direita, e a amostra de predição de direção vertical pode ser adquirida com base em uma operação de soma ponderada da amostra de referência superior e da amostra de referência inferior. Nesse ponto, um valor de ponderação atribuído a cada amostra de referência pode ser determinado de acordo com a posição da amostra de predição. A amostra de predição pode ser adquirida com base em uma operação média ou uma operação de soma ponderada da amostra de predição de direção horizontal e da amostra de predição de direção vertical. Quando a operação de soma ponderada é realizada, valores de ponderação aplicados à amostra de predição de direção horizontal e à amostra de predição de direção vertical podem ser determinados com base na posição da amostra de predição.[00279] When the planar mode is selected, a prediction sample may be acquired using a horizontal direction prediction sample and a vertical direction prediction sample. Here, the horizontal direction prediction sample is acquired based on a left reference sample and a right reference sample positioned on a horizontal line equal to that of the prediction sample, and the vertical direction prediction sample is acquired based on an upper reference sample and a lower reference sample positioned on a vertical line equal to that of the prediction sample. 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 a reference sample adjacent to the lower left corner of the current block. The horizontal direction prediction sample can be acquired based on a weighted sum operation of the left reference sample and the right reference sample, and the vertical direction prediction sample can be acquired based on a weighted sum operation of the upper reference sample and the lower reference sample. At this point, a weighting value assigned to each reference sample can be determined according to the position of the prediction sample. The prediction sample can be acquired based on an average operation or a weighted sum operation of the horizontal direction prediction sample and the vertical direction prediction sample. When the weighted sum operation is performed, weighting values applied to the horizontal direction prediction sample and the vertical direction prediction sample can be determined based on the position of the prediction sample.

[00280] Quando um modo de predição angular é selecionado, um parâmetro que indica a direção de predição (ou ângulo de predição) do modo de predição angular selecionado pode ser determinado. A Tabela 2 mostra parâmetro de intra direção intraPredAng de cada modo intrapredição.[TABELA 2] [00280] When an angular prediction mode is selected, a parameter indicating the prediction direction (or prediction angle) of the selected angular prediction mode can be determined. Table 2 shows the intra direction parameter intraPredAng of each intraprediction mode.[TABLE 2]

[00281] Quando 35 modos intrapredição são definidos, a Tabela 2 mostra o parâmetro de intra direção de cada modo intrapredição que tem um índice de qualquer um de 2 a 34. Quando mais que 33 modos intrapredição angulares são definidos, a Tabela 2 é adicionalmente subdividida para ajustar o parâmetro de intra direção de cada modo intrapredição angular.[00281] When 35 intra-prediction modes are defined, Table 2 shows the intra-direction parameter of each intra-prediction mode having an index of any one of 2 to 34. When more than 33 angular intra-prediction modes are defined, Table 2 is further subdivided to adjust the intra-direction parameter of each angular intra-prediction mode.

[00282] Após dispor amostras de referência superiores e amostras de referência à esquerda do bloco atual em uma linha, uma amostra de predição pode ser adquirida com base no valor do parâmetro de intra direção. Nesse ponto, quando o valor do parâmetro de intra direção é um valor negativo, as amostras de referência à esquerda e as amostras de referência superiores podem ser dispostas em uma linha.[00282] After arranging top reference samples and left reference samples of the current block in a row, a prediction sample may be acquired based on the value of the intra direction parameter. At this point, when the value of the intra direction parameter is a negative value, the left reference samples and top reference samples may be arranged in a row.

[00283] As Figuras 25 e 26 são vistas que mostram um exemplo de um arranjo unidimensional que dispõe amostras de referência em uma linha.[00283] Figures 25 and 26 are views showing an example of a one-dimensional array arranging reference samples in a row.

[00284] A Figura 25 é uma vista que mostra um exemplo de um arranjo unidimensional de direção vertical que dispõe amostras de referência na direção vertical, e Figura 26 é uma vista que mostra um exemplo de um arranjo unidimensional de direção horizontal que dispõe amostras de referência na direção horizontal. As modalidades das Figuras 25 e 26 serão descritas na suposição de que 35 modos intrapredição são definidos.[00284] Figure 25 is a view showing an example of a one-dimensional vertical direction array arranging reference samples in the vertical direction, and Figure 26 is a view showing an example of a one-dimensional horizontal direction array arranging reference samples in the horizontal direction. The embodiments of Figures 25 and 26 will be described on the assumption that 35 intra-prediction modes are defined.

[00285] Quando o índice de modo intrapredição é qualquer um de 11 a 18, um arranjo unidimensional de direção horizontal no qual amostras de referência superiores são giradas no sentido anti-horário pode ser aplicado, e quando o índice de modo intrapredição é qualquer um de 19 a 25, um arranjo unidimensional de direção vertical no qual amostras de referência à esquerda são giradas no sentido horário pode ser aplicado. No arranjo das amostras de referência em uma linha, um ângulo de modo intrapredição pode ser considerado.[00285] When the intra-prediction mode index is any one of 11 to 18, a horizontal direction one-dimensional array in which top reference samples are rotated counterclockwise can be applied, and when the intra-prediction mode index is any one of 19 to 25, a vertical direction one-dimensional array in which left reference samples are rotated clockwise can be applied. In arranging the reference samples in a row, an intra-prediction mode angle can be considered.

[00286] Um parâmetro de determinação de amostra de referência pode ser determinado com base em um parâmetro de intra direção. O parâmetro de determinação de amostra de referência pode incluir um índice de amostra de referência para especificar a amostra de referência e um parâmetro de valor de ponderação para determinar um valor de ponderação aplicado à amostra de referência.[00286] A reference sample determination parameter may be determined based on an intra-direction parameter. The reference sample determination parameter may include a reference sample index for specifying the reference sample and a weighting value parameter for determining a weighting value applied to the reference sample.

[00287] O índice de amostra de referência iIdx e o parâmetro de valor de ponderação ifact podem ser adquiridos por meio das Equações 17 e 18 mostradas abaixo, respectivamente. [00287] The reference sample index iIdx and the weighting value parameter ifact can be acquired via Equations 17 and 18 shown below, respectively.

[00288] Nas Equações 17 e 18, Pang denota um parâmetro de intra direção. A amostra de referência especificada pelo índice de amostra de referência iIdx corresponde a um número inteiro pel.[00288] In Equations 17 and 18, Pang denotes an intra-direction parameter. The reference sample specified by the reference sample index iIdx corresponds to an integer pel.

[00289] Pelo menos uma ou mais amostras de referência podem ser especificadas para derivar uma amostra de predição. Especificamente, a posição da amostra de referência usada para derivar uma amostra de predição pode ser especificada considerando a inclinação do modo de predição. Por exemplo, uma amostra de referência usada para derivar uma amostra de predição pode ser especificada com o uso do índice de amostra de referência iIdx.[00289] At least one or more reference samples may be specified to derive a prediction sample. Specifically, the position of the reference sample used to derive a prediction sample may be specified considering the slope of the prediction mode. For example, a reference sample used to derive a prediction sample may be specified using the reference sample index iIdx.

[00290] Nesse ponto, quando a inclinação do modo intrapredição não é expressa por uma amostra de referência, uma amostra de predição pode ser gerada por meio da interpolação de uma pluralidade de amostras de referência. Por exemplo, quando a inclinação do modo intrapredição é um valor entre uma inclinação entre uma amostra de predição e uma primeira amostra de referência e uma inclinação entre a amostra de predição e uma segunda amostra de referência, a amostra de predição pode ser adquirida por meio da interpolação da primeira amostra de referência e da segunda amostra de referência. Isto é, quando uma linha angular que segue um ângulo intrapredição não atravessa uma amostra de referência posicionada em um número inteiro pel, a amostra de predição pode ser adquirida por meio da interpolação de amostras de referência adjacente à esquerda e à direita ou acima e abaixo de uma posição em que a linha angular atravessa.[00290] At this point, when the slope of the intra-prediction mode is not expressed by a reference sample, a prediction sample may be generated by interpolating a plurality of reference samples. For example, when the slope of the intra-prediction mode is a value between a slope between a prediction sample and a first reference sample and a slope between the prediction sample and a second reference sample, the prediction sample may be acquired by interpolating the first reference sample and the second reference sample. That is, when an angled line following an intra-prediction angle does not cross a reference sample positioned at an integer pel, the prediction sample may be acquired by interpolating reference samples adjacent to the left and right of or above and below a position where the angled line crosses.

[00291] A Equação 19 mostra um exemplo de aquisição de uma amostra de predição com base em amostras de referência. [00291] Equation 19 shows an example of acquiring a prediction sample based on reference samples.

[00292] Na Equação 19, P denota uma amostra de predição, e Ref_1D denota qualquer uma das amostras de referência unidimensionalmente dispostas. Nesse ponto, a posição da amostra de referência pode ser determinada pela posição (x, y) da amostra de predição e índice iIdx da amostra de referência.[00292] In Equation 19, P denotes a prediction sample, and Ref_1D denotes any of the one-dimensionally arranged reference samples. At this point, the position of the reference sample can be determined by the position (x, y) of the prediction sample and index iIdx of the reference sample.

[00293] Quando a inclinação do modo intrapredição pode ser expressa como uma amostra de referência, o parâmetro de valor de ponderação ifact é ajustado para 0. Consequentemente, a Equação 19 pode ser simplificada conforme mostrado na Equação 20. [00293] When the intraprediction mode slope can be expressed as a reference sample, the weighting value parameter ifact is set to 0. Consequently, Equation 19 can be simplified as shown in Equation 20.

[00294] A intrapredição para o bloco atual pode ser realizada com base em uma pluralidade de modos intrapredição. Por exemplo, um modo intrapredição pode ser derivado para cada amostra de predição, e a amostra de predição pode ser derivada com base em um modo intrapredição atribuído a cada amostra de predição.[00294] Intraprediction for the current block may be performed based on a plurality of intraprediction modes. For example, an intraprediction mode may be derived for each prediction sample, and the prediction sample may be derived based on an intraprediction mode assigned to each prediction sample.

[00295] Alternativamente, um modo intrapredição pode ser derivado para cada região, e a intrapredição para cada região pode ser realizada com base no modo intrapredição atribuído a cada região. Aqui, a região pode incluir pelo menos uma amostra. Pelo menos um dentre o tamanho e o formato da região pode ser adaptativamente determinado com base em pelo menos um dentre o tamanho, o formato, e o modo intrapredição do bloco atual. Alternativamente, pelo menos um dentre o tamanho e o formato da região pode ser predefinido no codificador e no decodificador para ser independente do tamanho ou do formato do bloco atual.[00295] Alternatively, an intra-prediction mode may be derived for each region, and intra-prediction for each region may be performed based on the intra-prediction mode assigned to each region. Here, the region may include at least one sample. At least one of the size and shape of the region may be adaptively determined based on at least one of the size, shape, and intra-prediction mode of the current block. Alternatively, at least one of the size and shape of the region may be predefined in the encoder and decoder to be independent of the size or shape of the current block.

[00296] Alternativamente, intrapredição pode ser realizada com base em cada de uma pluralidade de intra predições, e uma amostra de predição final pode ser derivada com base em uma operação média ou uma operação de soma ponderada de uma pluralidade de amostras de predição adquiridas através da pluralidade de intra predições. Por exemplo, uma primeira amostra de predição pode ser adquirida por meio da realização da intrapredição com base em um primeiro modo intrapredição, e um segunda amostra de predição pode ser adquirida por meio da realização de intrapredição com base em um segundo modo intrapredição. Posteriormente, uma amostra de predição final pode ser adquirida com base em uma operação média ou uma operação de soma ponderada da primeira amostra de predição e da segunda amostra de predição. Nesse ponto, um valor de ponderação atribuído a cada da primeira amostra de predição e da segunda amostra de predição pode ser determinado considerando pelo menos uma das possibilidades de o primeiro modo intrapredição ser ou não um modo de predição não- angular/angular, se o segundo modo intrapredição ser ou não um modo de predição não-angular/angular e um modo intrapredição de um bloco vizinho.[00296] Alternatively, intra-prediction may be performed based on each of a plurality of intra-predictions, and a final prediction sample may be derived based on an average operation or a weighted sum operation of a plurality of prediction samples acquired through the plurality of intra-predictions. For example, a first prediction sample may be acquired by performing intra-prediction based on a first intra-prediction mode, and a second prediction sample may be acquired by performing intra-prediction based on a second intra-prediction mode. Thereafter, a final prediction sample may be acquired based on an average operation or a weighted sum operation of the first prediction sample and the second prediction sample. At this point, a weighting value assigned to each of the first prediction sample and the second prediction sample can be determined by considering at least one of the possibilities of whether or not the first intra-prediction mode is a non-angular/angular prediction mode, whether or not the second intra-prediction mode is a non-angular/angular prediction mode, and an intra-prediction mode of a neighboring block.

[00297] A pluralidade de modos intrapredição pode ser uma combinação de um modo intrapredição não angular e um modo de predição angular, uma combinação de modos de predição angulares, ou uma combinação de modos de predição não- angulares.[00297] The plurality of intra-prediction modes may be a combination of a non-angular intra-prediction mode and an angular prediction mode, a combination of angular prediction modes, or a combination of non-angular prediction modes.

[00298] A Figura 27 é uma vista que mostra um exemplo de ângulos formados entre modos intrapredição angulares e uma linha reta paralela ao eixo geométrico x.[00298] Figure 27 is a view showing an example of angles formed between angular intraprediction modes and a straight line parallel to the x-axis.

[00299] Conforme mostrado no exemplo da Figura 27, os modos de predição angulares podem existir entre a direção diagonal inferior à esquerda e a direção diagonal inferior à direita. Descrevendo em termos de um ângulo formado pelo eixo geométrico x e pelo modo de predição angular, os modos de predição angulares podem existir entre 45 graus (direção diagonal inferior à esquerda) e -135 graus (direção diagonal inferior à direita).[00299] As shown in the example of Figure 27, angular prediction modes may exist between the lower left diagonal direction and the lower right diagonal direction. Describing in terms of an angle formed by the x-axis and the angular prediction mode, angular prediction modes may exist between 45 degrees (lower left diagonal direction) and -135 degrees (lower right diagonal direction).

[00300] Quando o bloco atual é um formato não- quadrado, de acordo com o modo intrapredição do bloco atual, pode haver um caso de derivação de uma amostra de predição por meio do uso da amostra de referência mais distante da amostra de predição, em vez da amostra de referência ainda mais próxima à amostra de predição, dentre as amostras de referência posicionadas na linha angular seguindo o ângulo intrapredição.[00300] When the current block is a non-square shape, according to the intra-prediction mode of the current block, there may be a case of deriving a prediction sample by using the reference sample farthest from the prediction sample, instead of the reference sample even closer to the prediction sample, among the reference samples positioned on the angular line following the intra-prediction angle.

[00301] A Figura 28 é uma vista que mostra uma modalidade de aquisição de amostras de predição quando o bloco atual é um formato não-quadrado.[00301] Figure 28 is a view showing an embodiment of acquiring prediction samples when the current block is a non-square shape.

[00302] Por exemplo, conforme mostrado no exemplo da Figura 28(a), presume-se que o bloco atual é um formato não-quadrado do qual a largura é maior que a altura, e o modo intrapredição do bloco atual é um modo intrapredição angular que tem um ângulo entre 0 e 45 graus. No caso acima, quando a amostra de predição A próxima à coluna direita do bloco atual é derivada, pode haver um caso de uso de amostra de referência esquerda L distante da amostra de predição, em vez de amostra de referência superior T próxima à amostra de predição, dentre as amostras de referência posicionadas em um modo angular seguindo o ângulo.[00302] For example, as shown in the example of Figure 28(a), it is assumed that the current block is a non-square shape of which the width is greater than the height, and the intra-prediction mode of the current block is an angular intra-prediction mode that has an angle between 0 and 45 degrees. In the above case, when the prediction sample A next to the right column of the current block is derived, there may be a use case of left reference sample L far from the prediction sample, instead of top reference sample T close to the prediction sample, among the reference samples positioned in an angular mode following the angle.

[00303] Como um outro exemplo, conforme mostrado no exemplo da Figura 28(b), presume-se que o bloco atual é um formato não-quadrado do qual a altura é maior que a largura, e o modo intrapredição do bloco atual é um modo intrapredição angular que tem um ângulo entre -90 e -135 graus. No caso acima, quando amostra de predição A próxima à fileira inferior do bloco atual é derivada, pode haver um caso de uso de amostra de referência superior T distante da amostra de predição, em vez de amostra de referência esquerda L próxima à amostra de predição, dentre as amostras de referência posicionadas em um modo angular seguindo o ângulo.[00303] As another example, as shown in the example of Figure 28(b), it is assumed that the current block is a non-square shape of which the height is greater than the width, and the intra-prediction mode of the current block is an angular intra-prediction mode that has an angle between -90 and -135 degrees. In the above case, when prediction sample A next to the bottom row of the current block is derived, there may be a case of using top reference sample T away from the prediction sample, instead of left reference sample L next to the prediction sample, among the reference samples positioned in an angular mode following the angle.

[00304] Para resolver o problema descrito acima, quando o bloco atual é um formato não-quadrado, o modo intrapredição do bloco atual pode ser substituído por um modo intrapredição da direção oposta. Consequentemente, os modos de predição angulares que têm um ângulo maior ou menor que aquele dos modos de predição angulares mostrados na Figura 24 podem ser usados para um bloco com formato não-quadrado. O modo intrapredição angular como esse pode ser definido como um modo intrapredição de ângulo amplo. O modo intrapredição de ângulo amplo representa um modo intrapredição angular que não pertence à faixa de 45 a -135 graus.[00304] To solve the problem described above, when the current block is a non-square shape, the intra-prediction mode of the current block can be replaced by an intra-prediction mode of the opposite direction. Accordingly, angular prediction modes that have an angle larger or smaller than that of the angular prediction modes shown in Figure 24 can be used for a non-square shaped block. Such an angular intra-prediction mode can be defined as a wide-angle intra-prediction mode. The wide-angle intra-prediction mode represents an angular intra-prediction mode that does not belong to the range of 45 to -135 degrees.

[00305] A Figura 29 é uma vista que mostra modos intrapredição de ângulo amplo.[00305] Figure 29 is a view showing wide-angle intraprediction modes.

[00306] No exemplo mostrado na Figura 29, os modos intrapredição com um índice de -1 a -14 e modos intrapredição com um índice de 67 a 80 representam modos intrapredição de ângulo amplo.[00306] In the example shown in Figure 29, intraprediction modes with an index of -1 to -14 and intraprediction modes with an index of 67 to 80 represent wide-angle intraprediction modes.

[00307] Embora 14 modos intrapredição de ângulo amplo (-1 a -14) que têm um ângulo maior que 45 graus e 14 modos intrapredição de ângulo amplo (67 a 80) que têm um ângulo menor que -135 graus sejam mostrados na Figura 29, um número menor ou maior de modos intrapredição de ângulo amplo pode ser definido.[00307] Although 14 wide-angle intra-prediction modes (-1 to -14) that have an angle greater than 45 degrees and 14 wide-angle intra-prediction modes (67 to 80) that have an angle less than -135 degrees are shown in Figure 29, a smaller or larger number of wide-angle intra-prediction modes may be defined.

[00308] Quando um modo intrapredição de ângulo amplo é usado, o comprimento de amostras de referência superiores pode ser ajustado para 2W+1, e o comprimento de amostras de referência à esquerda pode ser ajustado para 2H+1.[00308] When a wide-angle intra-prediction mode is used, the length of upper reference samples may be set to 2W+1, and the length of left reference samples may be set to 2H+1.

[00309] Como um modo intrapredição de ângulo amplo é usado, a amostra A mostrada na Figura 28(a) pode ser predita com o uso de amostra de referência T, e a amostra A mostrada na Figura 28(b) pode ser predita com o uso de amostra de referência L.[00309] Since a wide-angle intra-prediction mode is used, sample A shown in Figure 28(a) can be predicted using reference sample T, and sample A shown in Figure 28(b) can be predicted using reference sample L.

[00310] Por meio da adição de modos intrapredição existente e N modos intrapredição de ângulo amplo, um total de 67 + N modos intrapredição pode ser usado. Por exemplo, a Tabela 3 mostra parâmetros de intra direção de modos intrapredição quando 20 modos intrapredição de ângulo amplo são definidos.[TABELA 3] [00310] By adding existing intraprediction modes and N wide-angle intraprediction modes, a total of 67+N intraprediction modes can be used. For example, Table 3 shows intradirection parameters of intraprediction modes when 20 wide-angle intraprediction modes are defined.[TABLE 3]

[00311] Quando o bloco atual é um formato não- quadrado e o modo intrapredição do bloco atual adquirido na etapa S2202 pertence a uma faixa de transformada, o modo intrapredição do bloco atual pode ser transformado em um modo intrapredição de ângulo amplo. A faixa de transformada pode ser determinada com base em pelo menos um dentre o tamanho, o formato e a razão do bloco atual. Aqui, a razão pode representar uma razão entre largura e altura do bloco atual.[00311] When the current block is a non-square shape and the intra-prediction mode of the current block acquired in step S2202 belongs to a transform range, the intra-prediction mode of the current block may be transformed into a wide-angle intra-prediction mode. The transform range may be determined based on at least one of the size, shape, and aspect ratio of the current block. Here, the aspect ratio may represent a ratio of the width to the height of the current block.

[00312] O bloco atual é um formato não-quadrado do qual a largura é maior que a altura, a faixa de transformada pode ser ajustada de um índice de modo intrapredição (por exemplo, 66) da direção diagonal inferior à direita (um índice do modo intrapredição na direção diagonal inferior à direita - N). Aqui, N pode ser determinado com base na razão do bloco atual. Quando o modo intrapredição do bloco atual pertence à faixa de transformada, o modo intrapredição pode ser transformado em um modo intrapredição de ângulo amplo. A transformada pode ser uma subtração de um predefinido valor do modo intrapredição, e o valor predefinido pode ser o número total (por exemplo, 67) de modos intrapredição excluindo os modos intrapredição de ângulo amplo.[00312] The current block is a non-square shape of which the width is greater than the height, the transform range may be adjusted by an intra-prediction mode index (e.g., 66) of the lower right diagonal direction (an intra-prediction mode index in the lower right diagonal direction - N). Here, N may be determined based on the ratio of the current block. When the intra-prediction mode of the current block belongs to the transform range, the intra-prediction mode may be transformed into a wide-angle intra-prediction mode. The transform may be a subtraction of a predefined value of the intra-prediction mode, and the predefined value may be the total number (e.g., 67) of intra-prediction modes excluding the wide-angle intra-prediction modes.

[00313] De acordo com a modalidade descrita acima, 66-ésimo a 53-ésimo modos intrapredição podem ser transformados em -1° a -14-ésimo modos intrapredição de ângulo amplo, respectivamente.[00313] According to the above-described embodiment, 66-th to 53-th intra-prediction modes can be transformed into -1° to -14-th wide-angle intra-prediction modes, respectively.

[00314] Quando o bloco atual é um formato não- quadrado do qual a altura é maior que a largura, a faixa de transformada pode ser ajustada de um índice de modo intrapredição (por exemplo, 2) da direção diagonal inferior à esquerda (um índice do modo intrapredição na direção diagonal inferior à esquerda + M). Aqui, M pode ser determinado com base na razão do bloco atual. Quando o modo intrapredição do bloco atual pertence à faixa de transformada, o modo intrapredição pode ser transformado em um modo intrapredição de ângulo amplo. A transformada pode ser a adição de um valor predefinido ao modo intrapredição, e o valor predefinido pode ser o número total (por exemplo, 65) de modos intrapredição angulares excluindo os modos intrapredição de ângulo amplo.[00314] When the current block is a non-square shape of which the height is greater than the width, the transform range may be adjusted by an intra-prediction mode index (e.g., 2) of the lower left diagonal direction (an intra-prediction mode index in the lower left diagonal direction + M). Here, M may be determined based on the ratio of the current block. When the intra-prediction mode of the current block belongs to the transform range, the intra-prediction mode may be transformed into a wide-angle intra-prediction mode. The transform may be the addition of a preset value to the intra-prediction mode, and the preset value may be the total number (e.g., 65) of angular intra-prediction modes excluding the wide-angle intra-prediction modes.

[00315] De acordo com a modalidade descrita acima, 2° a 15-ésimo modos intrapredição podem ser transformados em 67-ésimo a 80-ésimo modos intrapredição de ângulo amplo, respectivamente.[00315] According to the above-described embodiment, 2nd to 15th intra-prediction modes can be transformed into 67th to 80th wide-angle intra-prediction modes, respectively.

[00316] Doravante no presente documento, modos intrapredição que pertencem à faixa de transformada serão referidos como modos de predição de substituição de ângulo amplo.[00316] Hereinafter in this document, intra-prediction modes that belong to the transform range will be referred to as wide-angle substitution prediction modes.

[00317] A faixa de transformada pode ser determinada com base na razão do bloco atual. Por exemplo, as Tabelas 4 e 5 mostram uma faixa de transformada quando 35 modos intrapredição e 67 modos intrapredição são definidos excluindo os modos intrapredição de ângulo amplo, respectivamente.[TABELA 4][TABELA 5] [00317] The transform range can be determined based on the current block ratio. For example, Tables 4 and 5 show a transform range when 35 intra-prediction modes and 67 intra-prediction modes are defined excluding the wide-angle intra-prediction modes, respectively.[TABLE 4] [TABLE 5]

[00318] Conforme mostrado nos exemplos das Tabelas 4 e 5, o número de modos de predição de substituição de ângulo amplo que pertencem à faixa de transformada pode variar de acordo com a razão do bloco atual.[00318] As shown in the examples in Tables 4 and 5, the number of wide-angle replacement prediction modes that belong to the transform range may vary depending on the current block ratio.

[00319] Como os modos intrapredição de ângulo amplo são usados além dos modos intrapredição existentes, recursos exigidos para codificar os modos intrapredição de ângulo amplo aumentam e, dessa forma, a eficiência de codificação pode ser diminuída. Consequentemente, a eficiência de codificação pode ser aprimorada por meio da codificação de modos intrapredição de substituição para os modos intrapredição de ângulo amplo, em vez da codificação dos modos intrapredição de ângulo amplo como são.[00319] As wide-angle intra-prediction modes are used in addition to existing intra-prediction modes, resources required to encode the wide-angle intra-prediction modes increase and thus coding efficiency may be decreased. Accordingly, coding efficiency may be improved by coding replacement intra-prediction modes for the wide-angle intra-prediction modes, rather than coding the wide-angle intra-prediction modes as is.

[00320] Por exemplo, quando o bloco atual é codificado com o uso do 67-ésimo modo intrapredição de ângulo amplo, o 2° modo intrapredição, que é o modo intrapredição de substituição do 67-ésimo modo intrapredição de ângulo amplo, pode ser codificado com o uso do modo intrapredição do bloco atual. Além disso, quando o bloco atual é codificado com o uso do -1° modo intrapredição de ângulo amplo, o 66-ésimo modo intrapredição, que é o modo intrapredição de substituição do -1° modo intrapredição de ângulo amplo, pode ser codificado com o uso do modo intrapredição do bloco atual.[00320] For example, when the current block is coded using the 67th wide-angle intra-prediction mode, the 2nd intra-prediction mode, which is the replacement intra-prediction mode of the 67th wide-angle intra-prediction mode, may be coded using the intra-prediction mode of the current block. Furthermore, when the current block is coded using the -1st wide-angle intra-prediction mode, the 66th intra-prediction mode, which is the replacement intra-prediction mode of the -1st wide-angle intra-prediction mode, may be coded using the intra-prediction mode of the current block.

[00321] O decodificador pode decodificar o modo intrapredição do bloco atual e determinar se o modo intrapredição decodificado pertence à faixa de transformada. Quando o modo intrapredição decodificado é um modo intrapredição de substituição de ângulo amplo, o modo intrapredição pode ser transformado no modo intrapredição de ângulo amplo.[00321] The decoder may decode the intra-prediction mode of the current block and determine whether the decoded intra-prediction mode belongs to the transform range. When the decoded intra-prediction mode is a wide-angle substitution intra-prediction mode, the intra-prediction mode may be transformed into the wide-angle intra-prediction mode.

[00322] Alternativamente, quando o bloco atual é codificado com o uso do modo intrapredição de ângulo amplo, o modo intrapredição de ângulo amplo pode ser codificado como é.[00322] Alternatively, when the current block is encoded using the wide-angle intra-prediction mode, the wide-angle intra-prediction mode may be encoded as is.

[00323] A codificação do modo intrapredição pode ser realizada com base na lista de MPM descrita acima. Doravante no presente documento, um método de configuração da lista de MPM será descrito em detalhes. Nas modalidades descritas abaixo, presume-se que são definidos 10 modos intrapredição de ângulo amplo (-1 a -10) com um ângulo maior que 45 graus e 10 modos intrapredição de ângulo amplo (67 a 76) com um ângulo menor que -135 graus.[00323] Intra-prediction mode coding may be performed based on the MPM list described above. Hereinafter in this document, a method of configuring the MPM list will be described in detail. In the embodiments described below, it is assumed that 10 wide-angle intra-prediction modes (-1 to -10) with an angle greater than 45 degrees and 10 wide-angle intra-prediction modes (67 to 76) with an angle less than -135 degrees are defined.

[00324] Quando um bloco vizinho é codificado com o uso de um modo intrapredição de ângulo amplo, o MPM pode ser ajustado com base em um modo intrapredição de substituição de ângulo amplo que corresponde ao modo intrapredição de ângulo amplo. Por exemplo, quando um bloco vizinho é codificado com o uso de um modo intrapredição de ângulo amplo, a variável candIntraPredX (X é A ou B) pode ser ajustada para o modo intrapredição de substituição de ângulo amplo.[00324] When a neighboring block is coded using a wide-angle intra-prediction mode, the MPM may be adjusted based on a wide-angle substitution intra-prediction mode that corresponds to the wide-angle intra-prediction mode. For example, when a neighboring block is coded using a wide-angle intra-prediction mode, the variable candIntraPredX (X is either A or B) may be adjusted for the wide-angle substitution intra-prediction mode.

[00325] Alternativamente, um método de derivação de um MPM pode ser determinado de acordo com o formato do bloco atual. Por exemplo, quando o bloco atual é um formato quadrado em que a largura é igual à altura, candIntraPredX pode ser ajustado para o modo intrapredição de substituição de ângulo amplo. Por outro lado, quando o bloco atual é um formato não- quadrado, candIntraPredX pode ser ajustado para o modo intrapredição de ângulo amplo.[00325] Alternatively, a method of deriving an MPM may be determined according to the shape of the current block. For example, when the current block is a square shape in which the width is equal to the height, candIntraPredX may be set to the wide-angle substitution intraprediction mode. Conversely, when the current block is a non-square shape, candIntraPredX may be set to the wide-angle intraprediction mode.

[00326] Alternativamente, a possibilidade de ajustar candIntraPredX para o modo intrapredição de ângulo amplo pode ser determinada com base na possibilidade de o modo intrapredição de ângulo amplo de um bloco vizinho poder ser ou não aplicado ao bloco atual. Por exemplo, quando o bloco atual é um formato não-quadrado do qual a largura é maior que a altura, um modo intrapredição de ângulo amplo do qual o índice é maior que aquele do modo intrapredição da direção diagonal inferior à direita é ajustado como candIntraPredX como é. Contudo, um modo intrapredição de substituição de ângulo amplo que corresponde a isso é ajustado como candIntraPredX para um modo intrapredição de ângulo amplo do qual o índice é menor que aquele do modo intrapredição da direção diagonal inferior à esquerda. Por outro lado, quando o bloco atual é um formato não-quadrado do qual a altura é maior que a largura, um modo intrapredição de ângulo amplo do qual o índice é menor que aquele do modo intrapredição da direção diagonal inferior à esquerda é ajustado como candIntraPredX como é. Contudo, um modo intrapredição de substituição de ângulo amplo que corresponde a isso é ajustado como candIntraPredX para um modo intrapredição de ângulo amplo do qual o índice é maior que aquele do modo intrapredição da direção diagonal inferior à direita.[00326] Alternatively, the possibility of setting candIntraPredX for the wide-angle intraprediction mode may be determined based on whether or not the wide-angle intraprediction mode of a neighboring block can be applied to the current block. For example, when the current block is a non-square shape of which the width is greater than the height, a wide-angle intraprediction mode of which the index is greater than that of the intraprediction mode of the lower right diagonal direction is set as candIntraPredX as is. However, a wide-angle replacement intraprediction mode that corresponds to this is set as candIntraPredX for a wide-angle intraprediction mode of which the index is less than that of the intraprediction mode of the lower left diagonal direction. On the other hand, when the current block is a non-square shape of which the height is greater than the width, a wide-angle intraprediction mode whose index is smaller than that of the intraprediction mode of the lower left diagonal direction is set as candIntraPredX as is. However, a wide-angle replacement intraprediction mode that corresponds to this is set as candIntraPredX for a wide-angle intraprediction mode whose index is larger than that of the intraprediction mode of the lower right diagonal direction.

[00327] Isto é, a possibilidade de derivar o MPM com o uso do modo intrapredição de ângulo amplo como é, ou a possibilidade de não derivar o MPM com o uso do modo intrapredição de substituição de ângulo amplo pode ser determinada de acordo com a possibilidade de o bloco vizinho codificado no modo intrapredição de ângulo amplo ter ou não um formato igual a ou similar àquele do bloco atual.[00327] That is, the possibility of deriving the MPM using the wide-angle intra-prediction mode as is, or the possibility of not deriving the MPM using the wide-angle substitution intra-prediction mode may be determined according to whether or not the neighboring block coded in the wide-angle intra-prediction mode has a shape equal to or similar to that of the current block.

[00328] Alternativamente, o modo intrapredição de ângulo amplo do bloco vizinho pode ser ajustado como candIntraPredX independentemente do formato do bloco atual.[00328] Alternatively, the wide-angle intraprediction mode of the neighboring block may be set to candIntraPredX regardless of the current block shape.

[00329] Em suma, candIntraPredX pode ser ajustado para um modo intrapredição de ângulo amplo ou um modo intrapredição de substituição de ângulo amplo de um bloco vizinho.[00329] In short, candIntraPredX can be set to a wide-angle intraprediction mode or a wide-angle replacement intraprediction mode of a neighboring block.

[00330] O MPM pode ser derivado com base em candIntraPredA e candIntraPredB. Nesse caso, o MPM pode ser derivado em um modo intrapredição similar à candIntraPredA ou candIntraPredB. O modo intrapredição similar à candIntraPredA ou candIntraPredB pode ser derivado com base na operação de módulo e um deslocamento. Nesse ponto, a constante e o deslocamento usado para a operação de módulo podem ser determinados de maneira diferente de acordo com o formato do bloco atual.[00330] The MPM may be derived based on candIntraPredA and candIntraPredB. In this case, the MPM may be derived in an intraprediction mode similar to candIntraPredA or candIntraPredB. The intraprediction mode similar to candIntraPredA or candIntraPredB may be derived based on the modulo operation and an offset. At this point, the constant and offset used for the modulo operation may be determined differently according to the current block format.

[00331] A Tabela 6 mostra um exemplo de derivação de um MPM de acordo com o formato do bloco atual.[TABELA 6] [00331] Table 6 shows an example of deriving an MPM according to the current block format.[TABLE 6]

[00332] Presume-se que candIntraPredA e candIntraPredB são iguais, e candIntraPredA é um modo intrapredição angular. Quando o bloco atual é um formato quadrado, um modo intrapredição similar à candIntraPredA pode ser obtido na base de uma operação modular com base em um valor obtido por meio da subtração de 1 do número total de modos intrapredição angulares excluindo modos intrapredição de ângulo amplo. Por exemplo, quando o número de modos intrapredição angulares além dos modos intrapredição de ângulo amplo é 65, o MPM pode ser derivado na base de um valor derivado com base em candIntraPredA e uma operação de módulo de 64. Por outro lado, quando o bloco atual é um formato não-quadrado, um modo intrapredição similar à candIntraPredA pode ser obtido na base de uma operação modular com base em um valor obtido por meio da subtração de 1 do número total de modos intrapredição angulares incluindo modos intrapredição de ângulo amplo. Por exemplo, quando o número de modos intrapredição de ângulo amplo é 20, o MPM pode ser derivado na base de um valor derivado com base em candIntraPredA e uma operação de módulo de 84.[00332] It is assumed that candIntraPredA and candIntraPredB are equal, and candIntraPredA is an angular intraprediction mode. When the current block is a square shape, an intraprediction mode similar to candIntraPredA can be obtained on the basis of a modular operation based on a value obtained by subtracting 1 from the total number of angular intraprediction modes excluding wide-angle intraprediction modes. For example, when the number of angular intraprediction modes other than wide-angle intraprediction modes is 65, the MPM can be derived on the basis of a value derived based on candIntraPredA and a modulo operation of 64. On the other hand, when the current block is a non-square shape, an intraprediction mode similar to candIntraPredA can be obtained on the basis of a modular operation based on a value obtained by subtracting 1 from the total number of angular intraprediction modes including wide-angle intraprediction modes. For example, when the number of wide-angle intraprediction modes is 20, the MPM can be derived on the basis of a value derived based on candIntraPredA and a modulo operation of 84.

[00333] Como a constante usada para a operação de módulo é ajustada de maneira diferente de acordo com o formato do bloco atual, a possibilidade de o modo intrapredição de ângulo amplo poder ser ajustado para um modo intrapredição angular similar à candIntraPredA pode ser determinada. Por exemplo, o modo intrapredição de ângulo amplo pode não ser ajustado como um modo intrapredição angular similar à candIntraPredA em uma operação de módulo com o uso de 64, enquanto que o modo intrapredição de ângulo amplo pode ser ajustado como um modo intrapredição angular similar à candIntraPredA em uma operação de módulo com o uso de 84.[00333] Since the constant used for the modulo operation is set differently according to the current block format, the possibility that the wide-angle intra-prediction mode can be set to an angular intra-prediction mode similar to candIntraPredA can be determined. For example, the wide-angle intra-prediction mode may not be set to an angular intra-prediction mode similar to candIntraPredA in a modulo operation using 64, while the wide-angle intra-prediction mode may be set to an angular intra-prediction mode similar to candIntraPredA in a modulo operation using 84.

[00334] Alternativamente, quando candIntraPredA e candIntraPredB são iguais, o MPM pode ser derivado considerando o formato do bloco atual e a possibilidade de candIntraPredA ser um modo intrapredição de ângulo amplo.[00334] Alternatively, when candIntraPredA and candIntraPredB are equal, the MPM can be derived by considering the current block shape and the possibility that candIntraPredA is a wide-angle intraprediction mode.

[00335] A Tabela 7 mostra um exemplo de derivaçãode um MPM de acordo com o formato do bloco atual.[TABELA 7] [00335] Table 7 shows an example of deriving an MPM according to the current block format.[TABLE 7]

[00336] Presume-se que candIntraPredA e candIntraPredB são iguais.[00336] It is assumed that candIntraPredA and candIntraPredB are equal.

[00337] Quando o bloco atual é um formato quadrado e candIntraPredA é um modo intrapredição de ângulo amplo, MPMs podem ser ajustados para modos padrão. Por exemplo, MPM[0], MPM[1] e MPM[2] podem ser ajustados para um modo plano, um modo DC e um modo intrapredição vertical, respectivamente.[00337] When the current block is a square shape and candIntraPredA is a wide-angle intraprediction mode, MPMs can be set to standard modes. For example, MPM[0], MPM[1], and MPM[2] can be set to a flat mode, a DC mode, and a vertical intraprediction mode, respectively.

[00338] Quando o bloco atual é um formato quadrado e candIntraPredA não é um modo intrapredição de ângulo amplo, mas um modo intrapredição angular, MPMs podem ser ajustados para candIntraPredA e um modo intrapredição angular similar a isso. Por exemplo, MPM[0] pode ser ajustado para candIntraPredA e MPM[1] e MPM[2] pode ser ajustado para candIntraPredA e um modo intrapredição angular similar a isso.[00338] When the current block is a square shape and candIntraPredA is not a wide-angle intraprediction mode but an angular intraprediction mode, MPMs can be set to candIntraPredA and an angular intraprediction mode similar to it. For example, MPM[0] can be set to candIntraPredA, and MPM[1] and MPM[2] can be set to candIntraPredA and an angular intraprediction mode similar to it.

[00339] Quando o bloco atual é um formato não- quadrado e candIntraPredA é um modo intrapredição angular, MPMs podem ser ajustados para candIntraPredA e um modo intrapredição angular similar a isso. Por exemplo, MPM[0] pode ser ajustado para candIntraPredA, e MPM[1] e MPM[2] pode ser ajustado para candIntraPredA e um modo intrapredição angular similar a isso.[00339] When the current block is a non-square shape and candIntraPredA is an angular intraprediction mode, MPMs may be set to candIntraPredA and an angular intraprediction mode similar to it. For example, MPM[0] may be set to candIntraPredA, and MPM[1] and MPM[2] may be set to candIntraPredA and an angular intraprediction mode similar to it.

[00340] O modo intrapredição angular similar à candIntraPredA pode ser derivado com o uso de uma operação de módulo e um deslocamento. Nesse ponto, a constante usada para a operação de módulo pode variar de acordo com o formato do bloco atual. Além disso, o deslocamento usado para derivar um modo intrapredição angular similar à candIntraPredA pode ser ajustado de maneira diferente de acordo com o formato do bloco atual. Por exemplo, quando o bloco atual é um formato não- quadrado do qual a largura é maior que a altura, um modo intrapredição angular similar à candIntraPredA pode ser derivado com o uso de deslocamento 2. Por outro lado, quando o bloco atual é um formato não-quadrado do qual a altura é maior que a largura, um modo intrapredição angular similar à candIntraPredA pode ser derivado com o uso de deslocamentos 2 e -8.[00340] The angular intraprediction mode similar to candIntraPredA can be derived using a modulo operation and an offset. At this point, the constant used for the modulo operation can vary depending on the current block shape. Furthermore, the offset used to derive an angular intraprediction mode similar to candIntraPredA can be adjusted differently depending on the current block shape. For example, when the current block is a non-square shape of which the width is greater than the height, an angular intraprediction mode similar to candIntraPredA can be derived using an offset of 2. Conversely, when the current block is a non-square shape of which the height is greater than the width, an angular intraprediction mode similar to candIntraPredA can be derived using offsets of 2 and -8.

[00341] Alternativamente, MPMs podem ser derivados considerando a possibilidade de candIntraPredX ser ou não um modo intrapredição de ângulo amplo que tem um índice maior ou menor.[00341] Alternatively, MPMs may be derived by considering whether or not candIntraPredX is a wide-angle intraprediction mode that has a larger or smaller index.

[00342] A Tabela 8 mostra um exemplo de derivação de um MPM considerando o índice do modo intrapredição de ângulo amplo.[TABELA 8] [00342] Table 8 shows an example of deriving an MPM considering the wide-angle intraprediction mode index.[TABLE 8]

[00343] Presume-se que candIntraPredA e candIntraPredB são iguais. Para facilitar a explicação, modos intrapredição de ângulo amplo que têm um valor de índice menor que aquele do modo intrapredição da direção diagonal inferior à esquerda são referidos como modos intrapredição de ângulo amplo de direção inferior, e modos intrapredição de ângulo amplo que têm um valor de índice maior que aquele do modo intrapredição da direção diagonal inferior à direita são referidos como modos intrapredição de ângulo amplo de direção à direita.[00343] It is assumed that candIntraPredA and candIntraPredB are equal. For ease of explanation, wide-angle intraprediction modes that have a smaller index value than that of the intraprediction mode of the lower left diagonal direction are referred to as lower-direction wide-angle intraprediction modes, and wide-angle intraprediction modes that have a larger index value than that of the intraprediction mode of the lower right diagonal direction are referred to as right-direction wide-angle intraprediction modes.

[00344] Quando candIntraPredA é um modo intrapredição de ângulo amplo de direção inferior, MPMs podem ser ajustados para candIntraPredA e um modo intrapredição angular similar a isso. Nesse ponto, quando candIntraPredA é um modo intrapredição de ângulo amplo de direção inferior que tem o valor menor, o MPM pode ser ajustado para um modo intrapredição de ângulo amplo de direção inferior que tem um valor de índice predefinido. Aqui, o índice predefinido pode ser um índice que tem o valor maior dentre os índices dos modos intrapredição de ângulo amplo de direção inferior. Por exemplo, quando candIntraPredA é -10, MPM[0], MPM[1], e MPM[2] pode ser ajustado para -10, -1 e -9, respectivamente.[00344] When candIntraPredA is a lower direction wide-angle intra-prediction mode, MPMs may be set to candIntraPredA and an angular intra-prediction mode similar thereto. At this point, when candIntraPredA is a lower direction wide-angle intra-prediction mode that has the smallest value, the MPM may be set to a lower direction wide-angle intra-prediction mode that has a predefined index value. Here, the predefined index may be an index that has the largest value among the indices of the lower direction wide-angle intra-prediction modes. For example, when candIntraPredA is -10, MPM[0], MPM[1], and MPM[2] may be set to -10, -1, and -9, respectively.

[00345] Quando candIntraPredA é um modo intrapredição de ângulo amplo de direção à direita, MPMs podem ser ajustados para candIntraPredA e um modo intrapredição angular similar a isso. Nesse ponto, quando candIntraPredA é um modo intrapredição de ângulo amplo de direção à direita que tem o valor maior, o MPM pode ser ajustado para um modo intrapredição de ângulo amplo de direção à direita que tem um valor de índice predefinido. Aqui, o índice predefinido pode ser um índice que tem o valor menor dentre os índices dos modos intrapredição de ângulo amplo de direção à direita. Por exemplo, quando candIntraPredA é 77, MPM[0], MPM[1], e MPM[2] pode ser ajustado para 77, 76 e 67, respectivamente.[00345] When candIntraPredA is a right-hand steering wide-angle intra-prediction mode, MPMs may be set to candIntraPredA and an angular intra-prediction mode similar thereto. At this point, when candIntraPredA is a right-hand steering wide-angle intra-prediction mode that has the largest value, the MPM may be set to a right-hand steering wide-angle intra-prediction mode that has a predefined index value. Here, the predefined index may be an index that has the smallest value among the indices of the right-hand steering wide-angle intra-prediction modes. For example, when candIntraPredA is 77, MPM[0], MPM[1], and MPM[2] may be set to 77, 76, and 67, respectively.

[00346] Alternativamente, quando um índice derivado por meio da subtração ou adição de 1 de ou ao índice de candIntraPredA é menor que o valor menor ou maior que o valor maior dentre os índices dos modos intrapredição, o MPM pode ser ajustado para o modo padrão. Aqui, o modo padrão pode incluir pelo menos um dentre um modo plano, um modo DC, um modo intrapredição vertical, um modo intrapredição horizontal e um modo intrapredição diagonal.[00346] Alternatively, when an index derived by subtracting or adding 1 from or to the index of candIntraPredA is less than the smallest value or greater than the largest value among the indices of the intra-prediction modes, the MPM may be set to the default mode. Here, the default mode may include at least one of a flat mode, a DC mode, a vertical intra-prediction mode, a horizontal intra-prediction mode, and a diagonal intra-prediction mode.

[00347] Alternativamente, quando um índicederivado por meio da subtração de ou adição de 1 de ou ao índice de candIntraPredA é menor que o valor menor ou maior que o valor maior dentre os índices dos modos intrapredição, o MPM pode ser ajustado para um modo intrapredição oposto a candIntraPredA ou um modo intrapredição similar ao modo intrapredição oposto a candIntraPredA.[00347] Alternatively, when an index derived by subtracting or adding 1 from or to the index of candIntraPredA is less than the smallest value or greater than the largest value among the indices of the intraprediction modes, the MPM may be set to an intraprediction mode opposite to candIntraPredA or an intraprediction mode similar to the intraprediction mode opposite to candIntraPredA.

[00348] Alternativamente, candidatos de MPM podem ser derivados considerando o formato do bloco atual e o formato de um bloco vizinho. Por exemplo, o método de derivação de MPMs quando tanto o bloco atual como o bloco vizinho são formatos não quadrados pode ser diferente do método de derivação de MPMs quando o bloco atual é um formato quadrado e o bloco vizinho é um formato não-quadrado.[00348] Alternatively, MPM candidates may be derived by considering the shape of the current block and the shape of a neighboring block. For example, the method of deriving MPMs when both the current block and the neighboring block are non-square shapes may be different from the method of deriving MPMs when the current block is a square shape and the neighboring block is a non-square shape.

[00349] MPMs na lista de MPM podem ser rearranjados (ou reordenados) considerando pelo menos um dentre o tamanho do bloco atual, o formato do bloco atual, o tamanho do bloco vizinho e o formato do bloco vizinho. Aqui, o rearranjo indica reatribuição dos índices atribuídos a cada um dos MPMs. Porexemplo, um índice menor pode ser atribuído a um MPM igual ao modo intrapredição de um bloco vizinho que tem um tamanho ouum formato igual àquele do bloco atual.[00349] MPMs in the MPM list may be rearranged (or reordered) considering at least one of the current block size, the current block shape, the neighboring block size, and the neighboring block shape. Here, rearrangement indicates reassignment of the indices assigned to each of the MPMs. For example, a smaller index may be assigned to an MPM equal to the intraprediction mode of a neighboring block that has a size or shape equal to that of the current block.

[00350] Presume-se que MPM[0] e MPM[1] são ajustados para modo intrapredição candIntraPredA do bloco vizinho esquerdo e modo intrapredição candIntraPredB do bloco vizinho superior, respectivamente.[00350] MPM[0] and MPM[1] are assumed to be set to left neighbor block intraprediction mode candIntraPredA and upper neighbor block intraprediction mode candIntraPredB, respectively.

[00351] Quando o bloco atual e o bloco vizinho superior são formatos não quadrados dos quais a largura é maior que a altura, MPMs podem ser rearranjados de maneira que o modo intrapredição candIntraPredB do bloco vizinho superior possa ter um índice menor. Isto é, candIntraPredB pode ser rearranjado para MPM [0] e candIntraPredA pode ser rearranjado para MPM[1].[00351] When the current block and the upper neighboring block are non-square shapes of which the width is greater than the height, MPMs may be rearranged so that the intraprediction mode candIntraPredB of the upper neighboring block may have a smaller index. That is, candIntraPredB may be rearranged to MPM[0] and candIntraPredA may be rearranged to MPM[1].

[00352] Alternativamente, quando o bloco atual e o bloco vizinho superior são formatos não quadrados dos quais a altura é maior que a largura, MPMs podem ser rearranjados de maneira que o modo intrapredição candIntraPredB do bloco vizinho superior tenha um índice menor. Isto é, candIntraPredB pode ser rearranjado para MPM[0] e candIntraPredA pode ser rearranjado para MPM[1].[00352] Alternatively, when the current block and the upper neighboring block are non-square shapes of which the height is greater than the width, MPMs may be rearranged such that the intraprediction mode candIntraPredB of the upper neighboring block has a smaller index. That is, candIntraPredB may be rearranged to MPM[0] and candIntraPredA may be rearranged to MPM[1].

[00353] Alternativamente, quando o bloco atual e o bloco vizinho superior são formatos quadrados, MPMs podem ser rearranjados de maneira que o modo intrapredição candIntraPredB do bloco vizinho superior tenha um índice menor. Isto é, candIntraPredB pode ser rearranjado para MPM[0] e candIntraPredA pode ser rearranjado para MPM[1].[00353] Alternatively, when the current block and the upper neighboring block are square shapes, MPMs may be rearranged such that the intraprediction mode candIntraPredB of the upper neighboring block has a smaller index. That is, candIntraPredB may be rearranged to MPM[0] and candIntraPredA may be rearranged to MPM[1].

[00354] Em vez de rearranjar os MPMs, quando candIntraPredX é inicialmente atribuído ao MPM, pelo menos um dentre o tamanho do bloco atual, o formato do bloco atual, o tamanho do bloco vizinho e o formato do bloco vizinho pode ser considerado.[00354] Instead of rearranging the MPMs, when candIntraPredX is initially assigned to the MPM, at least one of the current block size, the current block format, the neighboring block size, and the neighboring block format may be considered.

[00355] MPMs podem ser rearranjados com base no tamanho ou no formato do bloco atual. Por exemplo, quando o bloco atual é um formato não-quadrado do qual a largura é maior que a altura, os MPMs podem ser rearranjados em ordem decrescente. Por outro lado, quando o bloco atual é um formato não-quadrado do qual a altura é maior que a largura, os MPMs podem ser rearranjados em ordem crescente.[00355] MPMs may be rearranged based on the size or shape of the current block. For example, when the current block is a non-square shape of which the width is greater than the height, the MPMs may be rearranged in descending order. Conversely, when the current block is a non-square shape of which the height is greater than the width, the MPMs may be rearranged in ascending order.

[00356] Um vídeo residual derivado pode ser derivado por meio da subtração de um vídeo de predição de um vídeo original. Nesse ponto, quando o vídeo residual é mudado para o domínio de frequência, qualidade de vídeo subjetiva do vídeo não é significativamente diminuída, embora os componentes de alta frequência dentre os componentes de frequência sejam removidos. Consequentemente, quando valores dos componentes de alta frequência são convertidos para serem menores ou os valores dos componentes de alta frequência são ajustados para 0, existe um efeito de aumento da eficácia de compressão sem gerar distorção visual significativa. Refletindo esta característica, o bloco atual pode ser transformado para decompor um vídeo residual em componentes de frequência bidimensionais. A transformada pode ser realizada com o uso de uma técnica de transformada como Transformada de Cosseno Discreta (DST) ou Transformada de Seno Discreta (DST).[00356] A derived residual video may be derived by subtracting a prediction video from an original video. At this point, when the residual video is shifted to the frequency domain, subjective video quality of the video is not significantly decreased, although high frequency components among the frequency components are removed. Accordingly, when values of the high frequency components are converted to be smaller or values of the high frequency components are set to 0, there is an effect of increasing compression efficiency without generating significant visual distortion. Reflecting this characteristic, the current block may be transformed to decompose a residual video into two-dimensional frequency components. The transform may be performed using a transform technique such as Discrete Cosine Transform (DST) or Discrete Sine Transform (DST).

[00357] A DCT decompõe (ou transforma) um vídeo residual em componentes de frequência bidimensionais com o uso de uma transformada de cosseno, e a DST decompõe (ou transforma) um vídeo residual em componentes de frequência bidimensionais com o uso de uma transformada de seno. Como resultado da transformação do vídeo residual, os componentes de frequência podem ser expressos como um vídeo de base. Por exemplo, quando a transformada DCT é realizada em um bloco de um tamanho N x N, podem ser adquiridos N2 componentes de padrão básico. O tamanho de cada um dos componentes de padrão básico incluídos em um bloco de um tamanho N x N pode ser adquirido através da transformada. De acordo com uma técnica de transformada usada para isso, o tamanho do componente de padrão básico pode ser referido como um coeficiente de DCT ou um coeficiente de DST.[00357] The DCT decomposes (or transforms) a residual video into two-dimensional frequency components using a cosine transform, and the DST decomposes (or transforms) a residual video into two-dimensional frequency components using a sine transform. As a result of the transformation of the residual video, the frequency components can be expressed as a basis video. For example, when the DCT transform is performed on a block of size N x N, N2 basic pattern components can be acquired. The size of each of the basic pattern components included in a block of size N x N can be acquired through the transform. According to a transform technique used for this, the size of the basic pattern component can be referred to as a DCT coefficient or a DST coefficient.

[00358] A técnica de transformada DCT é principalmente usada para transformar um vídeo no qual muitos componentes de baixa frequência diferentes de zero são distribuídos. A técnica de transformada DST é principalmente usada para vídeos nos quais muitos componentes de alta frequência são distribuídos.[00358] The DCT transform technique is mainly used to transform a video in which many non-zero low frequency components are distributed. The DST transform technique is mainly used for videos in which many high frequency components are distributed.

[00359] O vídeo residual pode ser transformado com o uso de uma técnica de transformada além da DCT ou da DST.[00359] The residual video may be transformed using a transform technique other than DCT or DST.

[00360] Doravante no presente documento, a transformada de um vídeo residual em componentes de frequência bidimensionais será referida como transformada de vídeo bidimensional. Além disso, o tamanho dos componentes de padrão básico adquiridos como resultado da transformada é referido como um coeficiente de transformada. Por exemplo, o coeficiente de transformada pode significar um coeficiente de DCT ou um coeficiente de DST. Quando tanto a primeira transformada como a segunda transformada descritas abaixo são aplicadas, o coeficiente de transformada pode significar o tamanho de um componente de padrão básico gerado como resultado da segunda transformada.[00360] Hereinafter in this document, the transform of a residual video into two-dimensional frequency components will be referred to as two-dimensional video transform. Furthermore, the size of the basic pattern components acquired as a result of the transform is referred to as a transform coefficient. For example, the transform coefficient may mean a DCT coefficient or a DST coefficient. When both the first transform and the second transform described below are applied, the transform coefficient may mean the size of a basic pattern component generated as a result of the second transform.

[00361] A técnica de transformada pode ser determinada para cada bloco. A técnica de transformada pode ser determinada com base em pelo menos um dentre o modo de codificação de predição do bloco atual, o tamanho do bloco atual e o tamanho do bloco atual. Por exemplo, quando o bloco atual é codificado no modo intrapredição e o tamanho do bloco atual é menor que N x N, a transformada pode ser realizada com o uso da técnica de transformada DST. Por outro lado, quando as condições acima não são satisfeitas, a transformada pode ser realizada com o uso da técnica de transformada DCT.[00361] The transform technique may be determined for each block. The transform technique may be determined based on at least one of the prediction coding mode of the current block, the current block size, and the current block size. For example, when the current block is coded in intra-prediction mode and the current block size is less than N x N, the transform may be performed using the DST transform technique. On the other hand, when the above conditions are not satisfied, the transform may be performed using the DCT transform technique.

[00362] A transformada de vídeo bidimensional pode não ser realizada para alguns blocos do vídeo residual. A não realização da transformada de vídeo bidimensional pode ser referida como um salto de transformada. Quando o salto de transformada é aplicado, a quantização pode ser aplicada a coeficientes residuais que não foram transformados.[00362] The two-dimensional video transform may not be performed for some blocks of the residual video. Failure to perform the two-dimensional video transform may be referred to as a transform skip. When the transform skip is applied, quantization may be applied to residual coefficients that have not been transformed.

[00363] Após o bloco atual ser transformado com o uso de DCT ou DST, o bloco atual transformado pode ser transformado novamente. Nesse ponto, a transformada com base em DCT ou DST pode ser definida como uma primeira transformada, e a transformação novamente de um bloco ao qual a primeira transformada é aplicada pode ser definida como uma segunda transformada.[00363] After the current block is transformed using DCT or DST, the current transformed block may be transformed again. At this point, the DCT or DST based transform may be defined as a first transform, and retransforming a block to which the first transform is applied may be defined as a second transform.

[00364] A primeira transformada pode ser realizada com o uso de qualquer um dentre uma pluralidade de candidatos de núcleo de transformada. Por exemplo, a primeira transformada pode ser realizada com o uso de qualquer um dentre DCT2, DCT8 ou DCT7.[00364] The first transform may be performed using any of a plurality of transform kernel candidates. For example, the first transform may be performed using any of DCT2, DCT8, or DCT7.

[00365] Diferentes núcleos de transformada podem ser usados para a direção horizontal e a direção vertical. Informações indicando a combinação de um núcleo de transformada da direção horizontal e um núcleo de transformada da direção vertical podem ser sinalizadas através de uma corrente de bits.[00365] Different transform cores may be used for the horizontal direction and the vertical direction. Information indicating the combination of a horizontal direction transform core and a vertical direction transform core may be signaled via a bit stream.

[00366] Unidades para realizar a primeira transformada e a segunda transformada podem ser diferentes. Por exemplo, a primeira transformada pode ser realizada em um bloco de 8x8, e a segunda transformada pode ser realizada em um sub-bloco de tamanho 4 x 4 dentre o bloco de 8 x 8 transformado. Nesse ponto, os coeficientes de transformada das regiões residuais que não foram realizados, a segunda transformada pode ser ajustada para 0.[00366] Units for performing the first transform and the second transform may be different. For example, the first transform may be performed on an 8x8 block, and the second transform may be performed on a sub-block of size 4x4 within the transformed 8x8 block. At this point, the transform coefficients of the residual regions that were not performed the second transform may be set to 0.

[00367] Alternativamente, a primeira transformada pode ser realizada em um bloco de 4 x 4, e a segunda transformada pode ser realizada em uma região de um tamanho 8x8 incluindo o bloco de 4 x 4 transformado.[00367] Alternatively, the first transform may be performed on a 4 x 4 block, and the second transform may be performed on a region of size 8x8 including the transformed 4 x 4 block.

[00368] Informações indicando a possibilidade de a segunda transformada ter sido realizada podem ser sinalizadas através de uma corrente de bits.[00368] Information indicating the possibility that the second transform has been performed may be signaled via a bit stream.

[00369] O decodificador pode realizar uma transformada inversa da segunda transformada (uma segunda transformada inversa), e pode realizar uma transformada inversa da primeira transformada (uma primeira transformada inversa) em um resultado da transformada inversa. Como resultado da realização da segunda transformada inversa e da primeira transformada inversa, sinais residuais para o bloco atual podem ser adquiridos.[00369] The decoder may perform an inverse transform of the second transform (a second inverse transform), and may perform an inverse transform of the first transform (a first inverse transform) on a result of the inverse transform. As a result of performing the second inverse transform and the first inverse transform, residual signals for the current block may be acquired.

[00370] A quantização é para reduzir a energia de um bloco, e o processo de quantização inclui um processo de divisão de um coeficiente de transformada por um valor de constante específico. O valor de constante pode ser derivado por um parâmetro de quantização, e o parâmetro de quantização pode ser definido como um valor entre 1 e 63.[00370] Quantization is to reduce the energy of a block, and the quantization process includes a process of dividing a transform coefficient by a specific constant value. The constant value may be derived by a quantization parameter, and the quantization parameter may be set to a value between 1 and 63.

[00371] Quando o codificador realiza transformada e quantização, o decodificador pode adquirir um bloco residual através de quantização inversa e transformada inversa. O decodificador pode adquirir um bloco reconstruído para o bloco atual por meio da adição de um bloco de predição e do bloco residual.[00371] When the encoder performs transform and quantization, the decoder may acquire a residual block through inverse quantization and inverse transform. The decoder may acquire a reconstructed block for the current block by adding a prediction block and the residual block.

[00372] Quando um bloco do bloco atual reconstruído é adquirido, a perda de informações que ocorre no processo de quantização e codificação pode ser reduzida através de filtração em circuito. Um filtro em circuito pode incluir pelo menos um dentre um filtro de desbloqueio, um filtro de deslocamento adaptativo de amostra (SAO) e um filtro de circuito adaptativo (ALF). Doravante no presente documento, um bloco reconstruído antes de o filtro em circuito ser aplicado é referido como um primeiro bloco reconstruído, e um bloco reconstruído após o filtro em circuito ser aplicado é referido como um segundo bloco reconstruído.[00372] When a block of the current reconstructed block is acquired, the information loss that occurs in the quantization and encoding process can be reduced by in-loop filtering. An in-loop filter can include at least one of a deblocking filter, an adaptive sample shift (SAO) filter, and an adaptive in-loop filter (ALF). Hereinafter in this document, a block reconstructed before the in-loop filter is applied is referred to as a first reconstructed block, and a block reconstructed after the in-loop filter is applied is referred to as a second reconstructed block.

[00373] O segundo bloco reconstruído pode ser adquirido por meio da aplicação de pelo menos um dentre o filtro de desbloqueio, o SAO e o ALF ao primeiro bloco reconstruído. Nesse ponto, o SAO ou o ALF pode ser aplicado após o filtro de desbloqueio ser aplicado.[00373] The second reconstructed block may be acquired by applying at least one of the unlocking filter, the SAO, and the ALF to the first reconstructed block. At this point, the SAO or the ALF may be applied after the unlocking filter is applied.

[00374] O filtro de desbloqueio é para mitigar a degradação da qualidade de vídeo (artefato de bloqueio) na delimitação de um bloco, que ocorre conforme a quantização é realizada em blocos individuais. A fim de aplicar o filtro de desbloqueio, pode ser determinada uma resistência de bloco (BS) entre o primeiro bloco reconstruído e um bloco reconstruído vizinho.[00374] The deblocking filter is to mitigate video quality degradation (blocking artifact) at the boundary of a block, which occurs as quantization is performed on individual blocks. In order to apply the deblocking filter, a block resistance (BS) between the first reconstructed block and a neighboring reconstructed block may be determined.

[00375] A Figura 30 é um fluxograma que ilustra um processo de determinação de resistência de bloco.[00375] Figure 30 is a flowchart illustrating a block resistance determination process.

[00376] No exemplo mostrado na Figura 30, P denota um primeiro bloco reconstruído e Q denota um bloco reconstruído vizinho. Aqui, o bloco reconstruído vizinho pode ser um bloco adjacente ao lado esquerdo ou no lado superior do bloco atual.[00376] In the example shown in Figure 30, P denotes a first reconstructed block and Q denotes a neighboring reconstructed block. Here, the neighboring reconstructed block may be a block adjacent to the left side or on the top side of the current block.

[00377] No exemplo mostrado na Figura 30, é mostrado que a resistência de bloco é determinada considerando os modos de codificação de predição de P e Q, a possibilidade de um coeficiente de transformada diferente de ero ser incluído, a possibilidade de interpredição ser realizada com o uso da mesma figuração de referência e a possibilidade de o valor de diferença de vetores de movimento ser maior que ou igual a um valor limiar.[00377] In the example shown in Figure 30, it is shown that the block resistance is determined considering the prediction coding modes of P and Q, the possibility of a transform coefficient other than ero being included, the possibility of interprediction being performed using the same reference figuration, and the possibility of the difference value of motion vectors being greater than or equal to a threshold value.

[00378] A possibilidade de aplicar ou não o filtro de desbloqueio pode ser determinada com base na resistência de bloco. Por exemplo, quando a resistência de bloco é 0, a filtração pode não ser realizada.[00378] Whether or not to apply the deblocking filter may be determined based on the block resistance. For example, when the block resistance is 0, filtering may not be performed.

[00379] O SAO é para mitigar um fenômeno de borrão (artefato de borrão) que ocorre conforme a quantização é realizada no domínio de frequência. O SAO pode ser realizado por meio da adição de ou subtração de um deslocamento determinado considerando o padrão do primeiro vídeo reconstruído. O método de determinação do deslocamento inclui um deslocamento de borda (EO) ou um deslocamento de banda. EO denota um método de determinação de um deslocamento de uma amostra atual de acordo com o padrão de pixels circundantes. BO denota um método de aplicação de um deslocamento comum a um conjunto de pixels que têm valores de brilho similares em uma região. Especificamente, brilho de pixel pode ser dividido em 32 seções iguais, e pixels que têm valores de brilho similares podem ser ajustados como um conjunto. Por exemplo, quatro bandas adjacentes dentre 32 bandas podem ser ajustadas como um grupo, e o mesmo valor de deslocamento pode ser aplicado às amostras que pertencem às quatro bandas.[00379] SAO is to mitigate a blur phenomenon (blur artifact) that occurs as quantization is performed in the frequency domain. SAO can be performed by adding or subtracting an offset determined by considering the pattern of the first reconstructed video. The method of determining the offset includes an edge offset (EO) or a band offset. EO denotes a method of determining an offset of a current sample according to the pattern of surrounding pixels. BO denotes a method of applying a common offset to a set of pixels that have similar brightness values in a region. Specifically, pixel brightness can be divided into 32 equal sections, and pixels that have similar brightness values can be adjusted as a set. For example, four adjacent bands out of 32 bands can be adjusted as a group, and the same offset value can be applied to the samples belonging to the four bands.

[00380] O ALF é um método de geração de um segundo vídeo reconstruído por meio da aplicação de um filtro que tem um tamanho/formato predefinido ao primeiro vídeo reconstruído ou um vídeo reconstruído ao qual um filtro de desbloqueio foi aplicado. A Equação 21 mostra um exemplo de aplicação do ALF. [00380] ALF is a method of generating a second reconstructed video by applying a filter that has a predefined size/shape to the first reconstructed video or a reconstructed video to which a deblocking filter has been applied. Equation 21 shows an example application of ALF.

[00381] Qualquer um dos candidatos de filtropredefinidos pode ser selecionado pela unidade de uma figuração, uma unidade de árvore de codificação, um bloco de codificação, um bloco de predição ou um bloco de transformada. Cada um dos candidatos de filtro pode ser diferente ou no tamanho ou no formato.[00381] Any of the predefined filter candidates may be selected by a representation unit, a coding tree unit, a coding block, a prediction block, or a transform block. Each of the filter candidates may differ in either size or shape.

[00382] A Figura 31 é uma vista que mostra candidatos de filtro predefinidos.[00382] Figure 31 is a view showing predefined filter candidates.

[00383] Conforme mostrado no exemplo da Figura 31, pelo menos um dentre formatos de diamante de 5 x 5, 7 x 7 e 9 x 9 pode ser selecionado.[00383] As shown in the example of Figure 31, at least one of 5 x 5, 7 x 7, and 9 x 9 diamond shapes may be selected.

[00384] Apenas um formato de diamante de um tamanho de 5 x 5 pode ser usado para um componente croma.[00384] Only a diamond shape of a size of 5 x 5 can be used for a chroma component.

[00385] Para a codificação em tempo real ou de baixo atraso de vídeos de alta resolução, como vídeos panorâmicos, vídeos de 360 graus ou vídeos 4K/8K UHD (Ultra Alta Definição), um método de particionar uma imagem em uma pluralidade de regiões e a codificação/decodificação da pluralidade de regiões em paralelo pode ser considerado. Para essa finalidade, uma figuração pode ser particionada em ladrilhos, isto é, uma unidade básica de codificação/decodificação paralela, e os ladrilhos podem ser processados em paralelo.[00385] For real-time or low-delay encoding of high-resolution videos, such as panoramic videos, 360-degree videos, or 4K/8K UHD (Ultra High Definition) videos, a method of partitioning a picture into a plurality of regions and encoding/decoding the plurality of regions in parallel may be considered. For this purpose, a picture may be partitioned into tiles, i.e., a basic parallel encoding/decoding unit, and the tiles may be processed in parallel.

[00386] Os ladrilhos podem ser restringidos para terem uma forma retangular. Na codificação/decodificação de um ladrilho, os dados dos outros ladrilhos não são usados. Uma tabela de probabilidade de contexto de codificação aritmética binária adaptável ao contexto (CABAC) pode ser inicializada pela unidade do ladrilho e pode ser configurada para não aplicar um filtro em circuito nos limites dos ladrilhos.[00386] Tiles may be constrained to have a rectangular shape. When encoding/decoding a tile, data from other tiles is not used. A context-adaptive binary arithmetic coding (CABAC) context probability table may be initialized by the tile unit and may be configured to not apply a loop filter at tile boundaries.

[00387] A Figura 32 é uma vista que mostra um exemplo de partição de uma figuração em uma pluralidade de ladrilhos.[00387] Figure 32 is a view showing an example of partitioning a figuration into a plurality of tiles.

[00388] Um ladrilho inclui pelo menos uma unidade de árvore de codificação, e a delimitação de um ladrilho sobrepõe a delimitação da unidade de árvore de codificação.[00388] A tile includes at least one coding tree unit, and the boundary of a tile overlaps the boundary of the coding tree unit.

[00389] Conforme mostrado no exemplo da Figura 32, uma figuração pode ser particionada em uma pluralidade de conjuntos de ladrilhos. As informações para particionar uma imagem em uma pluralidade de conjuntos de ladrilhos podem ser sinalizadas por meio de uma corrente de bits.[00389] As shown in the example of Figure 32, a picture may be partitioned into a plurality of tile sets. Information for partitioning a picture into a plurality of tile sets may be signaled via a bit stream.

[00390] De acordo com o tipo de partição de uma figuração, ladrilhos podem ter o mesmo tamanho em todas as regiões, exceto nas delimitações de figuração.[00390] Depending on the type of partition of a figuration, tiles may have the same size in all regions, except in the figuration boundaries.

[00391] Alternativamente, uma figuração pode ser particionada de modo que os ladrilhos adjacentes na direção horizontal possam ter a mesma altura, ou a figuração pode ser particionada de modo que os ladrilhos adjacentes na direção vertical possam ter a mesma largura.[00391] Alternatively, a figuration may be partitioned so that adjacent tiles in the horizontal direction may have the same height, or the figuration may be partitioned so that adjacent tiles in the vertical direction may have the same width.

[00392] Como uma figuração é particionada com o uso de pelo menos uma dentre uma linha vertical e uma linha horizontal que cruza a figuração, cada um dos ladrilhos pertence a uma coluna e/ou fileira diferente. Na modalidade descrita abaixo, uma coluna a qual um ladrilho pertence é referida como uma coluna de ladrilho, e uma fileira a qual um ladrilho pertence é referida como uma fileira de ladrilho.[00392] Since a pattern is partitioned using at least one of a vertical line and a horizontal line that intersects the pattern, each of the tiles belongs to a different column and/or row. In the embodiment described below, a column to which a tile belongs is referred to as a tile column, and a row to which a tile belongs is referred to as a tile row.

[00393] Informações para determinar um formato de partição de uma figuração em ladrilhos podem ser sinalizadas através de uma corrente de bits. As informações podem ser codificadas e sinalizadas através de um conjunto de parâmetros de figuração ou um conjunto de parâmetros de sequência. As informações são para determinar o número de ladrilhos em uma figuração, e podem incluir informações que indicam o número de fileiras de ladrilho e informações que indicam o número de colunas de ladrilho. Por exemplo, o elemento de sintaxe num_tile_columns_minus1 indica um valor obtido por meio da subtração de 1 do número de colunas de ladrilho e o elemento de sintaxe num_tile_rows_minus1 indica um valor obtido por meio da subtração de 1 do número de fileiras de ladrilho.[00393] Information for determining a partition format of a tiled pattern may be signaled via a bit stream. The information may be encoded and signaled via a set of pattern parameters or a set of sequence parameters. The information is for determining the number of tiles in a pattern, and may include information indicating the number of tile rows and information indicating the number of tile columns. For example, the syntax element num_tile_columns_minus1 indicates a value obtained by subtracting 1 from the number of tile columns, and the syntax element num_tile_rows_minus1 indicates a value obtained by subtracting 1 from the number of tile rows.

[00394] No exemplo mostrado na Figura 32, visto que o número de colunas de ladrilho é 4 e o número de fileiras de ladrilho é 3, num_tile_columns_minus1 pode ser 3 e num_tile_rows_minus1 pode ser 2.[00394] In the example shown in Figure 32, since the number of tile columns is 4 and the number of tile rows is 3, num_tile_columns_minus1 could be 3 and num_tile_rows_minus1 could be 2.

[00395] Quando a figuração é particionada em uma pluralidade de ladrilhos, informações que indicam o tamanho de um ladrilho podem ser sinalizadas através de uma corrente de bits. Por exemplo, quando a figuração é particionada em uma pluralidade de colunas de ladrilho, informações que indicam a largura de cada coluna de ladrilho são sinalizadas através de uma corrente de bits, e quando a figuração é particionada em uma pluralidade de fileiras de ladrilho, informações que indicam a altura de cada fileira de ladrilho são sinalizadas através de uma corrente de bits. Por exemplo, o elemento de sintaxe column_width_minus1 que indica a largura da coluna de ladrilho pode ser codificado e sinalizado para cada coluna de ladrilho, e o elemento de sintaxe row_height_minus1 que indica a altura da fileira de ladrilho pode ser codificado e sinalizado para cada fileira de ladrilho.[00395] When the picture is partitioned into a plurality of tiles, information indicating the size of a tile may be signaled via a bit stream. For example, when the picture is partitioned into a plurality of tile columns, information indicating the width of each tile column is signaled via a bit stream, and when the picture is partitioned into a plurality of tile rows, information indicating the height of each tile row is signaled via a bit stream. For example, the syntax element column_width_minus1 indicating the tile column width may be encoded and signaled for each tile column, and the syntax element row_height_minus1 indicating the tile row height may be encoded and signaled for each tile row.

[00396] Column_width_minus1 pode indicar um valor obtido por meio da subtração de 1 da largura de uma coluna de ladrilho, e row_height_minus1 pode indicar um valor obtido por meio da subtração de 1 da altura de uma fileira de ladrilho.[00396] Column_width_minus1 may indicate a value obtained by subtracting 1 from the width of a tile column, and row_height_minus1 may indicate a value obtained by subtracting 1 from the height of a tile row.

[00397] A codificação de column_width_minus1 pode ser omitida para a última coluna de ladrilho, e a codificação de row_height_minus1 pode ser omitida para a última fileira de ladrilho. A largura da última coluna de ladrilho e a altura da última fileira podem ser derivadas considerando um tamanho de figuração.[00397] The encoding of column_width_minus1 may be omitted for the last tile column, and the encoding of row_height_minus1 may be omitted for the last tile row. The width of the last tile column and the height of the last tile row may be derived by considering a figuration size.

[00398] O decodificador pode determinar um tamanho de ladrilho com base em column_width_minus1 e row_height_minus1.[00398] The decoder may determine a tile size based on column_width_minus1 and row_height_minus1.

[00399] A Tabela 9 mostra uma tabela de sintaxe para particionar uma figuração em ladrilhos.[TABELA 9] [00399] Table 9 shows a syntax table for partitioning a figuration into tiles.[TABLE 9]

[00400] Com referência à Tabela 9, o elemento de sintaxe num_tile_columns_minus1 que indica o número de colunas de ladrilho e o elemento de sintaxe num_tile_rows_minus1 que indica o número de fileiras de ladrilho podem ser sinalizados.[00400] With reference to Table 9, the syntax element num_tile_columns_minus1 indicating the number of tile columns and the syntax element num_tile_rows_minus1 indicating the number of tile rows may be flagged.

[00401] Posteriormente, o elemento de sintaxe uniform_spacing_flag indicando se a figuração é particionada em ladrilhos de tamanho igual pode ser sinalizado. Quando uniform_spacing_flag é verdadeiro, ladrilhos na área remanescente excluindo as delimitações de figuração podem ser particionados em tamanho igual.[00401] Subsequently, the uniform_spacing_flag syntax element indicating whether the figuration is partitioned into equal-sized tiles may be flagged. When uniform_spacing_flag is true, tiles in the remaining area excluding the figuration boundaries may be partitioned into equal-sized tiles.

[00402] Quando uniform_spacing_flag é falso, o elemento de sintaxe column_width_minus1 que indica a largura de cada coluna de ladrilho e o elemento de sintaxe row_height_minus1 que indica a altura de cada fileira de ladrilho podem ser sinalizados.[00402] When uniform_spacing_flag is false, the column_width_minus1 syntax element indicating the width of each tile column and the row_height_minus1 syntax element indicating the height of each tile row may be flagged.

[00403] O elemento de sintaxe loop_filter_across_tiles_enabled_flag indica se é permitido usar um filtro de circuito nas delimitações de ladrilho.[00403] The loop_filter_across_tiles_enabled_flag syntax element indicates whether it is allowed to use a loop filter across tile boundaries.

[00404] Uma coluna de ladrilho que tem a menor largura dentre as colunas de ladrilho pode ser referida como um ladrilho de largura mínima, e uma fileira de ladrilho que tem a menor altura dentre as fileiras de ladrilho pode ser referida como um ladrilho de altura mínima. Informações indicando a largura do ladrilho de largura mínima e informações que indicam a altura do ladrilho de altura mínima podem ser sinalizadas através de uma corrente de bits. Por exemplo, o elemento de sintaxe min_column_width_minus1 indica um valor obtido por meio da subtração de 1 da largura do ladrilho de largura mínima e o elemento de sintaxe min_row_height_minus1 indica um valor obtido por meio da subtração de 1 da altura do ladrilho de altura mínima.[00404] A tile column that has the smallest width among the tile columns may be referred to as a minimum width tile, and a tile row that has the smallest height among the tile rows may be referred to as a minimum height tile. Information indicating the width of the minimum width tile and information indicating the height of the minimum height tile may be signaled via a bit stream. For example, the min_column_width_minus1 syntax element indicates a value obtained by subtracting 1 from the width of the minimum width tile, and the min_row_height_minus1 syntax element indicates a value obtained by subtracting 1 from the height of the minimum height tile.

[00405] Informações indicando um valor de diferença com a largura mínima de ladrilho podem ser sinalizadas para cada coluna de ladrilho. Por exemplo, o elemento de sintaxe diff_column_width indica um valor de diferença na largura entre a coluna de ladrilho atual e a coluna de ladrilho mínima. O valor da diferença na largura pode ser expresso como um valor da diferença no número de colunas de unidade de árvore de codificação. O decodificador pode derivar a largura do ladrilho atual por meio da adição da largura do ladrilho de largura mínima derivado com base em min_column_width_minus1 e o valor da diferença na largura derivado com base em diff_column_width.[00405] Information indicating a difference value with the minimum tile width may be signaled for each tile column. For example, the diff_column_width syntax element indicates a difference value in width between the current tile column and the minimum tile column. The difference value in width may be expressed as a value of the difference in the number of coding tree unit columns. The decoder may derive the width of the current tile by adding the width of the minimum width tile derived based on min_column_width_minus1 and the difference value in width derived based on diff_column_width.

[00406] Além disso, informações que indicam um valor da diferença com a altura mínima de ladrilho podem ser sinalizadas para cada fileira de ladrilho. Por exemplo, elemento de sintaxe diff_row_height indica um valor da diferença na altura entre a fileira de ladrilho atual e a fileira de ladrilho mínima. O valor da diferença na altura pode ser expresso como um valor da diferença no número de fileiras de unidade de árvore de codificação. O decodificador pode derivar a altura do ladrilho atual por meio da adição da altura do ladrilho de altura mínima derivado com base em min_row_height_minus1 e o valor da diferença na altura derivado com base em diff_row_height.[00406] Additionally, information indicating a value of the difference with the minimum tile height may be flagged for each tile row. For example, syntax element diff_row_height indicates a value of the difference in height between the current tile row and the minimum tile row. The value of the difference in height may be expressed as a value of the difference in the number of coding tree unit rows. The decoder may derive the height of the current tile by adding the height of the minimum height tile derived based on min_row_height_minus1 and the value of the difference in height derived based on diff_row_height.

[00407] A Tabela 10 mostra uma tabela de sintaxeincluindo informações acerca da diferença no tamanho.[TABELA 10] [00407] Table 10 shows a syntax table including information about the difference in size.[TABLE 10]

[00408] Uma figuração pode ser particionada de maneira que os ladrilhos horizontalmente adjacentes possam ter diferentes alturas, ou uma figuração pode ser particionada de maneira que os ladrilhos verticalmente adjacentes possam ter diferentes larguras. O método de partição de uma figuração como essa pode ser referido como um método de partição de ladrilho flexível, e ladrilhos particionados por meio do método de partição de ladrilho flexível podem ser referidos como ladrilhos flexíveis.[00408] A figuration may be partitioned such that horizontally adjacent tiles may have different heights, or a figuration may be partitioned such that vertically adjacent tiles may have different widths. The method of partitioning such a figuration may be referred to as a flexible tile partitioning method, and tiles partitioned via the flexible tile partitioning method may be referred to as flexible tiles.

[00409] A Figura 33 é uma vista que mostra um padrão de partição de uma figuração de acordo com uma técnica de ladrilho flexível.[00409] Figure 33 is a view showing a pattern of partitioning a figuration according to a flexible tiling technique.

[00410] A ordem de pesquisa dos ladrilhos gerados por meio da partição de uma figuração pode seguir uma ordem predeterminada de varredura. Além disso, um índice pode ser atribuído a cada um dos ladrilhos de acordo com uma ordem predeterminada de varredura.[00410] The search order of the tiles generated by partitioning a figuration may follow a predetermined scan order. Furthermore, an index may be assigned to each of the tiles according to a predetermined scan order.

[00411] A ordem de varredura de ladrilhos pode ser qualquer uma dentre uma varredura raster, uma varredura diagonal, uma varredura de direção vertical e uma varredura de direção horizontal. As Figuras 33(a) a 33(d) mostram respectivamente exemplos de atribuição de um índice a cada um dos ladrilhos de acordo com uma varredura raster, uma varredura diagonal, uma varredura de direção vertical e uma varredura de direção horizontal.[00411] The tile scanning order may be any one of a raster scan, a diagonal scan, a vertical direction scan, and a horizontal direction scan. Figures 33(a) to 33(d) respectively show examples of assigning an index to each of the tiles according to a raster scan, a diagonal scan, a vertical direction scan, and a horizontal direction scan.

[00412] Uma próxima ordem de varredura pode ser determinada de acordo com o tamanho ou a posição do ladrilho atual. Por exemplo, quando a altura do ladrilho atual e a altura de um ladrilho adjacente ao lado direito do ladrilho atual são diferentes (por exemplo, quando a altura do ladrilho vizinho à direita é maior que a altura do ladrilho atual), um ladrilho posicionado no lado mais à esquerda dentre os ladrilhos colocados em uma linha vertical igual àquela de um ladrilho adjacente ao fundo do ladrilho atual pode ser determinado como um alvo de varredura após o ladrilho atual.[00412] A next scan order may be determined according to the size or position of the current tile. For example, when the height of the current tile and the height of a tile adjacent to the right side of the current tile are different (e.g., when the height of the right neighboring tile is greater than the height of the current tile), a tile positioned on the leftmost side among the tiles placed in a vertical line equal to that of a tile adjacent to the bottom of the current tile may be determined as a scan target after the current tile.

[00413] A ordem de varredura de ladrilhos pode ser determinada pela unidade de figuração ou sequência.[00413] The tile scanning order may be determined by the figuration unit or sequence.

[00414] Alternativamente, a ordem de varredura de ladrilhos pode ser determinada considerando o tamanho do primeiro ladrilho na figuração. Por exemplo, quando a largura do primeiro ladrilho é maior que a altura, a ordem de varredura de ladrilhos pode ser ajustada para varredura horizontal. Quando a altura do primeiro ladrilho é maior que a largura, a ordem de varredura de ladrilhos pode ser ajustada para varredura vertical. Quando a largura do primeiro ladrilho é igual à altura, ordem de varredura de ladrilhos pode ser ajustada para varredura raster ou varredura diagonal.[00414] Alternatively, the tile scan order may be determined by considering the size of the first tile in the drawing. For example, when the width of the first tile is greater than the height, the tile scan order may be adjusted for horizontal scanning. When the height of the first tile is greater than the width, the tile scan order may be adjusted for vertical scanning. When the width of the first tile is equal to the height, the tile scan order may be adjusted for raster scanning or diagonal scanning.

[00415] Informações indicando o número total de ladrilhos podem ser sinalizadas através de uma corrente de bits. Por exemplo, quando uma técnica de ladrilho flexível é aplicada, o elemento de sintaxe number_of_tiles_in_picture_minus2 derivado por meio da subtração de 2 do número total de ladrilhos em uma figuração pode ser sinalizado. O decodificador pode reconhecer o número de ladrilhos incluídos na figuração atual com base em number_of_tiles_in_picture_minus2.[00415] Information indicating the total number of tiles may be signaled via a bit stream. For example, when a flexible tiling technique is applied, the syntax element number_of_tiles_in_picture_minus2 derived by subtracting 2 from the total number of tiles in a picture may be signaled. The decoder may recognize the number of tiles included in the current picture based on number_of_tiles_in_picture_minus2.

[00416] A Tabela 11 mostra uma tabela de sintaxe incluindo informações acerca do número de ladrilhos.[TABELA 11] [00416] Table 11 shows a syntax table including information about the number of tiles.[TABLE 11]

[00417] A fim de reduzir o número de bits necessários para codificar o tamanho de um ladrilho, informações que indicam o tamanho de um sub-ladrilho podem ser codificadas e sinalizadas. O sub-ladrilho é uma unidade básica que constitui um ladrilho, e cada ladrilho pode ser configurado para incluir pelo menos um sub-ladrilho. O sub-ladrilho pode incluir uma ou mais unidades de árvore de codificação.[00417] In order to reduce the number of bits required to encode the size of a tile, information indicating the size of a sub-tile may be encoded and signaled. The sub-tile is a basic unit that constitutes a tile, and each tile may be configured to include at least one sub-tile. The sub-tile may include one or more coding tree units.

[00418] Por exemplo, o elemento de sintaxe subtile_width_minus1 indica um valor obtido por meio da subtração de 1 da largura de um sub-ladrilho. O elemento de sintaxe subtile_height_minus1 indica um valor obtido por meio da subtração de 1 da altura de um sub-ladrilho.[00418] For example, the syntax element subtile_width_minus1 indicates a value obtained by subtracting 1 from the width of a subtile. The syntax element subtile_height_minus1 indicates a value obtained by subtracting 1 from the height of a subtile.

[00419] Informações indicando se os ladrilhos remanescentes além do primeiro ladrilho têm o tamanho igual àquele de um ladrilho anterior podem ser codificadas e sinalizadas. Por exemplo, o elemento de sintaxe use_previous_tile_size_flag indica se o tamanho do ladrilho atual é igual ao tamanho de um ladrilho anterior. Quando use_previous_tile_size_flag é verdadeiro, isso indica que o tamanho do ladrilho atual é igual ao tamanho de um ladrilho anterior. Quando use_previous_tile_size_flag é falso, informações que indicam o tamanho do ladrilho atual podem ser codificadas e sinalizadas. Para o primeiro ladrilho, a codificação de use_previous_tile_size_flag pode ser omitida e um valor da marcação pode ser ajustado para falso.[00419] Information indicating whether remaining tiles beyond the first tile have the same size as a previous tile may be encoded and flagged. For example, the syntax element use_previous_tile_size_flag indicates whether the size of the current tile is equal to the size of a previous tile. When use_previous_tile_size_flag is true, it indicates that the size of the current tile is equal to the size of a previous tile. When use_previous_tile_size_flag is false, information indicating the size of the current tile may be encoded and flagged. For the first tile, the encoding of use_previous_tile_size_flag may be omitted and a value of the flag may be set to false.

[00420] Informações indicando o tamanho de ladrilho podem incluir elemento de sintaxe tile_width_minus1[i] que indica a largura do i-ésimo ladrilho e elemento de sintaxe tile_height_minus1[i] que indica a altura do i-ésimo ladrilho.[00420] Information indicating the tile size may include tile_width_minus1[i] syntax element indicating the width of the ith tile and tile_height_minus1[i] syntax element indicating the height of the ith tile.

[00421] Informações indicando o tamanho de ladrilho podem indicar um valor da diferença com o tamanho de um sub-ladrilho. Como as informações de tamanho de um sub- ladrilho são usadas, a eficácia da codificação/decodificação pode ser melhorada por meio da redução do número de bits necessários para codificar o tamanho de cada ladrilho. Por exemplo, a largura do i-ésimo ladrilho tileWidth pode ser derivada com base na Equação 22 mostrada abaixo, e a altura do i-ésimo ladrilho tileHeight pode ser derivada com base na Equação 23 mostrada abaixo. [00421] Information indicating the tile size may indicate a value of the difference with the size of a sub-tile. Since the size information of a sub-tile is used, the efficiency of encoding/decoding may be improved by reducing the number of bits required to encode the size of each tile. For example, the width of the i-th tile tileWidth may be derived based on Equation 22 shown below, and the height of the i-th tile tileHeight may be derived based on Equation 23 shown below.

[00422] Alternativamente, a codificação de informações de tamanho de sub-ladrilho pode ser omitida, e o tamanho do i-ésimo ladrilho pode ser codificado como informações de tamanho de ladrilho. As informações de tamanho de sub-ladrilho podem ser opcionalmente codificadas. Informações indicando se as informações de tamanho de sub- ladrilho são ou não codificadas podem ser sinalizadas através de um conjunto de parâmetros de vídeo, um conjunto de parâmetros de sequência ou um conjunto de parâmetros de figuração.[00422] Alternatively, encoding of sub-tile size information may be omitted, and the size of the ith tile may be encoded as tile size information. Sub-tile size information may optionally be encoded. Information indicating whether or not sub-tile size information is encoded may be signaled via a set of video parameters, a set of sequence parameters, or a set of figuration parameters.

[00423] Informações relacionadas ao tamanho de ladrilho descrito acima podem ser codificadas e sinalizadas como indicando o número de unidades de árvore de codificação. Por exemplo, column_width_minus1, min_column_width_minus1, subtile_width_minus1 ou tile_width_minus1 pode indicar o número de colunas de unidade de árvore de codificação incluídas em um ladrilho. Além disso, diff_column_width pode indicar um valor da diferença entre o número de colunas de unidade de árvore de codificação incluídas no ladrilho de largura mínima e o número de colunas de unidade de árvore de codificação incluídas no ladrilho atual.[00423] Information related to the tile size described above may be encoded and flagged as indicating the number of coding tree units. For example, column_width_minus1, min_column_width_minus1, subtile_width_minus1, or tile_width_minus1 may indicate the number of coding tree unit columns included in a tile. Additionally, diff_column_width may indicate a value of the difference between the number of coding tree unit columns included in the minimum width tile and the number of coding tree unit columns included in the current tile.

[00424] Além disso, row_height_minus1, min_row_height_minus1, subtile_height_minus1 ou tile_height_minus1 pode indicar o número de fileiras de unidade de árvore de codificação incluídas em um ladrilho. Além disso, diff_row_height pode indicar um valor da diferença entre o número de fileiras de unidade de árvore de codificação incluídas no ladrilho de altura mínima e o número de fileiras de unidade de árvore de codificação incluídas no ladrilho atual.[00424] Additionally, row_height_minus1, min_row_height_minus1, subtile_height_minus1, or tile_height_minus1 may indicate the number of coding tree unit rows included in a tile. Additionally, diff_row_height may indicate a value of the difference between the number of coding tree unit rows included in the minimum height tile and the number of coding tree unit rows included in the current tile.

[00425] O decodificador pode determinar o tamanho de um ladrilho com base no número de colunas de unidade de árvore de codificação e/ou no número de fileiras de unidade de árvore de codificação derivado com base nos elementos de sintaxe e no tamanho da unidade de árvore de codificação. Por exemplo, a largura do i-ésimo ladrilho pode ser ajustada para (tile_width_minus1[i] + 1)*(largura de unidade de árvore de codificação), e a altura do i-ésimo ladrilho pode ser ajustada para (tile_height_minus1[i] + 1)*(altura de unidade de árvore de codificação).[00425] The decoder may determine the size of a tile based on the number of coding tree unit columns and/or the number of coding tree unit rows derived based on the syntax elements and the coding tree unit size. For example, the width of the i-th tile may be set to (tile_width_minus1[i] + 1)*(coding tree unit width), and the height of the i-th tile may be set to (tile_height_minus1[i] + 1)*(coding tree unit height).

[00426] Nesse ínterim, informações que indicam o tamanho da unidade de árvore de codificação podem ser sinalizadas através de um conjunto de parâmetros de sequência ou um conjunto de parâmetros de figuração.[00426] In the meantime, information indicating the size of the coding tree unit may be signaled via a set of sequence parameters or a set of figuration parameters.

[00427] Na Tabela 11, é descrito que é usado o elemento de sintaxe use_previous_tile_size_flag indicando se o tamanho do ladrilho atual é igual ao tamanho de um ladrilho anterior. Como um outro exemplo, informações indicando se a largura do ladrilho atual é igual à largura de um ladrilho anterior ou informações indicando se a altura do ladrilho atual igual à altura de um ladrilho anterior podem ser codificadas e sinalizadas.[00427] In Table 11, it is described that the use_previous_tile_size_flag syntax element is used to indicate whether the size of the current tile is equal to the size of a previous tile. As another example, information indicating whether the width of the current tile is equal to the width of a previous tile or information indicating whether the height of the current tile is equal to the height of a previous tile may be encoded and flagged.

[00428] A Tabela 12 mostra uma tabela de sintaxe incluindo informações indicando se a largura do ladrilho atual é igual à largura de um ladrilho anterior.[TABELA 12] [00428] Table 12 shows a syntax table including information indicating whether the width of the current tile is equal to the width of a previous tile.[TABLE 12]

[00429] O elemento de sintaxe use_previous_tile_width_flag indica se a largura do ladrilho atual é igual à largura de um ladrilho anterior. Quando use_previous_tile_width_flag é verdadeiro, a largura do ladrilho atual pode ser ajustada para ser igual à largura de um ladrilho anterior. Nesse caso, a codificação das informações que indicam a largura do ladrilho atual pode ser omitida, e a largura do ladrilho atual pode ser derivada da largura de um ladrilho anterior.[00429] The use_previous_tile_width_flag syntax element indicates whether the width of the current tile is equal to the width of a previous tile. When use_previous_tile_width_flag is true, the width of the current tile may be adjusted to be equal to the width of a previous tile. In this case, the encoding of the information indicating the width of the current tile may be omitted, and the width of the current tile may be derived from the width of a previous tile.

[00430] Quando use_previous_tile_width_flag é falso, informações que indicam a largura do ladrilho atual podem ser sinalizadas. Por exemplo, tile_width_minus1[i] pode indicar um valor obtido por meio da subtração de 1 da largura do i-ésimo ladrilho.[00430] When use_previous_tile_width_flag is false, information indicating the width of the current tile may be flagged. For example, tile_width_minus1[i] may indicate a value obtained by subtracting 1 from the width of the i-th tile.

[00431] O elemento de sintaxe use_previous_tile_width_flag pode ser codificado e sinalizado apenas quando for determinado que o tamanho do ladrilho atual é diferente do tamanho de um ladrilho anterior (por exemplo, quando o valor de use_previous_tile_size_flag for 0).[00431] The use_previous_tile_width_flag syntax element may be encoded and flagged only when it is determined that the size of the current tile is different from the size of a previous tile (e.g., when the value of use_previous_tile_size_flag is 0).

[00432] Tile_width_minus1[i] pode ter um valor obtido por meio da subtração de 1 do número de colunas de unidade de árvore de codificação incluídas no i-ésimo ladrilho. O decodificador pode derivar o número de colunas de unidade de árvore de codificação que pertencem ao i-ésimo ladrilho por meio da adição de 1 a tile_width_minus1[i], e calcular a largura de ladrilho por meio da multiplicação do valor derivado pela largura da unidade de árvore de codificação.[00432] Tile_width_minus1[i] may have a value obtained by subtracting 1 from the number of coding tree unit columns included in the i-th tile. The decoder may derive the number of coding tree unit columns belonging to the i-th tile by adding 1 to tile_width_minus1[i], and calculate the tile width by multiplying the derived value by the coding tree unit width.

[00433] A Tabela 13 mostra uma tabela de sintaxe que inclui adicionalmente informações indicando se a altura do ladrilho atual é igual à altura de um ladrilho anterior.[TABELA 13] [00433] Table 13 shows a syntax table that additionally includes information indicating whether the height of the current tile is equal to the height of a previous tile.[TABLE 13]

[00434] O elemento de sintaxeuse_previous_tile_height_flag indica se a altura do ladrilho atual é igual à altura de um ladrilho anterior. Quando use_previous_tile_height_flag é verdadeiro, a altura do ladrilho atual pode ser ajustada para ser igual à altura de um ladrilho anterior. Nesse caso, a codificação das informações que indicam a altura do ladrilho atual pode ser omitida, e a altura do ladrilho atual pode ser derivada da altura de um ladrilho anterior.[00434] The use_previous_tile_height_flag syntax element indicates whether the height of the current tile is equal to the height of a previous tile. When use_previous_tile_height_flag is true, the height of the current tile may be adjusted to be equal to the height of a previous tile. In this case, the encoding of the information indicating the height of the current tile may be omitted, and the height of the current tile may be derived from the height of a previous tile.

[00435] Quando use_previous_tile_height_flag é falso, informações que indicam a altura do ladrilho atual podem ser sinalizadas. Por exemplo, tile_height_minus1[i] pode indicar um valor obtido por meio da subtração de 1 da altura do i-ésimo ladrilho.[00435] When use_previous_tile_height_flag is false, information indicating the height of the current tile may be flagged. For example, tile_height_minus1[i] may indicate a value obtained by subtracting 1 from the height of the i-th tile.

[00436] O elemento de sintaxe use_previous_tile_height_flag pode ser codificado e sinalizado apenas quando for determinado que o tamanho do ladrilho atual é diferente do tamanho de um ladrilho anterior (por exemplo, quando o valor de use_previous_tile_size_flag for 0). Além disso, o elemento de sintaxe use_previous_tile_height_flag pode ser sinalizado apenas quando use_previous_tile_width_flag for falso.[00436] The use_previous_tile_height_flag syntax element may be encoded and flagged only when it is determined that the size of the current tile is different from the size of a previous tile (for example, when the value of use_previous_tile_size_flag is 0). Additionally, the use_previous_tile_height_flag syntax element may be flagged only when use_previous_tile_width_flag is false.

[00437] A Tabela 12 mostra um exemplo de um caso de uso de use_previous_tile_width_flag e a Tabela 13 mostra um exemplo de um caso de uso de use_previous_tile_width_flag e use_previous_tile_height_flag. Embora não mostrado nas Tabelas acima, a codificação de use_previous_tile_width_flag pode ser omitida e apenas use_previous_tile_height_flag pode ser usado.[00437] Table 12 shows an example of a use case for use_previous_tile_width_flag and Table 13 shows an example of a use case for both use_previous_tile_width_flag and use_previous_tile_height_flag. Although not shown in the Tables above, the encoding of use_previous_tile_width_flag may be omitted and only use_previous_tile_height_flag may be used.

[00438] Qual dentre use_previous_tile_height_flag e use_previous_tile_size_flag será usado pode ser determinado com base em pelo menos um dentre uma ordem de varredura de ladrilho, a largura e a altura do primeiro ladrilho, e a largura e a altura de um ladrilho anterior. Por exemplo, quando a ordem de varredura de ladrilho é direção vertical, use_previous_tile_height_flag pode ser usado, enquanto que quando a ordem de varredura de ladrilho é direção horizontal, use_previous_tile_width_flag pode ser usado. Alternativamente, quando o primeiro ladrilho ou um ladrilho anterior é um formato não-quadrado do qual a largura é maior que a altura, use_previous_tile_width_flag pode ser usado, enquanto que quando o primeiro ladrilho ou um ladrilho anterior é um formato não-quadrado do qual a altura maior que a largura, use_previous_tile_height_flag pode ser usado.[00438] Which of use_previous_tile_height_flag and use_previous_tile_size_flag will be used may be determined based on at least one of a tile scan order, the width and height of the first tile, and the width and height of a previous tile. For example, when the tile scan order is vertical direction, use_previous_tile_height_flag may be used, while when the tile scan order is horizontal direction, use_previous_tile_width_flag may be used. Alternatively, when the first tile or a previous tile is a non-square shape of which the width is greater than the height, use_previous_tile_width_flag may be used, while when the first tile or a previous tile is a non-square shape of which the height is greater than the width, use_previous_tile_height_flag may be used.

[00439] Durante a sinalização do número de ladrilhos incluídos em uma figuração, a codificação de informações relacionadas ao tamanho de ladrilho pode ser omitida para o último ladrilho.[00439] When signaling the number of tiles included in a figuration, the encoding of information related to tile size may be omitted for the last tile.

[00440] A Tabela 14 mostra um exemplo no qual a codificação de informações de tamanho de ladrilho é omitida para o último ladrilho.[TABELA 14] [00440] Table 14 shows an example in which the encoding of tile size information is omitted for the last tile.[TABLE 14]

[00441] Quando o tamanho de ladrilhos além do último ladrilho é especificado, a região remanescente na figuração pode ser ajustada como o último ladrilho.[00441] When the size of tiles beyond the last tile is specified, the remaining region in the figure can be adjusted as the last tile.

[00442] Para cada unidade de árvore de codificação, pode ser atribuído um identificador para identificar um ladrilho ao qual a unidade de árvore de codificação pertence (doravante no presente documento referido como ID de ladrilho TileID).[00442] For each coding tree unit, an identifier may be assigned to identify a tile to which the coding tree unit belongs (hereinafter referred to as tile ID TileID).

[00443] A Figura 34 é uma vista que mostra um exemplo de atribuição de um ID de ladrilho a cada unidade de árvore de codificação.[00443] Figure 34 is a view showing an example of assigning a tile ID to each coding tree unit.

[00444] O mesmo ID de ladrilho pode ser atribuído a unidades de árvore de codificação que pertencem ao mesmo ladrilho. Especificamente, N-ésimo TileID pode ser atribuído a unidades de árvore de codificação que pertencem ao Ladrilho N.[00444] The same tile ID may be assigned to coding tree units that belong to the same tile. Specifically, Nth TileID may be assigned to coding tree units that belong to Tile N.

[00445] Variáveis x e y indicando a posição de uma unidade de árvore de codificação em uma figuração podem ser determinadas para determinar um ID de ladrilho atribuído a cada unidade de árvore de codificação. Aqui, x denota um valor obtido por meio da divisão da coordenada do eixo geométrico x dentre a posição (x0, y0) da amostra superior à esquerda daunidade de árvore de codificação pela largura da unidade de árvore de codificação, e y denota um valor obtido por meio da divisão da coordenada do eixo geométrico y dentre a posição (x0, y0) da amostra superior à esquerda da unidade de árvorede codificação pela altura da unidade de árvore de codificação. Especificamente, x e y podem ser derivados pelas Equações 24 e 25 mostradas abaixo. [00445] Variables x and y indicating the position of a coding tree unit in a drawing may be determined to determine a tile ID assigned to each coding tree unit. Here, x denotes a value obtained by dividing the x-axis coordinate of the (x0, y0) position of the top left sample of the coding tree unit by the width of the coding tree unit, and y denotes a value obtained by dividing the y-axis coordinate of the (x0, y0) position of the top left sample of the coding tree unit by the height of the coding tree unit. Specifically, x and y may be derived by Equations 24 and 25 shown below.

[00446] A atribuição de um ID de ladrilho a cada unidade de árvore de codificação pode ser realizada através do processo descrito abaixo.[00446] Assigning a tile ID to each coding tree unit may be accomplished through the process described below.

[00447] i) Inicializar ID de ladrilho[00447] i) Initialize tile ID

[00448] O ID de ladrilho de cada unidade de árvore de codificação pode ser inicializado a um valor obtido por meio da subtração de 1 do número de ladrilhos em uma figuração.[TABELA 15] [00448] The tile ID of each coding tree unit may be initialized to a value obtained by subtracting 1 from the number of tiles in a figuration.[TABLE 15]

[00449] ii) Derivar ID de ladrilho[TABELA 16][00449] ii) Derive Tile ID[TABLE 16]

[00450] O valor da variável tile_id e o valor da atribuição de arranjo bidimensional CTU_tile são derivados da seguinte maneira:[00450] The value of the tile_id variable and the value of the two-dimensional array assignment CTU_tile are derived as follows:

[00451] para (ctu_y = 0; ctu_y < (tile_height_minus1[i] + 1)*(subtile_height_minus1 + 1) && (tile_coordinate_y + ctu_y) < PicHeightInCtbsY; ctu_y++)[00451] for (ctu_y = 0; ctu_y < (tile_height_minus1[i] + 1)*(subtile_height_minus1 + 1) && (tile_coordinate_y + ctu_y) < PicHeightInCtbsY; ctu_y++)

[00452] - para (ctu_x = 0; ctu_x < (tile_width_minus1[i] + 1)*(subtile_width_minus1 + 1) && (tile_coordinate_x + ctu_x) < PicWidthInCtbsY; ctu_x++)[00452] - for (ctu_x = 0; ctu_x < (tile_width_minus1[i] + 1)*(subtile_width_minus1 + 1) && (tile_coordinate_x + ctu_x) < PicWidthInCtbsY; ctu_x++)

[00453] -- TileId[tile_coordinate_x + ctu_x] [tile_coordinate_y + ctu_y] = tile_id[00453] -- TileId[tile_coordinate_x + ctu_x] [tile_coordinate_y + ctu_y] = tile_id

[00454] tile_id++[00454] tile_id++

[00455] Na modalidade descrita acima, foi descrito que uma marcação indicando se é permitido aplicar um filtro em circuito nas delimitações de ladrilhos é sinalizada através de um conjunto de parâmetros de figuração. Contudo, quando é ajustado para não usar um filtro em circuito em todas as delimitações de ladrilho, pode ocorrer um problema de diminuição da qualidade de imagem subjetiva e diminuição da eficácia de codificação.[00455] In the embodiment described above, it has been described that a flag indicating whether it is permissible to apply a loop filter to tile boundaries is signaled via a set of imaging parameters. However, when it is set to not use a loop filter at all tile boundaries, a problem of decreased subjective image quality and decreased coding efficiency may occur.

[00456] Portanto, informações indicando se é permitido ou não um filtro em circuito para cada ladrilho podem ser codificadas e sinalizadas.[00456] Therefore, information indicating whether or not an in-circuit filter is allowed for each tile can be encoded and flagged.

[00457] A Figura 35 é uma vista que mostra um exemplo de determinação seletiva da aplicação ou não de um filtro em circuito a cada ladrilho.[00457] Figure 35 is a view showing an example of selectively determining whether or not to apply a circuit filter to each tile.

[00458] Conforme mostrado no exemplo da Figura 35, se é permitido ou não um filtro em circuito (por exemplo, um filtro de desbloqueio, SAO e/ou ALF) na delimitação horizontal ou vertical pode ser determinado para cada ladrilho.[00458] As shown in the example in Figure 35, whether or not an in-loop filter (e.g., an unblocking, SAO, and/or ALF filter) is allowed on the horizontal or vertical boundary can be determined for each tile.

[00459] A Tabela 17 mostra um exemplo no qual informações indicando se é permitido ou não um filtro em circuito são codificadas para cada ladrilho.[TABELA 17] [00459] Table 17 shows an example in which information indicating whether or not an in-circuit filter is allowed is encoded for each tile.[TABLE 17]

[00460] No exemplo da Tabela 17, o elemento de sintaxe loop_filter_across_tiles_flag[i] indica se é permitido aplicar um filtro em circuito ao i-ésimo ladrilho. Quando o valor de loop_filter_across_tiles_flag[i] é 1, isso indica que um filtro em circuito pode ser usado nas delimitações horizontal e vertical de um ladrilho do qual o ID de ladrilho é i. Quando o valor de loop_filter_across_tiles_flag[i] é 0, isso indica que um filtro em circuito pode não ser usado nas delimitações horizontal e vertical de um ladrilho do qual o ID de ladrilho é i.[00460] In the example in Table 17, the syntax element loop_filter_across_tiles_flag[i] indicates whether a loop filter is allowed to be applied to the i-th tile. When the value of loop_filter_across_tiles_flag[i] is 1, it indicates that a loop filter may be used on the horizontal and vertical boundaries of a tile whose tile ID is i. When the value of loop_filter_across_tiles_flag[i] is 0, it indicates that a loop filter may not be used on the horizontal and vertical boundaries of a tile whose tile ID is i.

[00461] Informações indicando se é permitido ou não um filtro em circuito para cada das direções horizontal e vertical podem ser codificadas.[00461] Information indicating whether or not an in-circuit filter is permitted for each of the horizontal and vertical directions may be encoded.

[00462] A Tabela 18 mostra um exemplo no qual informações indicando se é permitido ou não um filtro em circuito são individualmente codificadas para a direção horizontal e a direção vertical.[TABELA 18] [00462] Table 18 shows an example in which information indicating whether or not an in-circuit filter is allowed is individually coded for the horizontal direction and the vertical direction.[TABLE 18]

[00463] No exemplo da Tabela 18, o elemento de sintaxe loop_filter_hor_across_tiles_flag[i] indica se é permitido aplicar um filtro em circuito que cruza o i-ésimo ladrilho na direção horizontal. O elemento de sintaxe loop_filter_ver_across_tiles_flag[i] indica se é permitido aplicar um filtro em circuito que cruza o i-ésimo ladrilho na direção vertical.[00463] In the example in Table 18, the syntax element loop_filter_hor_across_tiles_flag[i] indicates whether it is allowed to apply a filter in a loop that crosses the ith tile in the horizontal direction. The syntax element loop_filter_ver_across_tiles_flag[i] indicates whether it is allowed to apply a filter in a loop that crosses the ith tile in the vertical direction.

[00464] Quando o valor de loop_filter_hor_across_tiles_flag[i] é 1, isso indica que um filtro em circuito pode ser usado na delimitação horizontal de um ladrilho do qual o ID de ladrilho é i. Quando o valor de loop_filter_hor_across_tiles_flag[i] é 0, isso indica que um filtro em circuito pode não ser usado na delimitação horizontal de um ladrilho do qual o ID de ladrilho é i.[00464] When the value of loop_filter_hor_across_tiles_flag[i] is 1, this indicates that a loop filter can be used on the horizontal bounding of a tile whose tile ID is i. When the value of loop_filter_hor_across_tiles_flag[i] is 0, this indicates that a loop filter cannot be used on the horizontal bounding of a tile whose tile ID is i.

[00465] Quando o valor de loop_filter_ver_across_tiles_flag[i] é 1, isso indica que um filtro em circuito pode ser usado na delimitação vertical de um ladrilho do qual o ID de ladrilho é i, e quando o valor de loop_filter_ver_across_tiles_flag[i] é 0, isso indica que um filtro em circuito pode não ser usado na delimitação vertical de um ladrilho do qual o ID de ladrilho é i.[00465] When the value of loop_filter_ver_across_tiles_flag[i] is 1, this indicates that a loop filter can be used on the vertical bounding of a tile whose tile ID is i, and when the value of loop_filter_ver_across_tiles_flag[i] is 0, this indicates that a loop filter cannot be used on the vertical bounding of a tile whose tile ID is i.

[00466] Alternativamente, informações indicando se um filtro em circuito é permitido para um grupo de ladrilhos incluindo uma pluralidade de ladrilhos podem ser codificadas e sinalizadas. A possibilidade de permitir um filtro em circuito para uma pluralidade de ladrilhos incluídos em um grupo de ladrilhos pode ser determinada por meio das informações.[00466] Alternatively, information indicating whether an in-loop filter is allowed for a tile group including a plurality of tiles may be encoded and flagged. The possibility of allowing an in-loop filter for a plurality of tiles included in a tile group may be determined by means of the information.

[00467] A fim de determinar um grupo de ladrilhos, pelo menos um dentre o número de ladrilhos que pertencem ao grupo de ladrilhos, o tamanho do grupo de ladrilhos, e informações de partição de uma figuração pode ser sinalizado através de uma corrente de bits. Alternativamente, uma região de um tamanho predefinido no codificador e no decodificador pode ser ajustada como um grupo de ladrilhos.[00467] In order to determine a tile group, at least one of the number of tiles belonging to the tile group, the size of the tile group, and partition information of a picture may be signaled via a bit stream. Alternatively, a region of a predefined size in the encoder and decoder may be set as a tile group.

[00468] Pode ser omitida a codificação de informações indicando se um filtro em circuito é permitido, e se é permitido um filtro em circuito pode ser determinado com base em pelo menos um dentre o número de unidades de árvore de codificação incluídas em um ladrilho, a largura do ladrilho e a altura do ladrilho. Por exemplo, quando a largura de ladrilho é menor que um valor de referência, um filtro em circuito para a direção horizontal pode ser permitido, e quando um ladrilho altura é menor que um valor de referência, um filtro em circuito para a direção vertical pode ser permitido.[00468] Encoding information indicating whether a loop filter is allowed may be omitted, and whether a loop filter is allowed may be determined based on at least one of the number of coding tree units included in a tile, the tile width, and the tile height. For example, when the tile width is less than a reference value, a loop filter for the horizontal direction may be allowed, and when a tile height is less than a reference value, a loop filter for the vertical direction may be allowed.

[00469] Quando um filtro em circuito é usado em uma delimitação de ladrilho, dados reconstruídos fora do ladrilho podem ser gerados com base nos dados incluídos no ladrilho. Nesse ponto, um vídeo reconstruído fora do ladrilho pode ser adquirido por meio de preenchimento ou interpolação dos dados incluídos no ladrilho. Posteriormente, um filtro em circuito pode ser aplicado com o uso dos dados reconstruídos fora do ladrilho.[00469] When a loop filter is used on a tile boundary, reconstructed out-of-tile data can be generated based on the data included in the tile. At this point, a reconstructed out-of-tile video can be acquired by padding or interpolating the data included in the tile. Subsequently, a loop filter can be applied using the reconstructed out-of-tile data.

[00470] A aplicação das modalidades descritas acima com foco em um processo de decodificação ou um processo de codificação para um processo de codificação ou um processo de decodificação é incluída no escopo da presente invenção. Alterar as modalidades descritas em uma ordem predeterminada em uma ordem diferente da ordem descrita também está incluída no escopo da presente invenção.[00470] The application of the above described embodiments with focus on a decoding process or an encoding process to an encoding process or a decoding process is included in the scope of the present invention. Changing the described embodiments in a predetermined order into an order different from the described order is also included in the scope of the present invention.

[00471] Embora as modalidades acima tenham sido descritas com base em uma série de etapas ou fluxogramas, isso não limita a ordem das séries temporais da presente invenção e pode ser realizada simultaneamente ou em uma ordem diferente, conforme necessário. Além disso, cada um dos componentes (por exemplo, unidades, módulos, etc.) que constituem o diagrama de blocos nas modalidades descritas acima podem ser implantados como um dispositivo de hardware ou software, ou uma pluralidade de componentes podem ser combinados para serem implantados como um único dispositivo de hardware ou software. As modalidades descritas acima podem ser implantadas na forma de comandos de programa que podem ser executados por meio de vários componentes de computador e gravados em uma mídia de gravação legível por computador. A mídia de gravação legível por computador pode incluir comandos de programa, arquivos de dados, estruturas de dados e similares, independentemente ou em combinação. A mídia de gravação legível por computador inclui, por exemplo, mídia magnética, como um disco rígido, um disquete e uma fita magnética, mídia de gravação óptica, como um CD-ROM e um DVD, mídia magneto-óptica, como um disco flexível, e dispositivos de hardware especialmente configurados para armazenar e executar comandos de programa, como ROM, RAM, memória flash e similares. Os dispositivos de hardware descritos acima podem ser configurados para operar usando um ou mais módulos de software para realizar o processo da presente invenção e vice-versa.[00471] Although the above embodiments have been described based on a series of steps or flowcharts, this does not limit the order of the time series of the present invention and can be performed simultaneously or in a different order as needed. Furthermore, each of the components (e.g., units, modules, etc.) that constitute the block diagram in the embodiments described above can be implemented as a hardware or software device, or a plurality of components can be combined to be implemented as a single hardware or software device. The embodiments described above can be implemented in the form of program commands that can be executed by means of multiple computer components and recorded on a computer-readable recording medium. The computer-readable recording medium can include program commands, data files, data structures, and the like, independently or in combination. Computer-readable recording media include, for example, magnetic media such as a hard disk, a floppy disk, and a magnetic tape, optical recording media such as a CD-ROM and a DVD, magneto-optical media such as a floppy disk, and hardware devices specially configured to store and execute program commands, such as ROM, RAM, flash memory, and the like. The hardware devices described above may be configured to operate using one or more software modules to perform the process of the present invention, and vice versa.

[00472] A presente invenção pode ser aplicada a um dispositivo eletrônico que codifica e decodifica um vídeo.[00472] The present invention can be applied to an electronic device that encodes and decodes a video.

Claims (8)

1. MÉTODO DE DECODIFICAÇÃO DE VÍDEO caracterizado por compreender:gerar uma lista de candidatos de fusão para um bloco atual;especificar um candidato de fusão entre uma pluralidade de candidatos de fusão incluídos na lista de candidatos de fusão;derivar um primeiro vetor de origem afim (sv0) e um segundo vetor de origem afim (sv1) do bloco atual com base em um primeiro vetor de origem afim (nv0) e um segundo vetor de origem afim (nv1) de um candidato de fusão;derivar um vetor afim para um sub-bloco no bloco atual usando-se o primeiro vetor de origem afim (sv0) e o segundo vetor de origem afim (sv1) do bloco atual, em que o sub-bloco é uma região de um tamanho menor do que o do bloco atual; erealizar uma previsão de compensação de movimento para o sub-bloco com base no vetor afim, em queo primeiro vetor de origem afim (nv0) e o segundo vetor de origem afim (nv1) do único candidato de fusão são derivados com base nas informações de movimento de um bloco vizinho adjacente ao bloco atual,em que o bloco vizinho está incluído em uma unidade de árvore de codificação diferente de uma unidade de árvore de codificação do bloco atual, o primeiro vetor de origem afim (nv0) e o segundo vetor de origem afim (nv1) de um candidato de fusão são derivados com base em vetores de movimento de um sub-bloco na parte inferior esquerda e um sub-bloco na parte inferior direita do bloco vizinho, o sub-bloco da parte inferior esquerda inclui um ponto de controle de amostra de referência afim da parte inferior esquerda (xn4, yn4) posicionado em um canto da parte inferior esquerda do bloco vizinho, e o sub-bloco da parte inferior direita se junta a um ponto de controle de amostra de referência afim da parte inferior direita (xn5, yn5) localizado em um lado direito de uma amostra da parte inferior direita do sub-bloco da parte inferior direita;em que o primeiro vetor de origem afim e o segundo vetor de origem afim do único candidato de fusão são derivados de um valor obtido aplicando-se uma operação de deslocamento a uma largura entre o sub-bloco inferior esquerdo e o sub- bloco inferior direito, em que a operação de deslocamento altera a largura por um fator de escala.1. A VIDEO DECODING METHOD comprising: generating a list of fusion candidates for a current block; specifying a fusion candidate among a plurality of fusion candidates included in the list of fusion candidates; deriving a first affine source vector (sv0) and a second affine source vector (sv1) of the current block based on a first affine source vector (nv0) and a second affine source vector (nv1) of a fusion candidate; deriving an affine vector for a sub-block in the current block using the first affine source vector (sv0) and the second affine source vector (sv1) of the current block, wherein the sub-block is a region of a size smaller than that of the current block; and perform a motion compensation prediction for the sub-block based on the affine vector, wherein the first affine source vector (nv0) and the second affine source vector (nv1) of the single fusion candidate are derived based on motion information of a neighboring block adjacent to the current block, wherein the neighboring block is included in a coding tree unit other than a coding tree unit of the current block, the first affine source vector (nv0) and the second affine source vector (nv1) of a fusion candidate are derived based on motion vectors of a bottom-left sub-block and a bottom-right sub-block of the neighboring block, the bottom-left sub-block includes a bottom-left affine reference sample control point (xn4, yn4) positioned at a bottom-left corner of the neighboring block, and the bottom-right sub-block joins a bottom-right affine reference sample control point (xn5, yn5) located at a right side of a sample from the bottom right of the bottom right subblock; wherein the first affine seed vector and the second affine seed vector of the single merge candidate are derived from a value obtained by applying a shift operation to a width between the bottom left subblock and the bottom right subblock, wherein the shift operation changes the width by a scale factor. 2. MÉTODO, de acordo com a reivindicação 1, caracterizado pela largura entre o sub-bloco inferior esquerdo e o sub-bloco inferior direito ser definida como uma variável, a variável é uma largura de vetor subsemente que é definida como uma série de potência de 2.2. The method of claim 1, wherein the width between the lower left subblock and the lower right subblock is defined as a variable, the variable being a subseed vector width that is defined as a power series of 2. 3. MÉTODO DE CODIFICAÇÃO DE VÍDEO caracterizado por compreender:gerar uma lista de candidatos de fusão para um bloco atual;especificar um candidato de fusão entre uma pluralidade de candidatos de fusão incluídos na lista de candidatos de fusão;derivar um primeiro vetor de origem afim (sv0) e um segundo vetor de origem afim (sv1) do bloco atual com base em um primeiro vetor de origem afim (nv0) e um segundo vetor de origem afim (nv1) de um candidato de fusão; derivar um vetor afim para um sub-bloco no bloco atual usando-se o primeiro vetor de origem afim (sv0) e o segundo vetor de origem afim (sv1) do bloco atual, em que o sub-bloco é uma região de um tamanho menor do que o do bloco atual; erealizar uma previsão de compensação de movimento para o sub-bloco com base no vetor afim, em queo primeiro vetor de origem afim (nv0) e o segundo vetor de origem afim (nv1) do único candidato de fusão são derivados com base nas informações de movimento de um bloco vizinho adjacente ao bloco atual,em que o bloco vizinho está incluído em uma unidade de árvore de codificação diferente de uma unidade de árvore de codificação do bloco atual, o primeiro vetor de origem afim (nv0) e o segundo vetor de origem afim (nv1) de um candidato de fusão são derivados com base em vetores de movimento de um sub-bloco na parte inferior esquerda e um sub-bloco na parte inferior direita do bloco vizinho,o sub-bloco da parte inferior esquerda inclui um ponto de controle de amostra de referência afim da parte inferior esquerda (xn4, yn4) posicionado em um canto da parte inferior esquerda do bloco vizinho, e o sub-bloco da parte inferior direita se junta a um ponto de controle de amostra de referência afim da parte inferior direita (xn5, yn5) localizado em um lado direito de uma amostra da parte inferior direita do sub-bloco da parte inferior direita;em que o primeiro vetor de origem afim e o segundo vetor de origem afim do único candidato de fusão são derivados de um valor obtido aplicando-se uma operação de deslocamento a uma largura entre o sub-bloco inferior esquerdo e o sub- bloco inferior direito, em que a operação de deslocamento altera a largura por um fator de escala.3. A VIDEO CODING METHOD comprising: generating a list of fusion candidates for a current block; specifying a fusion candidate from among a plurality of fusion candidates included in the list of fusion candidates; deriving a first affine source vector (sv0) and a second affine source vector (sv1) of the current block based on a first affine source vector (nv0) and a second affine source vector (nv1) of a fusion candidate; deriving an affine vector for a sub-block in the current block using the first affine source vector (sv0) and the second affine source vector (sv1) of the current block, wherein the sub-block is a region of a size smaller than that of the current block; and perform a motion compensation prediction for the sub-block based on the affine vector, wherein the first affine source vector (nv0) and the second affine source vector (nv1) of the single fusion candidate are derived based on the motion information of a neighboring block adjacent to the current block, wherein the neighboring block is included in a coding tree unit other than a coding tree unit of the current block, the first affine source vector (nv0) and the second affine source vector (nv1) of a fusion candidate are derived based on motion vectors of a bottom-left sub-block and a bottom-right sub-block of the neighboring block, the bottom-left sub-block includes a bottom-left affine reference sample control point (xn4, yn4) positioned at a bottom-left corner of the neighboring block, and the bottom-right sub-block joins a bottom-right affine reference sample control point (xn5, yn5) located at a right side of a sample from the bottom right of the bottom right subblock; wherein the first affine seed vector and the second affine seed vector of the single merge candidate are derived from a value obtained by applying a shift operation to a width between the bottom left subblock and the bottom right subblock, wherein the shift operation changes the width by a scale factor. 4. MÉTODO, de acordo com a reivindicação 3, caracterizado pela largura entre o sub-bloco inferior esquerdo e o sub-bloco inferior direito ser definida como uma variável, a variável é uma largura de vetor sub-semente que é definida como uma série de potência de 2.4. The method of claim 3, wherein the width between the lower left sub-block and the lower right sub-block is defined as a variable, the variable being a sub-seed vector width that is defined as a power series of 2. 5. DECODIFICADOR DE VÍDEO caracterizado por ser configurado para executar as seguintes operações:gerar uma lista de candidatos de fusão para um bloco atual;especificar um candidato de fusão entre uma pluralidade de candidatos de fusão incluídos na lista de candidatos de fusão;derivar um primeiro vetor de origem afim (sv0) e um segundo vetor de origem afim (sv1) do bloco atual com base em um primeiro vetor de origem afim (nv0) e um segundo vetor de origem afim (nv1) de um candidato de fusão;derivar um vetor afim para um sub-bloco no bloco atual usando-se o primeiro vetor de origem afim (sv0) e o segundo vetor de origem afim (sv1) do bloco atual, em que o sub-bloco é uma região de um tamanho menor do que o do bloco atual; erealizar uma previsão de compensação de movimento para o sub-bloco com base no vetor afim, em queo primeiro vetor de origem afim (nv0) e o segundo vetor de origem afim (nv1) do único candidato de fusão são derivados com base nas informações de movimento de um bloco vizinho adjacente ao bloco atual,em que o bloco vizinho está incluído em uma unidade de árvore de codificação diferente de uma unidade de árvore de codificação do bloco atual, o primeiro vetor de origem afim (nv0) e o segundo vetor de origem afim (nv1) de um candidato de fusão são derivados com base em vetores de movimento de um sub-bloco na parte inferior esquerda e um sub-bloco na parte inferior direita do bloco vizinho,o sub-bloco da parte inferior esquerda inclui um ponto de controle de amostra de referência afim da parte inferior esquerda (xn4, yn4) posicionado em um canto da parte inferior esquerda do bloco vizinho, e o sub-bloco da parte inferior direita se junta a um ponto de controle de amostra de referência afim da parte inferior direita (xn5, yn5) localizado em um lado direito de uma amostra da parte inferior direita do sub-bloco da parte inferior direita;em que o primeiro vetor de origem afim e o segundo vetor de origem afim do único candidato de fusão são derivados de um valor obtido aplicando-se uma operação de deslocamento a uma largura entre o sub-bloco inferior esquerdo e o sub- bloco inferior direito, em que a operação de deslocamento altera a largura por um fator de escala.5. A VIDEO DECODER configured to perform the following operations: generating a list of merge candidates for a current block; specifying a merge candidate from among a plurality of merge candidates included in the list of merge candidates; deriving a first affine source vector (sv0) and a second affine source vector (sv1) of the current block based on a first affine source vector (nv0) and a second affine source vector (nv1) of a merge candidate; deriving an affine vector for a sub-block in the current block using the first affine source vector (sv0) and the second affine source vector (sv1) of the current block, wherein the sub-block is a region of a size smaller than that of the current block; and perform a motion compensation prediction for the sub-block based on the affine vector, wherein the first affine source vector (nv0) and the second affine source vector (nv1) of the single fusion candidate are derived based on the motion information of a neighboring block adjacent to the current block, wherein the neighboring block is included in a coding tree unit other than a coding tree unit of the current block, the first affine source vector (nv0) and the second affine source vector (nv1) of a fusion candidate are derived based on motion vectors of a bottom-left sub-block and a bottom-right sub-block of the neighboring block, the bottom-left sub-block includes a bottom-left affine reference sample control point (xn4, yn4) positioned at a bottom-left corner of the neighboring block, and the bottom-right sub-block joins a bottom-right affine reference sample control point (xn5, yn5) located at a right side of a sample from the bottom right of the bottom right subblock; wherein the first affine seed vector and the second affine seed vector of the single merge candidate are derived from a value obtained by applying a shift operation to a width between the bottom left subblock and the bottom right subblock, wherein the shift operation changes the width by a scale factor. 6. DECODIFICADOR DE VÍDEO, de acordo com a reivindicação 5, caracterizado pela largura entre o sub-bloco inferior esquerdo e o sub-bloco inferior direito ser definida como uma variável, a variável é uma largura de vetor sub- semente que é definida como uma série de potência de 2.6. VIDEO DECODER, according to claim 5, characterized in that the width between the lower left sub-block and the lower right sub-block is defined as a variable, the variable is a sub-seed vector width that is defined as a power series of 2. 7. CODIFICADOR DE VÍDEO caracterizado por estar configurado para executar as seguintes operações:gerar uma lista de candidatos de fusão para um bloco atual;especificar um candidato de fusão entre uma pluralidade de candidatos de fusão incluídos na lista de candidatos de fusão;derivar um primeiro vetor de origem afim (sv0) e um segundo vetor de origem afim (sv1) do bloco atual com base em um primeiro vetor de origem afim (nv0) e um segundo vetor de origem afim (nv1) de um candidato de fusão;derivar um vetor afim para um sub-bloco no bloco atual usando-se o primeiro vetor de origem afim (sv0) e o segundo vetor de origem afim (sv1) do bloco atual, em que o sub-bloco é uma região de um tamanho menor do que o do bloco atual; erealizar uma previsão de compensação de movimento para o sub-bloco com base no vetor afim, em queo primeiro vetor de origem afim (nv0) e o segundo vetor de origem afim (nv1) do único candidato de fusão são derivados com base nas informações de movimento de um bloco vizinho adjacente ao bloco atual,em que o bloco vizinho está incluído em uma unidade de árvore de codificação diferente de uma unidade de árvore de codificação do bloco atual, o primeiro vetor de origem afim (nv0) e o segundo vetor de origem afim (nv1) de um candidato de fusão são derivados com base em vetores de movimento de um sub-bloco na parte inferior esquerda e um sub-bloco na parte inferior direita do bloco vizinho,o sub-bloco da parte inferior esquerda inclui um ponto de controle de amostra de referência afim da parte inferior esquerda (xn4, yn4) posicionado em um canto da parte inferior esquerda do bloco vizinho, e o sub-bloco da parte inferior direita se junta a um ponto de controle de amostra de referência afim da parte inferior direita (xn5, yn5) localizado em um lado direito de uma amostra da parte inferior direita do sub-bloco da parte inferior direita;em que o primeiro vetor de origem afim e o segundo vetor de origem afim do único candidato de fusão são derivados de um valor obtido aplicando-se uma operação de deslocamento a uma largura entre o sub-bloco inferior esquerdo e o sub- bloco inferior direito, em que a operação de deslocamento altera a largura por um fator de escala.7. A VIDEO ENCODER configured to perform the following operations: generating a list of fusion candidates for a current block; specifying a fusion candidate from among a plurality of fusion candidates included in the list of fusion candidates; deriving a first affine source vector (sv0) and a second affine source vector (sv1) of the current block based on a first affine source vector (nv0) and a second affine source vector (nv1) of a fusion candidate; deriving an affine vector for a sub-block in the current block using the first affine source vector (sv0) and the second affine source vector (sv1) of the current block, wherein the sub-block is a region of a size smaller than that of the current block; and perform a motion compensation prediction for the sub-block based on the affine vector, wherein the first affine source vector (nv0) and the second affine source vector (nv1) of the single fusion candidate are derived based on the motion information of a neighboring block adjacent to the current block, wherein the neighboring block is included in a coding tree unit other than a coding tree unit of the current block, the first affine source vector (nv0) and the second affine source vector (nv1) of a fusion candidate are derived based on motion vectors of a bottom-left sub-block and a bottom-right sub-block of the neighboring block, the bottom-left sub-block includes a bottom-left affine reference sample control point (xn4, yn4) positioned at a bottom-left corner of the neighboring block, and the bottom-right sub-block joins a bottom-right affine reference sample control point (xn5, yn5) located at a right side of a sample from the bottom right of the bottom right subblock; wherein the first affine seed vector and the second affine seed vector of the single merge candidate are derived from a value obtained by applying a shift operation to a width between the bottom left subblock and the bottom right subblock, wherein the shift operation changes the width by a scale factor. 8. CODIFICADOR DE VÍDEO, de acordo com a reivindicação 7, caracterizado pela largura entre o sub-bloco inferior esquerdo e o sub-bloco inferior direito ser definida como uma variável, a variável é uma largura de vetor sub- semente que é definida como uma série de potência de 2.8. The video encoder of claim 7, wherein the width between the lower left subblock and the lower right subblock is defined as a variable, the variable being a subseed vector width that is defined as a power series of 2.
BR122025000828-1A 2018-09-21 2019-09-20 VIDEO DECODING METHOD, VIDEO CODING METHOD, VIDEO DECODER AND VIDEO ENCODER BR122025000828A2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR10-2018-0114343 2018-09-21
KR10-2018-0114342 2018-09-21
KR10-2018-0114344 2018-09-21

Publications (1)

Publication Number Publication Date
BR122025000828A2 true BR122025000828A2 (en) 2025-04-24

Family

ID=

Similar Documents

Publication Publication Date Title
BR112021008731A2 (en) video decoding method and video encoding method
US12382083B2 (en) Image signal encoding/decoding method and non-transitory computer-readable medium
BR112021008654A2 (en) video decoding method, video encoding method, and video decoding apparatus
BR112021008625A2 (en) video decoding and encoding method and video encoding and decoding apparatus
IL281625B2 (en) Method for encoding/decoding image signal and apparatus therefor
BR122025000828A2 (en) VIDEO DECODING METHOD, VIDEO CODING METHOD, VIDEO DECODER AND VIDEO ENCODER
BR122025000821A2 (en) VIDEO DECODING METHOD, VIDEO CODING METHOD, VIDEO DECODER AND VIDEO ENCODER
BR122025000817A2 (en) VIDEO DECODING METHOD, VIDEO CODING METHOD, VIDEO DECODER AND VIDEO ENCODER
BR122025000829A2 (en) VIDEO DECODING METHOD, VIDEO CODING METHOD, VIDEO DECODER AND VIDEO ENCODER
BR122025007924A2 (en) VIDEO DECODING METHOD AND VIDEO CODING METHOD
BR122024024712A2 (en) VIDEO DECODING METHOD, VIDEO CODING METHOD, VIDEO DECODING DEVICE AND VIDEO CODING DEVICE
BR122024024710A2 (en) VIDEO DECODING METHOD, VIDEO CODING METHOD, VIDEO DECODING DEVICE AND VIDEO CODING DEVICE
BR122024024714A2 (en) VIDEO DECODING METHOD, VIDEO CODING METHOD, VIDEO DECODING DEVICE AND VIDEO CODING DEVICE
BR122025007930A2 (en) VIDEO DECODING METHOD AND VIDEO CODING METHOD
BR122025007926A2 (en) VIDEO DECODING METHOD AND VIDEO CODING METHOD
BR122025007928A2 (en) VIDEO DECODING METHOD AND VIDEO CODING METHOD
BR122024024709A2 (en) VIDEO DECODING METHOD, VIDEO CODING METHOD, VIDEO DECODING DEVICE AND VIDEO CODING DEVICE
BR122025007573A2 (en) VIDEO DECODING METHOD, VIDEO CODING METHOD, VIDEO DECODING DEVICE AND VIDEO CODING DEVICE
BR122025007560A2 (en) VIDEO DECODING METHOD, VIDEO CODING METHOD, VIDEO DECODING DEVICE AND VIDEO CODING DEVICE
BR122025007578A2 (en) VIDEO DECODING METHOD, VIDEO CODING METHOD, VIDEO DECODING DEVICE AND VIDEO CODING DEVICE
BR122025007564A2 (en) VIDEO DECODING METHOD, VIDEO CODING METHOD, VIDEO DECODING DEVICE AND VIDEO CODING DEVICE
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载