+

BR122024024714A2 - VIDEO DECODING METHOD, VIDEO CODING METHOD, VIDEO DECODING DEVICE AND VIDEO CODING DEVICE - Google Patents

VIDEO DECODING METHOD, VIDEO CODING METHOD, VIDEO DECODING DEVICE AND VIDEO CODING DEVICE Download PDF

Info

Publication number
BR122024024714A2
BR122024024714A2 BR122024024714-3A BR122024024714A BR122024024714A2 BR 122024024714 A2 BR122024024714 A2 BR 122024024714A2 BR 122024024714 A BR122024024714 A BR 122024024714A BR 122024024714 A2 BR122024024714 A2 BR 122024024714A2
Authority
BR
Brazil
Prior art keywords
prediction
block
merge candidate
information
index
Prior art date
Application number
BR122024024714-3A
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 BR122024024714A2 publication Critical patent/BR122024024714A2/en

Links

Abstract

Trata-se de um método de decodificação de imagem de acordo com a presente invenção que pode compreender as etapas de: dividir um bloco de codificação na primeira unidade de previsão e uma segunda unidade de previsão; derivar uma lista de candidatos de mesclagem para o bloco de codificação; derivar primeiras informações de movimento para a primeira unidade de previsão e segundas informações de movimento para a segunda unidade de previsão por meio da lista de candidatos a mesclagem; e com base nas primeiras informações de movimento e nas segundas informações de movimento, adquirindo uma amostra de previsão dentro do bloco de codificação.An image decoding method according to the present invention may comprise the steps of: dividing a coding block into a first prediction unit and a second prediction unit; deriving a merge candidate list for the coding block; deriving first motion information for the first prediction unit and second motion information for the second prediction unit by means of the merge candidate list; and based on the first motion information and the second motion information, acquiring a prediction sample within the coding block.

Description

O presente pedido de patente consiste em pedido dividido do pedido de patente de invenção BR 112021008654-4, de 08/11/2019.This patent application consists of a split application of the invention patent application BR 112021008654-4, dated 11/08/2019. CAMPO DA TÉCNICAFIELD OF TECHNIQUE

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

FUNDAMENTOSFUNDAMENTALS

[002] Como os painéis de exibição estão ficando cada 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 Grupo de Especialistas em Cinema (MPEG) e o Grupo de Especialistas em Codificação de Vídeo (VCEG) sob a União Internacional de Telecomunicações-Telecomunicações (ITU-T) formou a Equipe de colaboração conjunta em codificação de vídeo (JCT-VC) em 2009. A JCT-VC propôs a codificação de vídeo de alta eficiência (HEVC), que é um padrão de compressão de vídeo com um desempenho de compressão cerca de duas vezes maior do que o desempenho de compressão de H.264/AVC, e é 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 da 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 Expert Group (MPEG) and the Video Coding Expert Group (VCEG) under the International Telecommunication Union-Telecommunications (ITU-T) formed the Joint Collaboration 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.

SUMÁRIOSUMMARY

[003] Um objeto da presente divulgação é fornecer um método de aplicação de particionamento a um bloco de codificação para obter uma pluralidade de blocos de previsão na codificação/decodificação de um sinal de vídeo e um aparelho para realizar o método.[003] An object of the present disclosure is to provide a method of applying partitioning to a coding block to obtain a plurality of prediction blocks in encoding/decoding a video signal and an apparatus for performing the method.

[004] Um outro objeto da presente divulgação é fornecer um método para derivar informações de movimento de cada um de uma pluralidade de blocos de previsão, na codificação/decodificação de um sinal de vídeo.[004] Another object of the present disclosure is to provide a method for deriving motion information from each of a plurality of prediction blocks, in encoding/decoding a video signal.

[005] Um outro objeto da presente divulgação é fornecer um método de derivar um candidato a mesclagem usando uma lista de informações de movimento entre regiões, na codificação/decodificação de um sinal de vídeo.[005] Another object of the present disclosure is to provide a method of deriving a merging candidate using a list of motion information between regions, in encoding/decoding a video signal.

[006] Os problemas técnicos a serem alcançados na presente divulgação não estão limitados aos problemas técnicos mencionados acima, e outros problemas não mencionados podem ser claramente compreendidos por aquelas pessoas versadas na técnica a partir da seguinte descrição.[006] The technical problems to be achieved in the present disclosure 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/codificação de um sinal de vídeo de acordo com a presente divulgação pode incluir as etapas de: aplicar particionamento a um bloco de codificação para obter uma primeira unidade de previsão e uma segunda unidade de previsão; derivar uma lista de candidato a mesclagem para o bloco de codificação derivar as primeiras informações de movimento para a primeira unidade de previsão e as segundas informações de movimento para a segunda unidade de previsão usando o candidato a mesclagem; e obter uma amostra de previsão no bloco de codificação com base na primeira informação de movimento e na segunda informação de movimento. Neste ponto, se deve ou não aplicar o particionamento ao bloco de codificação é determinado com base em um tamanho do bloco de codificação, e as primeiras informações de movimento para a primeira unidade de previsão são derivadas de um primeiro candidato a mesclagem na lista de candidatos a mesclagem, e a segunda informação de movimento para a segunda unidade de previsão é derivada de um segundo candidato a mesclagem diferente do primeiro candidato a mesclagem.[007] A method of decoding/encoding a video signal according to the present disclosure may include the steps of: applying partitioning to a coding block to obtain a first prediction unit and a second prediction unit; deriving a merge candidate list for the coding block by deriving first motion information for the first prediction unit and second motion information for the second prediction unit using the merge candidate; and obtaining a prediction sample in the coding block based on the first motion information and the second motion information. At this point, whether or not to apply partitioning to the coding block is determined based on a size of the coding block, and the first motion information for the first prediction unit is derived from a first merge candidate in the merge candidate list, and the second motion information for the second prediction unit is derived from a second merge candidate other than the first merge candidate.

[008] No método de codificação e decodificação de sinal de vídeo de acordo com a presente divulgação, quando pelo menos um dentre uma largura e uma altura do bloco de codificação é maior do que um valor limítrofe, o particionamento do bloco de codificação pode não ser permitido.[008] In the video signal encoding and decoding method according to the present disclosure, when at least one of a width and a height of the coding block is greater than a threshold value, partitioning of the coding block may not be allowed.

[009] No método de codificação e decodificação de sinal de vídeo de acordo com a presente divulgação, o método pode incluir ainda a etapa de decodificar as informações do primeiro índice para especificar o primeiro candidato a mesclagem e as informações do segundo índice para especificar o segundo candidato a mesclagem de um fluxo de bits, e quando um valor da segunda informação de índice é igual ou maior que um valor da primeira informação de índice, o valor da segunda informação de índice especificando o segundo candidato a mesclagem é obtido adicionando 1 ao valor da primeira informação de índice especificando o primeiro candidato a mesclagem.[009] In the video signal encoding and decoding method according to the present disclosure, the method may further include the step of decoding the first index information for specifying the first merging candidate and the second index information for specifying the second merging candidate from a bit stream, and when a value of the second index information is equal to or greater than a value of the first index information, the value of the second index information specifying the second merging candidate is obtained by adding 1 to the value of the first index information specifying the first merging candidate.

[010] No método de codificação e decodificação de sinal de vídeo de acordo com a presente divulgação, quando a amostra de previsão é incluído na região limite entre a primeira unidade de previsão e a segunda unidade de previsão, a amostra de previsão pode ser derivada com base em uma operação de soma ponderada de uma primeira amostra de previsão derivada com base na primeira informação de movimento e uma segunda amostra prevista derivada com base na segunda informação de movimento.[010] In the video signal encoding and decoding method according to the present disclosure, when the prediction sample is included in the boundary region between the first prediction unit and the second prediction unit, the prediction sample may be derived based on a weighted sum operation of a first prediction sample derived based on the first motion information and a second predicted sample derived based on the second motion information.

[011] No método de codificação e decodificação de sinal de vídeo de acordo com a presente divulgação, um primeiro valor de ponderação aplicado à primeira amostra de previsão pode ser determinado com base em uma coordenada do eixo geométrico x e uma coordenada do eixo geométrico y da amostra de previsão.[011] In the video signal encoding and decoding method according to the present disclosure, a first weighting value applied to the first prediction sample may be determined based on an x-axis coordinate and a y-axis coordinate of the prediction sample.

[012] No método de codificação e decodificação de sinal de vídeo de acordo com a presente divulgação, um segundo valor de ponderação aplicado à segunda amostra de previsão pode ser derivado subtraindo o primeiro valor de ponderação de um valor constante.[012] In the video signal encoding and decoding method according to the present disclosure, a second weighting value applied to the second prediction sample can be derived by subtracting the first weighting value from a constant value.

[013] No método de codificação e decodificação de sinal de vídeo de acordo com a presente divulgação, o máximo número de candidatos a mesclagem cuja lista de candidatos a mesclagem pode incluir pode ser determinado com base em se o bloco de codificação é particionado na primeira unidade de previsão e na segunda unidade de previsão.[013] In the video signal encoding and decoding method according to the present disclosure, the maximum number of merging candidates which the merging candidate list may include may be determined based on whether the coding block is partitioned into the first prediction unit and the second prediction unit.

[014] Os recursos brevemente resumidos acima com relação à presente divulgação são aspectos meramente exemplificativos da descrição detalhada da presente divulgação que serão descritos abaixo e não limitam o escopo da presente divulgação.[014] The features briefly summarized above with respect to the present disclosure are merely exemplary aspects of the detailed description of the present disclosure that will be described below and do not limit the scope of the present disclosure.

[015] De Acordo Com A Presente Divulgação, A Eficiência De Interprevisão Pode Ser Melhorada Ao Fornecer Um Método De Aplicação De Particionamento A Um Bloco De Codificação Para Obter Uma Pluralidade De Blocos De Previsão E Derivar Informações De Movimento De Cada Um Dos Blocos De Previsão[015] In Accordance With The Present Disclosure, Interprediction Efficiency Can Be Improved By Providing A Method Of Applying Partitioning To A Coding Block To Obtain A Plurality Of Prediction Blocks And Deriving Motion Information From Each Of The Prediction Blocks

[016] De acordo com a presente divulgação, a eficiência interprevisão pode ser melhorada fornecendo um método de derivar um candidato a mesclagem usando uma lista de informações de movimento inter-região.[016] In accordance with the present disclosure, inter-prediction efficiency can be improved by providing a method of deriving a merge candidate using a list of inter-region movement information.

[017] Os efeitos que podem ser obtidos a partir da presente divulgação não estão limitados aos efeitos mencionados acima, e outros efeitos não mencionados podem ser claramente compreendidos por aquelas pessoas versadas na técnica a partir da seguinte descrição.[017] The effects that can be obtained from the present disclosure 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 DOS DESENHOSBRIEF DESCRIPTION OF THE DRAWINGS

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

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

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

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

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

[023] A Figura 6 é um fluxograma que ilustra um método de interprevisão de acordo com uma modalidade da presente divulgação.[023] Figure 6 is a flowchart illustrating an interforecasting method in accordance with one embodiment of the present disclosure.

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

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

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

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

[028] A Figura 11 é um fluxograma que ilustra um processo de derivar informações de movimento de um bloco atual usando um modo de mesclagem.[028] Figure 11 is a flowchart illustrating a process of deriving motion information from a current block using a blending mode.

[029] A Figura 12 é uma vista que mostra um exemplo de blocos candidatos usados para derivar um candidato a mesclagem.[029] Figure 12 is a view showing an example of candidate blocks used to derive a merge candidate.

[030] A Figura 13 é uma vista que mostra posições de amostras de referência.[030] Figure 13 is a view showing reference sample positions.

[031] A Figura 14 é uma vista que mostra um exemplo de blocos candidatos usados para derivar um candidato a mesclagem.[031] Figure 14 is a view showing an example of candidate blocks used to derive a merge candidate.

[032] A Figura 15 é um fluxograma que ilustra um processo de atualização de uma lista de informações de movimento inter-região.[032] Figure 15 is a flowchart illustrating a process for updating a list of inter-region movement information.

[033] A Figura 16 é uma vista que mostra um modalidade de atualização de uma lista de candidato a mesclagem inter-região.[033] Figure 16 is a view showing one embodiment of updating an inter-region merge candidate list.

[034] A Figura 17 é uma vista que mostra um exemplo em que um índice de um candidato a mesclagem inter- região armazenado anteriormente é atualizado.[034] Figure 17 is a view showing an example where an index of a previously stored inter-region merge candidate is updated.

[035] A Figura 18 é uma vista que mostra a posição de um sub-bloco representativo.[035] Figure 18 is a view showing the position of a representative sub-block.

[036] A Figura 19 é uma vista que mostra um exemplo em que uma lista de informações de movimento inter- região é gerada para cada modo de interprevisão.[036] Figure 19 is a view showing an example where a list of inter-region motion information is generated for each interprediction mode.

[037] A Figura 20 é uma vista que mostra um exemplo em que um candidato a mesclagem inter-região incluído em uma lista de informações de movimento a longo prazo é adicionado a uma lista de candidato a mesclagem.[037] Figure 20 is a view showing an example where an inter-region merge candidate included in a long-term motion information list is added to a merge candidate list.

[038] A Figura 21 é uma vista que mostra um exemplo em que uma verificação de redundância é realizada apenas em alguns dos candidatos de mesclagem.[038] Figure 21 is a view showing an example where a redundancy check is performed on only some of the merge candidates.

[039] A Figura 22 é uma vista que mostra um exemplo em que uma verificação de redundância é omitida para um candidato a mesclagem específico.[039] Figure 22 is a view showing an example where a redundancy check is omitted for a specific merge candidate.

[040] A Figura 23 é uma vista que mostra exemplos de aplicação de particionamento a um bloco de codificação para obter uma pluralidade de unidades de previsão usando uma linha diagonal.[040] Figure 23 is a view showing examples of applying partitioning to a coding block to obtain a plurality of prediction units using a diagonal line.

[041] A Figura 24 é uma vista que mostra exemplos de aplicação de particionamento a um bloco de codificação para obter duas unidades de previsão.[041] Figure 24 is a view showing examples of applying partitioning to a coding block to obtain two prediction units.

[042] A Figura 25 é uma vista que mostra exemplos de aplicação de particionamento a um bloco de codificação para obter uma pluralidade de blocos de previsão de tamanhos diferentes.[042] Figure 25 is a view showing examples of applying partitioning to a coding block to obtain a plurality of prediction blocks of different sizes.

[043] A Figura 26 é uma vista que mostra blocos vizinhos usados para derivar um candidato a mesclagem triangular.[043] Figure 26 is a view showing neighboring blocks used to derive a triangular merge candidate.

[044] A Figura 27 é uma vista para descrever exemplos de determinar a disponibilidade de um bloco vizinho para cada unidade de previsão triangular.[044] Figure 27 is a view to describe examples of determining the availability of a neighboring block for each triangular prediction unit.

[045] As Figuras 28 e 29 são vistas que mostram exemplos de derivação de uma amostra de previsão com base em uma operação de soma ponderada de uma primeira amostra de previsão e uma segunda amostra de previsão.[045] Figures 28 and 29 are views showing examples of deriving a forecast sample based on a weighted sum operation of a first forecast sample and a second forecast sample.

DESCRIÇÃO DETALHADADETAILED DESCRIPTION

[046] A seguir, uma modalidade da presente divulgação será descrita em detalhes com referência aos desenhos anexos.[046] In the following, an embodiment of the present disclosure will be described in detail with reference to the accompanying drawings.

[047] 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, previsão, filtragem em loop, reconstrução ou semelhantes, pode ser realizado em um bloco de codificação, um bloco de transformada ou um bloco de previsão.[047] Encoding and decoding of a video are performed by the block unit. For example, an encoding/decoding process such as transform, quantization, prediction, loop filtering, reconstruction, or the like may be performed in an encoding block, a transform block, or a prediction block.

[048] Em seguida, um bloco a ser codificado/decodificado será denominado como um “bloco atual”. Por exemplo, o bloco atual pode representar um bloco de codificação, um bloco de transformada ou um bloco de previsão de acordo com uma etapa do processo de codificação/decodificação atual.[048] Next, a block to be encoded/decoded will be referred to as a “current block”. For example, the current block may represent an encoding block, a transform block, or a prediction block according to a step of the current encoding/decoding process.

[049] Além disso, pode ser entendido 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 uma matriz de amostra de um tamanho predeterminado. Salvo indicação em contrário, o “bloco” e “unidade” podem ser usados para ter o mesmo significado. Por exemplo, em uma modalidade descrita abaixo, pode ser entendido que um bloco de codificação e uma unidade de codificação têm o mesmo significado.[049] Furthermore, it may 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 matrix of a predetermined size. Unless otherwise indicated, “block” and “unit” may be used to have the same meaning. For example, in an embodiment described below, it may be understood that a coding block and a coding unit have the same meaning.

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

[051] Com referência à Figura 1, um aparelho de codificação de vídeo 100 pode incluir uma parte de particionamento de imagem 110, uma parte de previsã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 por entropia 165, uma parte de quantização inversa 140, e parte de transformada inversa 145, uma parte de filtro 150 e uma memória 155.[051] Referring to Figure 1, a video coding apparatus 100 may include a picture partitioning part 110, a prediction 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, and inverse transform part 145, a filter part 150, and a memory 155.

[052] Cada um dos componentes mostrados na Figura 1 é mostrado independentemente para representar funções características diferentes umas das outras em um aparelho de codificação de vídeo, e isso não significa que cada componente é formado pela unidade de configuração de hardware separado ou software único. Ou seja, cada componente é incluído para ser listado como um componente por conveniência de explicação e pelo menos dois dos componentes podem ser combinados para formar um único componente, ou um componente pode ser dividido em uma pluralidade de componentes para executar uma função. Modalidades integradas e modalidades separadas dos componentes também estão incluídas no escopo da presente divulgação se não se afastarem da essência da presente divulgação.[052] Each of the components shown in Figure 1 is shown independently to represent characteristic functions different 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 single software. 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 single component, or a component can be divided into a plurality of components to perform a function. Integrated embodiments and separate embodiments of the components are also included in the scope of the present disclosure if they do not depart from the essence of the present disclosure.

[053] Além disso, alguns dos componentes não são componentes essenciais que desempenham funções essenciais na presente divulgação, mas podem ser componentes opcionais apenas para melhorar o desempenho. A presente divulgação pode ser implementada incluindo apenas componentes essenciais para implementar a essência da presente divulgação, excluindo componentes usados para melhorar o desempenho, e uma estrutura incluindo apenas os componentes essenciais, excluindo os componentes opcionais usados para melhorar o desempenho também está incluída no escopo do presente divulgação.[053] Furthermore, some of the components are not essential components that perform essential functions in the present disclosure, but may be optional components only to improve performance. The present disclosure may be implemented by including only essential components to implement the essence of the present disclosure, excluding 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 disclosure.

[054] A parte de particionamento de imagem 110 pode aplicar particionamento a uma imagem de entrada para obter pelo menos uma unidade de processamento. Neste ponto, a unidade de processamento pode ser uma unidade de previsão (PU), uma unidade de transformada (TU) ou uma unidade de codificação (CU). A parte de particionamento de imagem 110 pode aplicar o particionamento a uma imagem para obter uma combinação de uma pluralidade de unidades de codificação, unidades de previsão e unidades de transformada e codificar uma imagem selecionada uma combinação de uma unidade de codificação, uma unidade de previsão e uma unidade de transformada com base em um critério predeterminado (por exemplo, uma função de custo).[054] The image partitioning part 110 may apply partitioning to an input image to obtain at least one processing unit. At this point, the processing unit may be a prediction unit (PU), a transform unit (TU), or an coding unit (CU). The image partitioning part 110 may apply partitioning to an image to obtain a combination of a plurality of coding units, prediction units, and transform units, and encode a selected image from a combination of a coding unit, a prediction unit, and a transform unit based on a predetermined criterion (e.g., a cost function).

[055] Por exemplo, uma imagem pode ser particionada em uma pluralidade de unidades de codificação. De modo a particionar as unidades de codificação em uma imagem, uma estrutura de árvore recursiva, como uma estrutura de árvore quádrupla, pode ser usada. Um vídeo ou uma unidade de codificação particionada dentro de diferentes unidades de codificação usando a maior unidade de codificação como uma raiz pode ser particionada para ter tantos nós filhos quanto 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 torna-se um nó folha. Isto é, quando se assume que apenas o particionamento quadrado é possível para uma unidade de codificação, a unidade de codificação pode ser particionada em até quatro unidades de codificação diferentes.[055] For example, an image may be partitioned into a plurality of coding units. In order to partition the coding units in an image, a recursive tree structure, such as a quad tree structure, may be used. A video or a coding unit partitioned into different coding units using 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, the coding unit may be partitioned into up to four different coding units.

[056] Em seguida, em uma modalidade da presente divulgação, a unidade de codificação pode ser usada como um significado de uma unidade realizando a codificação ou um significado de uma unidade realizando a decodificação.[056] Next, in one embodiment of the present disclosure, the coding unit may be used as a meaning of a unit performing the encoding or a meaning of a unit performing the decoding.

[057] A unidade de previsão pode ser aquela que é particionada em uma forma de pelo menos um quadrado, retângulo ou semelhante do mesmo tamanho dentro de uma unidade de codificação, ou pode ser qualquer unidade de previsão, entre as unidades de previsão particionadas dentro de uma unidade de codificação, que é particionada para ter uma forma e/ou tamanho diferente daqueles de outra unidade de previsão.[057] The prediction unit may be one that is partitioned into a shape of at least one square, rectangle or similar of the same size within a coding unit, or it may be any prediction unit, among the prediction units partitioned within a coding unit, that is partitioned to have a different shape and/or size than those of another prediction unit.

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

[059] A parte de previsão 120 e 125 pode incluir uma parte de interprevisão 120 que executa a interprevisão e uma parte de intraprevisão 125 que realiza a intraprevisão. Pode ser determinado se usar interprevisão ou realizar intraprevisão para uma unidade de previsão e determinar informações específicas (por exemplo, modo de intraprevisão, vetor de movimento, imagem de referência, etc.) de acordo com cada método de previsão. Neste ponto, uma unidade de processamento para realizar previsão pode ser diferente de uma unidade de processamento para determinar um método de previsão e conteúdo específico. Por exemplo, um método de previsão e um modo de previsão podem ser determinados em uma unidade de previsão e a previsão pode ser realizada em uma unidade de transformada. Um coeficiente residual (bloco residual) entre o bloco de previsão gerado e o bloco original pode ser inserido na parte de transformada 130. Além disso, a informação do modo de previsão, informação do vetor de movimento e semelhantes usados para previsão podem ser codificados pela parte de codificação por entropia 165 junto com o coeficiente residual e transferido para um decodificador. Quando um modo de codificação específico é usado, um bloco original pode ser codificado como está e transmitido para um decodificador sem gerar um bloco de previsão através da parte de previsão 120 e 125.[059] The prediction part 120 and 125 may include an interprediction part 120 that performs interprediction and an intraprediction part 125 that performs intraprediction. It may be determined whether to use interprediction or perform intraprediction for a prediction unit, and determine specific information (e.g., intraprediction mode, motion vector, reference image, 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. Further, 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 is and transmitted to a decoder without generating a prediction block through the prediction part 120 and 125.

[060] A parte de interprevisão 120 pode prever uma unidade de previsão com base na informação de pelo menos uma imagem entre as imagens antes ou depois da imagem atual e, em alguns casos, pode prever uma unidade de previsão com base na informação de uma área parcial que tem foi codificado na imagem atual. A parte de interprevisão 120 pode incluir uma parte de interpolação de imagem de referência, uma parte de previsão de movimento e uma parte de compensação de movimento.[060] The interprediction part 120 may predict a prediction unit based on information from at least one picture among the pictures before or after the current picture, and in some cases, may predict a prediction unit based on information from a partial area that has been encoded in the current picture. The interprediction part 120 may include a reference picture interpolation part, a motion prediction part, and a motion compensation part.

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

[062] A parte de previsão de movimento pode realizar a previsão de movimento com base na imagem de referência interpolada pela parte de interpolação da imagem 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 valor de vetor de movimento de uma unidade de 1/2 ou 1/4 amostras com base em amostras interpoladas. A parte de previsão de movimento pode prever uma unidade de previsão atual variando o método de previsão de movimento. Vários métodos, como um método de salto, um método de mesclagem, um método de previsão de vetor de movimento avançado (AMVP), um método de cópia intrabloco e semelhantes, podem ser usados como o método de previsão de movimento.[062] The motion prediction part may perform motion prediction based on the reference image interpolated by the reference image 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 unit of 1/2 or 1/4 samples based on interpolated samples. The motion prediction part may predict a current prediction unit by varying the motion prediction method. Various methods, such as a skip method, a merge method, an advanced motion vector prediction method (AMVP), an intra-block copy method, and the like, may be used as the motion prediction method.

[063] A parte intraprevisão 125 pode gerar uma unidade de previsão com base nas informações sobre as amostras de referência na vizinhança do bloco atual, que é a informação da amostra na imagem atual. Quando um bloco na vizinhança da unidade de previsão atual é um bloco no qual a interprevisão foi realizada e, portanto, a amostra de referência é uma amostra na qual a interprevisão foi realizada, a amostra de referência incluída no bloco no qual a interprevisão foi realizada pode ser usada no lugar da informação de amostra de referência de um bloco na vizinhança em que a intraprevisão foi realizada. Ou seja, quando uma amostra de referência não está disponível, pelo menos uma amostra de referência entre as amostras de referência disponíveis pode ser usada no lugar das informações da amostra de referência indisponíveis.[063] The intra-prediction part 125 may generate a prediction unit based on information about reference samples in the neighborhood of the current block, which is the sample information in the current image. When a block in the neighborhood of the current prediction unit is a block on which inter-prediction has been performed, and therefore the reference sample is a sample on which inter-prediction has been performed, the reference sample included in the block on which inter-prediction has been performed may be used in place of the reference sample information of a block in the neighborhood on which intra-prediction has been performed. That is, when a reference sample is not available, at least one reference sample among the available reference samples may be used in place of the unavailable reference sample information.

[064] Na intraprevisão, o modo de previsão pode ter um modo de previsão angular que usa informações de amostra de referência de acordo com uma direção de previsão e um modo de previsão não angular que não usa informações direcionais ao realizar a previsão. Um modo para prever informações de luminância pode ser diferente de um modo para prever informações de diferença de cor e informações de modo de intraprevisão usadas para prever informações de luminância ou informações de sinal de luminância previstas podem ser usadas para prever as informações de diferença de cores.[064] In intraprediction, the prediction mode may have an angular prediction mode that uses reference sample 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 the color difference information.

[065] Se o tamanho da unidade de previsão for o mesmo que o tamanho da unidade de transformada quando a intraprevisão é realizada, a intraprevisão pode ser realizada para a unidade de previsão com base em uma amostra no lado esquerdo, uma amostra na parte superior do lado esquerdo e uma amostra na parte superior da unidade de previsão. No entanto, se o tamanho da unidade de previsão for diferente do tamanho da unidade de transformada quando a intraprevisão é realizada, a intraprevisão pode ser realizada usando uma amostra de referência com base na unidade de transformada. Além disso, a intraprevisão usando particionamento N x N pode ser usada apenas para a menor unidade de codificação.[065] If the size of the prediction unit is the same as the size of the transform unit when intraprediction is performed, intraprediction can be performed for the prediction unit based on a sample on the left side, a sample on the top of the left side, and a sample 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 intraprediction is performed, intraprediction can be performed using a reference sample based on the transform unit. Furthermore, intraprediction using N x N partitioning can be used only for the smallest coding unit.

[066] O método de intraprevisão pode gerar um bloco de previsão após a aplicação de um filtro de Suavização intra-adaptativa (AIS) para a amostra de referência de acordo com um modo de previsão. O tipo de filtro de AIS aplicado à amostra de referência pode variar. De modo a realizar o método de intraprevisão, o modo de intraprevisão da unidade de previsão atual pode ser previsto a partir do modo de intraprevisão da unidade de previsão existente na vizinhança da unidade de previsão atual. Quando um modo de previsão da unidade de previsão atual é previsto usando a informação de modo de previsão da unidade de previsão vizinha, se os modos de intraprevisão da unidade de previsão atual são os mesmos que a unidade de previsão na vizinhança, informação indicando que os modos de previsão de a unidade de previsão atual é a mesma que a unidade de previsão na vizinhança pode ser transmitida usando informações de sinalizador predeterminadas, e se os modos de previsão da unidade de previsão atual e a unidade de previsão na vizinhança forem diferentes um do outro, as informações de modo de previsão do bloco atual pode ser codificado executando a codificação por entropia.[066] The intraprediction method may generate a prediction block after applying an Intra-Adaptive Smoothing (AIS) filter to the reference sample according to a prediction mode. The type of AIS filter applied to the reference sample may vary. In order to perform the intraprediction method, the intraprediction mode of the current prediction unit may be predicted from the intraprediction mode of the prediction unit existing in the neighborhood of the current prediction unit. When a prediction mode of the current prediction unit is predicted using the prediction mode information of the neighboring prediction unit, if the intraprediction 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 flag information, and if the prediction modes of the current prediction unit and the prediction unit in the neighborhood are different from each other, the prediction mode information of the current block may be encoded by performing entropy encoding.

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

[068] A parte de transformada 130 pode transformar o bloco residual incluindo o bloco original e a informação do coeficiente residual da unidade de previsão gerada através da parte de previsão 120 e 125 usando um método de transformada, tal como Transformada de Cosseno Discreta (DCT) ou Transformada Seno Discreta (DST). Aqui, o núcleo de transformada de DCT inclui pelo menos um dentre DCT2 e DCT8, e o núcleo de transformada de DST inclui DST7. Aplicar ou não DCT ou DST para transformar o bloco residual pode ser determinada com base nas informações do modo de intraprevisão de uma unidade de previsão usada para gerar o bloco residual. A transformada no bloco residual pode ser saltada. Um sinalizador indicando se deve ou não saltar a transformada no bloco residual pode ser codificado. O salto de transformada pode ser permitido para um bloco residual com um tamanho menor ou igual a um limiar, um componente luma ou um componente croma sob o formato 4:4:4.[068] The transform part 130 may transform the residual block including the original block and the residual coefficient information of the prediction unit generated through the prediction part 120 and 125 using a transform method such as Discrete Cosine Transform (DCT) or Discrete Sine Transform (DST). Here, the DCT transform kernel includes at least one of DCT2 and DCT8, and the DST transform kernel includes DST7. Whether or not to apply DCT or DST to transform the residual block may be determined based on the intraprediction mode information of a prediction unit used to generate the residual block. The transform in the residual block may be skipped. A flag indicating whether or not to skip the transform in the residual block may be encoded. Transform skipping may be allowed for a residual block with a size less than or equal to a threshold, a luma component, or a chroma component under the 4:4:4 format.

[069] A parte de quantização 135 pode quantizar valores 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.[069] 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.

[070] A parte de rearranjo 160 pode reorganizar os valores dos coeficientes para os coeficientes residuais quantizados.[070] The rearrangement part 160 may rearrange the coefficient values for the quantized residual coefficients.

[071] A parte de rearranjo 160 pode alterar os coeficientes de uma forma de bloco bidimensional em uma forma de vetor unidimensional por meio 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 usando um método de varredura em zigue-zague e alterar os coeficientes em uma forma de vetor unidimensional. De acordo com o tamanho da unidade de transformada e o modo de intraprevisão, uma varredura vertical de varredura dos coeficientes de uma forma de bloco bidimensional na direção da coluna e uma varredura horizontal de varredura dos coeficientes de uma forma de bloco bidimensional na linha direção pode ser usada em vez da varredura em zigue-zague. Ou seja, de acordo com o tamanho da unidade de transformada e o modo de intraprevisão, um método de varredura que será usado pode ser determinado entre a varredura em zigue-zague, a varredura na direção vertical e a varredura na direção horizontal.[071] The rearrangement part 160 can change the coefficients of a two-dimensional block shape into a one-dimensional vector shape by means of a coefficient scanning method. For example, the rearrangement part 160 can scan coefficients from DC to high-frequency domain coefficients using a zigzag scanning method and change the coefficients into a one-dimensional vector shape. According to the size of the transform unit and the intraprediction mode, a vertical scan of scanning the coefficients of a two-dimensional block shape in the column direction and a horizontal scan of scanning the coefficients of a two-dimensional block shape in the row direction can be used instead of the zigzag scanning. That is, according to the size of the transform unit and the intraprediction mode, a scanning method to be used can be determined among the zigzag scanning, the scanning in the vertical direction, and the scanning in the horizontal direction.

[072] A parte de codificação por entropia 165 pode realizar a codificação por entropia com base nos valores calculados pela parte de rearranjo 160. A codificação por entropia pode usar vários métodos de codificação, tais como Golomb Exponencial, Codificação de Comprimento Variável Adaptável ao Contexto (CAVLC), Codificação Aritmética Binária Adaptável ao Contexto (CABAC) e semelhantes.[072] The entropy coding part 165 may perform entropy coding based on the 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.

[073] A parte de codificação por 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 previsão, informações de unidade de particionamento, informações de unidade de previsã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 entrada de informação de filtragem da parte de rearranjo 160 e das partes de previsão 120 e 125.[073] 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, partitioning 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.

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

[075] A parte de quantização inversa 140 e a parte de transformada inversa 145 quantizam inversamente os valores quantizados 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 a parte de transformada inversa 145 pode ser combinada com a unidade de previsão prevista através de uma parte de estimativa de movimento, uma parte de compensação de movimento e uma parte de intraprevisão incluída na parte de previsão 120 e 125 para gerar um bloco reconstruído.[075] The inverse quantization part 140 and the 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 through a motion estimation part, a motion compensation part, and an intraprediction part included in the prediction part 120 and 125 to generate a reconstructed block.

[076] A parte do filtro 150 pode incluir pelo menos um dentre um filtro de desbloqueio, uma unidade de correção de deslocamento e um Filtro de Loop Adaptável (ALF).[076] The filter portion 150 may include at least one of a deblocking filter, an offset correction unit, and an Adaptive Loop Filter (ALF).

[077] O filtro de desbloqueio pode remover a distorção de bloco gerada pela fronteira entre os blocos na imagem reconstruída. De modo a determinar se o desbloqueio deve ou não ser realizado, a aplica ou não o filtro de desbloqueio ao bloco atual pode ser determinada com base nas amostras incluídas em várias colunas ou linhas incluídas no bloco. Um filtro forte ou um filtro fraco pode ser aplicado de acordo com a força de filtragem de desbloqueio necessária quando o filtro de desbloqueio é aplicado a um bloco. Além disso, quando a filtragem de direção vertical e a filtragem de direção horizontal são realizadas na aplicação do filtro de desbloqueio, a filtragem de direção horizontal e a filtragem de direção vertical podem ser processadas em paralelo.[077] The deblocking filter can remove the block distortion generated by the boundary between blocks in the reconstructed image. 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 samples included in multiple columns or rows included in the block. A strong filter or a weak filter can be applied according to the required deblocking filtering strength when the deblocking filter is applied to a block. In addition, when vertical direction filtering and horizontal direction filtering are performed in applying the deblocking filter, horizontal direction filtering and vertical direction filtering can be processed in parallel.

[078] A unidade de correção de deslocamento pode corrigir um deslocamento para o vídeo original pela unidade de amostra para um vídeo no qual o desbloqueio foi realizado. Para realizar a correção de deslocamento para uma imagem específica, é possível usar um método de divisão de amostras incluídas no vídeo em um certo número de áreas, determinando uma área para realizar o deslocamento e aplicando o deslocamento à área, ou um método de aplicar um deslocamento considerando as informações de borda de cada amostra.[078] The displacement correction unit can correct a displacement for the original video by the sampling unit for a video on which deblocking has been performed. To perform displacement correction for a specific picture, it is possible to use a method of dividing samples 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 considering the edge information of each sample.

[079] Filtro de Loop Adaptável (ALF) pode ser realizada com base em um valor obtido comparando o vídeo reconstruído e filtrado com o vídeo original. Depois de dividir as amostras incluídas no vídeo em grupos predeterminados, um filtro a ser aplicado a um grupo correspondente pode ser determinado e a filtragem pode ser realizada de forma diferente para cada grupo. Um sinal de luminância, que é a informação relacionada a se aplica ou não ALF, pode ser transmitido para cada unidade de codificação (CU), e a forma e o coeficiente de filtro de um filtro de ALF a ser aplicado podem variar de acordo com cada bloco. Além disso, um filtro de ALF do mesmo tipo (tipo fixo) pode ser aplicado independentemente da característica do bloco a ser aplicado.[079] Adaptive Loop Filtering (ALF) can be performed based on a value obtained by comparing the reconstructed and filtered video with the original video. After dividing the samples included in the video into predetermined groups, a filter to be applied to a corresponding group can be determined, and filtering can be performed differently for each group. A luminance signal, which is the information related to whether or not to apply ALF, can be transmitted 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.

[080] A memória 155 pode armazenar o bloco reconstruído ou imagem calculada através da parte do filtro 150, e o bloco reconstruído e armazenado ou imagem pode ser fornecido para a parte de previsão 120 e 125 quando a interprevisão é realizada.[080] The memory 155 may store the reconstructed block or image calculated through the filter part 150, and the reconstructed and stored block or image may be provided to the prediction part 120 and 125 when interprediction is performed.

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

[082] Com referência à Figura 2, um decodificador de vídeo 200 pode incluir uma parte de decodificação por entropia 210, uma parte de rearranjo 215, uma parte de quantização inversa 220, uma parte de transformada inversa 225, uma parte de previsão 230 e 235, uma parte de filtro 240 e uma memória 245.[082] 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 prediction part 230 and 235, a filter part 240, and a memory 245.

[083] Quando um fluxo de bits de vídeo é recebido de um codificador de vídeo, o fluxo de bits de entrada pode ser decodificado em um procedimento oposto ao do codificador de vídeo.[083] When a video bitstream is received from a video encoder, the input bitstream may be decoded in a procedure opposite to that of the video encoder.

[084] A parte de decodificação por entropia 210 pode realizar a decodificação por entropia em um procedimento oposto ao de realizar a codificação de entropia na parte de decodificação por entropia do codificador de vídeo. Por exemplo, vários métodos correspondentes ao método realizado pelo codificador de vídeo, tais como Golomb Exponencial, Codificação de Comprimento Variável Adaptável ao Contexto (CAVLC) e Codificação Aritmética Binária Adaptável ao Contexto (CABAC), podem ser aplicados.[084] 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 corresponding 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.

[085] A parte de decodificação por entropia 210 pode decodificar informações relacionadas à intraprevisão e interprevisão realizada pelo codificador.[085] The entropy decoding part 210 can decode information related to the intraprediction and interprediction performed by the encoder.

[086] A parte de rearranjo 215 pode realizar o rearranjo na entropia de fluxo de bits decodificada pela parte de decodificação por 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 reorganizados 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.[086] The rearrangement part 215 may perform rearrangement on the bit stream entropy decoded 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.

[087] 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 reorganizado.[087] 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.

[088] A parte de transformada inversa 225 pode realizar a transformada inversa na transformada, isto é, DCT ou DST, realizada pela parte de transformada em um resultado da quantização realizada pelo codificador de vídeo, isto é, DCT inverso ou DST inverso. Aqui, o núcleo de transformada DCT pode incluir pelo menos um dentre DCT2 e DCT8, e o núcleo de transformada de DST pode incluir DST7. Alternativamente, quando a transformada é saltada no codificador de vídeo, mesmo a parte de transformada inversa 225 pode não realizar a transformada inversa. 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 executar seletivamente uma técnica de transformada (por exemplo, DCT ou DST) de acordo com uma pluralidade de partes de informações, como um método de previsão, um tamanho de um bloco atual, uma direção de previsão e semelhantes.[088] The inverse transform part 225 may perform the inverse transform on the transform, i.e., DCT or DST, performed by the transform part on a quantization result performed by the video encoder, i.e., inverse DCT or inverse DST. Here, the DCT transform core may include at least one of DCT2 and DCT8, and the DST transform core may include DST7. Alternatively, when the transform is skipped in the video encoder, even the inverse transform part 225 may not perform the inverse transform. 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 or DST) 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.

[089] A parte de previsão 230 e 235 pode gerar um bloco de previsão com base nas informações relacionadas à geração de um bloco de previsão fornecido pelo decodificador por entropia 210 e informações sobre um bloco ou imagem anteriormente decodificado fornecida pela memória 245.[089] The prediction part 230 and 235 may generate a prediction block based on information related to generating a prediction block provided by the entropy decoder 210 and information about a previously decoded block or image provided by the memory 245.

[090] Como descrito acima, se o tamanho da unidade de previsão e o tamanho da unidade de transformada forem os mesmos quando a intraprevisão é realizada da mesma maneira que a operação do codificador de vídeo, a intraprevisão é realizada na unidade de previsão com base na amostra existente no lado esquerdo, a amostra no lado superior esquerdo e a amostra na parte superior da unidade de previsão. No entanto, se o tamanho da unidade de previsão e o tamanho da unidade de transformada forem diferentes quando a intraprevisão é realizada, a intraprevisão pode ser realizada usando uma amostra de referência com base em uma unidade de transformada. Além disso, a intraprevisão usando particionamento N x N pode ser usada apenas para a menor unidade de codificação.[090] As described above, if the size of the prediction unit and the size of the transform unit are the same when intraprediction is performed in the same manner as the video encoder operation, intraprediction is performed on the prediction unit based on the sample existing on the left side, the sample on the upper left side, and the sample on the upper side of the prediction unit. However, if the size of the prediction unit and the size of the transform unit are different when intraprediction is performed, intraprediction can be performed using a reference sample based on a transform unit. Furthermore, intraprediction using N x N partitioning can be used only for the smallest coding unit.

[091] A parte de previsão 230 e 235 pode incluir uma parte de determinação da unidade de previsão, uma parte de interprevisão e uma parte de intraprevisão. A parte de determinação da unidade de previsão pode receber várias informações, como entrada de informações da unidade de previsão da parte de decodificação por entropia 210, informações de modo de previsão do método de intraprevisão, informações relacionadas à previsão de movimento de um método de interprevisão e semelhantes, identificar a unidade de previsão a partir da unidade de codificação atual e determinar se a unidade de previsão realiza interprevisão ou intraprevisão. A parte de interprevisão 230 pode realizar a interprevisão na unidade de previsão atual com base na informação incluída em pelo menos uma imagem entre as imagens antes ou depois da imagem atual, incluindo a unidade de previsão atual, usando as informações necessárias para a interprevisão da unidade de previsão atual fornecida pelo codificador de vídeo. Alternativamente, a parte de interprevisão 230 pode realizar interprevisão com base na informação em uma área parcial anteriormente reconstruída na imagem atual incluindo a unidade de previsão atual.[091] The prediction part 230 and 235 may include a prediction unit determination part, an inter-prediction part, and an intra-prediction 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, motion prediction-related information from an inter-prediction method, and the like, identify the prediction unit from the current coding unit, and determine whether the prediction unit performs inter-prediction or intra-prediction. The inter-prediction part 230 may perform inter-prediction on the current prediction unit based on information included in at least one picture among the pictures before or after the current picture including the current prediction unit, using information necessary for inter-prediction of the current prediction unit provided by the video encoder. Alternatively, the interprediction part 230 may perform interprediction based on information in a previously reconstructed partial area in the current image including the current prediction unit.

[092] De modo a realizar a interprevisão, pode ser determinado, com base na unidade de codificação, se o método de previsão de movimento da unidade de previsão incluída em uma unidade de codificação correspondente é um modo de salto, um modo de mesclagem, um modo de previsão de vetor de movimento (Modo AMVP) ou um modo de cópia intrabloco.[092] In order to perform inter-prediction, it can 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 intra-block copy mode.

[093] A parte intraprevisão 235 pode gerar um bloco de previsão com base nas informações sobre a amostra na imagem atual. Quando a unidade de previsão é uma unidade de previsão que executou intraprevisão, a intraprevisão pode ser realizada com base nas informações do modo de intraprevisão da unidade de previsão fornecidas pelo codificador de vídeo. A parte de intraprevisão 235 pode incluir um filtro de Suavização intra-adaptativa (AIS), uma parte de interpolação de amostra de referência e um filtro de DC. O filtro de AIS é uma parte que realiza a filtragem na amostra 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 filtragem de AIS pode ser realizada na amostra de referência do bloco atual usando o modo de previsão e informações de filtro de AIS da unidade de previsão fornecida pelo codificador de vídeo. Quando o modo de previsão do bloco atual é um modo que não executa a filtragem de AIS, o filtro de AIS pode não ser aplicado.[093] The intra-prediction part 235 may generate a prediction block based on information about the sample 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 the intra-prediction mode information of the prediction unit provided by the video encoder. The intra-prediction part 235 may include an Intra-Adaptive Smoothing (AIS) filter, a reference sample interpolation part, and a DC filter. The AIS filter is a part that performs filtering on the reference sample 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 sample 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.

[094] Quando o modo de previsão da unidade de previsão é uma unidade de previsão que realiza intraprevisão com base em um valor de amostra obtido por interpolação da amostra de referência, a parte de interpolação de amostra de referência pode gerar uma amostra de referência de uma unidade de amostra com um valor inteiro ou menos interpolando a amostra de referência. Quando o modo de previsão da unidade de previsão atual é um modo de previsão que gera um bloco de previsão sem interpolar a amostra de referência, a amostra de referência não pode ser interpolada. O filtro de DC pode gerar um bloco de previsão por meio da filtragem quando o modo de previsão do bloco atual é o modo de DC.[094] When the prediction mode of the prediction unit is a prediction unit that performs intraprediction based on a sample value obtained by interpolating the reference sample, the reference sample interpolation part may generate a reference sample of a sample unit with an integer value or less by interpolating the reference sample. When the prediction mode of the current prediction unit is a prediction mode that generates a prediction block without interpolating the reference sample, the reference sample may not be interpolated. The DC filter may generate a prediction block by filtering when the prediction mode of the current block is the DC mode.

[095] O bloco reconstruído ou imagem pode ser fornecido à parte do filtro 240. A parte do filtro 240 pode incluir um filtro de desbloqueio, uma unidade de correção de deslocamento e um ALF.[095] The reconstructed block or image may be provided to filter portion 240. Filter portion 240 may include a deblocking filter, an offset correction unit, and an ALF.

[096] Informações sobre se um filtro de desbloqueio é aplicado a um bloco ou imagem correspondente e informações sobre se um filtro forte ou um filtro fraco é 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 fornecido com informações relacionadas ao filtro de desbloqueio fornecido pelo codificador de vídeo e o decodificador de vídeo pode realizar a filtragem de desbloqueio em um bloco correspondente.[096] Information about whether a deblocking filter is applied to a corresponding block or picture and information about whether 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 information related to the deblocking filter provided by the video encoder, and the video decoder may perform deblocking filtering on a corresponding block.

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

[098] O ALF pode ser aplicado a uma unidade de codificação com base nas informações sobre a aplicação ou não do ALF e informações sobre os coeficientes de ALF fornecidas pelo codificador. As informações de ALF podem ser fornecidas para serem incluídas em um conjunto de parâmetros específico.[098] 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. ALF information may be provided to be included in a specific parameter set.

[099] A memória 245 pode armazenar a imagem reconstruída ou bloco e usá-lo como uma imagem de referência ou um bloco de referência e pode fornecer a imagem reconstruída para uma unidade de saída.[099] Memory 245 may store the reconstructed image or block and use it as a reference image or a reference block and may provide the reconstructed image to an output unit.

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

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

[102] O tamanho da unidade de árvore de codificação pode ser definido em um nível de imagem ou um nível de sequência. Para este fim, a informação que indica o tamanho da unidade da árvore de codificação pode ser sinalizada através de um conjunto de parâmetros de imagem ou um conjunto de parâmetros de sequência.[102] The size of the coding tree unit may be defined at a picture level or a sequence level. To this end, information indicating the size of the coding tree unit may be signaled via a set of picture parameters or a set of sequence parameters.

[103] Por exemplo, o tamanho da unidade de árvore de codificação para toda a imagem em uma sequência pode ser definido para 128 x 128. Alternativamente, no nível da imagem, qualquer um dentre 128 x 128 e 256 x 256 pode ser determinado como o tamanho da unidade da árvore de codificação. Por exemplo, o tamanho da unidade de árvore de codificação pode ser definido para 128 x 128 em uma primeira imagem, e o tamanho da unidade de árvore de codificação pode ser definido para 256 x 256 em uma segunda imagem.[103] For example, the coding tree unit size for the entire image in a sequence may be set to 128 x 128. Alternatively, at the image 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 on a first image, and the coding tree unit size may be set to 256 x 256 on a second image.

[104] Os blocos de codificação podem ser gerados particionando uma unidade de árvore de codificação. O bloco de codificação indica uma unidade básica para realizar a codificação/decodificação. Por exemplo, a previsão ou transformada pode ser realizada para cada bloco de codificação, ou um modo de codificação de previsão pode ser determinado para cada bloco de codificação. Aqui, o modo de codificação de previsão indica um método de geração de uma imagem de previsão. Por exemplo, o modo de codificação de previsão pode incluir previsão dentro de uma imagem (intraprevisão), previsão entre imagens (interprevisão), referência de imagem atual (CPR) ou cópia intrabloco (IBC) ou previsão combinada. Para o bloco de codificação, um bloco de previsão pode ser gerado usando pelo menos um modo de codificação de previsão entre a intraprevisão, a interprevisão, a referência de imagem atual e a previsão combinada.[104] Coding blocks may be generated by partitioning a coding tree unit. The coding block indicates 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 indicates a method of generating a prediction image. For example, the prediction coding mode may include prediction within an image (intra-prediction), prediction between images (inter-prediction), current image reference (CPR) or intra-block copy (IBC), or combined prediction. For the coding block, a prediction block may be generated using at least one prediction coding mode among intra-prediction, inter-prediction, current image reference, and combined prediction.

[105] As informações que indicam o modo de codificação de previsão do bloco atual podem ser sinalizadas por meio de um fluxo de bits. Por exemplo, a informação pode ser um sinalizador de 1 bit indicando se o modo de codificação de previsão é um modo intra ou um modo inter. Somente quando o modo de codificação de previsão do bloco atual é determinado como o modo inter, a referência da imagem atual ou a previsão combinada podem ser usadas.[105] Information indicating the prediction coding mode of the current block may be signaled by means of 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 picture reference or the combined prediction may be used.

[106] A referência de imagem atual é para definir a imagem atual como uma imagem de referência e obter um bloco de previsão do bloco atual de uma área que já foi codificada/decodificada na imagem atual. Aqui, a imagem atual significa uma imagem incluindo o bloco atual. As informações que indicam se a referência de imagem atual é aplicada ao bloco atual podem ser sinalizadas por meio de um fluxo de bits. Por exemplo, as informações podem ser um sinalizador de 1 bit. Quando o sinalizador é verdadeiro, o modo de codificação de previsão do bloco atual pode ser determinado como a referência da imagem atual e, quando o sinalizador é falso, o modo de previsão do bloco atual pode ser determinado como interprevisão.[106] The current picture reference is to set the current picture as a reference picture and obtain a prediction block of the current block from an area that has already been coded/decoded in the current picture. Here, the current picture means a picture including the current block. The information indicating whether the current picture reference is applied to the current block can be signaled via a bit stream. For example, the information can be a 1-bit flag. When the flag is true, the prediction coding mode of the current block can be determined as the current picture reference, and when the flag is false, the prediction mode of the current block can be determined as interprediction.

[107] Alternativamente, o modo de codificação de previsão do bloco atual pode ser determinado com base em um índice de imagem de referência. Por exemplo, quando o índice da imagem de referência indica a imagem atual, o modo de codificação de previsão do bloco atual pode ser determinado como a referência da imagem atual. Quando o índice de imagem de referência indica uma imagem diferente da imagem atual, o modo de codificação de previsão do bloco atual pode ser determinado como interprevisão. Ou seja, a referência de imagem atual é um método de previsão usando informações em uma área em que a codificação/decodificação foi concluída na imagem atual, e a interprevisão é um método de previsão usando informações em outra imagem na qual a codificação/decodificação foi concluída.[107] 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 interprediction. That is, current picture reference is a prediction method using information in an area where encoding/decoding has been completed in the current picture, and interprediction is a prediction method using information in another picture in which encoding/decoding has been completed.

[108] A previsão combinada representa um modo de codificação no qual dois ou mais entre a intraprevisão, a interprevisão e a imagem de referência atual são combinados. Por exemplo, quando a previsão combinada é aplicada, um primeiro bloco de previsão pode ser gerado com base em um entre a intraprevisão, interprevisão e a referência de imagem atual, e um segundo bloco de previsão pode ser gerado com base em outro. Quando o primeiro bloco de previsão e o segundo bloco de previsão são gerados, um bloco de previsão final pode ser gerado por meio de uma operação média ou uma operação de soma ponderada do primeiro bloco de previsão e do segundo bloco de previsão. As informações que indicam se ou não a previsão combinada é aplicada podem ser sinalizadas por meio de um fluxo de bits. As informações podem ser um sinalizador de 1 bit.[108] Combined prediction represents a coding mode in which two or more of the intra prediction, inter prediction and the current reference image are combined. For example, when combined prediction is applied, a first prediction block may be generated based on one of the intra prediction, inter prediction and the current reference image, 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 means of an average operation or a weighted sum operation of the first prediction block and the second prediction block. Information indicating whether or not combined prediction is applied may be signaled by means of a bit stream. The information may be a 1-bit flag.

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

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

[111] O particionamento de árvore quádrupla se refere a uma técnica de particionamento que particiona um bloco atual em quatro blocos. Como resultado do particionamento de árvore quádrupla, o bloco atual pode ser particionado em quatro particionamentos quadrados (consultar “SPLIT_QT” da Figura 4 (a)).[111] 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 partitions (see “SPLIT_QT” of Figure 4(a)).

[112] O particionamento de árvore binária se refere a uma técnica de particionamento que particiona um bloco atual em dois blocos. O particionamento de um bloco atual em dois blocos ao longo da direção vertical (isto é, usando uma linha vertical cruzando o bloco atual) pode ser denominado como particionamento de árvore binária de direção vertical e particionamento de um bloco atual em dois blocos ao longo da direção horizontal (isto é, usando uma linha horizontal cruzando o bloco atual) pode ser denominado como particionamento de árvore binária de direção horizontal. Como resultado do particionamento da árvore binária, o bloco atual pode ser particionado em dois particionamentos não quadrados. “SPLIT_BT_VER” da Figura 4 (b) mostra um resultado do particionamento de árvore binária de direção vertical e “SPLIT_BT_HOR” da Figura 4 (c) mostra um resultado do particionamento da árvore binária na direção horizontal.[112] Binary tree partitioning refers to a partitioning 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 termed as vertical direction binary tree partitioning and partitioning a current block into two blocks along the horizontal direction (i.e., using a horizontal line crossing the current block) can be termed as horizontal direction binary tree partitioning. As a result of binary tree partitioning, the current block can be partitioned into two non-square partitionings. “SPLIT_BT_VER” of Figure 4(b) shows a result of vertical direction binary tree partitioning and “SPLIT_BT_HOR” of Figure 4(c) shows a result of horizontal direction binary tree partitioning.

[113] O particionamento de árvore ternária se refere a uma técnica de particionamento que particiona um bloco atual em três blocos. Particionar um bloco atual em três blocos ao longo da direção vertical (isto é, usando duas linhas verticais cruzando o bloco atual) pode ser denominado como particionamento de árvore ternária na direção vertical e particionar um bloco atual em três blocos ao longo da direção horizontal (isto é, usando duas linhas horizontais cruzando o bloco atual) podem ser denominado como particionamento de árvore ternária na direção horizontal. Como resultado do particionamento de árvore ternária, o bloco atual pode ser particionado em três particionamentos não quadrados. Neste ponto, a largura/altura de um particionamento posicionado no centro do bloco atual pode ser duas vezes maior que a largura/altura das outras particionamentos. “SPLIT_TT_VER” da Figura 4 (d) mostra um resultado do particionamento de árvore tripla na direção vertical e “SPLIT_TT_HOR” da Figura 4 (e) mostra um resultado do particionamento de árvore ternária na direção horizontal.[113] Ternary 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 crossing the current block) can be termed as ternary tree partitioning in the vertical direction, and partitioning a current block into three blocks along the horizontal direction (i.e., using two horizontal lines crossing the current block) can be termed as ternary tree partitioning in the horizontal direction. As a result of ternary tree partitioning, the current block can be partitioned into three non-square 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” in Figure 4(d) shows a result of ternary tree partitioning in the vertical direction, and “SPLIT_TT_HOR” in Figure 4(e) shows a result of ternary tree partitioning in the horizontal direction.

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

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

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

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

[118] O particionamento de um bloco de codificação usando uma técnica de particionamento, como particionamento de árvore quádrupla, particionamento de árvore binária e/ou particionamento de árvore ternária, pode ser denominado como particionamento de múltiplas árvores.[118] Partitioning a cipher block using a partitioning technique such as quad tree partitioning, binary tree partitioning, and/or ternary tree partitioning can be referred to as multi-tree partitioning.

[119] Os blocos de codificação gerados pela aplicação do particionamento de árvores múltiplas a um bloco de codificação podem ser denominados como blocos de codificação inferiores. Quando a profundidade de particionamento de um bloco de codificação é k, a profundidade de particionamento dos blocos de codificação inferiores é definida como k + 1.[119] The coding blocks generated by applying multiple tree partitioning to a coding block can be referred to as lower coding blocks. When the partitioning depth of a coding block is k, the partitioning depth of the lower coding blocks is set to k + 1.

[120] Ao contrário, para blocos de codificação com uma profundidade de particionamento de k + 1, um bloco de codificação com uma profundidade de particionamento de k pode ser denominado como um bloco de codificação superior.[120] Conversely, for coding blocks with a partitioning depth of k + 1, a coding block with a partitioning depth of k can be termed as an upper coding block.

[121] O tipo de particionamento do bloco de codificação atual pode ser determinado com base em pelo menos um dentre um tipo de particionamento de um bloco de codificação superior e um tipo de particionamento 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 particionamento pode incluir pelo menos um dentre se um particionamento de árvore quádrupla é aplicado, se um particionamento de árvore binária é aplicado, uma direção de particionamento de árvore binária, se um particionamento de árvore ternária é aplicado e direção de particionamento de árvore ternária.[121] The partitioning type of the current coding block may be determined based on at least one of a partitioning type of a top coding block and a partitioning 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 top-left neighboring block. Here, the partitioning type may include at least one of whether a quad tree partitioning is applied, whether a binary tree partitioning is applied, a binary tree partitioning direction, whether a ternary tree partitioning is applied, and ternary tree partitioning direction.

[122] De modo a determinar um tipo de particionamento de um bloco de codificação, as informações que indicam se ou não o bloco de codificação pode ser particionado podem ser sinalizadas através de um fluxo de bits. A informação é um sinalizador de 1 bit de “split_cu_flag”, e quando o sinalizador é verdadeiro, indica que o bloco de codificação é particionado por uma técnica de particionamento de árvore quádrupla .[122] In order to determine a partitioning type of a cipher block, information indicating whether or not the cipher block can be partitioned can be signaled via a bit stream. The information is a 1-bit flag “split_cu_flag”, and when the flag is true, it indicates that the cipher block is partitioned by a quad-tree partitioning technique.

[123] Quando split_cu_flag for verdadeiro, informações indicando se o bloco de codificação é particionado em árvore quádrupla podem ser sinalizadas por meio de um fluxo de bits. A informação é um sinalizador de 1 bit de split_qt_flag e, quando o sinalizador for verdadeiro, o bloco de codificação pode ser particionado em quatro blocos.[123] When split_cu_flag is true, information indicating whether the cipher block is quad-tree partitioned can be signaled via a bit stream. The information is a 1-bit flag of split_qt_flag, and when the flag is true, the cipher block can be partitioned into four blocks.

[124] Por exemplo, no exemplo mostrado na Figura 5, como uma unidade de árvore de codificação é particionada em árvore quádrupla, quatro blocos de codificação com uma profundidade de particionamento de 1 são gerados. Além disso, é mostrado que o particionamento de árvore quádrupla é aplicado novamente ao primeiro e quarto blocos de codificação entre os quatro blocos de codificação gerados como resultado do particionamento de árvore quádrupla. Como resultado, quatro blocos de codificação com uma profundidade de particionamento de 2 podem ser gerados.[124] For example, in the example shown in Figure 5, as a coding tree unit is quad-tree partitioned, four coding blocks with a partitioning depth of 1 are generated. 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 with a partitioning depth of 2 can be generated.

[125] Além disso, os blocos de codificação com uma profundidade de particionamento de 3 podem ser gerados aplicando o particionamento de árvore quádrupla novamente a um bloco de codificação com uma profundidade de particionamento de 2.[125] Additionally, cipher blocks with a partitioning depth of 3 can be generated by applying quad tree partitioning again to a cipher block with a partitioning depth of 2.

[126] Quando o particionamento de árvore quádrupla não é aplicado ao bloco de codificação, se o particionamento de árvore binária ou o particionamento de árvore ternária é realizado no bloco de codificação pode ser determinado considerando pelo menos um dentre o tamanho do bloco de codificação, se o bloco de codificação está posicionado no limite da imagem, a profundidade máxima de particionamento e o tipo de particionamento de um bloco vizinho. Quando é determinado realizar o particionamento de árvore binária ou particionamento de árvore ternária no bloco de codificação, as informações que indicam a direção de particionamento podem ser sinalizadas através de um fluxo de bits. As informações podem ser um sinalizador de 1 bit de mtt_split_cu_vertical_flag. Com base no sinalizador, se a direção de particionamento é uma direção vertical ou uma direção horizontal pode ser determinada. Além disso, as informações que indicam se o particionamento de árvore binária ou o particionamento de árvore ternária são aplicados ao bloco de codificação podem ser sinalizadas por meio de um fluxo de bits. A informação pode ser um sinalizador de 1 bit de mtt_split_cu_binary_flag. Com base no sinalizador, pode ser determinado se o particionamento de árvore binária ou o particionamento de árvore ternária é aplicado ao bloco de codificação.[126] When quad tree partitioning is not applied to the coding block, whether binary tree partitioning or ternary tree partitioning is performed on the coding block can be determined by considering at least one of the size of the coding block, whether the coding block is positioned on the image boundary, the maximum partitioning depth, and the partitioning type of a neighboring block. When it is determined to perform binary tree partitioning or ternary tree partitioning on the coding block, information indicating the partitioning 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, whether the partitioning direction is a vertical direction or a horizontal direction can be determined. In addition, information indicating whether binary tree partitioning or ternary tree partitioning is applied to the coding block can be signaled via a bit stream. The information can be a 1-bit flag from mtt_split_cu_binary_flag. Based on the flag, it can be determined whether binary tree partitioning or ternary tree partitioning is applied to the cipher block.

[127] Por exemplo, no exemplo mostrado na Figura 5, é mostrado que o particionamento de árvore binária de direção vertical é aplicado a um bloco de codificação com uma profundidade de particionamento de 1, o particionamento de árvore ternária de direção vertical é aplicado ao bloco de codificação do lado esquerdo entre os blocos de codificação gerados como resultado do particionamento, e o particionamento da árvore binária na direção vertical é aplicado ao bloco de codificação do lado direito.[127] For example, in the example shown in Figure 5, it is shown that vertical-direction binary tree partitioning is applied to a coding block with a partitioning depth of 1, vertical-direction ternary tree partitioning is applied to the left-hand coding block among the coding blocks generated as a result of the partitioning, and vertical-direction binary tree partitioning is applied to the right-hand coding block.

[128] A interprevisão é um modo de codificação de previsão que prevê um bloco atual usando informações de uma imagem anterior. Por exemplo, um bloco na mesma posição que o bloco atual na imagem anterior (doravante, um bloco colocado) pode ser definido como o bloco de previsão do bloco atual. Daqui em diante, um bloco de previsão gerado com base em um bloco na mesma posição que o bloco atual será denominado como um bloco de previsão colocado.[128] Interprediction is a prediction coding mode that predicts a current block using information from a previous image. For example, a block at the same position as the current block in the previous image (hereinafter, a placed block) can be defined as the prediction block of the current block. Hereinafter, a prediction block generated based on a block at the same position as the current block will be referred to as a placed prediction block.

[129] Por outro lado, quando um objeto existente na imagem anterior mudou para outra posição na imagem atual, o bloco atual pode ser efetivamente previsto usando um movimento do objeto. Por exemplo, quando a direção do movimento e o tamanho de um objeto podem ser conhecidos comparando a imagem anterior e a imagem atual, um bloco de previsão (ou uma imagem de previsão) do bloco atual pode ser gerado considerando as informações de movimento do objeto. Daqui em diante, o bloco de previsão gerado usando informações de movimento pode ser denominado como um bloco de previsão de movimento.[129] On the other hand, when an object existing in the previous image has moved to another position in the current image, the current block can be effectively predicted using a motion of the object. For example, when the motion direction and size of an object can be known by comparing the previous image and the current image, a prediction block (or a prediction image) of the current block can be generated considering the motion information of the object. Hereinafter, the prediction block generated using motion information can be referred to as a motion prediction block.

[130] Um bloco residual pode ser gerado subtraindo o bloco de previsão do bloco atual. Neste ponto, quando há um movimento de um objeto, a energia do bloco residual pode ser reduzida usando o bloco de previsão de movimento em vez do bloco de previsão colocado e, portanto, o desempenho de compressão do bloco residual pode ser melhorado.[130] A residual block can 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 can be reduced by using the motion prediction block instead of the placed prediction block, and thus the compression performance of the residual block can be improved.

[131] Conforme descrito acima, a geração de um bloco de previsão usando informações de movimento pode ser denominada como previsão de compensação de movimento. Na maioria das interprevisões, um bloco de previsão pode ser gerado com base na previsão de compensação de movimento.[131] As described above, generating a prediction block using motion information can be referred to as motion compensation prediction. In most interpredictions, a prediction block can be generated based on the motion compensation prediction.

[132] As informações de movimento podem incluir pelo menos um dentre um vetor de movimento, um índice de imagem de referência, uma direção de previsão e um índice de peso bidirecional. O vetor de movimento indica a direção do movimento e o tamanho de um objeto. O índice de imagem de referência especifica uma imagem de referência do bloco atual entre as imagens de referência incluídas em uma lista de imagens de referência. A direção de previsão indica qualquer um dentre previsão L0 unidirecional, previsão L1 unidirecional e previsão bidirecional (previsão L0 e previsão L1). De acordo com a direção de previsão do bloco atual, pelo menos uma entre as informações de movimento na direção L0 e as 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 previsão L0 e um valor de ponderação aplicado a um bloco de previsão L1.[132] The motion information may include at least one of a motion vector, a reference image index, a prediction direction, and a bidirectional weight index. The motion vector indicates the motion direction and size of an object. The reference image index specifies a reference image of the current block among the reference images included in a reference image 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 the motion information in the L0 direction and the 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.

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

[134] Com referência à Figura 6, o método de interprevisão inclui as etapas de determinação de um modo de interprevisão de um bloco atual (S601), aquisição de informações de movimento do bloco atual de acordo com o modo de interprevisão determinado (S602) e realização de previsão de compensação de movimento para o bloco atual com base nas informações de movimento adquiridas (S603).[134] 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).

[135] Aqui, o modo de interprevisão representa várias técnicas para determinar informações de movimento do bloco atual e pode incluir um modo de interprevisão que usa informações de movimento de translação e um modo de interprevisão que usa informações de movimento afins. Por exemplo, o modo de interprevisão usando informações de movimento translacional pode incluir um modo de mesclagem e um modo de previsão de vetor de movimento, e o modo de interprevisão usando informações de movimento afim pode incluir um modo de mesclagem afim e um modo de previsã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 a partir de um fluxo de bits de acordo com o modo de interprevisão.[135] Here, the interprediction mode represents various techniques for determining motion information of the current block, and may include an interprediction mode that uses translational motion information and an interprediction mode that uses affine motion information. For example, the interprediction mode using translational motion information may include a blending mode and a motion vector prediction mode, and the interprediction mode using affine motion information may include an affine blending 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.

[136] Em seguida, o método de interprevisão usando informações de movimento afim será descrito em detalhes.[136] Next, the interprediction method using affine motion information will be described in detail.

[137] A Figura 7 é uma vista que mostra movimentos não lineares de um objeto.[137] Figure 7 is a view showing nonlinear motions of an object.

[138] Um movimento não linear de um objeto pode ser gerado em um vídeo. Por exemplo, como mostrado no exemplo da Figura 7, um movimento não linear de um objeto, como ampliar, reduzir, rotação, transformada afim ou semelhante de uma câmera, pode ocorrer. Quando ocorre um movimento não linear de um objeto, o movimento do objeto não pode ser efetivamente expresso com um vetor de movimento translacional. Consequentemente, a eficiência da codificação pode ser melhorada usando um movimento afim em vez de um movimento de translação em uma área onde ocorre um movimento não linear de um objeto.[138] 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, such as zooming, zooming, rotation, affine transformation, or the like of a camera, may occur. When a non-linear motion of an object occurs, the motion of the object cannot be effectively expressed with a translational motion vector. Consequently, coding efficiency can be improved by using an affine motion instead of a translational motion in an area where a non-linear motion of an object occurs.

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

[140] Se uma técnica de interprevisão com base em um movimento afim é aplicada ao bloco atual pode ser determinado com base nas informações analisadas a partir de um fluxo de bits. Especificamente, se a técnica de interprevisão com base em um movimento afim é aplicada ao bloco atual pode ser determinado com base em pelo menos um dentre um indicador indicando se o modo a mesclagem afim é aplicado ao bloco atual e um sinalizador indicando se o vetor de movimento afim o modo de previsão é aplicado ao bloco atual.[140] Whether an affine motion-based interprediction technique is applied to the current block may be determined based on information parsed from a bit stream. Specifically, whether the affine motion-based interprediction technique is applied to the current block may be determined based on at least one of a flag indicating whether affine blending mode is applied to the current block and a flag indicating whether affine motion vector prediction mode is applied to the current block.

[141] Quando a técnica de interprevisão com base em um movimento afim é aplicada ao bloco atual, um modelo de movimento afim do bloco atual pode ser determinado (S1101 → 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 usando seis parâmetros, e o modelo de movimento afim de quatro parâmetros expressa um movimento afim usando quatro parâmetros.[141] When the interprediction technique based on an affine motion is applied to the current block, an affine motion model of the current block can be determined (S1101 → S801). The affine motion model can 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.

[142] A Equação 1 expressa um movimento afim usando seis parâmetros. O movimento afim representa um movimento translacional para uma área predeterminada determinada por vetores de sementes afins. [ Equação 1] [142] Equation 1 expresses an affine motion using six parameters. The affine motion represents a translational motion to a predetermined area determined by affine seed vectors. [Equation 1]

[143] Quando um movimento afim é expresso usando seis parâmetros, um movimento complicado pode ser expresso. No entanto, à medida que o número de bits necessários para codificar cada um dos parâmetros aumenta, a eficiência da codificação pode ser reduzida. Consequentemente, o movimento afim pode ser expresso usando quatro parâmetros. A Equação 2 expressa um movimento afim usando quatro parâmetros. [Equação 2] [143] 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. [Equation 2]

[144] As informações para determinar um modelo de movimento afim do bloco atual podem ser codificadas e sinalizadas por meio de um fluxo de bits. Por exemplo, a informação pode ser um sinalizador de 1 bit de “affine_type_flag”. Quando o valor do sinalizador é 0, pode indicar que um modelo de movimento afim de 4 parâmetros é aplicado, e quando o valor do sinalizador é 1, pode indicar que um modelo de movimento afim de 6 parâmetros é aplicado. O sinalizador pode ser codificado pela unidade de fatia, bloco ou bloco (por exemplo, pela unidade de bloco de codificação ou árvore de codificação). Quando um sinalizador é sinalizado no nível da fatia, um modelo de movimento afim determinado no nível da fatia pode ser aplicado a todos os blocos pertencentes à fatia.[144] Information for determining an affine motion model for the current block may be encoded and signaled via a bit stream. For example, the information may be a 1-bit “affine_type_flag” flag. When the flag value is 0, it may indicate that a 4-parameter affine motion model is applied, and when the flag value is 1, it may indicate that a 6-parameter affine motion model is applied. The flag may be encoded by the slice, block, or block unit (e.g., by the coding block unit or coding tree). When a flag is signaled at the slice level, an affine motion model determined at the slice level may be applied to all blocks belonging to the slice.

[145] Alternativamente, um modelo de movimento afim do bloco atual pode ser determinado com base em um modo de interprevisão afim do bloco atual. Por exemplo, quando o modo de mesclagem 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 previsão de vetor de movimento afim é aplicado, as informações para determinar o modelo de movimento afim do bloco atual podem ser codificadas e sinalizadas através de um fluxo de bits. Por exemplo, quando o modo de previsão de vetor de movimento afim é aplicado ao bloco atual, o modelo de movimento afim do bloco atual pode ser determinado com base no sinalizador de 1 bit de “affine_type_flag”.[145] 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 blending 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, the 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”.

[146] Em seguida, um vetor de semente afim do bloco atual pode ser derivado (S1102 ^ S802). Quando um modelo de movimento afim de 4 parâmetros é 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 denominado como um vetor semente 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.[146] Then, an affine seed vector of the current block can be derived (S1102^S802). When a 4-parameter affine motion model is selected, motion vectors at two control points of the current block can be derived. On the other hand, when a 6-parameter affine motion model is selected, motion vectors at three control points of the current block can be derived. The motion vector at a control point can be termed as an affine seed vector. The control point can include at least one of the top-left corner, the top-right corner, and the bottom-left corner of the current block.

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

[148] No modelo de movimento afim de 4 parâmetros, vetores de sementes afins podem ser derivados para dois entre o canto superior esquerdo, o canto superior direito e o canto inferior esquerdo. Por exemplo, como mostrado no exemplo da Figura 9 (a), quando um modelo de movimento afim de 4 parâmetros é selecionado, um vetor afim pode ser derivado usando o vetor semente afim sv0 para o canto superior esquerdo do bloco atual (por exemplo, amostra superior esquerda (x1, y1) e o vetor de semente 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 semente afim para o canto inferior esquerdo em vez do vetor de semente afim para o canto superior esquerdo, ou usar um vetor de semente afim para o canto inferior esquerdo em vez do vetor semente afim para o canto superior direito.[148] In the 4-parameter affine motion model, affine seed vectors can be derived for two between the top-left corner, the top-right corner, and the bottom-left corner. For example, as shown in the example in Figure 9(a), when a 4-parameter affine motion model is selected, an affine vector can be derived using the affine seed vector sv0 for the top-left corner of the current block (e.g., top-left sample (x1, y1)) and the affine seed 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 seed vector for the bottom-left corner instead of the affine seed vector for the top-left corner, or to use an affine seed vector for the bottom-left corner instead of the affine seed vector for the top-right corner.

[149] No modelo de movimento afim de 6 parâmetros, vetores de sementes afins podem ser derivados para o canto superior esquerdo, o canto superior direito e o canto inferior esquerdo. Por exemplo, como mostrado no exemplo da Figura 9 (b), quando um modelo de movimento afim de 6 parâmetros é selecionado, um vetor afim pode ser derivado usando o vetor semente afim sv0 para o canto superior esquerdo do bloco atual (por exemplo, amostra superior esquerda (x1, y1) ), o vetor de semente afim sv1 para o canto superior direito do bloco atual (por exemplo, a amostra superior direita (x1, y1)), e o vetor de semente afim sv2 para o canto superior esquerdo do bloco atual (por exemplo, amostra superior esquerda (x2, y2)).[149] In the 6-parameter affine motion model, affine seed 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 in Figure 9(b), when a 6-parameter affine motion model is selected, an affine vector can be derived using the affine seed vector sv0 for the top-left corner of the current block (e.g., top-left sample (x1, y1)), the affine seed vector sv1 for the top-right corner of the current block (e.g., top-right sample (x1, y1)), and the affine seed vector sv2 for the top-left corner of the current block (e.g., top-left sample (x2, y2)).

[150] Na modalidade descrita abaixo, no modelo de movimento afim de 4 parâmetros, os vetores de sementes afins do ponto de controle superior esquerdo e do ponto de controle superior direito serão denominados como um primeiro vetor de semente afim e um segundo vetor afim vetor de sementes, respectivamente. Nas modalidades usando o primeiro vetor de semente afim e o segundo vetor de semente afim descrito abaixo, pelo menos um dentre o primeiro vetor de semente afim e o segundo vetor de semente afim pode ser substituído pelo vetor de semente afim do ponto de controle inferior esquerdo (a terceiro vetor de semente afim) ou o vetor de semente afim do ponto de controle inferior direito (um quarto vetor de semente afim).[150] In the embodiment described below, in the 4-parameter affine motion model, the affine seed vectors of the upper left control point and the upper right control point will be referred to as a first affine seed vector and a second affine seed vector, respectively. In embodiments using the first affine seed vector and the second affine seed vector described below, at least one of the first affine seed vector and the second affine seed vector may be replaced by the affine seed vector of the lower left control point (a third affine seed vector) or the affine seed vector of the lower right control point (a fourth affine seed vector).

[151] Além disso, no modelo de movimento afim de 6 parâmetros, os vetores de sementes afins do ponto de controle superior esquerdo, do ponto de controle superior direito e do ponto de controle inferior esquerdo serão denominados como uma primeira semente afim vetor, um segundo vetor de semente afim e um terceiro vetor de semente afim, respectivamente. Nas modalidades usando o primeiro vetor de semente afim, o segundo vetor de semente afim e o terceiro vetor de semente afim descrito abaixo, pelo menos um dentre o primeiro vetor de semente afim, o segundo vetor de semente afim e o terceiro vetor de semente afim podem ser substituídos pelo vetor de semente afim do ponto de controle inferior direito (um quarto vetor de semente afim).[151] Furthermore, in the 6-parameter affine motion model, the affine seed vectors of the upper left control point, the upper right control point, and the lower left control point will be referred to as a first affine seed vector, a second affine seed vector, and a third affine seed vector, respectively. In embodiments using the first affine seed vector, the second affine seed vector, and the third affine seed vector described below, at least one of the first affine seed vector, the second affine seed vector, and the third affine seed vector may be replaced by the affine seed vector of the lower right control point (a fourth affine seed vector).

[152] Um vetor afim pode ser derivado para cada sub-bloco usando os vetores de sementes afins (S803). Aqui, o vetor afim representa um vetor de movimento translacional derivado com base nos vetores de sementes afins. O vetor afim de um sub-bloco pode ser denominado como um vetor de movimento de sub-bloco afim ou um vetor de movimento de sub-bloco.[152] An affine vector can be derived for each sub-block using the affine seed vectors (S803). Here, the affine vector represents a translational motion vector derived based on the affine seed vectors. The affine vector of a sub-block can be termed as an affine sub-block motion vector or a sub-block motion vector.

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

[154] 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 no vetor de semente afim. Por exemplo, a Equação 3 mostra um exemplo de derivação de um vetor de sub-bloco afim. [ Equação 3] [154] The subblock affine vector can be derived based on the control point position, the subblock position, and the affine seed vector. For example, Equation 3 shows an example of deriving an affine subblock vector. [Equation 3]

[155] Na Equação 3, (x, y) denota a posição de um sub-bloco. Aqui, a posição de um sub-bloco indica a posição de uma amostra de referência incluída no sub-bloco. A amostra de referência pode ser uma amostra posicionada no canto superior esquerdo do sub-bloco ou uma amostra da qual pelo menos uma entre as coordenadas de eixo geométrico x e 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 semente afim. Além disso, (x1, y1) denota a posição do segundo ponto de controle e (sv1x, sv1y) denota o segundo vetor de semente afim.[155] In Equation 3, (x, y) denotes the position of a subblock. Here, the position of a subblock indicates the position of a reference sample included in the subblock. The reference sample can be a sample positioned at 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.

[156] 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 definido para um valor igual à largura do bloco atual.[156] When the first control point and second control point correspond to the top left corner and top right corner of the current block, respectively, x1-x0 can be set to a value equal to the width of the current block.

[157] Depois disso, a previsão de compensação de movimento para cada sub-bloco pode ser realizada usando o vetor afim de cada sub-bloco (S1104 ^ S804). Como resultado da realização da previsão de compensação de movimento, um bloco de previsão para cada sub-bloco pode ser gerado. Os blocos de previsão dos sub-blocos podem ser definidos como os blocos de previsão do bloco atual.[157] After that, motion compensation prediction for each sub-block can be performed using the affine vector of each sub-block (S1104^S804). As a result of performing motion compensation prediction, a prediction block for each sub-block can be generated. The prediction blocks of the sub-blocks can be set as the prediction blocks of the current block.

[158] Em seguida, um método de interprevisão usando informações de movimento translacional será descrito em detalhes.[158] Next, an interprediction method using translational motion information will be described in detail.

[159] As informações de movimento do bloco atual podem ser derivadas das informações de movimento de outro bloco. Aqui, outro bloco pode ser um bloco codificado/decodificado por interprevisão antes do bloco atual. Definir as informações de movimento do bloco atual para serem iguais às informações de movimento de outro bloco pode ser definido como um modo a mesclagem. Além disso, definir o vetor de movimento de outro bloco como o valor de previsão do vetor de movimento do bloco atual pode ser definido como um modo de previsão de vetor de movimento.[159] The motion information of the current block may be derived from the motion information of another block. Here, another block may be an interprediction encoded/decoded block before the current block. Setting the motion information of the current block to be equal to the motion information of another block may be defined as a blending mode. Furthermore, setting the motion vector of another block as the prediction value of the motion vector of the current block may be defined as a motion vector prediction mode.

[160] A Figura 11 é um fluxograma que ilustra um processo de derivar informações de movimento de um bloco atual usando um modo de mesclagem.[160] Figure 11 is a flowchart illustrating a process of deriving motion information from a current block using a blending mode.

[161] Um candidato a mesclagem do bloco atual pode ser derivado (S1101). O candidato a mesclagem do bloco atual pode ser derivado de um bloco codificado/decodificado por interprevisão antes do bloco atual.[161] A merge candidate for the current block may be derived (S1101). The merge candidate for the current block may be derived from an interprediction encoded/decoded block before the current block.

[162] A Figura 12 é uma vista que mostra um exemplo de blocos candidatos usados para derivar um candidato a mesclagem.[162] Figure 12 is a view showing an example of candidate blocks used to derive a merge candidate.

[163] Os blocos candidatos podem incluir pelo menos um dentre os blocos vizinhos, incluindo uma amostra adjacente ao bloco atual ou blocos não vizinhos, incluindo uma amostra não adjacente ao bloco atual. Doravante, as amostras para determinar os blocos candidatos são definidas como amostras de referência. Além disso, uma amostra de referência adjacente ao bloco atual é denominada como uma amostra de referência vizinha, e uma amostra de referência não adjacente ao bloco atual é denominada como uma amostra de referência não vizinha.[163] Candidate blocks may include at least one of neighboring blocks, including a sample adjacent to the current block, or non-neighboring blocks, including a sample not adjacent to the current block. Hereinafter, samples for determining candidate blocks are defined as reference samples. In addition, a reference sample adjacent to the current block is referred to as a neighboring reference sample, and a reference sample not adjacent to the current block is referred to as a non-neighboring reference sample.

[164] A amostra de referência vizinha pode ser incluída em uma coluna vizinha da coluna mais à esquerda do bloco atual ou uma linha vizinha da linha mais alta do bloco atual. Por exemplo, quando as coordenadas da amostra superior esquerda do bloco atual são (0, 0), pelo menos uma entre um bloco incluindo uma amostra de referência na posição de (-1, H-1), um bloco incluindo uma amostra de referência na posição de (W-1, -1), um bloco incluindo uma amostra de referência na posição de (W, -1), um bloco incluindo uma amostra de referência na posição de (-1, H), e um bloco incluindo uma amostra de referência na posição de (-1, -1) pode ser usado como um bloco candidato. Com referência ao desenho, blocos vizinhos de índice 0 a 4 podem ser usados como blocos candidatos.[164] The neighboring reference sample may be included in a neighboring column of the leftmost column of the current block or a neighboring row of the topmost row of the current block. For example, when the coordinates of the top left sample of the current block are (0, 0), at least one of a block including a reference sample at the position of (-1, H-1), a block including a reference sample at the position of (W-1, -1), a block including a reference sample at the position of (W, -1), a block including a reference sample at the position of (-1, H), and a block including a reference sample at the position of (-1, -1) may be used as a candidate block. With reference to the drawing, neighboring blocks of index 0 to 4 may be used as candidate blocks.

[165] A amostra de referência não vizinha representa uma amostra da qual pelo menos um dentre uma distância do eixo geométrico x e uma distância do eixo geométrico y de uma amostra de referência adjacente ao bloco atual tem um valor predefinido. Por exemplo, pelo menos um dentre um bloco incluindo uma amostra de referência da qual a distância do eixo geométrico x da amostra de referência esquerda é um valor predefinido, um bloco incluindo uma amostra não vizinha da qual a distância do eixo geométrico y da amostra de referência superior é um valor predefinido e um bloco incluindo uma amostra não vizinha da qual a distância do eixo geométrico x e a distância do eixo geométrico y da amostra de referência superior esquerda são valores predefinidos pode ser usado como um bloco candidato. Os valores predefinidos podem ser um número natural, como 4, 8, 12, 16 ou semelhantes. Com referência ao desenho, pelo menos um dentre os blocos do índice 5 a 26 pode ser usado como um bloco candidato.[165] The non-neighboring reference sample represents a sample of which at least one of an x-axis distance and a y-axis distance from a reference sample adjacent to the current block has a predefined value. For example, at least one of a block including a reference sample of which the x-axis distance from the left reference sample is a predefined value, a block including a non-neighboring sample of which the y-axis distance from the top reference sample is a predefined value, and a block including a non-neighboring sample of which the x-axis distance and the y-axis distance from the top left reference sample are predefined values can be used as a candidate block. The predefined values can be a natural number such as 4, 8, 12, 16, or the like. Referring to the drawing, at least one of the blocks of index 5 to 26 can be used as a candidate block.

[166] Uma amostra não posicionada na mesma linha vertical, linha horizontal ou linha diagonal que a amostra de referência vizinha pode ser definida como uma amostra de referência não vizinha.[166] A sample not positioned on the same vertical line, horizontal line, or diagonal line as the neighboring reference sample may be defined as a non-neighboring reference sample.

[167] A Figura 13 é uma vista que mostra posições de amostras de referência.[167] Figure 13 is a view showing reference sample positions.

[168] Como mostrado no exemplo da Figura 13, as coordenadas x das amostras de referência não vizinhas superiores podem ser definidas para serem diferentes das coordenadas x das amostras de referência vizinhas superiores. Por exemplo, quando a posição da amostra de referência vizinha da parte superior é (W-1, -1), a posição de uma amostra de referência não vizinha da parte superior separada tanto quanto N da amostra de referência de vizinhança superior no eixo geométrico y pode ser definido como ((W/2) -1, -1-N), e a posição de uma amostra de referência superior não vizinha separada tanto quanto 2N da amostra de referência vizinha no eixo geométrico y pode ser definida como (0 , -1-2N). Ou seja, a posição de uma amostra de referência não adjacente pode ser determinada com base na posição de uma amostra de referência adjacente e uma distância da amostra de referência adjacente.[168] As shown in the example of Figure 13, the x-coordinates of the top non-neighboring reference samples can be set to be different from the x-coordinates of the top neighboring reference samples. For example, when the position of the top neighboring reference sample is (W-1, -1), the position of a top non-neighboring reference sample separated as much as N from the top neighboring reference sample on the y-axis can be set to ((W/2)-1, -1-N), and the position of a top non-neighboring reference sample separated as much as 2N from the neighboring reference sample on the y-axis can be set to (0, -1-2N). That is, the position of a non-adjacent reference sample can be determined based on the position of an adjacent reference sample and a distance from the adjacent reference sample.

[169] Em seguida, um bloco candidato incluindo uma amostra de referência vizinha entre os blocos candidatos é denominado como um bloco vizinho, e um bloco incluindo uma amostra de referência não vizinha é denominado como um bloco não vizinho.[169] Then, a candidate block including a neighboring reference sample among the candidate blocks is termed as a neighboring block, and a block including a non-neighboring reference sample is termed as a non-neighboring block.

[170] Quando a distância entre o bloco atual e o bloco candidato é maior ou igual a um valor limítrofe, o bloco candidato pode ser definido como indisponível como um candidato a mesclagem. O valor limítrofe pode ser determinado com base no tamanho da unidade de árvore de codificação. Por exemplo, o valor limítrofe pode ser definido para a altura (ctu_height) da unidade de árvore de codificação ou um valor obtido pela adição ou subtração de um deslocamento para ou da altura (por exemplo, ctu_height ± N) da unidade de árvore de codificação. O deslocamento N é um valor predefinido no codificador e no decodificador e pode ser definido como 4, 8, 16, 32 ou ctu_height.[170] When the distance between the current block and the candidate block is greater than or equal to a threshold value, the candidate block may be set as unavailable as a merge candidate. The threshold value may be determined based on the size of the coding tree unit. For example, the threshold value may be set to the height (ctu_height) of the coding tree unit or a value obtained by adding or subtracting an offset to or from the height (e.g., ctu_height ± N) of the coding tree unit. The offset N is a predefined value in the encoder and decoder and may be set to 4, 8, 16, 32, or ctu_height.

[171] Quando a diferença entre a coordenada do eixo geométrico y do bloco atual e a coordenada do eixo geométrico y de uma amostra incluída em um bloco candidato é maior do que o valor limítrofe, o bloco candidato pode ser determinado como indisponível como um candidato a mesclagem.[171] When the difference between the y-axis coordinate of the current block and the y-axis coordinate of a sample included in a candidate block is greater than the threshold value, the candidate block may be determined to be unavailable as a merge candidate.

[172] Alternativamente, um bloco candidato que não pertence à mesma unidade de árvore de codificação que o bloco atual pode ser definido como indisponível como um candidato a mesclagem. Por exemplo, quando uma amostra de referência se desvia do limite superior de uma unidade de árvore de codificação à qual o bloco atual pertence, um bloco candidato incluindo a amostra de referência pode ser definido como indisponível como um candidato a mesclagem.[172] Alternatively, a candidate block that does not belong to the same cipher tree unit as the current block may be set to unavailable as a merge candidate. For example, when a reference sample deviates from the upper bound of a cipher tree unit to which the current block belongs, a candidate block including the reference sample may be set to unavailable as a merge candidate.

[173] Quando o limite superior do bloco atual é adjacente ao limite superior da unidade de árvore de codificação, uma pluralidade de blocos candidatos é determinada como indisponível como um candidato a mesclagem e, portanto, a eficiência de codificação/decodificação do bloco atual pode diminuir. Para resolver este problema, os blocos candidatos podem ser configurados de modo que o número de blocos candidatos posicionados no lado esquerdo do bloco atual seja maior do que o número de blocos candidatos posicionados na parte superior do bloco atual.[173] When the upper boundary of the current block is adjacent to the upper boundary of the cipher tree unit, a plurality of candidate blocks are determined to be unavailable as a merge candidate, and therefore the encoding/decoding efficiency of the current block may decrease. To solve this problem, the candidate blocks may be configured so that the number of candidate blocks positioned on the left side of the current block is greater than the number of candidate blocks positioned on the top of the current block.

[174] A Figura 14 é uma vista que mostra um exemplo de blocos candidatos usados para derivar um candidato a mesclagem.[174] Figure 14 is a view showing an example of candidate blocks used to derive a merge candidate.

[175] Como mostrado no exemplo de Figura 14, os blocos superiores pertencentes às colunas de bloco N superiores do bloco atual e os blocos do lado esquerdo pertencentes a M colunas de bloco do lado esquerdo do bloco atual podem ser definidos como blocos candidatos. Neste ponto, o número de blocos candidatos do lado esquerdo pode ser definido para ser maior do que o número de blocos candidatos superiores, definindo M para ser maior do que N.[175] As shown in the example of Figure 14, the top blocks belonging to the top N block columns of the current block and the left-side blocks belonging to M left-side block columns of the current block can be set as candidate blocks. At this point, the number of left-side candidate blocks can be set to be greater than the number of top candidate blocks by setting M to be greater than N.

[176] Por exemplo, a diferença entre a coordenada do eixo geométrico y da amostra de referência no bloco atual e a coordenada do eixo geométrico y do bloco superior que pode ser usada como um bloco candidato pode ser definida para não exceder N vezes do altura do bloco atual. Além disso, a diferença entre a coordenada do eixo geométrico x da amostra de referência no bloco atual e a coordenada do eixo geométrico x do bloco do lado esquerdo que pode ser usada como um bloco candidato pode ser definida para não exceder M vezes da largura do bloco atual.[176] For example, the difference between the y-axis coordinate of the reference sample in the current block and the y-axis coordinate of the top block that can be used as a candidate block can be set to not exceed N times the height of the current block. Furthermore, the difference between the x-axis coordinate of the reference sample in the current block and the x-axis coordinate of the left-hand block that can be used as a candidate block can be set to not exceed M times the width of the current block.

[177] Por exemplo, no exemplo mostrado na Figura 14, é mostrado que os blocos pertencentes às duas colunas de bloco superiores do bloco atual e os blocos pertencentes às cinco colunas de bloco esquerdas do bloco atual são definidos como blocos candidatos.[177] For example, in the example shown in Figure 14, it is shown that the blocks belonging to the top two block columns of the current block and the blocks belonging to the left five block columns of the current block are defined as candidate blocks.

[178] Um candidato a mesclagem também pode ser derivado de um bloco vizinho temporariamente incluído em uma imagem diferente do bloco atual. Por exemplo, um candidato a mesclagem pode ser derivado de um bloco colocado incluído em uma imagem colocada.[178] A merge candidate can also be derived from a neighboring block temporarily included in a different image than the current block. For example, a merge candidate can be derived from a placed block included in a placed image.

[179] As informações de movimento do candidato a mesclagem podem ser definidas para serem iguais às informações de movimento do bloco candidato. Por exemplo, pelo menos um dentre um vetor de movimento, um índice de imagem de referência, uma direção de previsão e um índice de peso bidirecional do bloco candidato pode ser definido como informações de movimento do candidato a mesclagem.[179] The motion information of the merge candidate may be set to be the same as the motion information of the candidate block. For example, at least one of a motion vector, a reference image index, a prediction direction, and a bidirectional weight index of the candidate block may be set as the motion information of the merge candidate.

[180] Uma lista de candidatos a mesclagem incluindo candidatos a mesclagem pode ser gerada (S1102). Os candidatos a mesclagem podem ser divididos em um candidato a mesclagem adjacente derivado de um bloco vizinho adjacente ao bloco atual e um candidato a mesclagem não adjacente derivado de um bloco não vizinho.[180] A list of merge candidates including merge candidates may be generated (S1102). The merge candidates may be divided into an adjacent merge candidate derived from a neighboring block adjacent to the current block and a non-adjacent merge candidate derived from a non-neighboring block.

[181] Índices dos candidatos a mesclagem na lista de candidatos a mesclagem podem ser atribuídos em uma ordem predeterminada. Por exemplo, um índice atribuído a um candidato a mesclagem adjacente pode ter um valor menor do que um índice atribuído a um candidato a mesclagem não adjacente. Alternativamente, um índice pode ser atribuído a cada um dos candidatos a mesclagem com base no índice de cada bloco mostrado na Figura 12 ou 14.[181] Indexes of the merge candidates in the merge candidate list may be assigned in a predetermined order. For example, an index assigned to an adjacent merge candidate may have a lower value than an index assigned to a non-adjacent merge candidate. Alternatively, an index may be assigned to each of the merge candidates based on the index of each block shown in Figure 12 or 14.

[182] Quando uma pluralidade de candidatos de mesclagem é incluída na lista de candidatos a mesclagem, pelo menos um dentre a pluralidade de candidatos a mesclagem pode ser selecionado (S1103). Neste ponto, as informações que indicam se as informações de movimento do bloco atual são derivadas de um candidato a mesclagem adjacente podem ser sinalizadas por meio de um fluxo de bits. As informações podem ser um sinalizador de 1 bit. Por exemplo, um elemento de sintaxe isAdjancentMergeFlag indicando se as informações de movimento do bloco atual são derivadas de um candidato a mesclagem adjacente pode ser sinalizado por meio de um fluxo de bits. Quando o valor do elemento de sintaxe isAdjancentMergeFlag é 1, as informações de movimento do bloco atual podem ser derivadas com base no candidato a mesclagem adjacente. Por outro lado, quando o valor do elemento de sintaxe isAdjancentMergeFlag é 0, as informações de movimento do bloco atual podem ser derivadas com base em um candidato a mesclagem não adjacente.[182] When a plurality of merge candidates are included in the merge candidate list, at least one of the plurality of merge candidates may be selected (S1103). At this point, information indicating whether the motion information of the current block is derived from an adjacent merge candidate may be signaled via a bit stream. The information may be a 1-bit flag. For example, a syntax element isAdjancentMergeFlag indicating whether the motion information of the current block is derived from an adjacent merge candidate may be signaled via a bit stream. When the value of the syntax element isAdjancentMergeFlag is 1, the motion information of the current block may be derived based on the adjacent merge candidate. Conversely, when the value of the syntax element isAdjancentMergeFlag is 0, the motion information of the current block may be derived based on a non-adjacent merge candidate.

[183] As informações para especificar qualquer um dentre uma pluralidade de candidatos a mesclagem podem ser sinalizadas por meio de um fluxo de bits. Por exemplo, as informações que indicam um índice de qualquer um dos candidatos a mesclagem incluídos na lista de candidatos a mesclagem podem ser sinalizadas por meio de um fluxo de bits.[183] Information for specifying any of a plurality of merge candidates may be signaled via a bit stream. For example, information indicating an index of any of the merge candidates included in the list of merge candidates may be signaled via a bit stream.

[184] Quando isAdjacentMergeflag é 1, o elemento de sintaxe merge_idx especificando qualquer um dentre os candidatos de mesclagem adjacentes pode ser sinalizado. O valor máximo do elemento de sintaxe merge_idx pode ser definido como um valor obtido subtraindo 1 do número de candidatos de mesclagem adjacentes.[184] When isAdjacentMergeflag is 1, the merge_idx syntax element specifying any of the adjacent merge candidates may be flagged. The maximum value of the merge_idx syntax element may be set to a value obtained by subtracting 1 from the number of adjacent merge candidates.

[185] Quando isAdjacentMergeflag é 0, o elemento de sintaxe NA_merge_idx especificando qualquer um dentre os candidatos a mesclagem não adjacentes pode ser sinalizado. O elemento de sintaxe NA_merge_idx representa um valor obtido subtraindo o número de candidatos de mesclagem adjacentes do índice do candidato a mesclagem não adjacente. O decodificador pode selecionar um candidato a mesclagem não adjacente adicionando o número de candidatos a mesclagem adjacentes a um índice especificado por NA_merge_idx.[185] When isAdjacentMergeflag is 0, the NA_merge_idx syntax element specifying any of the non-adjacent merge candidates may be flagged. The NA_merge_idx syntax element represents a value obtained by subtracting the number of adjacent merge candidates from the index of the non-adjacent merge candidate. The decoder may select a non-adjacent merge candidate by adding the number of adjacent merge candidates to an index specified by NA_merge_idx.

[186] Quando o número de candidatos a mesclagem incluídos na lista de candidatos a mesclagem é menor do que um valor limítrofe, o candidato a mesclagem incluído na lista de informações de movimento inter-região pode ser adicionado à lista de candidatos a mesclagem. Aqui, o valor limítrofe pode ser o número máximo de candidatos a mesclagem cuja lista de candidatos a mesclagem pode incluir ou um valor obtido subtraindo um deslocamento do número máximo de candidatos a mesclagem. O deslocamento pode ser um número natural, como 1, 2 ou semelhante. A lista de informações de movimento inter- região pode incluir um candidato a mesclagem derivado com base em um bloco codificado/decodificado antes do bloco atual.[186] When the number of merge candidates included in the merge candidate list is less than a threshold value, the merge candidate included in the inter-region movement information list may be added to the merge candidate list. Here, the threshold value may be the maximum number of merge candidates that the merge candidate list may include, or a value obtained by subtracting an offset from the maximum number of merge candidates. The offset may be a natural number such as 1, 2, or the like. The inter-region movement information list may include a merge candidate derived based on a block encoded/decoded before the current block.

[187] A lista de informações de movimento inter- região inclui um candidato a mesclagem derivado de um bloco codificado/decodificado com base na interprevisão na imagem atual. Por exemplo, as informações de movimento de um candidato a mesclagem incluído na lista de informações de movimento inter-região podem ser definidas para serem iguais às informações de movimento de um bloco codificado/decodificado com base na interprevisão. Aqui, as informações de movimento podem incluir pelo menos um dentre um vetor de movimento, um índice de imagem de referência, uma direção de previsão e um índice de peso bidirecional.[187] The inter-region motion information list includes a merge candidate derived from an interprediction-based encoded/decoded block in the current picture. For example, the motion information of a merge candidate included in the inter-region motion information list may be set to be the same as the motion information of an interprediction-based encoded/decoded block. Here, the motion information may include at least one of a motion vector, a reference picture index, a prediction direction, and a bidirectional weight index.

[188] Por Conveniência De Explicação, Um Candidato A Mesclagem Incluído Na Lista De Informações De Movimento Inter-região Será Denominado Como Um Candidato A Mesclagem Inter-região.[188] For Convenience of Explanation, a Merge Candidate Included in the Inter-Region Movement Information List Will Be Referred to as an Inter-Region Merge Candidate.

[189] O número máximo de candidatos a mesclagem cuja lista de informações de movimento inter-região pode incluir, pode ser predefinido por um codificador e um decodificador. Por exemplo, o número máximo de candidatos a mesclagem cuja lista de informações de movimento inter-região pode incluir, pode ser 1, 2, 3, 4, 5, 6, 7, 8 ou mais (por exemplo, 16).[189] The maximum number of merge candidates whose inter-region motion information list may include may be predefined by an encoder and a decoder. For example, the maximum number of merge candidates whose inter-region motion information list may include may be 1, 2, 3, 4, 5, 6, 7, 8, or more (e.g., 16).

[190] Alternativamente, as informações que indicam o número máximo de candidatos a mesclagem na lista de informações de movimento inter-região podem ser sinalizadas através de um fluxo de bits. As informações podem ser sinalizadas na sequência, imagem ou nível de fatia.[190] Alternatively, information indicating the maximum number of merge candidates in the inter-region motion information list may be signaled via a bit stream. The information may be signaled at the sequence, picture, or slice level.

[191] Alternativamente, o número máximo de candidatos a mesclagem da lista de informações de movimento inter-região pode ser determinado de acordo com o tamanho de uma imagem, o tamanho de uma fatia ou o tamanho de uma unidade de árvore de codificação.[191] Alternatively, the maximum number of merge candidates from the inter-region motion information list may be determined according to the size of an image, the size of a slice, or the size of a coding tree unit.

[192] A lista de informações de movimento inter- região pode ser inicializada pela unidade de imagem, fatia, bloco, tijolo, unidade de árvore de codificação ou linha de unidade de árvore de codificação (linha ou coluna). Por exemplo, quando uma fatia é inicializada, a lista de informações de movimento inter-região também é inicializada e a lista de informações de movimento inter-região pode não incluir qualquer candidato a mesclagem.[192] The inter-region motion information list may be initialized by the image unit, slice, block, brick, coding tree unit, or coding tree unit row (row or column). For example, when a slice is initialized, the inter-region motion information list is also initialized, and the inter-region motion information list may not include any merge candidates.

[193] Alternativamente, as informações que indicam se deve ou não inicializar a lista de informações de movimento inter-região podem ser sinalizadas através de um fluxo de bits. As informações podem ser sinalizadas no nível de fatia, bloco, tijolo ou bloco. Até que as informações indiquem para inicializar a lista de informações de movimento inter-região, uma lista de informações de movimento inter- região configurada anteriormente pode ser usada.[193] Alternatively, information indicating whether or not to initialize the inter-region motion information list may be signaled via a bit stream. The information may be signaled at the slice, block, brick, or chunk level. Until the information indicates to initialize the inter-region motion information list, a previously configured inter-region motion information list may be used.

[194] Alternativamente, as informações sobre o candidato a mesclagem inter-região inicial podem ser sinalizadas através de um conjunto de parâmetros de imagem ou um cabeçalho de fatia. Embora a fatia seja inicializada, a lista de informações de movimento inter-região pode incluir o candidato a mesclagem inter-região inicial. Consequentemente, um candidato a mesclagem inter-região pode ser usado para um bloco que é o primeiro alvo de codificação/decodificação na fatia.[194] Alternatively, information about the initial inter-region merge candidate may be signaled via a set of image parameters or a slice header. While the slice is initialized, the list of inter-region motion information may include the initial inter-region merge candidate. Consequently, an inter-region merge candidate may be used for a block that is the first encoding/decoding target in the slice.

[195] Os blocos são codificados/decodificados de acordo com uma ordem de codificação/decodificação, e os blocos codificados/decodificados com base na interprevisão podem ser sequencialmente configurados como um candidato a mesclagem inter-região de acordo com uma ordem de codificação/decodificação.[195] Blocks are encoded/decoded according to an encoding/decoding order, and the blocks encoded/decoded based on interprediction can be sequentially configured as an inter-region merge candidate according to an encoding/decoding order.

[196] A Figura 15 é um fluxograma que ilustra um processo de atualização de uma lista de informações de movimento inter-região.[196] Figure 15 is a flowchart illustrating a process for updating an inter-region movement information list.

[197] Quando a interprevisão é realizada no bloco atual (S1501), um candidato a mesclagem inter-região pode ser derivado com base no bloco atual (S1502). As informações de movimento do candidato a mesclagem inter-região podem ser definidas para serem iguais às informações de movimento do bloco atual.[197] When interprediction is performed on the current block (S1501), an inter-region merge candidate may be derived based on the current block (S1502). The motion information of the inter-region merge candidate may be set to be the same as the motion information of the current block.

[198] Quando a lista de informações de movimento inter-região está vazia (S1503), o candidato a mesclagem inter- região derivado com base no bloco atual pode ser adicionado à lista de informações de movimento inter-região (S1504).[198] When the inter-region movement information list is empty (S1503), the inter-region merge candidate derived based on the current block may be added to the inter-region movement information list (S1504).

[199] Quando a lista de informações de movimento inter-região já inclui o candidato a mesclagem inter-região (S1503), uma verificação de redundância pode ser realizada nas informações de movimento do bloco atual (ou o candidato a mesclagem inter-região derivado com base no bloco atual) (S1705). A verificação de redundância é para determinar se as informações de movimento de um candidato a mesclagem inter- região anteriormente armazenado na lista de informações de movimento inter-região e as informações de movimento do bloco atual são as mesmas. A verificação de redundância pode ser realizada em todos os candidatos a mesclagem inter-região anteriormente armazenados na lista de informações de movimento inter-região. Alternativamente, a verificação de redundância pode ser realizada em candidatos de mesclagem inter-região com um índice maior que um valor limítrofe ou menor que um valor limítrofe entre os candidatos de mesclagem inter-região anteriormente armazenados na lista de informações de movimento inter-região.[199] When the inter-region movement information list already includes the inter-region merge candidate (S1503), a redundancy check may be performed on the movement information of the current block (or the inter-region merge candidate derived based on the current block) (S1705). The redundancy check is to determine whether the movement information of an inter-region merge candidate previously stored in the inter-region movement information list and the movement information of the current block are the same. The redundancy check may be performed on all inter-region merge candidates previously stored in the inter-region movement information list. Alternatively, the redundancy check may be performed on inter-region merge candidates with an index greater than a threshold value or less than a threshold value among the inter-region merge candidates previously stored in the inter-region movement information list.

[200] Quando um candidato a mesclagem de interprevisão tendo as mesmas informações de movimento que as informações de movimento do bloco atual não está incluído, o candidato a mesclagem inter-região derivado com base no bloco atual pode ser adicionado à lista de informações de movimento inter-região (S1508). Se os candidatos de mesclagem de inter- região são os mesmos pode ser determinado com base em se as informações de movimento (por exemplo, um vetor de movimento e/ou um índice de imagem de referência) dos candidatos de mesclagem de inter-região são as mesmas.[200] When an inter-prediction merge candidate having the same motion information as the motion information of the current block is not included, the inter-region merge candidate derived based on the current block may be added to the inter-region motion information list (S1508). Whether the inter-region merge candidates are the same may be determined based on whether the motion information (e.g., a motion vector and/or a reference image index) of the inter-region merge candidates is the same.

[201] Neste ponto, quando o número máximo de candidatos a mesclagem inter-região já estão armazenados na lista de informações de movimento inter-região (S1506), o candidato a mesclagem inter-região de previsão mais antigo é excluído (S1507) e o candidato a mesclagem inter-região derivado com base no bloco atual pode ser adicionado à lista de informações de movimento inter-região (S1508).[201] At this point, when the maximum number of inter-region merge candidates are already stored in the inter-region movement information list (S1506), the oldest prediction inter-region merge candidate is deleted (S1507) and the inter-region merge candidate derived based on the current block may be added to the inter-region movement information list (S1508).

[202] Cada um dos candidatos a mesclagem inter- região pode ser identificado por um índice. Quando um candidato a mesclagem inter-região derivado do bloco atual é adicionado à lista de informações de movimento inter-região, o índice mais baixo (por exemplo, 0) é atribuído ao candidato a mesclagem inter-região e os índices dos candidatos a mesclagem inter-região armazenados anteriormente podem ser aumentado em 1. Neste ponto, quando o número máximo de candidatos de mesclagem de inter-região já está armazenado na lista de informações de movimento inter-região, um candidato a mesclagem inter-região com o maior índice é removido.[202] Each of the inter-region merge candidates can be identified by an index. When an inter-region merge candidate derived from the current block is added to the inter-region move information list, the lowest index (e.g., 0) is assigned to the inter-region merge candidate, and the indices of previously stored inter-region merge candidates can be increased by 1. At this point, when the maximum number of inter-region merge candidates is already stored in the inter-region move information list, an inter-region merge candidate with the highest index is removed.

[203] Alternativamente, quando o candidato a mesclagem inter-região derivado do bloco atual é adicionado à lista de informações de movimento inter-região, o maior índice pode ser atribuído ao candidato a mesclagem inter-região. Por exemplo, quando o número de candidatos de mesclagem de inter- região anteriormente armazenados na lista de informações de movimento inter-região é menor do que um valor máximo, um índice com o mesmo valor que o número de candidatos de mesclagem de inter-região armazenados anteriormente pode ser atribuído ao candidato a mesclagem inter-região. Alternativamente, quando o número de candidatos de mesclagem de inter-região anteriormente armazenados na lista de informações de movimento inter-região é o mesmo que o valor máximo, um índice subtraindo 1 do valor máximo pode ser atribuído ao candidato a mesclagem inter-região. Além disso, um candidato a mesclagem inter-região com o menor índice é removido e os índices de candidatos a mesclagem inter-região armazenados anteriormente podem ser diminuídos em 1.[203] Alternatively, when the inter-region merge candidate derived from the current block is added to the inter-region movement information list, the largest index may be assigned to the inter-region merge candidate. For example, when the number of previously stored inter-region merge candidates in the inter-region movement information list is less than a maximum value, an index with the same value as the number of previously stored inter-region merge candidates may be assigned to the inter-region merge candidate. Alternatively, when the number of previously stored inter-region merge candidates in the inter-region movement information list is the same as the maximum value, an index subtracting 1 from the maximum value may be assigned to the inter-region merge candidate. Furthermore, an inter-region merge candidate with the smallest index is removed, and the indices of previously stored inter-region merge candidates may be decreased by 1.

[204] A Figura 16 é uma vista que mostra uma modalidade de atualização de uma lista de candidato a mesclagem inter-região.[204] Figure 16 is a view showing one embodiment of updating an inter-region merge candidate list.

[205] É assumido que, conforme o candidato a mesclagem inter-região derivado do bloco atual é adicionado à lista de candidatos a mesclagem inter-região, o maior índice é atribuído ao candidato a mesclagem inter-região. Além disso, assume-se que o número máximo de candidatos a mesclagem inter- região já está armazenado na lista de candidatos a mesclagem inter-região.[205] It is assumed that as the inter-region merge candidate derived from the current block is added to the inter-region merge candidate list, the highest index is assigned to the inter-region merge candidate. Furthermore, it is assumed that the maximum number of inter-region merge candidates is already stored in the inter-region merge candidate list.

[206] Quando o candidato a mesclagem inter- região HmvpCand [n + 1] derivado do bloco atual é adicionado à lista de candidatos a mesclagem inter-região HmvpCandList, o candidato a mesclagem inter-região HmvpCand [0] tendo o menor índice entre os candidatos de mesclagem inter-região armazenada anteriormente são excluídos e os índices dos candidatos de mesclagem inter-região restantes podem ser diminuídos em 1. Além disso, o índice do candidato a mesclagem inter-região HmvpCand [n + 1] derivado do bloco atual pode ser definido para um valor máximo (n no exemplo mostrado na Figura 18).[206] When the inter-region merge candidate HmvpCand[n+1] derived from the current block is added to the inter-region merge candidate list HmvpCandList, the inter-region merge candidate HmvpCand[0] having the smallest index among the previously stored inter-region merge candidates is deleted, and the indices of the remaining inter-region merge candidates may be decreased by 1. Furthermore, the index of the inter-region merge candidate HmvpCand[n+1] derived from the current block may be set to a maximum value (n in the example shown in Figure 18).

[207] Quando um candidato a mesclagem inter- região igual ao candidato a mesclagem inter-região derivado com base no bloco atual é anteriormente armazenado (S1705), o candidato a mesclagem inter-região derivado com base no bloco atual não pode ser adicionado à lista de informações de movimento inter-região (S1509).[207] When an inter-region merge candidate equal to the inter-region merge candidate derived based on the current block is previously stored (S1705), the inter-region merge candidate derived based on the current block cannot be added to the inter-region movement information list (S1509).

[208] Alternativamente, conforme o candidato a mesclagem inter-região derivado com base no bloco atual é adicionado à lista de informações de movimento inter-região, um candidato a mesclagem inter-região armazenado anteriormente que é o mesmo que o candidato a mesclagem inter-região pode ser removido. Nesse caso, é obtido um efeito igual ao da atualização recente do índice do candidato a mesclagem inter- região armazenado anteriormente.[208] Alternatively, as the inter-region merge candidate derived based on the current block is added to the inter-region movement information list, a previously stored inter-region merge candidate that is the same as the inter-region merge candidate may be removed. In this case, an effect equal to that of recently updating the index of the previously stored inter-region merge candidate is achieved.

[209] A Figura 17 é uma vista que mostra um exemplo em que um índice de um candidato a mesclagem inter- região armazenado anteriormente é atualizado.[209] Figure 17 is a view showing an example where an index of a previously stored inter-region merge candidate is updated.

[210] Quando o índice de um candidato a mesclagem de inter-região armazenado anteriormente mvCand que é o mesmo que o candidato a mesclagem inter-região mvCand derivado com base no bloco atual é hIdx, o candidato a mesclagem de inter- região armazenado anteriormente é excluído e os índices de candidatos de mesclagem de inter-região com um índice maior do que hIdx podem ser diminuídos em 1. Por exemplo, no exemplo mostrado na Figura17, é mostrado que HmvpCand [2] o mesmo que mvCand é excluído da lista de informações de movimento inter- região HvmpCandList, e os índices de HmvpCand [3] para HmvpCand [n] são diminuídos em 1.[210] When the index of a previously stored inter-region merge candidate mvCand that is the same as the inter-region merge candidate mvCand derived based on the current block is hIdx, the previously stored inter-region merge candidate is deleted, and the indices of inter-region merge candidates with an index greater than hIdx may be decremented by 1. For example, in the example shown in Figure17, it is shown that HmvpCand[2] the same as mvCand is deleted from the inter-region movement information list HvmpCandList, and the indices from HmvpCand[3] to HmvpCand[n] are decremented by 1.

[211] Além disso, o candidato a mesclagem inter- região mvCand derivado com base no bloco atual pode ser adicionado ao final da lista de informações de movimento inter- região.[211] Additionally, the inter-region merge candidate mvCand derived based on the current block may be added to the end of the inter-region move information list.

[212] Alternativamente, o índice atribuído ao candidato a mesclagem inter-região armazenado anteriormente que é o mesmo que o candidato a mesclagem inter-região derivado com base no bloco atual pode ser atualizado. Por exemplo, o índice do candidato a mesclagem inter-região armazenado anteriormente pode ser alterado para um valor mínimo ou máximo.[212] Alternatively, the index assigned to the previously stored inter-region merge candidate that is the same as the inter-region merge candidate derived based on the current block may be updated. For example, the index of the previously stored inter-region merge candidate may be changed to a minimum or maximum value.

[213] Pode ser configurado para não adicionar informações de movimento de blocos incluídos em uma área predeterminada para a lista de informações de movimento inter- região. Por exemplo, um candidato a mesclagem inter-região derivado com base nas informações de movimento de um bloco incluído na área de processamento de mesclagem não pode ser adicionado à lista de informações de movimento inter-região. Uma vez que uma ordem de codificação/decodificação não é definida para os blocos incluídos na área de processamento de mesclagem, é inadequado usar informações de movimento de qualquer um dentre os blocos para interprevisão de outro bloco. Por conseguinte, os candidatos a mesclagem inter-região derivados com base nos blocos incluídos na área de processamento de mesclagem não podem ser adicionados à lista de informações de movimento inter-região.[213] It can be configured not to add motion information of blocks included in a predetermined area to the inter-region motion information list. For example, an inter-region merge candidate derived based on the motion information of a block included in the merge processing area cannot be added to the inter-region motion information list. Since an encoding/decoding order is not defined for the blocks included in the merge processing area, it is inappropriate to use motion information of any one of the blocks for interprediction of another block. Therefore, inter-region merge candidates derived based on the blocks included in the merge processing area cannot be added to the inter-region motion information list.

[214] Quando a previsão de compensação de movimento é realizada pela unidade de sub-bloco, um candidato a mesclagem inter-região pode ser derivado com base nas informações de movimento de um sub-bloco representativo entre uma pluralidade de sub-blocos incluídos no bloco atual. Por exemplo, quando um candidato a mesclagem de sub-bloco é usado para o bloco atual, um candidato a mesclagem inter-região pode ser derivado com base nas informações de movimento de um sub- bloco representativo entre os sub-blocos.[214] When motion compensation prediction is performed by the sub-block unit, an inter-region merge candidate may be derived based on the motion information of a representative sub-block among a plurality of sub-blocks included in the current block. For example, when a sub-block merge candidate is used for the current block, an inter-region merge candidate may be derived based on the motion information of a representative sub-block among the sub-blocks.

[215] Os vetores de movimento dos sub-blocos podem ser derivados na seguinte ordem. Primeiro, qualquer um dentre os candidatos a mesclagem incluídos na lista de candidatos a mesclagem do bloco atual é selecionado e um vetor de deslocamento inicial (shVector) pode ser derivado com base no vetor de movimento do candidato a mesclagem selecionado. Em seguida, um sub-bloco de deslocamento, em que a posição da amostra de referência é (xColSb, yColSb), pode ser derivado conforme o vetor de deslocamento inicial é adicionado na posição (xSb, ySb) da amostra de referência (por exemplo, o canto superior esquerdo amostra ou a amostra no centro) de cada sub-bloco no bloco de codificação. A Equação 4 mostra uma equação para derivar um sub-bloco de deslocamento. [Equação 4] [215] The motion vectors of the sub-blocks can be derived in the following order. First, any one of the merge candidates included in the merge candidate list of the current block is selected, and an initial displacement vector (shVector) can be derived based on the motion vector of the selected merge candidate. Then, a displacement sub-block, where the position of the reference sample is (xColSb, yColSb), can be derived as the initial displacement vector is added at the position (xSb, ySb) of the reference sample (e.g., the top-left corner sample or the sample in the center) of each sub-block in the coding block. Equation 4 shows an equation for deriving a displacement sub-block. [Equation 4]

[216] Então, o vetor de movimento de um bloco colocado correspondendo à posição central do sub-bloco incluindo (xColSb, yColSb) pode ser definido como o vetor de movimento do sub-bloco incluindo (xSb, ySb).[216] Then, the motion vector of a placed block corresponding to the center position of the sub-block including (xColSb, yColSb) can be defined as the motion vector of the sub-block including (xSb, ySb).

[217] O sub-bloco representativo pode significar um sub-bloco incluindo a amostra superior esquerda ou a amostra no centro do bloco atual.[217] The representative sub-block may mean a sub-block including the top left sample or the sample in the center of the current block.

[218] A Figura 18 é uma vista que mostra a posição de um sub-bloco representativo.[218] Figure 18 is a view showing the position of a representative subblock.

[219] A Figura 18 (a) mostra um exemplo em que o sub-bloco posicionado no canto superior esquerdo do bloco atual é definido como o sub-bloco representativo, e a Figura 18 (b) mostra um exemplo em que o sub-bloco posicionado no centro do bloco atual é definido como o sub-bloco representativo. Quando a previsão de compensação de movimento é realizada por unidade de sub-bloco, um candidato a mesclagem inter-região do bloco atual pode ser derivado com base no vetor de movimento do sub- bloco, incluindo a amostra superior esquerda do bloco atual ou o sub-bloco incluindo a amostra no centro do bloco atual.[219] Figure 18(a) shows an example where the sub-block positioned at the top-left corner of the current block is defined as the representative sub-block, and Figure 18(b) shows an example where the sub-block positioned at the center of the current block is defined as the representative sub-block. When motion compensation prediction is performed per sub-block unit, an inter-region merging candidate of the current block can be derived based on the motion vector of the sub-block including the top-left sample of the current block or the sub-block including the sample at the center of the current block.

[220] Pode ser determinado se deve ou não usar o bloco atual como um candidato a mesclagem inter-região, com base no modo de interprevisão do bloco atual. Por exemplo, um bloco codificado/decodificado com base em um modelo de movimento afim pode ser definido como indisponível como um candidato a mesclagem inter-região. Por conseguinte, embora o bloco atual seja codificado/decodificado por interprevisão, quando o modo de interprevisão do bloco atual é o modo de previsão afim, a lista de informações de movimento de inter- região pode não ser atualizada com base no bloco atual.[220] It may be determined whether or not to use the current block as an inter-region merge candidate based on the inter-prediction mode of the current block. For example, a block encoded/decoded based on an affine motion model may be set as unavailable as an inter-region merge candidate. Therefore, although the current block is encoded/decoded by inter-prediction, when the inter-prediction mode of the current block is affine prediction mode, the inter-region motion information list may not be updated based on the current block.

[221] Alternativamente, o candidato a mesclagem inter-região pode ser derivado com base em pelo menos um vetor de sub-bloco entre os sub-blocos incluídos no bloco codificado/decodificado com base no modelo de movimento afim. Por exemplo, o candidato a mesclagem inter-região pode ser derivado usando um sub-bloco posicionado no canto superior esquerdo, um sub-bloco posicionado no centro ou um sub-bloco posicionado no lado superior direito do bloco atual. Alternativamente, um valor médio de vetores de sub-bloco de uma pluralidade de sub-blocos pode ser definido como o vetor de movimento do candidato a mesclagem inter-região.[221] Alternatively, the inter-region merge candidate may be derived based on at least one sub-block vector among the sub-blocks included in the encoded/decoded block based on the affine motion model. For example, the inter-region merge candidate may be derived using a sub-block positioned in the top left corner, a sub-block positioned in the center, or a sub-block positioned in the top right side of the current block. Alternatively, an average value of sub-block vectors of a plurality of sub-blocks may be defined as the motion vector of the inter-region merge candidate.

[222] Alternativamente, o candidato a mesclagem inter-região pode ser derivado com base em um valor médio de vetores de sementes afins do bloco codificado/decodificado com base no modelo de movimento afim. Por exemplo, uma média de pelo menos um dentre o primeiro vetor de semente afim, o segundo vetor de semente afim e o terceiro vetor de semente afim do bloco atual pode ser definido como o vetor de movimento do candidato a mesclagem inter-região.[222] Alternatively, the inter-region merge candidate may be derived based on an average value of affine seed vectors of the encoded/decoded block based on the affine motion model. For example, an average of at least one of the first affine seed vector, the second affine seed vector, and the third affine seed vector of the current block may be defined as the motion vector of the inter-region merge candidate.

[223] Alternativamente, uma lista de informações de movimento inter-região pode ser configurada para cada modo de interprevisão. Por exemplo, pelo menos uma entre uma lista de informações de movimento inter-região para um bloco codificado/decodificado por cópia intrabloco, uma lista de informações de movimento inter-região para um bloco codificado/decodificado com base em um modelo de movimento translacional e uma lista de informações de movimento inter- região para um bloco codificado/decodificado com base em um modelo de movimento afim pode ser definida. De acordo com o modo de interprevisão do bloco atual, qualquer uma entre uma pluralidade de listas de informações de movimento inter-região pode ser selecionada.[223] Alternatively, a list of inter-region motion information may be configured for each inter-prediction mode. For example, at least one of a list of inter-region motion information for a block encoded/decoded by intra-block copy, a list of inter-region motion information for a block encoded/decoded based on a translational motion model, and a list of inter-region motion information for a block encoded/decoded based on an affine motion model may be defined. According to the inter-prediction mode of the current block, any one of a plurality of lists of inter-region motion information may be selected.

[224] A Figura 19 é uma vista que mostra um exemplo em que uma lista de informações de movimento inter- região é gerada para cada modo de interprevisão.[224] Figure 19 is a view showing an example where a list of inter-region motion information is generated for each interprediction mode.

[225] Quando um bloco é codificado/decodificado com base em um modelo de movimento não afim, um candidato a mesclagem inter-região mvCand derivado com base no bloco pode ser adicionado a uma lista de informações de movimento não afim inter-região HmvpCandList. Por outro lado, quando um bloco é codificado/decodificado com base em um modelo de movimento afim, um candidato a mesclagem inter-região mvAfCand derivado com base no bloco pode ser adicionado a uma lista de informações de movimento afim inter-região HmvpAfCandList.[225] When a block is encoded/decoded based on a non-affine motion model, an inter-region merge candidate mvCand derived based on the block may be added to an inter-region non-affine motion information list HmvpCandList. Conversely, when a block is encoded/decoded based on an affine motion model, an inter-region merge candidate mvAfCand derived based on the block may be added to an inter-region affine motion information list HmvpAfCandList.

[226] Vetores de sementes afins de um bloco codificado/decodificado com base no modelo de movimento afim podem ser armazenados em um candidato a mesclagem inter-região derivado do bloco. Por conseguinte, o candidato a mesclagem inter-região pode ser usado como um candidato a mesclagem para derivar o vetor de semente afim do bloco atual.[226] Affine seed vectors of a block encoded/decoded based on the affine motion model may be stored in an inter-region merge candidate derived from the block. Therefore, the inter-region merge candidate may be used as a merge candidate to derive the affine seed vector of the current block.

[227] Além da lista de informações de movimento inter-região descrita acima, uma lista de informações de movimento inter-região adicional pode ser definida. Além da lista de informações de movimento inter-região descrita acima (doravante, denominada como uma primeira lista de informações de movimento inter-região), uma lista de informações de movimento de longo prazo (doravante, denominada como uma segunda lista de informações de movimento inter-região) pode ser definida. Aqui, a lista de informações de movimento de longo prazo inclui candidatos de mesclagem de longo prazo.[227] In addition to the above-described inter-region movement information list, an additional inter-region movement information list may be defined. In addition to the above-described inter-region movement information list (hereinafter, referred to as a first inter-region movement information list), a long-term movement information list (hereinafter, referred to as a second inter-region movement information list) may be defined. Here, the long-term movement information list includes long-term merge candidates.

[228] Quando a primeira lista de informações de movimento inter-região e a segunda lista de informações de movimento inter-região estão vazias, primeiro, os candidatos de mesclagem inter-região podem ser adicionados à segunda lista de informações de movimento inter-região. Somente após o número de candidatos de mesclagem inter-região disponíveis atingir o número máximo na segunda lista de informações de movimento inter-região, os candidatos de mesclagem inter-região podem ser adicionados à primeira lista de informações de movimento inter-região.[228] When both the first inter-region movement information list and the second inter-region movement information list are empty, first, inter-region merge candidates can be added to the second inter-region movement information list. Only after the number of available inter-region merge candidates reaches the maximum number in the second inter-region movement information list, inter-region merge candidates can be added to the first inter-region movement information list.

[229] Alternativamente, um candidato a mesclagem de inter-região pode ser adicionado à segunda lista de informações de movimento inter-região e à primeira lista de informações de movimento inter-região.[229] Alternatively, an inter-region merge candidate may be added to both the second inter-region movement information list and the first inter-region movement information list.

[230] Neste ponto, a segunda lista de informações de movimento inter-região, cuja configuração foi concluída, pode não ser mais atualizada. Alternativamente, quando a região decodificada é maior ou igual a uma proporção predeterminada da fatia, a segunda lista de informações de movimento inter-região pode ser atualizada. Alternativamente, a segunda lista de informações de movimento inter-região pode ser atualizada para cada N linhas de unidade de árvore de codificação.[230] At this point, the second inter-region motion information list, whose setup has been completed, may no longer be updated. Alternatively, when the decoded region is greater than or equal to a predetermined proportion of the slice, the second inter-region motion information list may be updated. Alternatively, the second inter-region motion information list may be updated for every N coding tree unit lines.

[231] Por outro lado, a primeira lista de informações de movimento inter-região pode ser atualizada sempre que um bloco codificado/decodificado por interprevisão é gerado. No entanto, pode ser configurado para não usar o candidato a mesclagem inter-região adicionado à segunda lista de informações de movimento inter-região, para atualizar a primeira lista de informações de movimento inter-região.[231] On the other hand, the first inter-region motion information list may be updated whenever an inter-prediction encoded/decoded block is generated. However, it may be configured not to use the inter-region merge candidate added to the second inter-region motion information list to update the first inter-region motion information list.

[232] As informações para selecionar qualquer um dentre a primeira lista de informações de movimento inter- região e a segunda lista de informações de movimento inter- região podem ser sinalizadas através de um fluxo de bits. Quando o número de candidatos a mesclagem incluídos na lista de candidatos a mesclagem for menor do que um valor limítrofe, os candidatos a mesclagem incluídos na lista de informações de movimento inter-região indicada pelas informações podem ser adicionados à lista de candidatos a mesclagem.[232] Information for selecting any one of the first inter-region movement information list and the second inter-region movement information list may be signaled via a bit stream. When the number of merge candidates included in the merge candidate list is less than a threshold value, merge candidates included in the inter-region movement information list indicated by the information may be added to the merge candidate list.

[233] Alternativamente, uma lista de informações de movimento inter-região pode ser selecionada com base no tamanho e forma do bloco atual, modo de interprevisão, se a previsão bidirecional está habilitada, se o refinamento do vetor de movimento está habilitado ou se o particionamento triangular está habilitado.[233] Alternatively, a list of inter-region motion information may be selected based on the current block size and shape, interprediction mode, whether bidirectional prediction is enabled, whether motion vector refinement is enabled, or whether triangular partitioning is enabled.

[234] Alternativamente, embora um candidato a mesclagem inter-região incluído na primeira lista de informações de movimento inter-região seja adicionado, quando o número de candidatos de mesclagem incluídos na lista de candidatos de mesclagem for menor do que o número máximo de mesclagens, os candidatos de mesclagem inter-região incluídos na segunda lista de informações de movimento inter-região pode ser adicionada à lista de candidato a mesclagem.[234] Alternatively, although an inter-region merge candidate included in the first inter-region movement information list is added, when the number of merge candidates included in the merge candidate list is less than the maximum number of merges, the inter-region merge candidates included in the second inter-region movement information list may be added to the merge candidate list.

[235] A Figura 20 é uma vista que mostra um exemplo em que um candidato a mesclagem inter-região incluído em uma lista de informações de movimento a longo prazo é adicionado a uma lista de candidato a mesclagem.[235] Figure 20 is a view showing an example where an inter-region merge candidate included in a long-term motion information list is added to a merge candidate list.

[236] Quando o número de candidatos de mesclagem incluído na lista de candidato a mesclagem é menor do que o número máximo, os candidatos a mesclagem inter-região incluídos na primeira lista de informações de movimento inter- região HmvpCandList podem ser adicionados à lista de candidatos a mesclagem. Quando o número de candidatos de mesclagem incluídos na lista de candidatos de mesclagem for menor do que o número máximo, embora os candidatos de mesclagem inter-região incluídos na primeira lista de informações de movimento inter- região sejam adicionados à lista de candidatos de mesclagem, os candidatos de mesclagem inter-região incluídos na lista de informações de movimento de longo prazo HmvpLTCandList pode ser adicionada à lista de candidatos de mesclagem.[236] When the number of merge candidates included in the merge candidate list is less than the maximum number, the inter-region merge candidates included in the first inter-region movement information list HmvpCandList may be added to the merge candidate list. When the number of merge candidates included in the merge candidate list is less than the maximum number, although the inter-region merge candidates included in the first inter-region movement information list are added to the merge candidate list, the inter-region merge candidates included in the long-term movement information list HmvpLTCandList may be added to the merge candidate list.

[237] O candidato a mesclagem inter-região pode ser configurado para incluir informações adicionais, além de informações de movimento. Por exemplo, para o candidato a mesclagem inter-região, um tamanho, uma forma ou informações de particionamento de um bloco podem ser armazenados adicionalmente. Quando a lista de candidatos de mesclagem do bloco atual é construída, apenas os candidatos de mesclagem de inter-região tendo um tamanho, uma forma ou informações de particionamento iguais ou semelhantes àquelas do bloco atual são usados entre os candidatos de mesclagem de inter-região, ou candidatos a mesclagem de inter-região com tamanho, forma ou informações de particionamento iguais ou semelhantes aos do bloco atual podem ser adicionados à lista de candidatos a mesclagem em primeiro lugar.[237] The inter-region merge candidate may be configured to include additional information in addition to movement information. For example, for the inter-region merge candidate, a size, shape, or partitioning information of a block may be additionally stored. When the merge candidate list of the current block is constructed, only inter-region merge candidates having a size, shape, or partitioning information equal to or similar to that of the current block are used among the inter-region merge candidates, or inter-region merge candidates having a size, shape, or partitioning information equal to or similar to that of the current block may be added to the merge candidate list first.

[238] Alternativamente, uma lista de informações de movimento inter-região pode ser gerada para cada uma das informações de tamanho, forma ou particionamento de um bloco. Entre a pluralidade de listas de informações de movimento inter-região, uma lista de candidatos de mesclagem do bloco atual pode ser gerada usando uma lista de informações de movimento inter-região correspondente à forma, tamanho ou informação de particionamento do bloco atual.[238] Alternatively, a list of inter-region movement information may be generated for each of the size, shape, or partitioning information of a block. Among the plurality of lists of inter-region movement information, a list of merge candidates of the current block may be generated using a list of inter-region movement information corresponding to the shape, size, or partitioning information of the current block.

[239] Quando o número de candidatos de mesclagem incluídos na lista de candidatos de mesclagem do bloco atual é menor do que o valor limítrofe, os candidatos de mesclagem inter-região incluídos na lista de informações de movimento inter-região podem ser adicionados à lista de candidatos de mesclagem. O processo de adição é executado em ordem crescente ou decrescente com base no índice. Por exemplo, um candidato a mesclagem inter-região com o maior índice pode ser adicionado primeiro à lista de candidatos a mesclagem.[239] When the number of merge candidates included in the current block's merge candidate list is less than the threshold value, inter-region merge candidates included in the inter-region movement information list may be added to the merge candidate list. The addition process is performed in ascending or descending order based on the index. For example, an inter-region merge candidate with the largest index may be added to the merge candidate list first.

[240] Quando for desejado adicionar um candidato a mesclagem inter-região incluído na lista de informações de movimento inter-região à lista de candidatos a mesclagem, uma verificação de redundância pode ser realizada entre o candidato a mesclagem inter-região e os candidatos a mesclagem anteriormente armazenados no candidato a mesclagem Lista.[240] When it is desired to add an inter-region merge candidate included in the inter-region movement information list to the merge candidate list, a redundancy check may be performed between the inter-region merge candidate and the merge candidates previously stored in the merge candidate list.

[241] A verificação de redundância pode ser realizada apenas em alguns dos candidatos a mesclagem inter- região incluídos na lista de informações de movimento inter- região. Por exemplo, a verificação de redundância pode ser realizada apenas em candidatos de mesclagem inter-região com um índice maior que um valor limítrofe ou menor que um valor limítrofe. Alternativamente, a verificação de redundância pode ser executada apenas em N candidatos a mesclagem com o maior índice ou N candidatos a mesclagem com o menor índice.[241] Redundancy checking may be performed on only some of the inter-region merge candidates included in the inter-region move information list. For example, redundancy checking may be performed on only inter-region merge candidates with an index greater than a threshold value or less than a threshold value. Alternatively, redundancy checking may be performed on only N merge candidates with the largest index or N merge candidates with the smallest index.

[242] Alternativamente, a verificação de redundância pode ser realizada apenas em alguns dos candidatos a mesclagem anteriormente armazenados na lista de candidatos a mesclagem. Por exemplo, a verificação de redundância pode ser realizada apenas em um candidato a mesclagem com um índice maior que um valor limítrofe ou menor que um valor limítrofe, ou em um candidato a mesclagem derivado de um bloco em uma posição específica. Aqui, a posição específica pode incluir pelo menos um dentre um bloco vizinho esquerdo, um bloco vizinho superior, um bloco vizinho superior direito e um bloco vizinho inferior esquerdo do bloco atual.[242] Alternatively, the redundancy check may be performed only on some of the merge candidates previously stored in the merge candidate list. For example, the redundancy check may be performed only on a merge candidate with an index greater than a threshold value or less than a threshold value, or on a merge candidate derived from a block at a specific position. Here, the specific position may include at least one of a left neighboring block, an upper neighboring block, an upper right neighboring block, and a lower left neighboring block of the current block.

[243] A Figura 21 é uma vista que mostra um exemplo em que uma verificação de redundância é realizada apenas em alguns dos candidatos de mesclagem.[243] Figure 21 is a view showing an example where a redundancy check is performed on only some of the merge candidates.

[244] Quando se deseja adicionar o candidato a mesclagem inter-região de previsão HmvpCand [j] à lista de candidatos a mesclagem, uma verificação de redundância pode ser realizada no candidato a mesclagem inter-região com dois candidatos a mesclagem mergeCandList [NumMerge-2] e mergeCandList [NumMerge -1] tendo os maiores índices. Aqui, NumMerge pode representar o número de candidatos de mesclagem espacial e candidatos de mesclagem temporal que estão disponíveis.[244] When one wants to add the prediction inter-region merge candidate HmvpCand[j] to the merge candidate list, a redundancy check can be performed on the inter-region merge candidate with two merge candidates mergeCandList[NumMerge-2] and mergeCandList[NumMerge-1] having the largest indices. Here, NumMerge can represent the number of spatial merge candidates and temporal merge candidates that are available.

[245] Ao contrário do exemplo mostrado no desenho, quando se deseja adicionar um candidato a mesclagem inter-região HmvpCand [j] à lista de candidatos a mesclagem, uma verificação de redundância pode ser realizada no candidato a mesclagem inter-região com até dois candidatos a mesclagem tendo o menor índice. Por exemplo, é possível verificar se mergeCandList [0] e mergeCandList [1] são iguais a HmvpCand [j]. Alternativamente, uma verificação de redundância pode ser realizada apenas em candidatos a mesclagem derivados em uma posição específica. Por exemplo, a verificação de redundância pode ser realizada em pelo menos um dentre um candidato a mesclagem derivado de um bloco vizinho posicionado no lado esquerdo do bloco atual e um candidato a mesclagem derivado de um bloco vizinho posicionado na parte superior do bloco atual. Quando um candidato a mesclagem derivado em uma posição específica não existe na lista de candidatos a mesclagem, um candidato a mesclagem inter-região pode ser adicionado à lista de candidatos a mesclagem sem ter uma verificação de redundância.[245] Unlike the example shown in the drawing, when one wants to add an inter-region merge candidate HmvpCand[j] to the merge candidate list, a redundancy check can be performed on the inter-region merge candidate with up to two merge candidates having the lowest index. For example, one can check whether mergeCandList[0] and mergeCandList[1] are equal to HmvpCand[j]. Alternatively, a redundancy check can be performed only on merge candidates derived at a specific position. For example, the redundancy check can be performed on at least one of a merge candidate derived from a neighboring block positioned on the left side of the current block and a merge candidate derived from a neighboring block positioned on the top of the current block. When a merge candidate derived at a specific position does not exist in the merge candidate list, an inter-region merge candidate can be added to the merge candidate list without having a redundancy check.

[246] Quando um candidato a mesclagem igual ao primeiro candidato a mesclagem inter-região é encontrado e uma verificação de redundância é realizada no segundo candidato a mesclagem inter-região, a verificação de redundância com um candidato a mesclagem igual ao primeiro candidato a mesclagem inter-região pode ser omitido.[246] When a merge candidate equal to the first inter-region merge candidate is found and a redundancy check is performed on the second inter-region merge candidate, the redundancy check with a merge candidate equal to the first inter-region merge candidate may be omitted.

[247] A Figura 22 é uma vista que mostra um exemplo em que uma verificação de redundância é omitida para um candidato a mesclagem específico.[247] Figure 22 is a view showing an example where a redundancy check is omitted for a specific merge candidate.

[248] Quando se deseja adicionar um candidato a mesclagem inter-região HmvpCand [i] tendo índice i à lista de candidatos a mesclagem, uma verificação de redundância é realizada entre o candidato a mesclagem inter-região e os candidatos a mesclagem anteriormente armazenados na lista de candidatos a mesclagem. Neste ponto, quando um candidato a mesclagem mergeCandList [j] o mesmo que o candidato a mesclagem inter-região HmvpCand [i] é encontrado, a verificação de redundância pode ser realizada entre o candidato a mesclagem inter-região HmvpCand [i-1] com índice i-1 e os candidatos de mesclagem sem adicionar o candidato a mesclagem inter-região HmvpCand [i] à lista de candidatos de mesclagem. Neste ponto, a verificação de redundância entre o candidato a mesclagem inter-região HmvpCand [i-1] e o candidato a mesclagem mergeCandList [j] pode ser omitida.[248] When one wants to add an inter-region merge candidate HmvpCand[i] having index i to the merge candidate list, a redundancy check is performed between the inter-region merge candidate and the merge candidates previously stored in the merge candidate list. At this point, when a merge candidate mergeCandList[j] the same as the inter-region merge candidate HmvpCand[i] is found, the redundancy check can be performed between the inter-region merge candidate HmvpCand[i-1] with index i-1 and the merge candidates without adding the inter-region merge candidate HmvpCand[i] to the merge candidate list. At this point, the redundancy check between the inter-region merge candidate HmvpCand[i-1] and the merge candidate mergeCandList[j] can be omitted.

[249] Por exemplo, no exemplo mostrado na Figura22, é determinado que HmvpCand [i] e mergeCandList [2] são iguais. Consequentemente, HmvpCand [i] não é adicionado à lista de candidatos a mesclagem e uma verificação de redundância pode ser realizada em HmvpCand [i-1]. Neste ponto, a verificação de redundância entre HvmpCand [i-1] e mergeCandList [2] pode ser omitida.[249] For example, in the example shown in Figure 22, it is determined that HmvpCand[i] and mergeCandList[2] are equal. Consequently, HmvpCand[i] is not added to the merge candidate list, and a redundancy check can be performed on HmvpCand[i-1]. At this point, the redundancy check between HvmpCand[i-1] and mergeCandList[2] can be omitted.

[250] Quando o número de candidatos a mesclagem incluídos na lista de candidatos a mesclagem do bloco atual é menor do que o valor limítrofe, pelo menos um dentre um candidato a mesclagem par a par e um candidato a mesclagem zero pode ser incluído adicionalmente, além da candidato a mesclagem inter-região. O candidato a mesclagem par a par significa um candidato a mesclagem com um valor médio de vetores de movimento de dois ou mais candidatos a mesclagem como um vetor de movimento e o candidato a mesclagem zero significa um candidato a mesclagem com um vetor de movimento de 0.[250] When the number of merge candidates included in the merge candidate list of the current block is less than the threshold value, at least one of a pairwise merge candidate and a zero merge candidate may be additionally included in addition to the inter-region merge candidate. The pairwise merge candidate means a merge candidate with an average value of motion vectors of two or more merge candidates as a motion vector, and the zero merge candidate means a merge candidate with a motion vector of 0.

[251] Um candidato a mesclagem pode ser adicionado à lista de candidatos a mesclagem do bloco atual na seguinte ordem.[251] A merge candidate can be added to the current block's merge candidate list in the following order.

[252] Candidato a mesclagem espacial - Candidato a mesclagem temporal - Candidato a mesclagem inter-região - (candidato a mesclagem afim inter-região) - Candidato a mesclagem par a par - Candidato a mesclagem zero[252] Spatial merge candidate - Temporal merge candidate - Inter-region merge candidate - (inter-region affine merge candidate) - Pairwise merge candidate - Zero merge candidate

[253] O candidato a mesclagem espacial significa um candidato a mesclagem derivado de pelo menos um dentre um bloco vizinho e um bloco não vizinho, e o candidato a mesclagem temporal significa um candidato a mesclagem derivado de uma imagem de referência anterior. O candidato a mesclagem afim inter-região representa um candidato a mesclagem inter-região derivado de um bloco codificado/decodificado com um modelo de movimento afim.[253] The spatial merging candidate means a merging candidate derived from at least one of a neighboring block and a non-neighboring block, and the temporal merging candidate means a merging candidate derived from a previous reference image. The inter-region affine merging candidate represents an inter-region merging candidate derived from a block encoded/decoded with an affine motion model.

[254] A lista de informações de movimento da região de previsão também pode ser usada no modo de previsão de vetor de movimento. Por exemplo, quando o número de candidatos de previsão de vetor de movimento incluídos em uma lista de candidatos de previsão de vetor de movimento do bloco atual é menor do que um valor limítrofe, um candidato a mesclagem da região de previsão incluído na lista de informações de movimento da região de previsão pode ser definido como um vetor de movimento candidato de previsão para o bloco atual. Especificamente, o vetor de movimento do candidato a mesclagem da região de previsão pode ser definido como um candidato de previsão de vetor de movimento.[254] The prediction region motion information list may also be used in motion vector prediction mode. For example, when the number of motion vector prediction candidates included in a motion vector prediction candidate list of the current block is less than a threshold value, a prediction region merge candidate included in the prediction region motion information list may be set as a prediction candidate motion vector for the current block. Specifically, the motion vector of the prediction region merge candidate may be set as a prediction candidate motion vector.

[255] Quando qualquer um dentre os candidatos de previsão de vetor de movimento incluídos na lista de candidatos de previsão de vetor de movimento do bloco atual é selecionado, o candidato selecionado pode ser definido como o preditor de vetor de movimento do bloco atual. Depois disso, após um coeficiente residual do vetor de movimento do bloco atual ser decodificado, um vetor de movimento do bloco atual pode ser obtido adicionando o preditor de vetor de movimento e o coeficiente residual do vetor de movimento.[255] When any one among the motion vector prediction candidates included in the motion vector prediction candidate list of the current block is selected, the selected candidate can be set as the motion vector predictor of the current block. Thereafter, after a residual coefficient of the motion vector of the current block is decoded, a motion vector of the current block can be obtained by adding the motion vector predictor and the residual coefficient of the motion vector.

[256] A lista de candidatos de previsão de vetor de movimento do bloco atual pode ser configurada na seguinte ordem.[256] The motion vector prediction candidate list of the current block can be configured in the following order.

[257] Candidato de previsão de vetor de movimento espacial - Candidato de previsão de vetor de movimento temporal - Candidato a mesclagem inter-região - (candidato a mesclagem afim inter-região) - Candidato de previsão de vetor de movimento zero.[257] Spatial motion vector prediction candidate - Temporal motion vector prediction candidate - Inter-region merging candidate - (inter-region affine merging candidate) - Zero motion vector prediction candidate.

[258] O candidato de previsão de vetor de movimento espacial significa um candidato de previsão de vetor de movimento derivado de pelo menos um dentre um bloco vizinho e um bloco não vizinho, e o candidato de previsão de vetor de movimento temporal significa um candidato de previsão de vetor de movimento derivado de uma imagem de referência anterior. O candidato a mesclagem afim inter-região representa um candidato de previsão de vetor de movimento inter-região derivado de um bloco codificado/decodificado com o modelo de movimento afim. O candidato a previsão de vetor de movimento zero representa um candidato com um valor de vetor de movimento de 0.[258] The spatial motion vector prediction candidate means a motion vector prediction candidate derived from at least one of a neighboring block and a non-neighboring block, and the temporal motion vector prediction candidate means a motion vector prediction candidate derived from a previous reference image. The inter-region affine merging candidate represents an inter-region motion vector prediction candidate derived from a block encoded/decoded with the affine motion model. The zero motion vector prediction candidate represents a candidate with a motion vector value of 0.

[259] Um bloco de codificação pode ser particionado em uma pluralidade de unidades de previsão e a previsão pode ser realizada em cada uma das unidades de previsão particionadas. Aqui, uma unidade de previsão representa uma unidade básica para realizar a previsão.[259] A coding block may be partitioned into a plurality of prediction units, and prediction may be performed on each of the partitioned prediction units. Here, a prediction unit represents a basic unit for performing prediction.

[260] Um bloco de codificação pode ser particionado usando pelo menos um dentre uma linha vertical, uma linha horizontal, uma linha oblíqua e uma linha diagonal. As informações para determinar pelo menos um dentre o número, os ângulos e as posições das linhas que particionam um bloco de codificação podem ser sinalizadas por meio de um fluxo de bits. Por exemplo, a informação que indica qualquer um dentre os candidatos do tipo de particionamento de um bloco de codificação pode ser sinalizada através de um fluxo de bits, ou a informação que especifica qualquer um dentre uma pluralidade de candidatos de linha para particionar um bloco de codificação pode ser sinalizada através de um fluxo de bits. Alternativamente, as informações para determinar o número ou tipos de linhas candidatas que particionam um bloco de codificação podem ser sinalizadas através do fluxo de bits. Por exemplo, se uma linha oblíqua com um ângulo maior que o de uma linha diagonal e/ou uma linha oblíqua com um ângulo menor que o de uma linha diagonal pode ser usada como um candidato de linha pode ser determinado usando um sinalizador de 1 bit.[260] A coding block may be partitioned using at least one of a vertical line, a horizontal line, an oblique line, and a diagonal line. Information for determining at least one of the number, angles, and positions of the lines that partition a coding block may be signaled via a bit stream. For example, information indicating any of the candidates for the partitioning type of a coding block may be signaled via a bit stream, or information specifying any of a plurality of line candidates for partitioning a coding block may be signaled via a bit stream. Alternatively, information for determining the number or types of candidate lines that partition a coding block may be signaled via the bit stream. For example, whether an oblique line with an angle greater than that of a diagonal line and/or an oblique line with an angle less than that of a diagonal line may be used as a line candidate may be determined using a 1-bit flag.

[261] Alternativamente, pelo menos um dentre o número, os ângulos e as posições das linhas que particionam um bloco de codificação podem ser determinados de forma adaptativa com base em pelo menos um dentre o modo intraprevisão do bloco de codificação, o modo interprevisão da codificação bloco, a posição de um candidato a mesclagem disponível do bloco de codificação e um padrão de particionamento de um bloco vizinho.[261] Alternatively, at least one of the number, angles, and positions of lines partitioning a coding block may be adaptively determined based on at least one of the intra-prediction mode of the coding block, the inter-prediction mode of the coding block, the position of an available merge candidate of the coding block, and a partitioning pattern of a neighboring block.

[262] Quando um bloco de codificação é particionado em uma pluralidade de unidades de previsão, intraprevisão ou interprevisão pode ser realizada em cada uma das unidades de previsão particionadas.[262] When a coding block is partitioned into a plurality of prediction units, intraprediction or interprediction may be performed on each of the partitioned prediction units.

[263] A Figura 23 é uma vista que mostra exemplos de aplicação de particionamento a um bloco de codificação para obter uma pluralidade de unidades de previsão usando uma linha diagonal.[263] Figure 23 is a view showing examples of applying partitioning to a coding block to obtain a plurality of prediction units using a diagonal line.

[264] Conforme mostrado nos exemplos das Figuras 23 (a) e 23 (b), um bloco de codificação pode ser particionado em duas unidades de previsão triangulares usando uma linha diagonal.[264] As shown in the examples in Figures 23(a) and 23(b), a coding block can be partitioned into two triangular prediction units using a diagonal line.

[265] Nas Figuras 23 (a) e 23 (b), é mostrado que um bloco de codificação é particionado em duas unidades de previsão usando uma linha diagonal conectando dois vértices do bloco de codificação. No entanto, o bloco de codificação pode ser particionado em duas unidades de previsão usando uma linha oblíqua, pelo menos uma extremidade da qual não passa por um vértice do bloco de codificação.[265] In Figures 23(a) and 23(b), it is shown that a coding block is partitioned into two prediction units using a diagonal line connecting two vertices of the coding block. However, the coding block can be partitioned into two prediction units using an oblique line, at least one end of which does not pass through a vertex of the coding block.

[266] A Figura 24 é uma vista que mostra exemplos de aplicação de particionamento a um bloco de codificação para obter duas unidades de previsão.[266] Figure 24 is a view showing examples of applying partitioning to a coding block to obtain two prediction units.

[267] Conforme mostrado nos exemplos das Figuras 24 (a) e 24 (b), um bloco de codificação pode ser particionado em duas unidades de previsão usando uma linha oblíqua, ambas as extremidades das quais estão em contato com o limite superior e o limite inferior do bloco de codificação, respectivamente.[267] As shown in the examples of Figures 24(a) and 24(b), a coding block can be partitioned into two prediction units using an oblique line, both ends of which are in contact with the upper boundary and the lower boundary of the coding block, respectively.

[268] Alternativamente, como mostrado nos exemplos das Figuras 24 (c) e 24 (d), um bloco de codificação pode ser particionado em duas unidades de previsão usando uma linha oblíqua, ambas as extremidades das quais estão em contato com o limite esquerdo e o limite direito do bloco de codificação, respectivamente.[268] Alternatively, as shown in the examples of Figures 24(c) and 24(d), a coding block can be partitioned into two prediction units using an oblique line, both ends of which are in contact with the left boundary and the right boundary of the coding block, respectively.

[269] Alternativamente, um bloco de codificação pode ser particionado em dois blocos de previsão de tamanhos diferentes. Por exemplo, um bloco de codificação pode ser particionado em duas unidades de previsão de tamanhos diferentes, definindo uma linha oblíqua que particiona o bloco de codificação para contatar duas superfícies de limite que formam um vértice.[269] Alternatively, a coding block may be partitioned into two prediction blocks of different sizes. For example, a coding block may be partitioned into two prediction units of different sizes by defining an oblique line that partitions the coding block to contact two boundary surfaces that form a vertex.

[270] A Figura 25 é uma vista que mostra exemplos de particionamento de um bloco de codificação em uma pluralidade de blocos de previsão de tamanhos diferentes.[270] Figure 25 is a view showing examples of partitioning a coding block into a plurality of prediction blocks of different sizes.

[271] Conforme mostrado nos exemplos das Figuras 25 (a) e 25 (b), como uma linha diagonal conectando os cantos superior esquerdo e inferior direito do bloco de codificação é definida para passar pelo limite esquerdo, o limite direito, o limite superior ou o limite inferior, em vez de passar pelo canto superior esquerdo ou pelo canto inferior direito do bloco de codificação, o bloco de codificação pode ser particionado em duas unidades de previsão com tamanhos diferentes.[271] As shown in the examples of Figures 25(a) and 25(b), since a diagonal line connecting the upper-left and lower-right corners of the coding block is defined to pass through the left boundary, the right boundary, the upper boundary, or the lower boundary, instead of passing through the upper-left corner or the lower-right corner of the coding block, the coding block can be partitioned into two prediction units with different sizes.

[272] Alternativamente, como mostrado nos exemplos das Figuras 25 (c) e 25 (d), como uma linha diagonal conectando os cantos superior direito e inferior esquerdo do bloco de codificação é definida para passar pelo limite esquerdo, o limite direito, o limite superior ou o limite inferior, em vez de passar pelo canto superior esquerdo ou pelo canto inferior direito do bloco de codificação, o bloco de codificação pode ser particionado em duas unidades de previsão com tamanhos diferentes.[272] Alternatively, as shown in the examples of Figures 25(c) and 25(d), since a diagonal line connecting the upper-right and lower-left corners of the coding block is defined to pass through the left boundary, the right boundary, the upper boundary, or the lower boundary, instead of passing through the upper-left corner or the lower-right corner of the coding block, the coding block can be partitioned into two prediction units with different sizes.

[273] Cada uma das unidades de previsão geradas pelo particionamento de um bloco de codificação será denominada como uma “enésima unidade de previsão”. Por exemplo, nos exemplos mostrados nas Figuras 23 a 25, PU1 pode ser definido como uma primeira unidade de previsão e PU2 pode ser definido como uma segunda unidade de previsão. A primeira unidade de previsão significa uma unidade de previsão incluindo uma amostra posicionada na parte inferior esquerda ou uma amostra posicionada na parte superior esquerda no bloco de codificação, e a segunda unidade de previsão significa uma unidade de previsão incluindo uma amostra posicionada na parte superior direita ou uma amostra posicionada na parte inferior direita do bloco de codificação.[273] Each of the prediction units generated by partitioning a coding block will be referred to as an “nth prediction unit”. For example, in the examples shown in Figures 23 through 25, PU1 may be defined as a first prediction unit and PU2 may be defined as a second prediction unit. The first prediction unit means a prediction unit including a sample positioned at the bottom left or a sample positioned at the top left in the coding block, and the second prediction unit means a prediction unit including a sample positioned at the top right or a sample positioned at the bottom right in the coding block.

[274] Ao contrário, uma unidade de previsão incluindo uma amostra posicionada na parte superior direita ou uma amostra posicionada na parte inferior direita no bloco de codificação pode ser definida como uma primeira unidade de previsão e uma unidade de previsão incluindo uma amostra posicionada na parte inferior esquerda ou uma amostra posicionada no canto superior esquerdo no bloco de codificação pode ser definida como uma segunda unidade de previsão.[274] Conversely, a prediction unit including a sample positioned in the upper right or a sample positioned in the lower right in the coding block may be defined as a first prediction unit, and a prediction unit including a sample positioned in the lower left or a sample positioned in the upper left in the coding block may be defined as a second prediction unit.

[275] As modalidades abaixo são descritas com foco em exemplos de particionamento de um bloco de codificação usando uma linha diagonal. Particularmente, particionar um bloco de codificação em duas unidades de previsão usando uma linha diagonal é denominado como particionamento diagonal ou particionamento triangular, e uma unidade de previsão gerada com base no particionamento diagonal é denominada como unidade de previsão triangular. No entanto, também é possível aplicar as modalidades descritas abaixo aos exemplos de particionamento de um bloco de codificação usando uma linha oblíqua de um ângulo diferente de uma linha vertical, uma linha horizontal ou uma linha diagonal.[275] The embodiments below are described with a focus on examples of partitioning a coding block using a diagonal line. In particular, partitioning a coding block into two prediction units using a diagonal line is referred to as diagonal partitioning or triangular partitioning, and a prediction unit generated based on diagonal partitioning is referred to as a triangular prediction unit. However, it is also possible to apply the embodiments described below to examples of partitioning a coding block using an oblique line from an angle other than a vertical line, a horizontal line, or a diagonal line.

[276] A aplicação ou não do particionamento diagonal a um bloco de codificação pode ser determinada com base em pelo menos um dentre um tipo de fatia, o número máximo de candidatos a mesclagem que a lista de candidatos a mesclagem pode incluir, o tamanho do bloco de codificação, a forma do bloco de codificação, o modo de codificação de previsão do bloco de codificação e o padrão de particionamento do nó pai.[276] Whether or not diagonal partitioning is applied to a coding block may be determined based on at least one of a slice type, the maximum number of merge candidates that the merge candidate list may include, the size of the coding block, the shape of the coding block, the prediction coding mode of the coding block, and the partitioning pattern of the parent node.

[277] Por exemplo, a aplicação ou não do particionamento diagonal a um bloco de codificação pode ser determinada com base em se a fatia atual é do tipo B. O particionamento diagonal pode ser permitido apenas quando a fatia atual é do tipo B.[277] For example, whether or not diagonal partitioning applies to a coding block can be determined based on whether the current slice is of type B. Diagonal partitioning may be allowed only when the current slice is of type B.

[278] Alternativamente, a aplicação ou não do particionamento diagonal a um bloco de codificação pode ser determinada com base em se o número máximo de candidatos a mesclagem incluídos na lista de candidatos a mesclagem é dois ou mais. O particionamento diagonal pode ser permitido apenas quando o número máximo de candidatos a mesclagem incluídos na lista de candidatos a mesclagem for dois ou mais.[278] Alternatively, whether or not diagonal partitioning is applied to a cipher block may be determined based on whether the maximum number of merge candidates included in the merge candidate list is two or more. Diagonal partitioning may be allowed only when the maximum number of merge candidates included in the merge candidate list is two or more.

[279] Alternativamente, quando pelo menos um dentre a largura e a altura é maior do que 64 na implementação de hardware, há um problema em que uma unidade de processamento de dados de tamanho 64 x 64 é acessada de forma redundante. Por conseguinte, quando pelo menos um dentre a largura e a altura do bloco de codificação é maior do que um valor limítrofe, o particionamento de um bloco de codificação em uma pluralidade de blocos de previsão pode não ser permitido. Por exemplo, quando pelo menos um dentre a largura e a altura de um bloco de codificação é maior que 64 (por exemplo, quando pelo menos um dentre a largura e a altura é 128), o particionamento diagonal não pode ser usado.[279] Alternatively, when at least one of the width and height is greater than 64 in the hardware implementation, there is an issue where a data processing unit of size 64 x 64 is accessed redundantly. Therefore, when at least one of the width and height of the coding block is greater than a threshold value, partitioning of a coding block into a plurality of prediction blocks may not be allowed. For example, when at least one of the width and height of a coding block is greater than 64 (e.g., when at least one of the width and height is 128), diagonal partitioning cannot be used.

[280] Alternativamente, o particionamento diagonal pode não ser permitida para um bloco de codificação cujo número de amostras é maior do que um valor limítrofe, considerando o número máximo de amostras que podem ser processadas simultaneamente na implementação de hardware. Por exemplo, o particionamento diagonal pode não ser permitido para um bloco de árvore de codificação cujo número de amostras seja maior que 4.096.[280] Alternatively, diagonal partitioning may not be allowed for a coding block whose number of samples is greater than a threshold value, considering the maximum number of samples that can be processed simultaneously in the hardware implementation. For example, diagonal partitioning may not be allowed for a coding tree block whose number of samples is greater than 4,096.

[281] Alternativamente, o particionamento diagonal pode não ser permitido para um bloco de codificação cujo número de amostras incluídas no bloco de codificação é menor do que um valor limítrofe. Por exemplo, pode ser definido para não aplicar o particionamento diagonal a um bloco de codificação quando o número de amostras incluídas no bloco de codificação for menor que 64.[281] Alternatively, diagonal partitioning may not be allowed for a coding block whose number of samples included in the coding block is less than a threshold value. For example, it may be defined to not apply diagonal partitioning to a coding block when the number of samples included in the coding block is less than 64.

[282] Alternativamente, a aplicação ou não do particionamento diagonal a um bloco de codificação pode ser determinada com base em se a proporção da largura para a altura do bloco de codificação é inferior a um primeiro valor limítrofe ou se a proporção da largura para a altura do bloco de codificação é maior do que um segundo valor limítrofe. Aqui, a proporção de largura para altura whRatio do bloco de codificação pode ser determinada como uma proporção da largura CbW para a altura CbH do bloco de codificação, como mostrado na Equação 5. [Equação 5] O segundo valor limítrofe pode ser um número inverso do primeiro valor limítrofe. Por exemplo, quando o primeiro valor limítrofe é k, o segundo valor limítrofe pode ser 1/k.[282] Alternatively, whether or not diagonal partitioning applies to a coding block may be determined based on whether the width-to-height ratio of the coding block is less than a first threshold value or whether the width-to-height ratio of the coding block is greater than a second threshold value. Here, the width-to-height ratio whRatio of the coding block may be determined as a ratio of the width CbW to the height CbH of the coding block, as shown in Equation 5. [Equation 5] The second boundary value can be an inverse number of the first boundary value. For example, when the first boundary value is k, the second boundary value can be 1/k.

[283] O particionamento diagonal pode ser aplicado a um bloco de codificação apenas quando a relação largura-altura do bloco de codificação está entre o primeiro valor limítrofe e o segundo valor limítrofe.[283] Diagonal partitioning can be applied to a coding block only when the width-to-height ratio of the coding block is between the first boundary value and the second boundary value.

[284] Alternativamente, o particionamento triangular pode ser usado apenas quando a proporção entre largura e altura do bloco de codificação é inferior ao primeiro valor limítrofe ou superior ao segundo valor limítrofe. Por exemplo, quando o primeiro valor limítrofe é 16, o particionamento diagonal pode não ser permitido para um bloco de codificação de tamanho 64 x 4 ou 4 x 64.[284] Alternatively, triangular partitioning may be used only when the width-to-height ratio of the coding block is less than the first threshold value or greater than the second threshold value. For example, when the first threshold value is 16, diagonal partitioning may not be allowed for a coding block of size 64 x 4 or 4 x 64.

[285] Alternativamente, permitir ou não o particionamento diagonal pode ser determinada com base no padrão de particionamento do nó pai. Por exemplo, quando um bloco de codificação de nó pai é particionado com base no particionamento de árvore quádrupla, o particionamento diagonal pode ser aplicado a um bloco de codificação de nó folha. Por outro lado, pode ser configurado para não permitir o particionamento diagonal para o bloco de codificação do nó folha quando o bloco de codificação do nó pai é particionado com base na árvore binária ou particionamento da árvore ternária.[285] Alternatively, whether or not to allow diagonal partitioning can be determined based on the partitioning pattern of the parent node. For example, when a parent node's coding block is partitioned based on quad tree partitioning, diagonal partitioning can be applied to a leaf node's coding block. Conversely, it can be configured to disallow diagonal partitioning for the leaf node's coding block when the parent node's coding block is partitioned based on binary tree or ternary tree partitioning.

[286] Alternativamente, permitir ou não o particionamento diagonal pode ser determinada com base no modo de codificação de previsão de um bloco de codificação. Por exemplo, o particionamento diagonal pode ser permitido apenas quando o bloco de codificação é codificado por intraprevisão, quando o bloco de codificação é codificado por interprevisão ou quando o bloco de codificação é codificado por um modo de interprevisão predefinido. Aqui, o modo de interprevisão predefinido pode representar pelo menos um dentre um modo de mesclagem, um modo de previsão de vetor de movimento, um modo de mesclagem afim e um modo de previsão de vetor de movimento afim.[286] Alternatively, whether or not to allow diagonal partitioning may be determined based on the prediction coding mode of a coding block. For example, diagonal partitioning may be allowed only when the coding block is intra-prediction coded, when the coding block is inter-prediction coded, or when the coding block is coded by a predefined inter-prediction mode. Here, the predefined inter-prediction mode may represent at least one of a blending mode, a motion vector prediction mode, an affine blending mode, and an affine motion vector prediction mode.

[287] Alternativamente, se deve ou não permitir o particionamento diagonal pode ser determinada com base no tamanho de uma região de processamento paralela. Por exemplo, quando o tamanho de um bloco de codificação é maior do que o tamanho de uma região de processamento paralelo, o particionamento diagonal não pode ser usado.[287] Alternatively, whether or not to allow diagonal partitioning can be determined based on the size of a parallel processing region. For example, when the size of a coding block is larger than the size of a parallel processing region, diagonal partitioning cannot be used.

[288] A aplicação ou não do particionamento diagonal a um bloco de codificação pode ser determinada considerando duas ou mais das condições listadas acima.[288] Whether or not diagonal partitioning applies to a coding block can be determined by considering two or more of the conditions listed above.

[289] Como outro exemplo, as informações que indicam se deve ou não aplicar o particionamento diagonal a um bloco de codificação podem ser sinalizadas através de um fluxo de bits. As informações podem ser sinalizadas em uma sequência, imagem, fatia ou nível de bloco. Por exemplo, o sinalizador triangle_partition_flag indicando se o particionamento triangular é aplicado a um bloco de codificação pode ser sinalizado em um nível de bloco de codificação.[289] As another example, information indicating whether or not to apply diagonal partitioning to a coding block may be signaled via a bit stream. The information may be signaled at a sequence, image, slice, or block level. For example, the flag triangle_partition_flag indicating whether triangular partitioning is applied to a coding block may be signaled at a coding block level.

[290] Quando é determinado aplicar o particionamento diagonal a um bloco de codificação, informações indicando o número de linhas que particionam o bloco de codificação ou as posições das linhas podem ser sinalizadas através de um fluxo de bits.[290] When it is determined to apply diagonal partitioning to a coding block, information indicating the number of lines that partition the coding block or the positions of the lines may be signaled via a bit stream.

[291] Por exemplo, quando um bloco de codificação é particionado por uma linha diagonal, a informação que indica a direção da linha diagonal que particiona o bloco de codificação pode ser sinalizada através de um fluxo de bits. Por exemplo, o sinalizador triangle_partition_type_flag indicando a direção da linha diagonal pode ser sinalizado por meio de um fluxo de bits. O sinalizador indica se o bloco de codificação é particionado por uma linha diagonal conectando o canto superior esquerdo e o canto inferior direito ou se o bloco de codificação é particionado por uma linha diagonal conectando o canto superior direito e o canto inferior esquerdo. Particionar um bloco de codificação por uma linha diagonal conectando o canto superior esquerdo e o canto inferior direito pode ser denominado como um tipo de particionamento triangular esquerda e particionar um bloco de codificação por uma linha diagonal conectando o canto superior direito e o inferior o canto esquerdo pode ser denominado como um tipo de particionamento triangular direita. Por exemplo, quando o valor do sinalizador é 0, pode indicar que o tipo de particionamento do bloco de codificação é o tipo de particionamento triangular à esquerda, e quando o valor do sinalizador é 1, pode indicar que o tipo de particionamento da codificação bloco é o tipo de particionamento triangular direita.[291] For example, when a coding block is partitioned by a diagonal line, information indicating the direction of the diagonal line that partitions the coding block can be signaled via a bit stream. For example, the triangle_partition_type_flag flag indicating the direction of the diagonal line can be signaled via a bit stream. The flag indicates whether the coding block is partitioned by a diagonal line connecting the upper-left corner and the lower-right corner or whether the coding block is partitioned by a diagonal line connecting the upper-right corner and the lower-left corner. Partitioning a coding block by a diagonal line connecting the upper-left corner and the lower-right corner can be termed as a left triangular partitioning type, and partitioning a coding block by a diagonal line connecting the upper-right corner and the lower-left corner can be termed as a right triangular partitioning type. For example, when the value of the flag is 0, it may indicate that the partitioning type of the encoding block is the left triangular partitioning type, and when the value of the flag is 1, it may indicate that the partitioning type of the encoding block is the right triangular partitioning type.

[292] Além disso, informações indicando se as unidades de previsão têm o mesmo tamanho ou informações indicando a posição de uma linha diagonal para particionar o bloco de codificação podem ser sinalizadas através de um fluxo de bits. Por exemplo, quando as informações que indicam os tamanhos das unidades de previsão indicam que os tamanhos das unidades de previsão são iguais, a codificação da informação que indica a posição da diagonal é omitida e o bloco de codificação pode ser particionado em duas unidades de previsão usando uma linha diagonal passando por dois vértices do bloco de codificação. Por outro lado, quando a informação que indica os tamanhos das unidades de previsão indica que os tamanhos das unidades de previsão não são iguais, a posição da linha diagonal que particiona o bloco de codificação pode ser determinada com base na informação que indica a posição do linha diagonal. Por exemplo, quando o tipo de particionamento triangular esquerda é aplicado a um bloco de codificação, as informações de posição podem indicar se a linha diagonal está em contato com o limite esquerdo e o limite inferior ou o limite superior e o limite direito do bloco de codificação. Alternativamente, quando o tipo de particionamento triangular direita é aplicado a um bloco de codificação, a informação de posição pode indicar se a linha diagonal está em contato com o limite direito e o limite inferior ou o limite superior e o limite esquerdo do bloco de codificação.[292] In addition, information indicating whether the prediction units are of equal size or information indicating the position of a diagonal line for partitioning the coding block may be signaled via a bit stream. For example, when the information indicating the sizes of the prediction units indicates that the sizes of the prediction units are equal, the encoding of the information indicating the position of the diagonal is omitted and the coding block may be partitioned into two prediction units using a diagonal line passing through two vertices of the coding block. On the other hand, when the information indicating the sizes of the prediction units indicates that the sizes of the prediction units are not equal, the position of the diagonal line that partitions the coding block may be determined based on the information indicating the position of the diagonal line. For example, when the left triangular partitioning type is applied to a coding block, the position information may indicate whether the diagonal line is in contact with the left boundary and the lower boundary or the upper boundary and the right boundary of the coding block. Alternatively, when the right triangular partitioning type is applied to a coding block, the position information can indicate whether the diagonal line is in contact with the right boundary and the lower boundary or the upper boundary and the left boundary of the coding block.

[293] A informação que indica o tipo de particionamento de um bloco de codificação pode ser sinalizada em um nível de bloco de codificação. Consequentemente, o tipo de particionamento pode ser determinado para cada bloco de codificação ao qual o particionamento diagonal é aplicado.[293] Information indicating the partitioning type of a coding block may be signaled at a coding block level. Consequently, the partitioning type may be determined for each coding block to which diagonal partitioning is applied.

[294] Como outro exemplo, as informações que indicam o tipo de particionamento podem ser sinalizadas para uma sequência, uma imagem, uma fatia, um bloco ou uma unidade de árvore de codificação. Neste caso, os tipos de particionamento de blocos de codificação aos quais o particionamento diagonal é aplicado em uma sequência, uma imagem, uma fatia, um bloco ou uma unidade de árvore de codificação podem ser definidos para serem iguais.[294] As another example, information indicating the partitioning type may be flagged for a sequence, an image, a slice, a block, or a coding tree unit. In this case, the partitioning types of coding blocks to which diagonal partitioning is applied in a sequence, an image, a slice, a block, or a coding tree unit may be set to be the same.

[295] Alternativamente, as informações para determinar o tipo de particionamento podem ser codificadas e sinalizadas para a primeira unidade de codificação à qual o particionamento diagonal é aplicado na unidade de árvore de codificação, e a segunda e subsequentes unidades de codificação às quais o particionamento diagonal é aplicado podem ser definidas para usar um tipo de particionamento igual ao da primeira unidade de codificação.[295] Alternatively, information for determining the partitioning type may be encoded and signaled for the first coding unit to which diagonal partitioning is applied in the coding tree unit, and the second and subsequent coding units to which diagonal partitioning is applied may be defined to use a partitioning type equal to that of the first coding unit.

[296] Como outro exemplo, o tipo de particionamento de um bloco de codificação pode ser determinado com base no tipo de particionamento de um bloco vizinho. Aqui, o bloco vizinho pode incluir pelo menos um dentre um bloco vizinho adjacente ao canto superior esquerdo do bloco de codificação, um bloco vizinho adjacente ao canto superior direito, um bloco vizinho adjacente ao canto inferior esquerdo, um vizinho bloco posicionado na parte superior e um bloco vizinho posicionado no lado esquerdo. Por exemplo, o tipo de particionamento do bloco atual pode ser definido para ser o mesmo que o tipo de particionamento de um bloco vizinho. Alternativamente, o tipo de particionamento do bloco atual pode ser determinado com base em se o tipo de particionamento triangular esquerda é aplicado ao bloco vizinho superior esquerdo ou se o tipo de particionamento triangular direita é aplicado ao bloco vizinho superior direito ou inferior esquerdo bloco vizinho.[296] As another example, the partitioning type of a coding block may be determined based on the partitioning type of a neighboring block. Here, the neighboring block may include at least one of a neighboring block adjacent to the top-left corner of the coding block, a neighboring block adjacent to the top-right corner, a neighboring block adjacent to the bottom-left corner, a neighboring block positioned on the top, and a neighboring block positioned on the left side. For example, the partitioning type of the current block may be set to be the same as the partitioning type of a neighboring block. Alternatively, the partitioning type of the current block may be determined based on whether the left triangular partitioning type is applied to the top-left neighboring block or whether the right triangular partitioning type is applied to the top-right neighboring block or the bottom-left neighboring block.

[297] De modo a realizar a compensação de previsão de movimento em uma primeira unidade de previsão triangular e uma segunda unidade de previsão triangular, as informações de movimento de cada uma da primeira unidade de previsão triangular e da segunda unidade de previsão triangular podem ser derivadas. Neste ponto, as informações de movimento da primeira unidade de previsão triangular e da segunda unidade de previsão triangular podem ser derivadas de candidatos a mesclagem incluídos na lista de candidatos a mesclagem. Para distinguir uma lista de candidatos de mesclagem geral de uma lista de candidatos de mesclagem usada para derivar as informações de movimento das unidades de previsão triangulares, a lista de candidatos de mesclagem para derivar as informações de movimento das unidades de previsão triangulares é denominada como uma lista de candidatos de mesclagem triangular, e um candidato a mesclagem incluído na lista de candidatos a mesclagem triangular será denominado como um candidato a mesclagem triangular. No entanto, usar o método de derivar um candidato a mesclagem e o método de construir uma lista de candidatos a mesclagem descrito acima para o benefício dos candidatos a mesclagem triangular e o método de construir a lista de candidatos a mesclagem triangular também está incluído no espírito da presente divulgação.[297] In order to perform motion prediction compensation in a first triangular prediction unit and a second triangular prediction unit, motion information of each of the first triangular prediction unit and the second triangular prediction unit may be derived. At this point, motion information of the first triangular prediction unit and the second triangular prediction unit may be derived from merge candidates included in the merge candidate list. To distinguish a general merge candidate list from a merge candidate list used to derive motion information of triangular prediction units, the merge candidate list for deriving motion information of triangular prediction units is referred to as a triangular merge candidate list, and a merge candidate included in the triangular merge candidate list will be referred to as a triangular merge candidate. However, using the method of deriving a merge candidate and the method of constructing a merge candidate list described above for the benefit of triangular merge candidates and the method of constructing the triangular merge candidate list are also included in the spirit of the present disclosure.

[298] As informações para determinar o número máximo de candidatos a mesclagem triangular que a lista de candidatos a mesclagem triangular pode incluir podem ser sinalizadas por meio de um fluxo de bits. As informações podem indicar uma diferença entre o número máximo de candidatos a mesclagem que a lista de candidatos a mesclagem pode incluir e o número máximo de candidatos a mesclagem triangular que a lista de candidatos a mesclagem triangular pode incluir.[298] Information for determining the maximum number of triangular merge candidates that the triangular merge candidate list may include may be signaled via a bit stream. The information may indicate a difference between the maximum number of merge candidates that the merge candidate list may include and the maximum number of triangular merge candidates that the triangular merge candidate list may include.

[299] Os candidatos a mesclagem triangular podem ser derivados de um bloco vizinho espacialmente e um bloco vizinho temporalmente de um bloco de codificação.[299] Triangular merge candidates can be derived from a spatially neighboring block and a temporally neighboring block of a coding block.

[300] A Figura 26 é uma vista que mostra blocos vizinhos usados para derivar um candidato a mesclagem triangular.[300] Figure 26 is a view showing neighboring blocks used to derive a triangular merge candidate.

[301] Um candidato a mesclagem triangular pode ser derivado usando pelo menos um dentre um bloco vizinho posicionado na parte superior de um bloco de codificação, um bloco vizinho posicionado no lado esquerdo do bloco de codificação e um bloco colocado incluído em uma imagem diferente de o bloco de codificação. O bloco vizinho superior pode incluir pelo menos um dentre um bloco incluindo uma amostra (xCb + CbW-1, yCb-1) posicionada na parte superior do bloco de codificação, um bloco incluindo uma amostra (xCb + CbW, yCb-1) posicionada na parte superior do bloco de codificação e um bloco incluindo uma amostra (xCb-1, yCb-1) posicionada na parte superior do bloco de codificação. O bloco vizinho à esquerda pode incluir pelo menos um dentre um bloco incluindo uma amostra (xCb-1, yCb + CbH-1) posicionada no lado esquerdo do bloco de codificação e um bloco incluindo uma amostra (xCb-1, yCb + CbH) posicionado no lado esquerdo do bloco de codificação. O bloco colocado pode ser determinado como qualquer um dentre um bloco incluindo uma amostra (xCb + CbW, yCb + CbH) adjacente ao canto superior direito do bloco de codificação e um bloco incluindo uma amostra (xCb/2, yCb/2) posicionado no centro do bloco de codificação, em uma imagem colocada.[301] A triangular merging candidate may be derived using at least one of a neighboring block positioned at the top of a coding block, a neighboring block positioned at the left side of the coding block, and a placed block included in a different picture than the coding block. The top neighboring block may include at least one of a block including a sample (xCb+CbW-1, yCb-1) positioned at the top of the coding block, a block including a sample (xCb+CbW, yCb-1) positioned at the top of the coding block, and a block including a sample (xCb-1, yCb-1) positioned at the top of the coding block. The left neighboring block may include at least one of a block including a sample (xCb-1, yCb+CbH-1) positioned at the left side of the coding block and a block including a sample (xCb-1, yCb+CbH) positioned at the left side of the coding block. The placed block can be determined as any one of a block including a sample (xCb + CbW, yCb + CbH) adjacent to the upper right corner of the coding block and a block including a sample (xCb/2, yCb/2) positioned at the center of the coding block, in a placed image.

[302] Os blocos vizinhos podem ser pesquisados em uma ordem predefinida e os candidatos a mesclagem triangular podem ser construídos como uma lista de candidatos a mesclagem triangular de acordo com uma ordem predefinida. Por exemplo, a lista de candidatos a mesclagem triangular pode ser construída pesquisando os candidatos a mesclagem triangular na ordem de B1, A1, B0, A0, C0, B2 e C1.[302] Neighboring blocks can be searched in a predefined order, and triangular merge candidates can be constructed as a list of triangular merge candidates according to a predefined order. For example, the list of triangular merge candidates can be constructed by searching the triangular merge candidates in the order of B1, A1, B0, A0, C0, B2, and C1.

[303] Os blocos vizinhos podem ser pesquisados em uma ordem predefinida e os candidatos a mesclagem triangular podem ser construídos como uma lista de candidatos a mesclagem triangular de acordo com uma ordem predefinida. Por exemplo, a lista de candidatos a mesclagem triangular pode ser construída pesquisando os candidatos a mesclagem triangular na ordem de B1, A1, B0, A0, C0, B2 e C1.[303] Neighboring blocks can be searched in a predefined order, and triangular merge candidates can be constructed as a list of triangular merge candidates according to a predefined order. For example, the list of triangular merge candidates can be constructed by searching the triangular merge candidates in the order of B1, A1, B0, A0, C0, B2, and C1.

[304] As informações de movimento das unidades de previsão triangulares podem ser derivadas com base na lista de candidatos a mesclagem triangular. Ou seja, as unidades de previsão triangulares podem compartilhar uma lista de candidatos a mesclagem triangular.[304] The motion information of the triangular prediction units can be derived based on the triangular merge candidate list. That is, the triangular prediction units can share a triangular merge candidate list.

[305] De modo a derivar informações de movimento da unidade de mesclagem triangular, as informações para especificar pelo menos um dentre os candidatos a mesclagem triangular incluídos na lista de candidatos de mesclagem triangular podem ser sinalizadas por meio de um fluxo de bits. Por exemplo, informações de índice merge_triangle_idx para especificar pelo menos um dentre os candidatos a mesclagem triangular podem ser sinalizadas por meio de um fluxo de bits.[305] In order to derive motion information of the triangular merge unit, information for specifying at least one of the triangular merge candidates included in the triangular merge candidate list may be signaled via a bit stream. For example, merge_triangle_idx index information for specifying at least one of the triangular merge candidates may be signaled via a bit stream.

[306] As informações de índice podem especificar uma combinação de um candidato a mesclagem da primeira unidade de previsão triangular e um candidato a mesclagem da segunda unidade de previsão triangular. Por exemplo, a Tabela 1 mostra um exemplo de uma combinação de candidatos a mesclagem de acordo com as informações de índice merge_triangle_idx. TABELA 1 [306] The index information may specify a combination of a merge candidate from the first triangular prediction unit and a merge candidate from the second triangular prediction unit. For example, Table 1 shows an example of a combination of merge candidates according to the merge_triangle_idx index information. TABLE 1

[307] Quando o valor da informação de índice merge_triangle_idx é 1, indica que a informação de movimento da primeira unidade de previsão triangular é derivada de um candidato a mesclagem com um índice de 1, e a informação de movimento da segunda unidade de previsão triangular é derivada de um candidato a mesclagem com um índice de 0. Um candidato a mesclagem triangular para derivar informações de movimento da primeira unidade de previsão triangular e um candidato a mesclagem triangular para derivar informações de movimento da segunda unidade de previsão triangular pode ser determinado através de informações de índice merge_triangle_idx.[307] When the value of the merge_triangle_idx index information is 1, it indicates that the motion information of the first triangular prediction unit is derived from a merge candidate with an index of 1, and the motion information of the second triangular prediction unit is derived from a merge candidate with an index of 0. A triangular merge candidate for deriving motion information of the first triangular prediction unit and a triangular merge candidate for deriving motion information of the second triangular prediction unit can be determined through the merge_triangle_idx index information.

[308] Um tipo de particionamento de um bloco de codificação ao qual o particionamento diagonal é aplicado pode ser determinado com base nas informações de índice. Ou seja, as informações de índice podem especificar uma combinação de um candidato a mesclagem da primeira unidade de previsão triangular, um candidato a mesclagem da segunda unidade de previsão triangular e uma direção de particionamento do bloco de codificação. Quando um tipo de particionamento do bloco de codificação é determinado com base na informação de índice, a informação triangle_partition_type_flag indicando a direção de uma linha diagonal que particiona o bloco de codificação pode não ser codificada. A Tabela 2 expressa os tipos de particionamento de um bloco de codificação em relação às informações de índice merge_triangle_idx. TABELA 2 [308] A partitioning type of a coding block to which diagonal partitioning is applied may be determined based on index information. That is, the index information may specify a combination of a merge candidate of the first triangular prediction unit, a merge candidate of the second triangular prediction unit, and a partitioning direction of the coding block. When a partitioning type of the coding block is determined based on index information, the triangle_partition_type_flag information indicating the direction of a diagonal line partitioning the coding block may not be encoded. Table 2 expresses the partitioning types of a coding block with respect to the merge_triangle_idx index information. TABLE 2

[309] Quando A Variável Triangledir É 0, Indica Que O Tipo De Particionamento Do Triângulo Esquerdo É Aplicado Ao Bloco De Codificação, E Quando A Variável Triangledir É 1, Indica Que O Tipo De Particionamento Do Triângulo Direito É Aplicado Ao Bloco De Codificação. Ao Combinar A Tabela 1 E A Tabela 2, Pode Ser Definido Para Especificar Uma Combinação Do Candidato A Mesclagem Da Primeira Unidade De Previsão Triangular, O Candidato A Mesclagem Da Segunda Unidade De Previsão Triangular E A Direção De Particionamento Do Bloco De Codificação Por Informação De Índice Merge_triangle_idx.[309] When the triangledir variable is 0, it indicates that the left triangle partitioning type is applied to the coding block, and when the triangledir variable is 1, it indicates that the right triangle partitioning type is applied to the coding block. When combining Table 1 and Table 2, it can be set to specify a combination of the merge candidate of the first triangle prediction unit, the merge candidate of the second triangle prediction unit, and the partitioning direction of the coding block by index information Merge_triangle_idx.

[310] Como outro exemplo, as informações de índice apenas para qualquer uma entre a primeira unidade de previsão triangular e a segunda unidade de previsão triangular podem ser sinalizadas, e um índice de um candidato a mesclagem triangular para o outro entre a primeira unidade de previsão triangular e a segunda unidade de previsão triangular pode ser determinada com base nas informações de índice. Por exemplo, um candidato a mesclagem triangular da primeira unidade de previsão triangular pode ser determinado com base na informação de índice merge_triangle_idx indicando um índice de qualquer um dentre os candidatos a mesclagem triangular. Além disso, um candidato a mesclagem triangular da segunda unidade de previsão triangular pode ser especificado com base em merge_triangle_idx. Por exemplo, o candidato a mesclagem triangular da segunda unidade de previsão triangular pode ser derivado adicionando ou subtraindo um deslocamento para ou da informação de índice merge_triangle_idx. O deslocamento pode ser um número inteiro, como 1 ou 2. Por exemplo, um candidato a mesclagem triangular tendo um valor obtido pela adição de 1 a merge_traingle_idx como um índice pode ser determinado como o candidato a mesclagem triangular da segunda unidade de previsão triangular. Quando merge_triangle_idx indica um candidato a mesclagem triangular tendo o maior valor de índice entre os candidatos a mesclagem triangular, as informações de movimento da segunda unidade de previsão triangular podem ser derivadas de um candidato a mesclagem triangular tendo um índice de 0 ou um candidato a mesclagem triangular tendo um valor obtido por subtração 1 de merge_triangle_idx como um índice.[310] As another example, index information only for any one of the first triangular prediction unit and the second triangular prediction unit may be flagged, and an index from one triangular merge candidate to the other one of the first triangular prediction unit and the second triangular prediction unit may be determined based on the index information. For example, a triangular merge candidate of the first triangular prediction unit may be determined based on the index information merge_triangle_idx indicating an index of any one of the triangular merge candidates. Furthermore, a triangular merge candidate of the second triangular prediction unit may be specified based on merge_triangle_idx. For example, the triangular merge candidate of the second triangular prediction unit may be derived by adding or subtracting an offset to or from the index information merge_triangle_idx. The offset can be an integer such as 1 or 2. For example, a triangular merge candidate having a value obtained by adding 1 to merge_traingle_idx as an index can be determined as the triangular merge candidate of the second triangular prediction unit. When merge_triangle_idx indicates a triangular merge candidate having the largest index value among the triangular merge candidates, the motion information of the second triangular prediction unit can be derived from a triangular merge candidate having an index of 0 or a triangular merge candidate having a value obtained by subtracting 1 from merge_triangle_idx as an index.

[311] Alternativamente, as informações de movimento da segunda unidade de previsão triangular podem ser derivadas de um candidato a mesclagem triangular tendo uma imagem de referência igual à do candidato a mesclagem triangular da primeira unidade de previsão triangular especificada pela informação de índice. Aqui, o candidato a mesclagem triangular tendo uma imagem de referência igual à do candidato a mesclagem triangular da primeira unidade de previsão triangular pode indicar um candidato a mesclagem triangular tendo pelo menos uma entre a imagem de referência L0 e a imagem de referência L1 igual àquelas do triângulo candidato a mesclagem da primeira unidade de previsão triangular. Quando há uma pluralidade de candidatos a mesclagem triangular tendo uma imagem de referência igual à do candidato a mesclagem triangular da primeira unidade de previsão triangular, pelo menos um dentre os candidatos a mesclagem triangular pode ser selecionado com base em se o candidato a mesclagem inclui informações de movimento bidirecional ou um valor de diferença entre o índice do candidato a mesclagem e as informações do índice.[311] Alternatively, the motion information of the second triangular prediction unit may be derived from a triangular merge candidate having a reference image equal to that of the triangular merge candidate of the first triangular prediction unit specified by the index information. Here, the triangular merge candidate having a reference image equal to that of the triangular merge candidate of the first triangular prediction unit may indicate a triangular merge candidate having at least one of the L0 reference image and the L1 reference image equal to those of the triangular merge candidate of the first triangular prediction unit. When there are a plurality of triangular merge candidates having a reference image equal to that of the triangular merge candidate of the first triangular prediction unit, at least one of the triangular merge candidates may be selected based on whether the merge candidate includes bidirectional motion information or a difference value between the index of the merge candidate and the index information.

[312] Como outro exemplo, as informações de índice podem ser sinalizadas para cada uma da primeira unidade de previsão triangular e da segunda unidade de previsão triangular. Por exemplo, a primeira informação de índice 1st_merge_idx para determinar um candidato a mesclagem triangular da primeira unidade de previsão triangular e a segunda informação de índice 2nd_merge_idx para determinar um candidato a mesclagem triangular da segunda unidade de previsão triangular pode ser sinalizada através de um fluxo de bits. As informações de movimento da primeira unidade de previsão triangular podem ser derivadas do candidato a mesclagem triangular determinado com base na primeira informação de índice 1st_merge_idx e as informações de movimento da segunda unidade de previsão triangular podem ser derivadas do candidato a mesclagem triangular determinado com base em informações de segundo índice 2nd_merge_idx.[312] As another example, index information may be signaled to each of the first triangular prediction unit and the second triangular prediction unit. For example, the first index information 1st_merge_idx for determining a triangular merge candidate of the first triangular prediction unit and the second index information 2nd_merge_idx for determining a triangular merge candidate of the second triangular prediction unit may be signaled via a bit stream. The motion information of the first triangular prediction unit may be derived from the triangular merge candidate determined based on the first index information 1st_merge_idx and the motion information of the second triangular prediction unit may be derived from the triangular merge candidate determined based on the second index information 2nd_merge_idx.

[313] As primeiras informações de índice 1st_merge_idx podem indicar um índice de qualquer um dentre os candidatos a mesclagem triangular incluídos na lista de candidatos a mesclagem triangular. O candidato a mesclagem triangular da primeira unidade de previsão triangular pode ser determinado como um candidato a mesclagem triangular indicado pela primeira informação de índice 1st_merge_idx.[313] The first index information 1st_merge_idx may indicate an index of any of the triangular merge candidates included in the triangular merge candidate list. The triangular merge candidate of the first triangular prediction unit may be determined as a triangular merge candidate indicated by the first index information 1st_merge_idx.

[314] O candidato a mesclagem triangular indicado pela primeira informação de índice 1st_merge_idx pode ser definido para não ser usado como um candidato a mesclagem triangular da segunda unidade de previsão triangular. Por conseguinte, a segunda informação de índice 2nd_merge_idx da segunda unidade de previsão triangular pode indicar um índice de qualquer um dentre os candidatos a mesclagem triangular restantes, excluindo o candidato a mesclagem triangular indicado pela primeira informação de índice. Quando o valor da segunda informação de índice 2nd_merge_idx é menor do que o valor da primeira informação de índice 1st_merge_idx, o candidato a mesclagem triangular da segunda unidade de previsão triangular pode ser determinado como um candidato a mesclagem triangular tendo a informação de índice indicada pela segunda informação de índice 2nd_merge_idx. Por outro lado, quando o valor da segunda informação de índice 2nd_merge_idx é igual ou maior que o valor da primeira informação de índice 1st_merge_idx, o candidato a mesclagem triangular da segunda unidade de previsão triangular pode ser determinado como um candidato a mesclagem triangular tendo um valor obtido por adicionando 1 ao valor da segunda informação do índice 2nd_merge_idx como um índice.[314] The triangular merge candidate indicated by the first index information 1st_merge_idx may be set to not be used as a triangular merge candidate of the second triangular prediction unit. Therefore, the second index information 2nd_merge_idx of the second triangular prediction unit may indicate an index of any one of the remaining triangular merge candidates, excluding the triangular merge candidate indicated by the first index information. When the value of the second index information 2nd_merge_idx is smaller than the value of the first index information 1st_merge_idx, the triangular merge candidate of the second triangular prediction unit may be determined as a triangular merge candidate having the index information indicated by the second index information 2nd_merge_idx. On the other hand, when the value of the second index information 2nd_merge_idx is equal to or greater than the value of the first index information 1st_merge_idx, the triangular merge candidate of the second triangular prediction unit can be determined as a triangular merge candidate having a value obtained by adding 1 to the value of the second index information 2nd_merge_idx as an index.

[315] Alternativamente, sinalizar ou não a segunda informação de índice pode ser determinado de acordo com o número de candidatos a mesclagem triangular incluídos na lista de candidatos a mesclagem triangular. Por exemplo, quando o número máximo de candidatos a mesclagem triangular que a lista de candidatos a mesclagem triangular pode incluir não excede 2, a sinalização da segunda informação de índice pode ser omitida. Quando a sinalização da segunda informação de índice é omitida, um segundo candidato a mesclagem triangular pode ser derivado adicionando ou subtraindo um deslocamento para ou da primeira informação de índice. Por exemplo, quando o número máximo de candidatos a mesclagem triangular que a lista de candidatos a mesclagem triangular pode incluir é 2 e a primeira informação de índice indica o índice 0, o segundo candidato a mesclagem triangular pode ser derivado adicionando 1 à primeira informação de índice. Alternativamente, quando o número máximo de candidatos a mesclagem triangular que a lista de candidatos a mesclagem triangular pode incluir é 2 e a primeira informação de índice indica 1, o segundo candidato a mesclagem triangular pode ser derivado subtraindo 1 da primeira informação de índice.[315] Alternatively, whether or not to flag the second index information may be determined according to the number of triangular merge candidates included in the triangular merge candidate list. For example, when the maximum number of triangular merge candidates that the triangular merge candidate list can include does not exceed 2, the flagging of the second index information may be omitted. When the flagging of the second index information is omitted, a second triangular merge candidate may be derived by adding or subtracting an offset to or from the first index information. For example, when the maximum number of triangular merge candidates that the triangular merge candidate list can include is 2 and the first index information indicates index 0, the second triangular merge candidate may be derived by adding 1 to the first index information. Alternatively, when the maximum number of triangular merge candidates that the triangular merge candidate list can include is 2 and the first index information indicates 1, the second triangular merge candidate may be derived by subtracting 1 from the first index information.

[316] Alternativamente, quando a sinalização da segunda informação de índice é omitida, a segunda informação de índice pode ser definida para um valor padrão. Aqui, o valor padrão pode ser 0. O segundo candidato a mesclagem triangular pode ser derivado comparando a primeira informação de índice e a segunda informação de índice. Por exemplo, quando a segunda informação de índice é menor do que a primeira informação de índice, um candidato a mesclagem com índice 0 pode ser definido como o segundo candidato a mesclagem triangular, e quando a segunda informação de índice é igual ou maior que a primeira informação de índice, um O candidato a mesclagem com índice 1 pode ser definido como o segundo candidato a mesclagem triangular.[316] Alternatively, when the flag of the second index information is omitted, the second index information may be set to a default value. Here, the default value may be 0. The second triangular merge candidate may be derived by comparing the first index information and the second index information. For example, when the second index information is less than the first index information, a merge candidate with index 0 may be defined as the second triangular merge candidate, and when the second index information is equal to or greater than the first index information, a merge candidate with index 1 may be defined as the second triangular merge candidate.

[317] Quando o candidato a mesclagem triangular tem informações de movimento unidirecional, as informações de movimento unidirecional do candidato a mesclagem triangular podem ser definidas como informações de movimento da unidade de previsão triangular. Por outro lado, quando o candidato a mesclagem triangular tem informações de movimento bidirecional, apenas uma entre as informações de movimento L0 e as informações de movimento L1 pode ser definida como informações de movimento da unidade de previsão triangular. Qual entre as informações de movimento L0 e as informações de movimento L1 será obtido pode ser determinado com base no índice do candidato a mesclagem triangular ou informações de movimento de outra unidade de previsão triangular.[317] When the triangular merge candidate has unidirectional motion information, the unidirectional motion information of the triangular merge candidate can be set as the motion information of the triangular prediction unit. On the other hand, when the triangular merge candidate has bidirectional motion information, only one of the L0 motion information and the L1 motion information can be set as the motion information of the triangular prediction unit. Which one of the L0 motion information and the L1 motion information will be obtained can be determined based on the index of the triangular merge candidate or motion information of another triangular prediction unit.

[318] Por exemplo, quando o índice do candidato a mesclagem triangular é um número par, as informações de movimento L0 da unidade de previsão triangular podem ser definidas como 0 e as informações de movimento L1 do candidato a mesclagem triangular podem ser definidas como informações de movimento L1 de a unidade de previsão triangular. Por outro lado, quando o índice do candidato a mesclagem triangular é um número ímpar, as informações de movimento L1 da unidade de previsão triangular podem ser definidas como 0 e as informações de movimento L0 do candidato a mesclagem triangular podem ser definidas como 0. Contrariamente, quando o índice do candidato a mesclagem triangular é um número par, a informação de movimento L0 do candidato a mesclagem triangular pode ser definida como informação de movimento L0 da unidade de previsão triangular e quando o índice do candidato a mesclagem triangular é um número ímpar, a informação de movimento L1 do candidato a mesclagem triangular pode ser definido como informação de movimento L1 da unidade de previsão triangular. Alternativamente, quando o candidato a mesclagem triangular é um número par para a primeira unidade de previsão triangular, a informação de movimento L0 do candidato a mesclagem triangular pode ser definida como informação de movimento L0 da primeira unidade de previsão triangular, enquanto que quando o candidato a mesclagem triangular é um número ímpar para a segunda unidade de previsão triangular, as informações de movimento L1 do candidato a mesclagem triangular podem ser definidas como informações de movimento L1 da segunda unidade de previsão triangular.[318] For example, when the index of the triangular merge candidate is an even number, the L0 motion information of the triangular prediction unit can be set to 0, and the L1 motion information of the triangular merge candidate can be set to L1 motion information of the triangular prediction unit. Conversely, when the index of the triangular merge candidate is an odd number, the L1 motion information of the triangular prediction unit can be set to 0, and the L0 motion information of the triangular merge candidate can be set to 0. Contrarily, when the index of the triangular merge candidate is an even number, the L0 motion information of the triangular merge candidate can be set to L0 motion information of the triangular prediction unit, and when the index of the triangular merge candidate is an odd number, the L1 motion information of the triangular merge candidate can be set to L1 motion information of the triangular prediction unit. Alternatively, when the triangular merge candidate is an even number for the first triangular prediction unit, the L0 motion information of the triangular merge candidate can be defined as the L0 motion information of the first triangular prediction unit, while when the triangular merge candidate is an odd number for the second triangular prediction unit, the L1 motion information of the triangular merge candidate can be defined as the L1 motion information of the second triangular prediction unit.

[319] Alternativamente, quando a primeira unidade de previsão triangular tem informação de movimento L0, informação de movimento L0 da segunda unidade de previsão triangular pode ser ajustada para 0, e informação de movimento L1 do candidato a mesclagem triangular pode ser ajustada como informação de movimento L1 do segundo unidade de previsão triangular. Por outro lado, quando a primeira unidade de previsão triangular tem informação de movimento L1, informação de movimento L1 da segunda unidade de previsão triangular pode ser ajustada para 0, e informação de movimento L0 do candidato a mesclagem triangular pode ser ajustada como informação de movimento L0 do segundo unidade de previsão triangular.[319] Alternatively, when the first triangular prediction unit has L0 motion information, L0 motion information of the second triangular prediction unit may be set to 0, and L1 motion information of the triangular merge candidate may be set as L1 motion information of the second triangular prediction unit. Conversely, when the first triangular prediction unit has L1 motion information, L1 motion information of the second triangular prediction unit may be set to 0, and L0 motion information of the triangular merge candidate may be set as L0 motion information of the second triangular prediction unit.

[320] Uma lista de candidatos a mesclagem triangular para derivar informações de movimento da primeira unidade de previsão triangular e uma lista de candidatos a mesclagem triangular para derivar informações de movimento da segunda unidade de previsão triangular podem ser definidas de forma diferente.[320] A list of triangular merge candidates for deriving motion information from the first triangular prediction unit and a list of triangular merge candidates for deriving motion information from the second triangular prediction unit may be defined differently.

[321] Por exemplo, quando um candidato a mesclagem triangular para derivar informações de movimento da primeira unidade de previsão triangular na lista de candidatos a mesclagem triangular é especificado com base nas informações de índice para a primeira unidade de previsão triangular, as informações de movimento da segunda unidade de previsão triangular podem ser derivada usando a lista de candidatos de mesclagem triangular, incluindo os candidatos de mesclagem triangular restantes, excluindo o candidato de mesclagem triangular indicado pelas informações de índice. Especificamente, a informação de movimento da segunda unidade de previsão triangular pode ser derivada de qualquer um dentre os candidatos a mesclagem triangular restantes.[321] For example, when a triangular merge candidate for deriving motion information of the first triangular prediction unit in the list of triangular merge candidates is specified based on the index information for the first triangular prediction unit, the motion information of the second triangular prediction unit may be derived using the list of triangular merge candidates, including the remaining triangular merge candidates, excluding the triangular merge candidate indicated by the index information. Specifically, the motion information of the second triangular prediction unit may be derived from any of the remaining triangular merge candidates.

[322] Por conseguinte, o número máximo de candidatos a mesclagem triangular que a lista de candidatos a mesclagem triangular da primeira unidade de previsão triangular inclui e o número máximo de candidatos a mesclagem triangular que a lista de candidatos a mesclagem triangular da segunda unidade de previsão triangular inclui podem ser diferentes. Por exemplo, quando a lista de candidatos a mesclagem triangular da primeira unidade de previsão triangular inclui candidatos a mesclagem M, a lista de candidatos a mesclagem triangular da segunda unidade de previsão triangular pode incluir candidatos a mesclagem M-1 excluindo o candidato a mesclagem triangular indicado pelas informações de índice da primeira unidade de previsão triangular.[322] Accordingly, the maximum number of triangular merge candidates that the triangular merge candidate list of the first triangular prediction unit includes and the maximum number of triangular merge candidates that the triangular merge candidate list of the second triangular prediction unit includes may be different. For example, when the triangular merge candidate list of the first triangular prediction unit includes M merge candidates, the triangular merge candidate list of the second triangular prediction unit may include M-1 merge candidates excluding the triangular merge candidate indicated by the index information of the first triangular prediction unit.

[323] Como outro exemplo, um candidato a mesclagem de cada unidade de previsão triangular é derivado com base em blocos vizinhos adjacentes a um bloco de codificação e a disponibilidade dos blocos vizinhos pode ser determinada considerando a forma ou a posição da unidade de previsão triangular.[323] As another example, a merge candidate of each triangular prediction unit is derived based on neighboring blocks adjacent to a coding block, and the availability of neighboring blocks can be determined by considering the shape or position of the triangular prediction unit.

[324] A Figura 27 é uma vista para descrever exemplos de determinação da disponibilidade de um bloco vizinho para cada unidade de previsão triangular.[324] Figure 27 is a view to describe examples of determining the availability of a neighboring block for each triangular forecast unit.

[325] Um bloco vizinho não adjacente à primeira unidade de previsão triangular pode ser definido como indisponível para a primeira unidade de previsão triangular e um bloco vizinho não adjacente à segunda unidade de previsão triangular pode ser definido como indisponível para a segunda unidade de previsão triangular.[325] A neighboring block not adjacent to the first triangular prediction unit may be defined as unavailable to the first triangular prediction unit and a neighboring block not adjacent to the second triangular prediction unit may be defined as unavailable to the second triangular prediction unit.

[326] Por exemplo, como mostrado no exemplo da Figura 27 (a), quando o tipo de particionamento triangular esquerda é aplicado a um bloco de codificação, pode ser determinado que os blocos A1, A0 e A2 adjacentes à primeira unidade de previsão triangular entre os blocos vizinhos adjacentes ao bloco de codificação estão disponíveis para o primeiro unidade de previsão triangular, enquanto os blocos B0 e B1 estão indisponíveis para a primeira unidade de previsão triangular. Por conseguinte, a lista de candidatos a mesclagem triangular para a primeira unidade de previsão triangular pode incluir candidatos a mesclagem triangular derivados dos blocos A1, A0 e A2 e pode não incluir candidatos a mesclagem triangular derivados dos blocos B0 e B1.[326] For example, as shown in the example of Figure 27(a), when the left triangular partitioning type is applied to a coding block, it may be determined that blocks A1, A0, and A2 adjacent to the first triangular prediction unit among neighboring blocks adjacent to the coding block are available to the first triangular prediction unit, while blocks B0 and B1 are unavailable to the first triangular prediction unit. Accordingly, the list of triangular merge candidates for the first triangular prediction unit may include triangular merge candidates derived from blocks A1, A0, and A2, and may not include triangular merge candidates derived from blocks B0 and B1.

[327] Como mostrado no exemplo da Figura 27 (b), quando o tipo de particionamento triangular esquerda é aplicado a um bloco de codificação, pode ser determinado que os blocos B0 e B1 adjacentes à segunda unidade de previsão triangular estão disponíveis para a segunda unidade de previsão triangular, enquanto os blocos A1, A0 e A2 não estão disponíveis para a segunda unidade de previsão triangular. Por conseguinte, a lista de candidatos a mesclagem triangular para a segunda unidade de previsão triangular pode incluir candidatos a mesclagem triangular derivados dos blocos B0 e B1 e pode não incluir candidatos a mesclagem triangular derivados dos blocos A1, A0 e A2.[327] As shown in the example of Figure 27(b), when the left triangular partitioning type is applied to a coding block, it can be determined that blocks B0 and B1 adjacent to the second triangular prediction unit are available to the second triangular prediction unit, while blocks A1, A0, and A2 are not available to the second triangular prediction unit. Therefore, the list of triangular merge candidates for the second triangular prediction unit may include triangular merge candidates derived from blocks B0 and B1, and may not include triangular merge candidates derived from blocks A1, A0, and A2.

[328] Por conseguinte, o número de candidatos a mesclagem triangular ou o intervalo de candidatos a mesclagem triangular que a unidade de previsão triangular pode usar pode ser determinado com base em pelo menos um dentre a posição da unidade de previsão triangular ou o tipo de particionamento do bloco de codificação.[328] Accordingly, the number of triangular merge candidates or the range of triangular merge candidates that the triangular prediction unit can use can be determined based on at least one of the position of the triangular prediction unit or the partitioning type of the coding block.

[329] Como outro exemplo, o modo de mesclagem pode ser aplicado a apenas uma entre a primeira unidade de previsão triangular e a segunda unidade de previsão triangular. Além disso, a informação de movimento da outra entre a primeira unidade de previsão triangular e a segunda unidade de previsão triangular pode ser definida para ser a mesma que a informação de movimento da unidade de previsão triangular à qual o modo a mesclagem é aplicado, ou pode ser derivado refinando as informações de movimento da unidade de previsão triangular à qual o modo de mesclagem é aplicado.[329] As another example, the blending mode may be applied to only one of the first triangular prediction unit and the second triangular prediction unit. Furthermore, the motion information of the other of the first triangular prediction unit and the second triangular prediction unit may be defined to be the same as the motion information of the triangular prediction unit to which the blending mode is applied, or may be derived by refining the motion information of the triangular prediction unit to which the blending mode is applied.

[330] Por exemplo, um vetor de movimento e um índice de imagem de referência da primeira unidade de previsão triangular podem ser derivados com base em um candidato a mesclagem triangular e um vetor de movimento da segunda unidade de previsão triangular pode ser derivado refinando o vetor de movimento do primeira unidade de previsão triangular. Por exemplo, o vetor de movimento da segunda unidade de previsão triangular pode ser derivado adicionando ou subtraindo um vetor de movimento refinado {Rx, Ry} para ou do vetor de movimento {mvD1LXx, mvD1LXy} da primeira unidade de previsão triangular. O índice de imagem de referência da segunda unidade de previsão triangular pode ser definido para ser o mesmo que o índice de imagem de referência da primeira unidade de previsão triangular.[330] For example, a motion vector and a reference image index of the first triangular prediction unit may be derived based on a triangular merge candidate, and a motion vector of the second triangular prediction unit may be derived by refining the motion vector of the first triangular prediction unit. For example, the motion vector of the second triangular prediction unit may be derived by adding or subtracting a refined motion vector {Rx, Ry} to or from the motion vector {mvD1LXx, mvD1LXy} of the first triangular prediction unit. The reference image index of the second triangular prediction unit may be set to be the same as the reference image index of the first triangular prediction unit.

[331] As informações para determinar um vetor de movimento refinado indicando a diferença entre o vetor de movimento da primeira unidade de previsão triangular e o vetor de movimento da segunda unidade de previsão triangular podem ser sinalizadas através de um fluxo de bits. As informações podem incluir pelo menos uma entre as informações que indicam o tamanho do vetor de movimento refinado e informações que indicam o sinal do vetor de movimento refinado.[331] Information for determining a refined motion vector indicating the difference between the motion vector of the first triangular prediction unit and the motion vector of the second triangular prediction unit may be signaled via a bit stream. The information may include at least one of information indicating the size of the refined motion vector and information indicating the sign of the refined motion vector.

[332] Alternativamente, o sinal do vetor de movimento refinado pode ser derivado com base em pelo menos um dentre a posição da unidade de previsão triangular, o índice da unidade de previsão triangular e o tipo de particionamento aplicado ao bloco de codificação.[332] Alternatively, the refined motion vector signal may be derived based on at least one of the position of the triangular prediction unit, the index of the triangular prediction unit, and the type of partitioning applied to the coding block.

[333] Como outro exemplo, o vetor de movimento e o índice de imagem de referência de qualquer um dentre a primeira unidade de previsão triangular e a segunda unidade de previsão triangular podem ser sinalizados. O vetor de movimento do outro entre a primeira unidade de previsão triangular e a segunda unidade de previsão triangular pode ser derivado refinando o vetor de movimento sinalizado.[333] As another example, the motion vector and reference image index of either one of the first triangular prediction unit and the second triangular prediction unit may be signaled. The motion vector of the other one of the first triangular prediction unit and the second triangular prediction unit may be derived by refining the signaled motion vector.

[334] Por exemplo, o vetor de movimento e o índice de imagem de referência da primeira unidade de previsão triangular podem ser determinados com base na informação sinalizada de um fluxo de bits. Além disso, o vetor de movimento da segunda unidade de previsão triangular pode ser derivado refinando o vetor de movimento da primeira unidade de previsão triangular. Por exemplo, o vetor de movimento da segunda unidade de previsão triangular pode ser derivado adicionando ou subtraindo um vetor de movimento refinado {Rx, Ry} para ou do vetor de movimento {mvD1LXx, mvD1LXy} da primeira unidade de previsão triangular. O índice de imagem de referência da segunda unidade de previsão triangular pode ser definido para ser o mesmo que o índice de imagem de referência da primeira unidade de previsão triangular.[334] For example, the motion vector and reference picture index of the first triangular prediction unit may be determined based on the signaled information of a bit stream. Furthermore, the motion vector of the second triangular prediction unit may be derived by refining the motion vector of the first triangular prediction unit. For example, the motion vector of the second triangular prediction unit may be derived by adding or subtracting a refined motion vector {Rx, Ry} to or from the motion vector {mvD1LXx, mvD1LXy} of the first triangular prediction unit. The reference picture index of the second triangular prediction unit may be set to be the same as the reference picture index of the first triangular prediction unit.

[335] A previsão de compensação de previsão de movimento para cada bloco de codificação pode ser realizada com base nas informações de movimento da primeira unidade de previsão triangular e as informações de movimento da segunda unidade de previsão triangular. Neste ponto, a degradação da qualidade do vídeo pode ocorrer no limite entre a primeira unidade de previsão triangular e a segunda unidade de previsão triangular. Por exemplo, a continuidade da qualidade do vídeo pode ser degradada na vizinhança de uma borda existente no limite entre a primeira unidade de previsão triangular e a segunda unidade de previsão triangular. De modo a reduzir a degradação da qualidade do vídeo no limite, uma amostra de previsão pode ser derivada por meio de um filtro de suavização ou uma previsão ponderada.[335] Motion prediction compensation prediction for each coding block may be performed based on the motion information of the first triangular prediction unit and the motion information of the second triangular prediction unit. At this point, video quality degradation may occur at the boundary between the first triangular prediction unit and the second triangular prediction unit. For example, video quality continuity may be degraded in the vicinity of an edge existing at the boundary between the first triangular prediction unit and the second triangular prediction unit. In order to reduce video quality degradation at the boundary, a prediction sample may be derived via a smoothing filter or a weighted prediction.

[336] As amostras de previsão em um bloco de codificação ao qual o particionamento diagonal é aplicado podem ser derivadas com base em uma operação de soma ponderada de uma primeira amostra de previsão obtida com base nas informações de movimento da primeira unidade de previsão triangular e uma segunda amostra de previsão obtida com base nas informações de movimento da segunda unidade de previsão triangular. Alternativamente, uma amostra de previsão da primeira unidade de previsão triangular é derivada de um primeiro bloco de previsão determinado com base nas informações de movimento da primeira unidade de previsão triangular e uma amostra de previsão da segunda unidade de previsão triangular é derivada de um segundo bloco de previsão determinado com base nas informações de movimento da segunda unidade de previsão triangular e uma amostra de previsão posicionada na região limite da primeira unidade de previsão triangular e a segunda unidade de previsão triangular podem ser derivadas com base em uma operação de soma ponderada da primeira amostra de previsão incluída na primeira bloco de previsão e a segunda amostra de previsão incluída no segundo bloco de previsão. Por exemplo, a Equação 6 mostra um exemplo de derivação de amostras de previsão da primeira unidade de previsão triangular e da segunda unidade de previsão triangular. [Equação 6] [336] Prediction samples in a coding block to which diagonal partitioning is applied may be derived based on a weighted sum operation of a first prediction sample obtained based on the motion information of the first triangular prediction unit and a second prediction sample obtained based on the motion information of the second triangular prediction unit. Alternatively, a prediction sample of the first triangular prediction unit is derived from a first prediction block determined based on the motion information of the first triangular prediction unit, and a prediction sample of the second triangular prediction unit is derived from a second prediction block determined based on the motion information of the second triangular prediction unit, and a prediction sample positioned in the boundary region of the first triangular prediction unit and the second triangular prediction unit may be derived based on a weighted sum operation of the first prediction sample included in the first prediction block and the second prediction sample included in the second prediction block. For example, Equation 6 shows an example of deriving prediction samples from the first triangular prediction unit and the second triangular prediction unit. [Equation 6]

[337] Na Equação 6, P1 denota uma primeira amostra de previsão e P2 denota uma segunda amostra de previsão. w1 denota um valor de ponderação aplicado à primeira amostra de previsão e (1-w1) denota um valor de ponderação aplicado à segunda amostra de previsão. Como mostrado no exemplo da Equação 6, o valor de ponderação aplicado à segunda amostra de previsão pode ser derivado subtraindo o valor de ponderação aplicado à primeira amostra de previsão de um valor constante.[337] In Equation 6, P1 denotes a first forecast sample and P2 denotes a second forecast sample. w1 denotes a weighting value applied to the first forecast sample and (1-w1) denotes a weighting value applied to the second forecast sample. As shown in the example in Equation 6, the weighting value applied to the second forecast sample can be derived by subtracting the weighting value applied to the first forecast sample from a constant value.

[338] Quando o tipo de particionamento triangular esquerda é aplicado a um bloco de codificação, a região limite pode incluir amostras de previsão das quais a coordenada do eixo geométrico x e a coordenada do eixo geométrico y são as mesmas. Por outro lado, quando o tipo de particionamento triangular direita é aplicado a um bloco de codificação, a região limite pode incluir amostras de previsão das quais a soma da coordenada do eixo geométrico x e da coordenada do eixo geométrico y é maior ou igual a um primeiro valor limítrofe e menor do que um segundo valor limítrofe.[338] When the left triangular partitioning type is applied to a coding block, the boundary region may include prediction samples of which the x-axis coordinate and the y-axis coordinate are the same. Conversely, when the right triangular partitioning type is applied to a coding block, the boundary region may include prediction samples of which the sum of the x-axis coordinate and the y-axis coordinate is greater than or equal to a first boundary value and less than a second boundary value.

[339] Um tamanho da região limite pode ser determinado com base em pelo menos um dentre o tamanho do bloco de codificação, a forma do bloco de codificação, informações de movimento das unidades de previsão triangulares, um valor de diferença entre os vetores de movimento das unidades de previsão triangulares, uma ordem de saída de imagens de referência e um valor de diferença entre a primeira amostra de previsão e a segunda amostra de previsão no limite diagonal.[339] A size of the boundary region may be determined based on at least one of the size of the coding block, the shape of the coding block, motion information of the triangular prediction units, a difference value between the motion vectors of the triangular prediction units, an output order of reference images, and a difference value between the first prediction sample and the second prediction sample at the diagonal boundary.

[340] As Figuras 28 e 29 são vistas que mostram exemplos de derivação de uma amostra de previsão com base em uma operação de soma ponderada de uma primeira amostra de previsão e uma segunda amostra de previsão. A Figura 28 mostra um exemplo de aplicação do tipo de particionamento triangular esquerda a um bloco de codificação, e a FIG. 29 mostra um exemplo de aplicação do tipo de particionamento triangular direita a um bloco de codificação. Além disso, as Figuras 28 (a) e 29 (a) são vistas que mostram padrões de previsão para um componente luma e as Figuras 28 (b) e 29 (b) são vistas que mostram padrões de previsão para um componente de croma.[340] Figures 28 and 29 are views showing examples of deriving a prediction sample based on a weighted sum operation of a first prediction sample and a second prediction sample. Figure 28 shows an example of applying the left triangular partitioning type to a coding block, and FIG. 29 shows an example of applying the right triangular partitioning type to a coding block. Further, Figures 28(a) and 29(a) are views showing prediction patterns for a luma component, and Figures 28(b) and 29(b) are views showing prediction patterns for a chroma component.

[341] Nos desenhos, os números marcados nas amostras de previsão posicionadas perto do limite entre a primeira unidade de previsão e a segunda unidade de previsão indicam valores de ponderação aplicados à primeira amostra de previsão. Por exemplo, quando um número marcado em uma amostra de previsão é N, a amostra de previsão pode ser derivada aplicando um valor de ponderação de N/8 à primeira amostra de previsão e aplicando um valor de ponderação de (1-(N/8)) à segunda amostra de previsão.[341] In the drawings, numbers marked on the forecast samples positioned near the boundary between the first forecast unit and the second forecast unit indicate weighting values applied to the first forecast sample. For example, when a number marked on a forecast sample is N, the forecast sample may be derived by applying a weighting value of N/8 to the first forecast sample and applying a weighting value of (1-(N/8)) to the second forecast sample.

[342] Em uma região não limite, a primeira amostra de previsão ou a segunda amostra de previsão pode ser determinada como uma amostra de previsão. Com referência ao exemplo da Figura 28, em uma região pertencente à primeira unidade de previsão triangular entre as regiões nas quais o valor absoluto da diferença entre a coordenada do eixo geométrico x e a coordenada do eixo geométrico y é maior do que um valor limítrofe, a primeira amostra de previsão derivada com base nas informações de movimento da primeira unidade de previsão triangular podem ser determinadas como uma amostra de previsão. Por outro lado, em uma região pertencente à segunda unidade de previsão triangular entre as regiões em que o valor da diferença entre a coordenada do eixo geométrico x e a coordenada do eixo geométrico y é maior do que um valor limítrofe, a segunda amostra de previsão derivada com base nas informações de movimento da segunda unidade de previsão triangular pode ser determinada como uma amostra de previsão.[342] In a non-threshold region, either the first prediction sample or the second prediction sample may be determined as a prediction sample. Referring to the example of Figure 28, in a region belonging to the first triangular prediction unit among regions in which the absolute value of the difference between the x-axis coordinate and the y-axis coordinate is greater than a threshold value, the first prediction sample derived based on the motion information of the first triangular prediction unit may be determined as a prediction sample. On the other hand, in a region belonging to the second triangular prediction unit among regions in which the value of the difference between the x-axis coordinate and the y-axis coordinate is greater than a threshold value, the second prediction sample derived based on the motion information of the second triangular prediction unit may be determined as a prediction sample.

[343] Com referência ao exemplo da Figura 29, em uma região na qual a soma da coordenada do eixo geométrico x e da coordenada do eixo geométrico y é menor do que um primeiro valor limítrofe, a primeira amostra de previsão derivada com base nas informações de movimento da primeira unidade de previsão triangular pode ser determinada como uma amostra de previsão. Por outro lado, em uma região na qual a soma da coordenada do eixo geométrico x e da coordenada do eixo geométrico y é maior do que um segundo valor limítrofe, a segunda amostra de previsão derivada com base nas informações de movimento da segunda unidade de previsão triangular pode ser determinado como uma amostra de previsão.[343] Referring to the example of Figure 29, in a region in which the sum of the x-axis coordinate and the y-axis coordinate is less than a first threshold value, the first prediction sample derived based on the motion information of the first triangular prediction unit may be determined as a prediction sample. Conversely, in a region in which the sum of the x-axis coordinate and the y-axis coordinate is greater than a second threshold value, the second prediction sample derived based on the motion information of the second triangular prediction unit may be determined as a prediction sample.

[344] Um valor limítrofe para determinar uma região não limite pode ser determinado com base em pelo menos um dentre o tamanho de um bloco de codificação, a forma do bloco de codificação e um componente de cor. Por exemplo, quando o valor limítrofe para um componente luma é definido como N, o valor limítrofe para um componente croma pode ser definido como N/2.[344] A threshold value for determining a non-threshold region may be determined based on at least one of the size of a coding block, the shape of the coding block, and a color component. For example, when the threshold value for a luma component is set to N, the threshold value for a chroma component may be set to N/2.

[345] As amostras de previsão incluídas na região limite podem ser derivadas com base em uma operação de soma ponderada da primeira amostra de previsão e da segunda amostra de previsão. Neste ponto, os valores de ponderação aplicados à primeira amostra de previsão e à segunda amostra de previsão podem ser determinados com base em pelo menos um dentre a posição de uma amostra de previsão, o tamanho de um bloco de codificação, a forma do bloco de codificação e um componente de cor.[345] The prediction samples included in the boundary region may be derived based on a weighted sum operation of the first prediction sample and the second prediction sample. At this point, the weighting values applied to the first prediction sample and the second prediction sample may be determined based on at least one of the position of a prediction sample, the size of a coding block, the shape of the coding block, and a color component.

[346] Por exemplo, como mostrado no exemplo da Figura 28 (a), as amostras de previsão na posição da mesma coordenada do eixo geométrico x e coordenada do eixo geométrico y podem ser derivadas aplicando o mesmo valor de ponderação à primeira amostra de previsão e à segunda amostra de previsão. Amostras de previsão das quais o valor absoluto da diferença entre a coordenada do eixo geométrico x e a coordenada do eixo geométrico y é 1 podem ser derivadas definindo a razão do valor de ponderação aplicada à primeira amostra de previsão e a segunda amostra de previsão para (3: 1) ou (1: 3). Além disso, as amostras de previsão das quais o valor absoluto da diferença da coordenada do eixo geométrico x e da coordenada do eixo geométrico y é 2 podem ser derivadas definindo a razão do valor de ponderação aplicada à primeira amostra de previsão e à segunda amostra de previsão para (7 : 1) ou (1: 7).[346] For example, as shown in the example of Figure 28(a), prediction samples at the position of the same x-axis coordinate and y-axis coordinate can be derived by applying the same weighting value to the first prediction sample and the second prediction sample. Prediction samples of which the absolute value of the difference between the x-axis coordinate and the y-axis coordinate is 1 can be derived by setting the ratio of the weighting value applied to the first prediction sample and the second prediction sample to (3:1) or (1:3). Furthermore, prediction samples of which the absolute value of the difference of the x-axis coordinate and the y-axis coordinate is 2 can be derived by setting the ratio of the weighting value applied to the first prediction sample and the second prediction sample to (7:1) or (1:7).

[347] Alternativamente, como mostrado no exemplo da Figura 28 (b), as amostras de previsão na posição da mesma coordenada do eixo geométrico x e coordenada do eixo geométrico y podem ser derivadas aplicando o mesmo valor de ponderação à primeira amostra de previsão e à segunda amostra de previsão e amostras de previsão das quais o valor absoluto da diferença entre a coordenada do eixo geométrico x e a coordenada do eixo geométrico y é 1 pode ser derivada definindo a razão do valor de ponderação aplicada à primeira amostra de previsão e a segunda amostra de previsão para (7: 1) ou (1: 7).[347] Alternatively, as shown in the example of Figure 28(b), prediction samples at the position of the same x-axis coordinate and y-axis coordinate can be derived by applying the same weighting value to the first prediction sample and the second prediction sample, and prediction samples of which the absolute value of the difference between the x-axis coordinate and the y-axis coordinate is 1 can be derived by setting the ratio of the weighting value applied to the first prediction sample and the second prediction sample to (7:1) or (1:7).

[348] Por exemplo, como mostrado no exemplo da Figura 29 (a), as amostras de previsão das quais a soma da coordenada do eixo geométrico x e da coordenada do eixo geométrico y é menor do que a largura ou a altura de um bloco de codificação por 1 podem ser derivadas aplicando o mesmo valor de ponderação à primeira previsão amostra e a segunda amostra de previsão. Amostras de previsão das quais a soma da coordenada do eixo geométrico x e da coordenada do eixo geométrico y é igual ou menor do que a largura ou a altura do bloco de codificação por 2 podem ser derivadas definindo a razão de valor de ponderação aplicada à primeira amostra de previsão e a segunda amostra de previsão para (3: 1) ou (1: 3). Amostras de previsão das quais a soma das coordenadas do eixo geométrico x e das coordenadas do eixo geométrico y é maior ou menor do que a largura ou a altura do bloco de codificação por 1 ou 3 podem ser derivadas definindo a razão do valor de ponderação aplicada ao primeiro amostra de previsão e a segunda amostra de previsão para (7: 1) ou (1: 7).[348] For example, as shown in the example of Figure 29(a), prediction samples of which the sum of the x-axis coordinate and the y-axis coordinate is less than the width or height of a coding block by 1 can be derived by applying the same weighting value to the first prediction sample and the second prediction sample. Prediction samples of which the sum of the x-axis coordinate and the y-axis coordinate is equal to or less than the width or height of the coding block by 2 can be derived by setting the ratio of weighting value applied to the first prediction sample and the second prediction sample to (3:1) or (1:3). Prediction samples of which the sum of the x-axis coordinates and the y-axis coordinates is greater or less than the width or height of the coding block by 1 or 3 can be derived by setting the ratio of the weighting value applied to the first prediction sample and the second prediction sample to (7:1) or (1:7).

[349] Alternativamente, como mostrado no exemplo da Figura 29 (b), as amostras de previsão das quais a soma da coordenada do eixo geométrico x e da coordenada do eixo geométrico y é menor do que a largura ou a altura do bloco de codificação por 1 podem ser derivadas aplicando o mesmo valor de ponderação à primeira previsão amostra e a segunda amostra de previsão. Amostras de previsão das quais a soma da coordenada do eixo geométrico x e da coordenada do eixo geométrico y é igual ou menor do que a largura ou a altura do bloco de codificação por 2 podem ser derivadas definindo a razão de valor de ponderação aplicada à primeira amostra de previsão e a segunda amostra de previsão para (7: 1) ou (1: 7).[349] Alternatively, as shown in the example of Figure 29(b), prediction samples of which the sum of the x-axis coordinate and the y-axis coordinate is less than the width or height of the coding block by 1 can be derived by applying the same weighting value to the first prediction sample and the second prediction sample. Prediction samples of which the sum of the x-axis coordinate and the y-axis coordinate is equal to or less than the width or height of the coding block by 2 can be derived by setting the ratio of weighting value applied to the first prediction sample and the second prediction sample to (7:1) or (1:7).

[350] Como outro exemplo, o valor de ponderação pode ser determinado considerando a posição de uma amostra de previsão ou a forma de um bloco de codificação. As Equações 7 a 9 mostram um exemplo de derivação de um valor de ponderação quando o tipo de particionamento triangular esquerda é aplicado a um bloco de codificação. A Equação 7 mostra um exemplo de derivação de um valor de ponderação aplicado à primeira amostra de previsão quando o bloco de codificação é uma forma quadrada. [Equação 7] [350] As another example, the weight value can be determined by considering the position of a prediction sample or the shape of a coding block. Equations 7 through 9 show an example of deriving a weight value when the left triangular partitioning type is applied to a coding block. Equation 7 shows an example of deriving a weight value applied to the first prediction sample when the coding block is a square shape. [Equation 7]

[351] Na Equação 7, x e y denotam a posição de uma amostra de previsão. Quando um bloco de codificação tem uma forma não quadrada, um valor de ponderação aplicado à primeira amostra de previsão pode ser derivado como mostrado na Equação 8 ou 9. A Equação 8 mostra um caso em que a largura de um bloco de codificação é maior do que a altura, e A Equação 9 mostra um caso em que a largura de um bloco de codificação é menor do que a altura. [Equação 8] [Equação 9] [Equação 10][351] In Equation 7, x and y denote the position of a prediction sample. When a coding block has a non-square shape, a weighting value applied to the first prediction sample can be derived as shown in Equation 8 or 9. Equation 8 shows a case where the width of a coding block is greater than the height, and Equation 9 shows a case where the width of a coding block is less than the height. [Equation 8] [Equation 9] [Equation 10]

[352] Quando o tipo de particionamento triangular direita é aplicado a um bloco de codificação, um valor de ponderação aplicado à primeira amostra de previsão pode ser determinado como mostrado nas Equações 10 a 12. A Equação 10 mostra um exemplo de derivação de um valor de ponderação aplicado ao primeiro amostra de previsão quando o bloco de codificação é uma forma quadrada. [Equação 11] [Equação 12] [352] When the right triangular partitioning type is applied to a coding block, a weighting value applied to the first prediction sample can be determined as shown in Equations 10 through 12. Equation 10 shows an example of deriving a weighting value applied to the first prediction sample when the coding block is a square shape. [Equation 11] [Equation 12]

[353] Na Equação 11, CbH denota a altura do bloco de codificação.[353] In Equation 11, CbH denotes the height of the coding block.

[354] Como mostrado no exemplo, entre as amostras de previsão na região limite, as amostras de previsão incluídas na primeira unidade de previsão triangular são derivadas atribuindo um valor de ponderação maior do que aquele da segunda amostra de previsão para a primeira amostra de previsão, e previsão as amostras incluídas na segunda unidade de previsão triangular são derivadas atribuindo um valor de ponderação maior do que aquele da primeira amostra de previsão para a segunda amostra de previsão.[354] As shown in the example, among the forecast samples in the boundary region, the forecast samples included in the first triangular forecast unit are derived by assigning a weighting value greater than that of the second forecast sample to the first forecast sample, and the forecast samples included in the second triangular forecast unit are derived by assigning a weighting value greater than that of the first forecast sample to the second forecast sample.

[355] Quando o particionamento diagonal é aplicado a um bloco de codificação, pode ser configurado para não aplicar um modo de previsão combinado combinando o modo de intraprevisão e o modo de mesclagem para o bloco de codificação.[355] When diagonal partitioning is applied to a coding block, it can be configured to not apply a combined prediction mode by combining the intraprediction mode and the blending mode for the coding block.

[356] A intraprevisão é para prever um bloco atual usando amostras reconstruídas que foram codificadas/decodificadas na vizinhança do bloco atual. Neste ponto, as amostras reconstruídas antes de um filtro in-loop ser aplicado podem ser usadas para intraprevisão do bloco atual.[356] Intraprediction is to predict a current block using reconstructed samples that were encoded/decoded in the neighborhood of the current block. At this point, the reconstructed samples before an in-loop filter was applied can be used for intraprediction of the current block.

[357] A técnica de intraprevisão inclui intraprevisão baseada em matriz e intraprevisão geral considerando a direcionalidade em relação às amostras reconstruídas vizinhas. As informações que indicam a técnica de intraprevisão do bloco atual podem ser sinalizadas por meio de um fluxo de bits. As informações podem ser um sinalizador de 1 bit. Alternativamente, a técnica de intraprevisão do bloco atual pode ser determinada com base em pelo menos um dentre aposição do bloco atual, o tamanho do bloco atual, a forma do bloco atual e uma técnica de intraprevisão de um bloco vizinho. Por exemplo, quando o bloco atual existe através de um limite de imagem, ele pode ser configurado para não aplicar a intraprevisão-previsão baseada em matriz ao bloco atual..[357] 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 position of the current block, the size of the current block, the shape of the current block, and an intraprediction technique of a neighboring block. For example, when the current block exists across an image boundary, it may be configured to not apply matrix-based intraprediction to the current block.

[358] A intraprevisão com base em matriz de intraprevisão é um método de aquisição de um bloco de previsã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 na vizinhança do bloco atual. As informações para especificar qualquer uma entre uma pluralidade de matrizes armazenadas anteriormente podem ser sinalizadas por meio de um fluxo de bits. O decodificador pode determinar uma matriz para intraprevisão do bloco atual com base nas informações e no tamanho do bloco atual.[358] Intraprediction based on intraprediction matrix 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 in the neighborhood of the current block. Information for specifying any one 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.

[359] A intraprevisão geral é um método de aquisição de um bloco de previsão para o bloco atual com base em um modo de intraprevisão não angular ou um modo de intraprevisão angular.[359] 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.

[360] Uma imagem residual derivada pode ser derivada subtraindo um vídeo de previsão de um vídeo original. Nesse ponto, quando o vídeo residual é alterado para o domínio da frequência, a qualidade subjetiva do vídeo não é significativamente reduzida, embora os componentes de alta frequência entre os componentes de frequência sejam removidos. Consequentemente, quando os valores dos componentes de alta frequência são convertidos para pequenos ou os valores dos componentes de alta frequência são definidos como 0, há um efeito de aumento da eficiência de compressão sem gerar distorção visual significativa. Ao refletir 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 usando uma técnica de transformada, como Transformada de Cosseno Discreta (DCT) ou Transformada Seno Discreta (DST).[360] A derived residual image can be derived by subtracting a prediction video from an original video. At this point, when the residual video is shifted to the frequency domain, the subjective quality of the video is not significantly reduced, although the high-frequency components among the frequency components are removed. Consequently, when the values of the high-frequency components are converted to small or the values of the high-frequency components are set to 0, there is an effect of increasing the compression efficiency without generating significant visual distortion. By reflecting this characteristic, the current block can be transformed to decompose a residual video into two-dimensional frequency components. The transform can be performed using a transform technique such as Discrete Cosine Transform (DCT) or Discrete Sine Transform (DST).

[361] A transformada de vídeo bidimensional pode não ser realizada para alguns blocos do vídeo residual. Não realizar a transformada de vídeo bidimensional pode ser denominado como um salto de transformada. Quando o salto de transformada é aplicado, a quantização pode ser aplicada aos coeficientes residuais que não foram transformados.[361] The two-dimensional video transform may not be performed for some blocks of the residual video. Not performing the two-dimensional video transform can be referred to as a transform skip. When the transform skip is applied, quantization can be applied to the residual coefficients that were not transformed.

[362] Depois que o bloco atual é transformado usando DCT ou DST, o bloco atual transformado pode ser transformado novamente. Neste ponto, a transformada baseada 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.[362] After the current block is transformed using DCT or DST, the current transformed block can be transformed again. At this point, the DCT or DST-based transform can be defined as a first transform, and transforming again a block to which the first transform is applied can be defined as a second transform.

[363] A primeira transformada pode ser realizada usando qualquer um dentre uma pluralidade de candidatos a núcleo de transformada. Por exemplo, a primeira transformada pode ser realizada usando qualquer um dentre DCT2, DCT8 ou DCT7.[363] 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.

[364] Diferentes núcleos de transformada podem ser usados para a direção horizontal e a direção vertical. As informações que indicam 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 um fluxo de bits.[364] Different transform cores can 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 can be signaled via a bit stream.

[365] As 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 8 x 8 e a segunda transformada pode ser realizada em um sub-bloco de tamanho 4 x 4 entre o bloco 8 x 8 transformado. Neste ponto, os coeficientes de transformada das regiões residuais que não foram realizadas na segunda transformada podem ser definidos como 0.[365] The units for performing the first transform and the second transform may be different. For example, the first transform may be performed on an 8 x 8 block and the second transform may be performed on a sub-block of size 4 x 4 within the transformed 8 x 8 block. At this point, the transform coefficients of the residual regions that were not performed in the second transform may be set to 0.

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

[367] As informações que indicam se ou não a segunda transformada foi realizada podem ser sinalizadas por meio de um fluxo de bits.[367] Information indicating whether or not the second transform has been performed can be signaled by means of a bit stream.

[368] Alternativamente, se deve ou não realizar a segunda transformada pode ser determinado com base em se o núcleo de transformada de direção horizontal e o núcleo de transformada de direção vertical são os mesmos. Por exemplo, a segunda transformada pode ser realizada apenas quando o núcleo de transformada de direção horizontal e o núcleo de transformada de direção vertical são iguais. Alternativamente, a segunda transformada pode ser realizada apenas quando o núcleo de transformada de direção horizontal e o núcleo de transformada de direção vertical são diferentes um do outro.[368] Alternatively, whether or not to perform the second transform can be determined based on whether the horizontal direction transform kernel and the vertical direction transform kernel are the same. For example, the second transform can be performed only when the horizontal direction transform kernel and the vertical direction transform kernel are the same. Alternatively, the second transform can be performed only when the horizontal direction transform kernel and the vertical direction transform kernel are different from each other.

[369] Alternativamente, a segunda transformada pode ser permitida apenas quando a transformada da direção horizontal e a transformada da direção vertical usam um núcleo de transformada predefinido. Por exemplo, quando um núcleo de transformada DCT2 é usado para transformada da direção horizontal e transformada da direção vertical, a segunda transformada pode ser permitida.[369] Alternatively, the second transform may be allowed only when both the horizontal direction transform and the vertical direction transform use a predefined transform kernel. For example, when a DCT2 transform kernel is used for both the horizontal direction transform and the vertical direction transform, the second transform may be allowed.

[370] Alternativamente, se deve ou não realizar a segunda transformada pode ser determinado com base no número de coeficientes de transformada diferente de zero do bloco atual. Por exemplo, pode ser configurado para não usar a segunda transformada quando o número de coeficientes de transformada diferente de zero do bloco atual é menor ou igual a um valor limítrofe e pode ser configurado para usar a segunda transformada quando o número de coeficiente de transformada diferente de zero do bloco atual é maior do que o valor limítrofe. Ele pode ser configurado para usar a segunda transformada apenas quando o bloco atual é codificado por intraprevisão.[370] Alternatively, whether or not to perform the second transform may be determined based on the number of non-zero transform coefficients of the current block. For example, it may be configured to not use the second transform when the number of non-zero transform coefficients of the current block is less than or equal to a threshold value, and it may be configured to use the second transform when the number of non-zero transform coefficients of the current block is greater than the threshold value. It may be configured to use the second transform only when the current block is intraprediction encoded.

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

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

[373] Quando um bloco reconstruído do bloco atual é adquirido, a perda de informações que ocorre no processo de quantização e codificação pode ser reduzida por meio de filtragem em loop. Um filtro in-loop pode incluir pelo menos um dentre um filtro de desbloqueio, um filtro de deslocamento adaptativo de amostra (SAO) e um filtro de loop adaptável (ALF).[373] When a reconstructed block of the current block is acquired, the information loss that occurs in the quantization and encoding process can be reduced by means of 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 loop filter (ALF).

[374] 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 está incluída no escopo da presente divulgação. A alteração das modalidades descritas em uma ordem predeterminada em uma ordem diferente da ordem descrita também está incluída no escopo da presente divulgação.[374] Applying the above-described embodiments with a focus on a decoding process or an encoding process to an encoding process or a decoding process is included within the scope of the present disclosure. Changing the described embodiments in a predetermined order into an order other than the described order is also included within the scope of the present disclosure.

[375] Embora as modalidades acima tenham sido descritas com base em uma série de etapas ou fluxogramas, isso não limita a ordem da série temporal da presente divulgaçã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 implementados como um dispositivo de hardware ou software, ou uma pluralidade de componentes podem ser combinados para serem implementados como um único dispositivo de hardware ou software. As modalidades descritas acima podem ser implementadas 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. O meio de gravação legível por computador pode incluir comandos de programa, arquivos de dados, estruturas de dados e semelhantes, independentemente ou em combinação. O meio 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 semelhantes. 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 divulgação e vice-versa.[375] 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 disclosure and may 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 above-described embodiments may be implemented as a hardware or software device, or a plurality of components may be combined to be implemented as a single hardware or software device. The above-described embodiments may be implemented in the form of program commands that may be executed by means of multiple computer components and recorded on a computer-readable recording medium. The computer-readable recording medium may include program commands, data files, data structures, and the like, independently or in combination. The computer-readable recording medium includes, 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 disclosure, and vice versa.

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

Claims (15)

1. MÉTODO DE DECODIFICAÇÃO DE VÍDEO, caracterizado por compreender as etapas de: determinar uma primeira unidade de previsão e uma segunda unidade de previsão; derivar uma lista de candidato à mesclagem para o bloco de codificação; determinar as primeiras informações de movimento para a primeira unidade de previsão com base em um primeiro candidato à mesclagem na lista de candidato à mesclagem; determinar as segundas informações de movimento para a segunda unidade de previsão com base em um segundo candidato à mesclagem na lista de candidato à mesclagem; em que o primeiro candidato à mesclagem é determinado como um candidato à mesclagem indicado por um índice indicado pelas informações do primeiro índice e o segundo candidato à mesclagem é determinado com base nas informações do segundo índice, em que quando um valor das informações do segundo índice é igual ou maior que um valor das informações do primeiro índice, o segundo candidato à mesclagem é determinado como um candidato à mesclagem indicado por um índice obtido ao adicionar 1 ao valor das informações do segundo índice; e determinar uma amostra de previsão do bloco de codificação com base nas primeiras informações de movimento e nas segundas informações de movimento.1. A VIDEO DECODING METHOD comprising the steps of: determining a first prediction unit and a second prediction unit; deriving a merge candidate list for the coding block; determining first motion information for the first prediction unit based on a first merge candidate in the merge candidate list; determining second motion information for the second prediction unit based on a second merge candidate in the merge candidate list; wherein the first merge candidate is determined as a merge candidate indicated by an index indicated by the first index information and the second merge candidate is determined based on the second index information, wherein when a value of the second index information is equal to or greater than a value of the first index information, the second merge candidate is determined as a merge candidate indicated by an index obtained by adding 1 to the value of the second index information; and determining a prediction sample of the coding block based on the first motion information and the second motion information. 2. MÉTODO, de acordo com a reivindicação 1, caracterizado por, quando o valor das informações do segundo índice é menor que o valor das informações do primeiro índice, o segundo candidato à mesclagem ser determinado como um candidato à mesclagem indicado por um índice indicado pelas informações do segundo índice.2. The method of claim 1, wherein when the value of the second index information is less than the value of the first index information, the second merge candidate is determined to be a merge candidate indicated by an index indicated by the second index information. 3. MÉTODO, de acordo com a reivindicação 2, sendo a determinação de uma amostra de previsão do bloco de codificação baseada nas primeiras informações de movimento e nas segundas informações de movimento caracterizada por compreender: determinar uma primeira amostra de previsão com base nas primeiras informações de movimento; determinar uma segunda amostra de previsão com base nas segundas informações de movimento; e determinar a amostra de previsão do bloco de codificação com base em uma soma ponderada da primeira amostra de previsão e da segunda amostra de previsão.3. The method of claim 2, wherein determining a prediction sample of the coding block based on the first motion information and the second motion information comprises: determining a first prediction sample based on the first motion information; determining a second prediction sample based on the second motion information; and determining the prediction sample of the coding block based on a weighted sum of the first prediction sample and the second prediction sample. 4. MÉTODO, de acordo com a reivindicação 3, sendo a determinação da amostra de previsão do bloco de codificação com base em uma soma ponderada da primeira amostra de previsão e da segunda amostra de previsão caracterizada por compreender: determinar a amostra de previsão do bloco de codificação com base na primeira amostra de previsão, em um primeiro valor ponderado, na segunda amostra de previsão e um segundo valor ponderado, em que o primeiro valor ponderado é determinado com base em uma coordenada de eixo x e uma coordenada de eixo y da amostra de previsão; e o segundo valor ponderado é derivado ao subtrair o primeiro valor ponderado de um valor constante.4. The method of claim 3, wherein determining the prediction sample of the coding block based on a weighted sum of the first prediction sample and the second prediction sample comprises: determining the prediction sample of the coding block based on the first prediction sample, a first weighted value, the second prediction sample, and a second weighted value, wherein the first weighted value is determined based on an x-axis coordinate and a y-axis coordinate of the prediction sample; and the second weighted value is derived by subtracting the first weighted value from a constant value. 5. Método, De Acordo Com Qualquer Uma Das Reivindicações 1 A 4, Caracterizado Pela Aplicação De Particionamento Ao Bloco De Codificação Para Se Obter A Primeira Unidade De Previsão E A Segunda Unidade De Previsão Ser Determinada Com Base Em Pelo Menos Um Dentre Um Tipo De Parcela, Um Tamanho Do Bloco De Codificação, Um Formato Do Bloco De Codificação E Um Modo De Previsão Do Bloco De Codificação.5. The method of any one of claims 1 to 4, wherein partitioning is applied to the coding block to obtain the first prediction unit and the second prediction unit is determined based on at least one of a parcel type, a coding block size, a coding block format and a coding block prediction mode. 6. MÉTODO, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado por um número máximo de candidatos à mesclagem que a lista de candidato à mesclagem inclui ser determinado com base na aplicação de particionamento ao bloco de codificação para se obter a primeira unidade de previsão e a segunda unidade de previsão.6. The method of any one of claims 1 to 4, wherein a maximum number of merge candidates that the merge candidate list includes is determined based on applying partitioning to the coding block to obtain the first prediction unit and the second prediction unit. 7. MÉTODO, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado pelas informações do primeiro índice e as informações do segundo índice serem obtidas pela decodificação a partir de um fluxo de bits.7. METHOD according to any one of claims 1 to 4, characterized in that the information of the first index and the information of the second index are obtained by decoding from a bit stream. 8. MÉTODO DE CODIFICAÇÃO DE VÍDEO, caracterizado por compreender as etapas de: determinar uma primeira unidade de previsão e uma segunda unidade de previsão; derivar uma lista de candidato à mesclagem para o bloco de codificação; determinar as primeiras informações de movimento para a primeira unidade de previsão com base em um primeiro candidato à mesclagem na lista de candidato à mesclagem; determinar as segundas informações de movimento para a segunda unidade de previsão com base em um segundo candidato à mesclagem na lista de candidato à mesclagem; determinar uma amostra de previsão do bloco de codificação com base nas primeiras informações de movimento e nas segundas informações de movimento; e codificar as informações do primeiro índice e as informações do segundo índice em um fluxo de bits, em que as informações do primeiro índice indicam um índice do primeiro candidato à mesclagem, as informações do segundo índice indicam um índice do segundo candidato à mesclagem, e quando o índice do segundo candidato à mesclagem é igual ou maior que o índice do primeiro candidato à mesclagem, as informações do segundo índice são codificadas usando um valor obtido ao subtrair 1 do índice do segundo candidato à mesclagem.8. A VIDEO CODING METHOD comprising the steps of: determining a first prediction unit and a second prediction unit; deriving a merge candidate list for the coding block; determining first motion information for the first prediction unit based on a first merge candidate in the merge candidate list; determining second motion information for the second prediction unit based on a second merge candidate in the merge candidate list; determining a prediction sample of the coding block based on the first motion information and the second motion information; and encoding the first index information and the second index information into a bit stream, wherein the first index information indicates an index of the first merge candidate, the second index information indicates an index of the second merge candidate, and when the index of the second merge candidate is equal to or greater than the index of the first merge candidate, the second index information is encoded using a value obtained by subtracting 1 from the index of the second merge candidate. 9. MÉTODO, de acordo com a reivindicação 8, caracterizado por, quando o índice do segundo candidato à mesclagem é menor que o índice do primeiro candidato à mesclagem, as informações do segundo índice são codificadas usando um valor igual ao índice do segundo candidato à mesclagem.9. The method of claim 8, wherein when the index of the second merge candidate is less than the index of the first merge candidate, the information of the second index is encoded using a value equal to the index of the second merge candidate. 10. MÉTODO, de acordo com a reivindicação 9, sendo a determinação de uma amostra de previsão do bloco de codificação baseada nas primeiras informações de movimento e nas segundas informações de movimento caracterizada por compreender: determinar uma primeira amostra de previsão com base nas primeiras informações de movimento; determinar uma segunda amostra de previsão com base nas segundas informações de movimento; e determinar a amostra de previsão do bloco de codificação com base em uma soma ponderada da primeira amostra de previsão e da segunda amostra de previsão.10. The method of claim 9, wherein determining a prediction sample of the coding block based on the first motion information and the second motion information comprises: determining a first prediction sample based on the first motion information; determining a second prediction sample based on the second motion information; and determining the prediction sample of the coding block based on a weighted sum of the first prediction sample and the second prediction sample. 11. MÉTODO, de acordo com a reivindicação 10, sendo a determinação da amostra de previsão do bloco de codificação com base em uma soma ponderada da primeira amostra de previsão e da segunda amostra de previsão caracterizada por compreender: determinar a amostra de previsão do bloco de codificação com base na primeira amostra de previsão, em um primeiro valor ponderado, na segunda amostra de previsão e em um segundo valor ponderado, em que o primeiro valor ponderado é determinado com base em uma coordenada de eixo x e uma coordenada de eixo y da amostra de previsão; e o segundo valor ponderado é derivado ao subtrair o primeiro valor ponderado de um valor de um valor constante.11. The method of claim 10, the determination of the prediction sample of the coding block based on a weighted sum of the first prediction sample and the second prediction sample comprising: determining the prediction sample of the coding block based on the first prediction sample, a first weighted value, the second prediction sample, and a second weighted value, wherein the first weighted value is determined based on an x-axis coordinate and a y-axis coordinate of the prediction sample; and the second weighted value is derived by subtracting the first weighted value from a value of a constant value. 12. MÉTODO, de acordo com qualquer uma das reivindicações 8 a 11, caracterizado pela aplicação de particionamento ao bloco de codificação para se obter a primeira unidade de previsão e a segunda unidade de previsão ser determinada com base em pelo menos um dentre um tipo de parcela, um tamanho do bloco de codificação, um formato do bloco de codificação e um modo de previsão do bloco de codificação.12. The method of any one of claims 8 to 11, wherein partitioning is applied to the coding block to obtain the first prediction unit and the second prediction unit is determined based on at least one of a portion type, a coding block size, a coding block format, and a coding block prediction mode. 13. MÉTODO, de acordo com qualquer uma das reivindicações 8 a 11, caracterizado por um número máximo de candidatos à mesclagem que a lista de candidato à mesclagem inclui ser determinado com base na aplicação de particionamento ao bloco de codificação para se obter a primeira unidade de previsão e a segunda unidade de previsão.13. The method of any one of claims 8 to 11, wherein a maximum number of merge candidates that the merge candidate list includes is determined based on applying partitioning to the coding block to obtain the first prediction unit and the second prediction unit. 14. APARELHO DE DECODIFICAÇÃO DE VÍDEO, caracterizado por compreender uma parte de interprevisão configurada para realizar o método, conforme definido em qualquer uma das reivindicações 1 a 7.14. VIDEO DECODING APPARATUS, characterized by comprising an interprediction part configured to perform the method, as defined in any one of claims 1 to 7. 15. APARELHO DE CODIFICAÇÃO DE VÍDEO, caracterizado por compreender uma parte de interprevisão configurada para realizar o método, conforme definido em qualquer uma das reivindicações 8 a 13.15. VIDEO CODING APPARATUS, characterized by comprising an interprediction part configured to perform the method, as defined in any one of claims 8 to 13.
BR122024024714-3A 2018-11-08 2019-11-08 VIDEO DECODING METHOD, VIDEO CODING METHOD, VIDEO DECODING DEVICE AND VIDEO CODING DEVICE BR122024024714A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2018-0136306 2018-11-08
KR10-2018-0136249 2018-11-08

Publications (1)

Publication Number Publication Date
BR122024024714A2 true BR122024024714A2 (en) 2025-03-06

Family

ID=

Similar Documents

Publication Publication Date Title
US11889077B2 (en) Method for encoding/decoding image signal and device therefor
CN116208765B (en) Video signal encoding/decoding method and apparatus therefor
BR112021008731A2 (en) video decoding method and video encoding method
AU2019377757B2 (en) Image signal encoding/decoding method and apparatus therefor
BR112021008298A2 (en) video decoding method, video encoding method, video decoding apparatus and video encoder
BR112021008091A2 (en) video signal encoding and decoding method and video decoding apparatus
IL281625B2 (en) Method for encoding/decoding image signal and apparatus therefor
BR112021004922A2 (en) video decoding method, video decoder, video encoder, and non-transient computer readable media
BR122024024714A2 (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
BR122024024712A2 (en) VIDEO DECODING METHOD, VIDEO CODING METHOD, VIDEO DECODING DEVICE AND VIDEO CODING DEVICE
BR122024024709A2 (en) VIDEO DECODING METHOD, VIDEO CODING METHOD, VIDEO DECODING DEVICE AND VIDEO CODING DEVICE
BR122025007924A2 (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
BR122025007930A2 (en) VIDEO DECODING METHOD AND VIDEO CODING METHOD
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
BR122025000817A2 (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
BR122025000829A2 (en) VIDEO DECODING METHOD, VIDEO CODING METHOD, VIDEO DECODER AND VIDEO ENCODER
BR122025000828A2 (en) VIDEO DECODING METHOD, VIDEO CODING METHOD, VIDEO DECODER AND VIDEO ENCODER
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载