+

BR122022016938B1 - VIDEO ENCODER, VIDEO DECODER AND CORRESPONDING METHODS - Google Patents

VIDEO ENCODER, VIDEO DECODER AND CORRESPONDING METHODS

Info

Publication number
BR122022016938B1
BR122022016938B1 BR122022016938-4A BR122022016938A BR122022016938B1 BR 122022016938 B1 BR122022016938 B1 BR 122022016938B1 BR 122022016938 A BR122022016938 A BR 122022016938A BR 122022016938 B1 BR122022016938 B1 BR 122022016938B1
Authority
BR
Brazil
Prior art keywords
block
tree
size
video
current block
Prior art date
Application number
BR122022016938-4A
Other languages
Portuguese (pt)
Inventor
Han Gao
Semih ESENLIK
Jianle Chen
Zhijie ZHAO
Anand Meher Kotra
Biao Wang
Original Assignee
Huawei Technologies Co., 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 Huawei Technologies Co., Ltd filed Critical Huawei Technologies Co., Ltd
Publication of BR122022016938B1 publication Critical patent/BR122022016938B1/en

Links

Abstract

A presente revelação se refere a métodos e dispositivos a serem empregados para codificação e decodificação de sinal de imagem ou de vídeo. Eles incluem determinar se o tamanho de um bloco atual é maior que um tamanho de nó folha de árvore quaternária mínimo permitido ou não. Se o tamanho do bloco atual não for maior que o tamanho de nó folha de árvore quaternária mínimo permitido, divisão de árvore de múltiplos tipos é aplicada ao bloco atual. O tamanho de nó folha de árvore quaternária mínimo permitido não é maior que um tamanho de nó raiz de árvore binária máximo permitido ou o tamanho de nó folha de árvore quaternária mínimo permitido não é maior que um tamanho de nó raiz de árvore ternária máximo permitido.The present disclosure relates to methods and devices for encoding and decoding image or video signals. These include determining whether the current block size is greater than a minimum allowable quaternary tree leaf node size. If the current block size is not greater than the minimum allowable quaternary tree leaf node size, a multi-type tree split is applied to the current block. The minimum allowable quaternary tree leaf node size is not greater than a maximum allowable binary tree root node size, or the minimum allowable quaternary tree leaf node size is not greater than a maximum allowable ternary tree root node size.

Description

CAMPO DA TÉCNICAFIELD OF TECHNIQUE

[0001] As modalidades do presente pedido de modo geral se relacionam ao campo da codificação de vídeo e, mais particularmente, à divisão e particionamento de unidade de codificação.[0001] Embodiments of the present application generally relate to the field of video coding and, more particularly, to coding unit division and partitioning.

FUNDAMENTOSFUNDAMENTALS

[0002] A codificação de vídeo (codificação e decodificação de vídeo) é usada em uma ampla faixa de aplicativos de vídeo digital, por exemplo, TV digital por broadcast, transmissão de vídeo pela internet e redes móveis, aplicativos de conversação em tempo real, tais como chat de vídeo, videoconferência, DVD e discos Blu-ray, aquisição de conteúdo de vídeo e sistemas de edição, e camcorders de aplicativos de segurança.[0002] Video coding (video encoding and decoding) is used in a wide range of digital video applications, for example, digital broadcast TV, video transmission over the Internet and mobile networks, real-time conversation applications such as video chat, video conferencing, DVD and Blu-ray Discs, video content acquisition and editing systems, and security application camcorders.

[0003] Desde o desenvolvimento da abordagem de codificação de vídeo híbrida com base em bloco no padrão H.261 em 1990, novas técnicas e ferramentas de codificação de vídeo foram desenvolvidas e formaram a base para novos padrões de codificação de vídeo. Outros padrões de codificação de vídeo incluem vídeo MPEG-1, vídeo MPEG-2, ITU-T H.262/MPEG-2, ITU-T H.263, ITU-T H.264/MPEG-4, Parte 10, Codificação de Vídeo Avançada (AVC), ITU-T H.265/Codificação de Vídeo de Alta Eficiência (HEVC), ITU-T H.266/Codificação de Vídeo Versátil (VVC) e extensões, por exemplo, escalabilidade e/ou extensões tridimensionais (3D) desses padrões. À medida que a criação e o uso de vídeo se tornam cada vez mais onipresentes, o tráfego de vídeo é a maior carga em redes de comunicação e armazenamento de dados, consequentemente, um dentre os objetivos da maioria dos padrões de codificação de vídeo era alcançar uma redução de taxa de bits em comparação com seu antecessor, sem sacrificar a qualidade de imagem. Mesmo a mais recente codificação de vídeo de Alta Eficiência (HEVC) pode comprimir vídeo cerca de duas vezes mais do que AVC sem sacrificar a qualidade, são necessárias novas técnicas para comprimir adicionalmente o vídeo em comparação com HEVC.[0003] Since the development of the block-based hybrid video coding approach in the H.261 standard in 1990, new video coding techniques and tools have been developed and have formed the basis for new video coding standards. Other video coding standards include MPEG-1 video, MPEG-2 video, ITU-T H.262/MPEG-2, ITU-T H.263, ITU-T H.264/MPEG-4 Part 10 Advanced Video Coding (AVC), ITU-T H.265/High Efficiency Video Coding (HEVC), ITU-T H.266/Versatile Video Coding (VVC), and extensions, e.g., scalability and/or three-dimensional (3D) extensions, of these standards. As video creation and use become increasingly ubiquitous, video traffic is a major burden on communication networks and data storage. Consequently, one of the goals of most video coding standards has been to achieve a bitrate reduction compared to their predecessors without sacrificing image quality. Even the latest High Efficiency Video Coding (HEVC) can compress video about twice as much as AVC without sacrificing quality; new techniques are needed to further compress video compared to HEVC.

[0004] O montante de dados de vídeo exigidos para representar mesmo um vídeo relativamente curto pode ser substancial, o que pode resultar em dificuldades quando os dados devem ser transmitidos por streaming ou comunicados de outra forma por meio de uma rede de comunicações com capacidade de largura de banda limitada. Assim, dados de vídeo são de modo geral comprimidos antes de serem comunicados por meio de redes de telecomunicações dos dias modernos. O tamanho de um vídeo também pode ser um problema quando o vídeo é armazenado em um dispositivo de armazenamento porque os recursos de memória podem ser limitados. Dispositivos de compressão de vídeo muitas vezes usam software e/ou hardware na fonte para codificar os dados de vídeo antes de transmissão ou armazenamento, diminuindo assim a quantidade de dados exigida para representar imagens de vídeo digitais. Os dados comprimidos são então recebidos no destino por um dispositivo de descompressão de vídeo que decodifica os dados de vídeo. Com recursos de rede limitados e demandas cada vez maiores de qualidade de vídeo mais alta, técnicas aperfeiçoadas de compressão e descompressão que aperfeiçoam a razão de compressão com pouco ou nenhum sacrifício na qualidade da imagem são desejáveis.[0004] The amount of video data required to represent even a relatively short video can be substantial, which can result in difficulties when the data must be streamed or otherwise communicated over a communications network with limited bandwidth capacity. Therefore, video data is typically compressed before being communicated over modern telecommunications networks. The size of a video can also be an issue when the video is stored on a storage device because memory resources may be limited. Video compression devices often use software and/or hardware at the source to encode the video data before transmission or storage, thereby decreasing the amount of data required to represent digital video images. The compressed data is then received at the destination by a video decompression device that decodes the video data. With limited network resources and increasing demands for higher video quality, improved compression and decompression techniques that improve the compression ratio with little or no sacrifice in image quality are desirable.

SUMÁRIOSUMMARY

[0005] As modalidades do presente pedido (ou da presente revelação) fornecem aparelhos e métodos para codificação e decodificação de acordo com as reivindicações independentes.[0005] Embodiments of the present application (or of the present disclosure) provide apparatus and methods for encoding and decoding according to the independent claims.

[0006] Os supracitados e outros objetivos são alcançados pela matéria das reivindicações independentes. Outras formas de implementação são evidentes a partir das reivindicações dependentes, da descrição e das figuras.[0006] The foregoing and other objects are achieved by the subject matter of the independent claims. Other forms of implementation are evident from the dependent claims, the description and the figures.

[0007] De acordo com um primeiro aspecto, a invenção se relaciona a um método para decodificação de vídeo. O método é realizado por um dispositivo de decodificação. O método compreende: determinar se o tamanho de um bloco atual é maior que um tamanho de nó folha de árvore quaternária mínimo permitido; se o tamanho do bloco atual não for maior que o tamanho de nó folha de árvore quaternária mínimo permitido, aplicar divisão de árvore de múltiplos tipos ao bloco atual; em que o tamanho de nó folha de árvore quaternária mínimo permitido não é maior que um tamanho de nó raiz de árvore binária máximo permitido ou o tamanho de nó folha de árvore quaternária mínimo permitido não é maior que um tamanho de nó raiz de árvore ternária máximo permitido.[0007] According to a first aspect, the invention relates to a method for decoding video. The method is performed by a decoding device. The method comprises: determining whether the size of a current block is greater than a minimum allowed quaternary tree leaf node size; if the size of the current block is not greater than the minimum allowed quaternary tree leaf node size, applying multi-type tree splitting to the current block; wherein the minimum allowed quaternary tree leaf node size is not greater than a maximum allowed binary tree root node size or the minimum allowed quaternary tree leaf node size is not greater than a maximum allowed ternary tree root node size.

[0008] Em que o bloco atual pode ser obtido dividindo-se uma imagem ou uma unidade de árvore de codificação (CTU).[0008] Wherein the current block may be obtained by splitting an image or a coding tree unit (CTU).

[0009] Em que o método pode compreender dois casos: 1) treeType é igual a SINGLE_TREE ou DUAL_TREE_LUMA; 2) treeType é igual a DUAL_TREE_CHROMA. Para o caso 1), o bloco atual é um bloco de luma e, para o caso 2), o bloco atual é um bloco de croma.[0009] Where the method may comprise two cases: 1) treeType is equal to SINGLE_TREE or DUAL_TREE_LUMA; 2) treeType is equal to DUAL_TREE_CHROMA. For case 1), the current block is a luma block, and for case 2), the current block is a chroma block.

[0010] Em que o tamanho de nó de raiz de árvore binária máximo permitido pode ser o tamanho de luma máximo em amostras de luma de um bloco de raiz de codificação de luma que pode ser dividido usando uma divisão de árvore binária.[0010] Wherein the maximum allowed binary tree root node size may be the maximum luma size in luma samples of a luma encoding root block that can be split using a binary tree split.

[0011] Em que o tamanho de nó de raiz de árvore ternária máximo permitido pode ser um tamanho de luma máximo em amostras de luma de um bloco de raiz de codificação de luma que pode ser dividido usando uma divisão de árvore ternária.[0011] Wherein the maximum allowed ternary tree root node size may be a maximum luma size in luma samples of a luma encoding root block that can be split using a ternary tree split.

[0012] Em que o tamanho de nó folha de árvore quaternária mínimo permitido pode ser um tamanho de luma mínimo em amostras de luma de um bloco folha de luma resultante de divisão de árvore quaternária.[0012] Wherein the minimum allowed quaternary tree leaf node size may be a minimum luma size in luma samples of a luma leaf block resulting from quaternary tree splitting.

[0013] Esta abordagem facilita a divisão ou sinalização eficiente dos parâmetros de divisão para blocos de imagem/vídeo.[0013] This approach facilitates efficient splitting or signaling of splitting parameters for image/video blocks.

[0014] Além disso, em uma possível forma de implementação do método de acordo com o primeiro aspecto, o método compreende adicionalmente as etapas de determinar se o bloco atual de uma imagem é um bloco de fronteira. Em que se o tamanho do bloco atual não for maior que o tamanho de nó folha de árvore quaternária mínimo permitido, aplicar divisão de árvore de múltiplos tipos ao bloco atual compreende: se o bloco atual é um bloco de fronteira e o tamanho do bloco atual não é maior que o tamanho de nó folha de árvore quaternária mínimo permitido, aplicando divisão binária ao bloco atual. É notado que, neste caso, o tamanho de nó folha de árvore quaternária mínimo permitido não é maior que o tamanho de nó raiz de árvore binária máximo permitido. Portanto, se o tamanho do bloco atual não for maior que o tamanho de nó folha de árvore quaternária mínimo permitido, o tamanho do bloco atual não será maior que o tamanho de nó raiz de árvore binária máximo permitido, a acima mencionada aplicação de divisão de árvore de múltiplos tipos no bloco atual compreende aplicar divisão binária ao bloco atual, se o bloco atual for um bloco de fronteira e o tamanho do bloco atual não for maior que o tamanho de nó folha de árvore quaternária mínimo permitido.[0014] Furthermore, in a possible implementation form of the method according to the first aspect, the method further comprises the steps of determining whether the current block of an image is a boundary block. Wherein if the size of the current block is not greater than the minimum allowed quaternary tree leaf node size, applying multi-type tree splitting to the current block comprises: if the current block is a boundary block and the size of the current block is not greater than the minimum allowed quaternary tree leaf node size, applying binary splitting to the current block. It is noted that in this case, the minimum allowed quaternary tree leaf node size is not greater than the maximum allowed binary tree root node size. Therefore, if the current block size is not greater than the minimum allowed quaternary tree leaf node size, the current block size is not greater than the maximum allowed binary tree root node size, the above-mentioned application of multi-type tree split on the current block comprises applying binary split to the current block, if the current block is a boundary block and the current block size is not greater than the minimum allowed quaternary tree leaf node size.

[0015] Em que o método pode compreender adicionalmente obter o bloco reconstruído de um bloco obtido direta ou indiretamente a partir da aplicação de divisão binária ao bloco atual.[0015] Wherein the method may further comprise obtaining the reconstructed block from a block obtained directly or indirectly from applying binary division to the current block.

[0016] Esta provisão da divisão binária pode ser particularmente vantajosa para os blocos na fronteira do quadro de imagem/vídeo, por exemplo, para blocos que são cortados pela fronteira. Assim, em algumas implementações, pode ser benéfico aplicar esta abordagem para os blocos de fronteira e não aplicar a mesma para os blocos restantes. No entanto, a presente revelação não está limitada à mesma e, como mencionado acima, esta abordagem de aplicar divisão binária também pode ser aplicada para blocos que não são de fronteira e sinalizada de forma eficiente.[0016] This provision of binary splitting may be particularly advantageous for blocks at the boundary of the image/video frame, e.g., for blocks that are cut by the boundary. Thus, in some implementations, it may be beneficial to apply this approach to the boundary blocks and not apply it to the remaining blocks. However, the present disclosure is not limited thereto, and as mentioned above, this approach of applying binary splitting may also be applied to non-boundary blocks and signaled efficiently.

[0017] Em uma possível forma de implementação do método de acordo com o primeiro aspecto ou das modalidades mencionadas acima, o tamanho de nó folha de árvore quaternária mínimo permitido não é maior que um tamanho de nó raiz de árvore binária máximo permitido e o tamanho de nó folha de árvore quaternária mínimo permitido não é maior que um tamanho de nó raiz de árvore ternária máximo permitido.[0017] In a possible form of implementation of the method according to the first aspect or the aforementioned embodiments, the minimum allowable quaternary tree leaf node size is not larger than a maximum allowable binary tree root node size, and the minimum allowable quaternary tree leaf node size is not larger than a maximum allowable ternary tree root node size.

[0018] Em uma possível forma de implementação do método de acordo com o primeiro aspecto ou das modalidades acima mencionadas, a aplicação da divisão de árvore de múltiplos tipos ao bloco atual pode compreender aplicar divisão ternária ao bloco atual, ou aplicar divisão binária ao bloco atual. No entanto, a presente revelação não é limitada por isso e, em geral, a divisão de árvore de múltiplos tipos também pode incluir mais ou outros tipos diferentes de divisão.[0018] In one possible form of implementation of the method according to the first aspect or the aforementioned embodiments, applying multi-type tree splitting to the current block may comprise applying ternary splitting to the current block, or applying binary splitting to the current block. However, the present disclosure is not limited thereby, and in general, multi-type tree splitting may also include more or other different types of splitting.

[0019] Em uma possível forma de implementação do método de acordo com o primeiro aspecto ou das modalidades acima mencionadas, o método pode compreender adicionalmente determinar o tamanho de nó raiz de árvore binária máximo permitido com base no tamanho de nó folha de árvore quaternária mínimo permitido. Isso facilita a sinalização/armazenamento eficiente dos parâmetros. Por exemplo, o tamanho de nó raiz de árvore binária máximo permitido pode ser considerado igual ao tamanho de nó folha de árvore quaternária mínimo permitido. Como um outro exemplo, o valor limite inferior do tamanho de nó raiz de árvore binária máximo permitido pode ser considerado igual ao tamanho de nó folha de árvore quaternária mínimo permitido, e o tamanho de nó folha de árvore quaternária mínimo permitido pode ser usado para determinar a validade do tamanho de nó raiz de árvore binária máximo permitido. No entanto, a presente revelação não é limitada por isso e uma outra relação pode ser assumida para derivar o tamanho de nó raiz de árvore binária máximo permitido.[0019] In a possible implementation form of the method according to the first aspect or the aforementioned embodiments, the method may further comprise determining the maximum allowable binary tree root node size based on the minimum allowable quaternary tree leaf node size. This facilitates efficient signaling/storage of the parameters. For example, the maximum allowable binary tree root node size may be assumed to be equal to the minimum allowable quaternary tree leaf node size. As a further example, the lower bound value of the maximum allowable binary tree root node size may be assumed to be equal to the minimum allowable quaternary tree leaf node size, and the minimum allowable quaternary tree leaf node size may be used to determine the validity of the maximum allowable binary tree root node size. However, the present disclosure is not limited thereby, and another relationship may be assumed to derive the maximum allowable binary tree root node size.

[0020] De acordo com uma modalidade exemplificativa, além do ou alternativamente ao primeiro aspecto ou às modalidades mencionadas acima, o método pode compreender adicionalmente as etapas de dividir uma imagem em blocos, em que os blocos compreendem o bloco atual. A aplicação de divisão binária ao bloco atual compreende aplicar divisão binária ao bloco de fronteira com uma profundidade de partição de múltiplos tipos de fronteira máxima, em que a profundidade de partição de múltiplos tipos de fronteira máxima é uma soma de pelo menos uma profundidade de árvore de múltiplos tipos máxima e um desvio de profundidade de árvore de múltiplos tipos máxima, em que a profundidade de árvore de múltiplos tipos máxima é maior que 0. Além disso, em algumas implementações, a profundidade de árvore de múltiplos tipos máxima é maior que 0 quando se aplica a divisão binária ao bloco de fronteira.[0020] According to an exemplary embodiment, in addition to or alternatively to the first aspect or the aforementioned embodiments, the method may further comprise the steps of dividing an image into blocks, wherein the blocks comprise the current block. Applying binary split to the current block comprises applying binary split to the boundary block with a maximum boundary multi-type partition depth, wherein the maximum boundary multi-type partition depth is a sum of at least a maximum multi-type tree depth and a maximum multi-type tree depth offset, wherein the maximum multi-type tree depth is greater than 0. Furthermore, in some implementations, the maximum multi-type tree depth is greater than 0 when applying binary split to the boundary block.

[0021] Em uma possível forma de implementação do método de acordo com o primeiro aspecto ou das modalidades acima mencionadas, pode adicionalmente compreender dividir uma imagem em blocos (os blocos compreendendo o bloco atual). A aplicação de divisão de árvore de múltiplos tipos ao bloco atual compreende aplicar divisão de árvore de múltiplos tipos ao bloco atual dos blocos com uma profundidade de árvore de múltiplos tipos máxima final, em que a profundidade de árvore de múltiplos tipos máxima final é uma soma de pelo menos uma profundidade de árvore de múltiplos tipos máxima e um desvio de profundidade de árvore de múltiplos tipos máxima, em que a profundidade de árvore de múltiplos tipos máxima é maior que ou igual à subtração do valor Log2 do tamanho de bloco de transformada mínimo permitido do valor Log2 de tamanho de nó folha de árvore quaternária mínimo permitido, ou a profundidade de árvore de múltiplos tipos máxima é maior que ou igual à subtração do valor Log2 do tamanho de bloco de codificação mínimo permitido do valor Log2 de tamanho nó folha de árvore quaternária mínimo permitido. Isso facilita divisão adicional mesmo para as profundidades de particionamento maiores.[0021] In a possible implementation form of the method according to the first aspect or the aforementioned embodiments, it may further comprise dividing an image into blocks (the blocks comprising the current block). Applying multi-type tree splitting to the current block comprises applying multi-type tree splitting to the current block of the blocks with a final maximum multi-type tree depth, wherein the final maximum multi-type tree depth is a sum of at least a maximum multi-type tree depth and a maximum multi-type tree depth offset, wherein the maximum multi-type tree depth is greater than or equal to subtracting the Log2 value of the minimum allowed transform block size from the Log2 value of the minimum allowed quaternary tree leaf node size, or the maximum multi-type tree depth is greater than or equal to subtracting the Log2 value of the minimum allowed coding block size from the Log2 value of the minimum allowed quaternary tree leaf node size. This facilitates further splitting even for larger partitioning depths.

[0022] O bloco atual pode ser um bloco que não é de fronteira. O desvio de profundidade de árvore de múltiplos tipos máxima pode ser 0. O bloco atual pode ser, alternativamente ou também, um bloco de fronteira e a divisão de árvore de múltiplos tipos é uma divisão binária. A divisão de árvore de múltiplos tipos pode ser ou incluir divisão ternária.[0022] The current block may be a non-frontier block. The maximum multitype tree depth offset may be 0. The current block may alternatively or also be a frontier block, and the multitype tree split is a binary split. The multitype tree split may be or include a ternary split.

[0023] De acordo com um segundo aspecto, a invenção se relaciona a um método para codificação. O método é realizado por um dispositivo de codificação. O método compreende as etapas de: determinar se o tamanho de um bloco atual é maior que um tamanho de nó folha de árvore quaternária mínimo permitido; se o tamanho do bloco atual não for maior que o tamanho de nó folha de árvore quaternária mínimo permitido, aplicando divisão de árvore de múltiplos tipos ao bloco atual; em que o tamanho de nó folha de árvore quaternária mínimo permitido não é maior que um tamanho de nó raiz de árvore binária máximo permitido ou o tamanho de nó folha de árvore quaternária mínimo permitido não é maior que um tamanho de nó raiz de árvore ternária máximo permitido.[0023] According to a second aspect, the invention relates to a method for encoding. The method is performed by an encoding device. The method comprises the steps of: determining whether the size of a current block is greater than a minimum allowed quaternary tree leaf node size; if the size of the current block is not greater than the minimum allowed quaternary tree leaf node size, applying multitype tree splitting to the current block; wherein the minimum allowed quaternary tree leaf node size is not greater than a maximum allowed binary tree root node size or the minimum allowed quaternary tree leaf node size is not greater than a maximum allowed ternary tree root node size.

[0024] O método de codificação pode aplicar qualquer das regras acima mencionadas e restrições descritas em relação ao método de decodificação. Daí o lado de codificador e o lado de decodificador devem compartilhar o fluxo de bits. Em particular, o lado de codificação gera o fluxo de bits após codificar as partições resultantes do particionamento descrito acima, enquanto o lado de decodificação analisa o fluxo de bits e reconstrói as partições decodificadas de acordo. O mesmo se aplica às modalidades relacionadas ao dispositivo de codificação (codificador) e ao dispositivo de decodificação (decodificador) descritos a seguir.[0024] The encoding method may apply any of the aforementioned rules and restrictions described in relation to the decoding method. Hence, the encoder side and the decoder side must share the bitstream. In particular, the encoding side generates the bitstream after encoding the partitions resulting from the partitioning described above, while the decoding side analyzes the bitstream and reconstructs the decoded partitions accordingly. The same applies to the embodiments related to the encoding device (encoder) and the decoding device (decoder) described below.

[0025] De acordo com um terceiro aspecto, a invenção se relaciona a um dispositivo de decodificação, compreendendo conjunto de circuitos configurado para: determinar se o tamanho de um bloco atual é maior que um tamanho de nó folha de árvore quaternária mínimo permitido; se o tamanho do bloco atual não for maior que o tamanho de nó folha de árvore quaternária mínimo permitido, aplicar divisão de árvore de múltiplos tipos ao bloco atual; em que o tamanho de nó folha de árvore quaternária mínimo permitido não é maior que um tamanho de nó raiz de árvore binária máximo permitido ou o tamanho de nó folha de árvore quaternária mínimo permitido não é maior que um tamanho de nó raiz de árvore ternária máximo permitido. É notado que a determinação de se o tamanho de um bloco atual é maior que um tamanho de nó folha de árvore quaternária mínimo permitido pode ser realizado com base na sinalização no fluxo de bits no lado de decodificação.[0025] According to a third aspect, the invention relates to a decoding device, comprising circuitry configured to: determine whether the size of a current block is greater than a minimum allowable quaternary tree leaf node size; if the size of the current block is not greater than the minimum allowable quaternary tree leaf node size, apply multi-type tree splitting to the current block; wherein the minimum allowable quaternary tree leaf node size is not greater than a maximum allowable binary tree root node size or the minimum allowable quaternary tree leaf node size is not greater than a maximum allowable ternary tree root node size. It is noted that the determination of whether the size of a current block is greater than a minimum allowable quaternary tree leaf node size may be performed based on signaling in the bitstream at the decoding side.

[0026] Também de acordo com um quarto aspecto, a invenção se relaciona a um dispositivo de codificação que compreende conjunto de circuitos configurado para: determinar se o tamanho de um bloco atual é maior que um tamanho de nó folha de árvore quaternária mínimo permitido; se o tamanho do bloco atual não for maior que o tamanho de nó folha de árvore quaternária mínimo permitido, aplicar divisão de árvore de múltiplos tipos ao bloco atual; em que o tamanho de nó folha de árvore quaternária mínimo permitido não é maior que um tamanho de nó raiz de árvore binária máximo permitido ou o tamanho de nó folha de árvore quaternária mínimo permitido não é maior que um tamanho de nó raiz de árvore ternária máximo permitido.[0026] Also according to a fourth aspect, the invention relates to a coding device comprising circuitry configured to: determine whether the size of a current block is greater than a minimum allowed quaternary tree leaf node size; if the size of the current block is not greater than the minimum allowed quaternary tree leaf node size, apply multi-type tree splitting to the current block; wherein the minimum allowed quaternary tree leaf node size is not greater than a maximum allowed binary tree root node size or the minimum allowed quaternary tree leaf node size is not greater than a maximum allowed ternary tree root node size.

[0027] O método de acordo com o primeiro aspecto da invenção pode ser realizado pelo aparelho ou dispositivo de acordo com o terceiro aspecto da invenção. Recursos e formas de implementação adicionais do método de acordo com o terceiro aspecto da invenção correspondem aos recursos e formas de implementação do aparelho de acordo com o primeiro aspecto da invenção.[0027] The method according to the first aspect of the invention can be carried out by the apparatus or device according to the third aspect of the invention. Further features and implementation forms of the method according to the third aspect of the invention correspond to the features and implementation forms of the apparatus according to the first aspect of the invention.

[0028] O método de acordo com o segundo aspecto da invenção pode ser realizado pelo aparelho ou dispositivo de acordo com o quarto aspecto da invenção. Recursos e formas de implementação adicionais do método de acordo com o quarto aspecto da invenção correspondem aos recursos e formas de implementação do aparelho de acordo com o segundo aspecto da invenção.[0028] The method according to the second aspect of the invention can be carried out by the apparatus or device according to the fourth aspect of the invention. Further features and implementation forms of the method according to the fourth aspect of the invention correspond to the features and implementation forms of the apparatus according to the second aspect of the invention.

[0029] De acordo com um quinto aspecto, a invenção se relaciona a um aparelho para decodificar um fluxo de vídeo que inclui um processador e uma memória. A memória está armazenando instruções que fazem com que o processador realize o método de acordo com o primeiro aspecto.[0029] According to a fifth aspect, the invention relates to an apparatus for decoding a video stream that includes a processor and a memory. The memory is storing instructions that cause the processor to perform the method according to the first aspect.

[0030] De acordo com um sexto aspecto, a invenção se relaciona a um aparelho para codificar um fluxo de vídeo inclui um processador e uma memória. A memória está armazenando instruções que fazem com que o processador realize o método de acordo com o segundo aspecto.[0030] According to a sixth aspect, the invention relates to an apparatus for encoding a video stream including a processor and a memory. The memory is storing instructions that cause the processor to perform the method according to the second aspect.

[0031] De acordo com um sétimo aspecto, é proposta uma mídia de armazenamento legível por computador tendo nela instruções armazenadas que quando executadas, fazem com que um ou mais processadores configurados codifiquem dados de vídeo. As instruções fazem com que o um ou mais processadores realizem um método de acordo com o primeiro ou segundo aspecto ou qualquer modalidade possível do primeiro ou segundo aspecto.[0031] According to a seventh aspect, there is proposed a computer-readable storage medium having instructions stored therein that, when executed, cause one or more configured processors to encode video data. The instructions cause the one or more processors to perform a method according to the first or second aspect, or any possible embodiment of the first or second aspect.

[0032] De acordo com um oitavo aspecto, a invenção se relaciona a um programa de computador que compreende código de programa para realizar o método de acordo com o primeiro ou segundo aspecto ou qualquer modalidade possível do primeiro ou segundo aspecto quando executado em um computador.[0032] According to an eighth aspect, the invention relates to a computer program comprising program code for performing the method according to the first or second aspect or any possible embodiment of the first or second aspect when executed on a computer.

[0033] De acordo com um nono aspecto, uma mídia de armazenamento legível por computador não transitória é fornecida, armazenando programação para execução por conjunto de circuitos de processamento, em que a programação, quando executada pelo conjunto de circuitos de processamento, configura o conjunto de circuitos de processamento para realizar qualquer um dentre os métodos mencionados acima.[0033] According to a ninth aspect, a non-transitory computer-readable storage medium is provided that stores programming for execution by processing circuitry, wherein the programming, when executed by the processing circuitry, configures the processing circuitry to perform any of the above-mentioned methods.

[0034] Para fins de clareza, qualquer uma dentre as modalidades reveladas no presente documento pode ser combinada com qualquer uma ou mais das outras modalidades para criar uma nova modalidade dentro do escopo da presente revelação.[0034] For purposes of clarity, any of the embodiments disclosed herein may be combined with any one or more of the other embodiments to create a new embodiment within the scope of the present disclosure.

[0035] Os detalhes de uma ou mais modalidades são apresentados nos desenhos anexos e na descrição abaixo. Outras características, objetos e vantagens serão evidentes a partir da descrição, desenhos e reivindicações.[0035] Details of one or more embodiments are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description, drawings, and claims.

BREVE DESCRIÇÃO DOS DESENHOSBRIEF DESCRIPTION OF THE DRAWINGS

[0036] A seguir modalidades da invenção são descritas em detalhes adicionais com referência às figuras e desenhos anexos, nos quais:[0036] In the following embodiments of the invention are described in further detail with reference to the accompanying figures and drawings, in which:

[0037] A Figura 1A é um diagrama de blocos que mostra um exemplo de um sistema de codificação de vídeo configurado para implementar modalidades da invenção;[0037] Figure 1A is a block diagram showing an example of a video encoding system configured to implement embodiments of the invention;

[0038] A Figura 1B é um diagrama de blocos que mostra um outro exemplo de um sistema de codificação de vídeo configurado para implementar modalidades da invenção;[0038] Figure 1B is a block diagram showing another example of a video encoding system configured to implement embodiments of the invention;

[0039] A Figura 2 é um diagrama de blocos que mostra um exemplo de um codificador de vídeo configurado para implementar modalidades da invenção;[0039] Figure 2 is a block diagram showing an example of a video encoder configured to implement embodiments of the invention;

[0040] A Figura 3 é um diagrama de blocos que mostra um exemplo de estrutura de um decodificador de vídeo configurado para implementar modalidades da invenção;[0040] Figure 3 is a block diagram showing an example structure of a video decoder configured to implement embodiments of the invention;

[0041] A Figura 4 é um diagrama de blocos que ilustra um exemplo de um aparelho de codificação ou um aparelho de decodificação;[0041] Figure 4 is a block diagram illustrating an example of an encoding apparatus or a decoding apparatus;

[0042] A Figura 5 é um diagrama de blocos que ilustra um outro exemplo de um aparelho de codificação ou de um aparelho de decodificação;[0042] Figure 5 is a block diagram illustrating another example of an encoding apparatus or a decoding apparatus;

[0043] A Figura 6 é um diagrama ilustrativo de um exemplo de particionamento de bloco usando uma estrutura de árvore quaternária - árvore binária (QTBT);[0043] Figure 6 is an illustrative diagram of an example of block partitioning using a quaternary tree-binary tree (QTBT) structure;

[0044] A Figura 7 é um diagrama ilustrativo de um exemplo de estrutura de árvore correspondente ao particionamento de bloco usando a estrutura QTBT da Figura 6;[0044] Figure 7 is an illustrative diagram of an example tree structure corresponding to block partitioning using the QTBT structure of Figure 6;

[0045] A Figura 8 é um diagrama ilustrativo de um exemplo de tipos de partição de árvore ternária horizontal; e[0045] Figure 8 is an illustrative diagram of an example of horizontal ternary tree partition types; and

[0046] A Figura 9 é um diagrama ilustrativo de um exemplo de tipos de partição de árvore ternária vertical.[0046] Figure 9 is an illustrative diagram of an example of vertical ternary tree partition types.

[0047] As Figuras 10 A-F mostram diferentes modos de divisão de CU em VVC.[0047] Figures 10 A-F show different modes of splitting CU into VVC.

[0048] A Figura 11A mostra uma partição de QT forçada de CTU (128x128) de fronteira inferior de HD (1920x1080).[0048] Figure 11A shows a forced QT partition of CTU (128x128) of HD (1920x1080) lower boundary.

[0049] A Figura 11B mostra uma partição de BT forçada de CTU (128x128) de fronteira inferior de HD (1920x1080) de acordo com uma modalidade da revelação.[0049] Figure 11B shows a forced BT partition of CTU (128x128) of HD (1920x1080) lower boundary according to an embodiment of the disclosure.

[0050] A Figura 12 mostra um exemplo de definição de fronteira.[0050] Figure 12 shows an example of a boundary definition.

[0051] A Figura 13A mostra um exemplo de um uma partição de QTBT forçada por caixa de canto de acordo com uma modalidade da revelação.[0051] Figure 13A shows an example of a corner case forced QTBT partition in accordance with an embodiment of the disclosure.

[0052] A Figura 13B mostra um exemplo de uma partição de QTBT forçada para um bloco localizado em um canto de acordo com uma modalidade da revelação.[0052] Figure 13B shows an example of a forced QTBT partition for a block located in a corner in accordance with an embodiment of the disclosure.

[0053] A Figura 14 mostra uma modalidade de uma definição de fronteira.[0053] Figure 14 shows an embodiment of a boundary definition.

[0054] A Figura 15 é um diagrama de blocos que mostra um exemplo de um codificador de vídeo configurado para implementar modalidades da invenção;[0054] Figure 15 is a block diagram showing an example of a video encoder configured to implement embodiments of the invention;

[0055] A Figura 16 é um diagrama de blocos que mostra um exemplo de estrutura de um decodificador de vídeo configurado para implementar modalidades da invenção;[0055] Figure 16 is a block diagram showing an example structure of a video decoder configured to implement embodiments of the invention;

[0056] A Figura 17 é um diagrama de blocos que mostra um exemplo de estrutura de um sistema de suprimento de conteúdo 3100 que realiza um serviço de entrega de conteúdo.[0056] Figure 17 is a block diagram showing an example structure of a content delivery system 3100 that performs a content delivery service.

[0057] A Figura 18 é um diagrama de blocos que mostra uma estrutura de um exemplo de um dispositivo terminal.[0057] Figure 18 is a block diagram showing a structure of an example of a terminal device.

DESCRIÇÃO DETALHADA DAS MODALIDADESDETAILED DESCRIPTION OF THE MODALITIES

[0058] Na descrição a seguir, é feita referência às figuras anexas, que fazem parte da revelação, e que mostram, a título de ilustração, aspectos específicos de modalidades da invenção ou aspectos específicos em que modalidades da presente invenção podem ser usadas. Entende-se que modalidades da invenção podem ser usadas em outros aspectos e compreendem mudanças estruturais ou lógicas não representadas nas figuras. A seguinte descrição detalhada, portanto, não deve ser tomada em um sentido limitante, e o escopo da presente invenção é definido pelas reivindicações anexas.[0058] In the following description, reference is made to the accompanying figures, which are part of the disclosure, and which show, by way of illustration, specific aspects of embodiments of the invention or specific aspects in which embodiments of the present invention may be used. It is understood that embodiments of the invention may be used in other aspects and comprise structural or logical changes not represented in the figures. The following detailed description, therefore, should not be taken in a limiting sense, and the scope of the present invention is defined by the accompanying claims.

[0059] Por exemplo, entende-se que uma revelação em conexão com um método descrito também pode ser verdadeira para um dispositivo ou sistema correspondente configurado para realizar o método e vice-versa. Por exemplo, se uma ou uma pluralidade de etapas de método específicas forem descritas, um dispositivo correspondente pode incluir uma ou uma pluralidade de unidades, por exemplo, unidades funcionais, para realizar a etapa ou pluralidade de etapas de método descritas (por exemplo, uma unidade realizando a uma ou a pluralidade de etapas, ou uma pluralidade de unidades, cada uma realizando uma ou mais da pluralidade de etapas), mesmo se tal uma ou mais unidades não forem explicitamente descritas ou ilustradas nas figuras. Por outro lado, por exemplo, se um aparelho específico for descrito com base em uma ou uma pluralidade de unidades, por exemplo, unidades funcionais, um método correspondente pode incluir uma etapa para realizar a funcionalidade da uma ou pluralidade de unidades (por exemplo, uma etapa realizando a funcionalidade da uma ou pluralidade de unidades, ou uma pluralidade de etapas, cada uma realizando a funcionalidade de uma ou mais da pluralidade de unidades), mesmo se tal uma ou pluralidade de etapas não forem explicitamente descritas ou ilustradas nas figuras. Além disso, entende-se que os recursos das várias modalidades exemplificativas e/ou aspectos descritos no presente documento podem ser combinados uns com os outros, a menos que especificamente indicado de outra forma.[0059] For example, it is understood that a disclosure in connection with a described method may also be true of a corresponding device or system configured to perform the method, and vice versa. For example, if one or a plurality of specific method steps are described, a corresponding device may include one or a plurality of units, e.g., functional units, for performing the described method step or plurality of steps (e.g., a unit performing the one or plurality of steps, or a plurality of units each performing one or more of the plurality of steps), even if such one or more units are not explicitly described or illustrated in the figures. On the other hand, for example, if a specific apparatus is described based on one or a plurality of units, e.g., functional units, a corresponding method may include a step for performing the functionality of the one or plurality of units (e.g., a step performing the functionality of the one or plurality of units, or a plurality of steps each performing the functionality of one or more of the plurality of units), even if such one or plurality of steps are not explicitly described or illustrated in the figures. Furthermore, it is understood that the features of the various exemplary embodiments and/or aspects described herein may be combined with each other, unless specifically indicated otherwise.

[0060] A codificação de vídeo tipicamente se relaciona ao processamento de uma sequência de imagens, que formam o vídeo ou sequência de vídeo. Em vez do termo "imagem", o termo "quadro" ou "imagem" pode ser usado como sinônimo no campo de codificação de vídeo. A codificação de vídeo usada no presente pedido (ou presente revelação) indica ou codificação de vídeo ou decodificação de vídeo. Codificação de vídeo é realizada no lado de fonte, tipicamente compreendendo processar (por exemplo, por compressão) as imagens de vídeo originais para reduzir o montante de dados exigidos para representar as imagens de vídeo (para armazenamento e/ou transmissão mais eficiente). A decodificação de vídeo é realizada no lado de destino e tipicamente compreende o processamento inverso em comparação com o codificador para reconstruir as imagens de vídeo. As modalidades que se referem à "codificação" de imagens de vídeo (ou imagens em geral, como será explicado posteriormente) devem ser entendidas como relacionadas ou à "codificação" ou à "decodificação" para sequência de vídeo. A combinação da parte de codificação e da parte de decodificação também é referida como CODEC (Codificação e Decodificação).[0060] Video coding typically relates to the processing of a sequence of images, which form the video or video sequence. Instead of the term "image", the term "frame" or "picture" may be used synonymously in the field of video coding. Video coding as used in the present application (or present disclosure) indicates either video encoding or video decoding. Video encoding is performed on the source side, typically comprising processing (e.g., by compression) the original video images to reduce the amount of data required to represent the video images (for more efficient storage and/or transmission). Video decoding is performed on the destination side and typically comprises the inverse processing compared to the encoder to reconstruct the video images. Embodiments that refer to "coding" video images (or images in general, as will be explained later) should be understood as relating to either "encoding" or "decoding" for video sequence. The combination of the encoding part and the decoding part is also referred to as CODEC (Coding and Decoding).

[0061] No caso de codificação de vídeo sem perdas, as imagens de vídeo originais podem ser reconstruídas, isto é, as imagens de vídeo reconstruídas têm a mesma qualidade que as imagens de vídeo originais (assumindo nenhuma perda de transmissão ou outra perda de dados durante o armazenamento ou transmissão). Em caso de codificação de vídeo com perdas, compressão adicional, por exemplo, por quantização, é realizada, para reduzir o montante de dados que representam as imagens de vídeo, que não podem ser completamente reconstruídas no decodificador, isto é, a qualidade das imagens de vídeo reconstruídas é inferior ou pior em comparação com a qualidade das imagens de vídeo originais.[0061] In the case of lossless video coding, the original video images can be reconstructed, i.e., the reconstructed video images have the same quality as the original video images (assuming no transmission loss or other data loss during storage or transmission). In the case of lossy video coding, additional compression, e.g., by quantization, is performed to reduce the amount of data representing the video images, which cannot be completely reconstructed at the decoder, i.e., the quality of the reconstructed video images is lower or worse compared to the quality of the original video images.

[0062] Vários padrões de codificação de vídeo desde H.261 pertencem ao grupo de "codecs de vídeo híbridos com perdas" (isto é, combinam predição espacial e temporal no domínio de amostra e codificação de transformada 2D para aplicar quantização no domínio de transformada). Cada imagem de uma sequência de vídeo é tipicamente particionada em um conjunto de blocos não sobrepostos e a codificação é tipicamente realizada em um nível de bloco. Em outras palavras, no codificador o vídeo é tipicamente processado, isto é, codificado, em um nível de bloco (bloco de vídeo), por exemplo, usando predição espacial (imagem intra) e predição temporal (imagem inter) para gerar um bloco de predição, subtraindo o bloco de predição do bloco atual (bloco atualmente processado/a ser processado) para obter um bloco residual, transformando o bloco residual e quantizando o bloco residual no domínio de transformada para reduzir o montante de dados a serem transmitidos (compressão), enquanto no decodificador o processamento inverso em comparação com o codificador é parcialmente aplicado ao bloco codificado ou comprimido para reconstruir o bloco atual para representação. Além disso, o codificador duplica o loop de processamento do decodificador de modo que ambos irão gerar predições idênticas (por exemplo, predições intra e inter) e/ou reconstruções para processamento, isto é, codificar, os blocos subsequentes.[0062] Several video coding standards since H.261 belong to the group of "hybrid lossy video codecs" (i.e., they combine spatial and temporal prediction in the sample domain and 2D transform coding to apply quantization in the transform domain). Each picture of a video sequence is typically partitioned into a set of non-overlapping blocks, and coding is typically performed at a block level. In other words, in the encoder, video is typically processed, i.e., encoded, at the block (video block) level, for example, using spatial prediction (intra-frame) and temporal prediction (inter-frame) to generate a prediction block, subtracting the prediction block from the current block (currently processed/to-be-processed block) to obtain a residual block, transforming the residual block, and quantizing the residual block in the transform domain to reduce the amount of data to be transmitted (compression). Meanwhile, in the decoder, the inverse processing compared to the encoder is partially applied to the encoded or compressed block to reconstruct the current block for representation. Furthermore, the encoder duplicates the decoder's processing loop so that both will generate identical predictions (e.g., intra- and inter-predictions) and/or reconstructions for processing, i.e., encoding, subsequent blocks.

[0063] Conforme usado no presente documento, o termo "bloco" pode ser uma parte de uma imagem ou quadro. Para conveniência da descrição, as modalidades da invenção são descritas no presente documento em referência à Codificação de Vídeo de Alta Eficiência (HEVC) ou ao software de referência de Codificação de Vídeo Versátil (VVC), desenvolvido pelo Time de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) do Grupo de Especialistas em Codificação de Vídeo (VCEG) de ITU-T e Grupo de Especialistas em Imagens em Movimento (MPEG) de ISO/IEC. Uma pessoa de habilidade comum na técnica entenderá que modalidades da invenção não estão limitadas a HEVC ou VVC. Pode-se fazer referência a uma CU (unidades de codificação), PU (unidades de predição) e TU (unidades de transformada). Na HEVC, uma CTU (unidade de árvore de codificação) é dividida em CUs usando-se uma estrutura de árvore quaternária indicada como árvore de codificação. A decisão de se codificar ou não uma área de imagem usando predição de imagem inter (temporal) ou de imagem intra (espacial) é feita a nível de CU. Cada CU pode ser dividida em uma, duas ou quatro PUs de acordo com o tipo de divisão de PU. Dentro de uma PU, o mesmo processo de predição é aplicado e as informações relevantes são transmitidas para o decodificador com base na PU. Depois de obter o bloco residual aplicando-se o processo de predição com base no tipo de divisão de PU, uma CU pode ser particionada em unidades de transformada (TUs) de acordo com uma outra estrutura de árvore quaternária similar à árvore de codificação para a CU. No desenvolvimento mais recente da técnica de compressão de vídeo, o quadro de particionamento em árvore quaternária e árvore binária (QTBT) é usado para partição de um bloco de codificação. Na estrutura de bloco QTBT, uma CU pode ter ou um formato quadrado ou retangular. Por exemplo, uma unidade de árvore de codificação (CTU) é primeiramente particionada por uma estrutura de árvore quaternária. Os nós folha de árvore quaternária são adicionalmente particionados por uma estrutura de árvore binária. Os nós folha de árvore binária são chamados de unidades de codificação (CUs), e essa segmentação é usada para predição e processamento de transformada sem qualquer particionamento adicional. Isso significa que a CU, PU e TU têm o mesmo tamanho de bloco na estrutura do bloco de codificação QTBT. Paralelamente, partição múltipla, por exemplo, partição Árvore Ternária (TT), também foi proposta para ser usada em conjunto com a estrutura de bloco QTBT. O termo "dispositivo" também pode ser "aparelho", "decodificador" ou "codificador".[0063] As used herein, the term "block" may be a portion of a picture or frame. For convenience of description, embodiments of the invention are described herein with reference to High Efficiency Video Coding (HEVC) or Versatile Video Coding (VVC) reference software developed by the Joint Collaboration Team on Video Coding (JCT-VC) of the Video Coding Experts Group (VCEG) of ITU-T and Moving Picture Experts Group (MPEG) of ISO/IEC. One of ordinary skill in the art will understand that embodiments of the invention are not limited to HEVC or VVC. Reference may be made to a CU (coding units), PU (prediction units), and TU (transform units). In HEVC, a CTU (coding tree unit) is divided into CUs using a quaternary tree structure referred to as a coding tree. The decision to encode an image region using inter- (temporal) or intra- (spatial) image prediction is made at the CU level. Each CU can be divided into one, two, or four PUs depending on the PU division type. Within a PU, the same prediction process is applied, and relevant information is transmitted to the decoder based on the PU. After obtaining the residual block by applying the prediction process based on the PU division type, a CU can be partitioned into transform units (TUs) according to another quaternary tree structure similar to the coding tree for the CU. In the most recent development of video compression technology, the quaternary tree and binary tree (QTBT) partitioning framework is used to partition a coding block. In the QTBT block structure, a CU can be either square or rectangular in shape. For example, a coding tree unit (CTU) is first partitioned using a quaternary tree structure. The leaf nodes of a quaternary tree are further partitioned using a binary tree structure. Binary tree leaf nodes are called coding units (CUs), and this segmentation is used for prediction and transform processing without any additional partitioning. This means that the CU, PU, and TU have the same block size in the QTBT coding block structure. In parallel, multiple partitioning, such as Ternary Tree (TT) partitioning, has also been proposed for use in conjunction with the QTBT block structure. The term "device" can also be "apparatus," "decoder," or "encoder."

[0064] Nas seguintes modalidades de um codificador 20, um decodificador 30 e um sistema de codificação 10 são descritos com base nas Figuras 1 a 3.[0064] The following embodiments of an encoder 20, a decoder 30, and a coding system 10 are described based on Figures 1-3.

[0065] A Figura 1A é um diagrama de blocos conceitual ou esquemático que ilustra um exemplo de sistema de codificação 10, por exemplo, um sistema de codificação de vídeo 10 que pode utilizar técnicas do presente pedido (presente revelação). O codificador 20 (por exemplo, codificador de vídeo 20) e o decodificador 30 (por exemplo, decodificador de vídeo 30) do sistema de codificação de vídeo 10 representam exemplos de dispositivos que podem ser configurados para realizar técnicas de acordo com vários exemplos descritos no presente pedido. Conforme mostrado na Figura 1A, o sistema de codificação 10 compreende um dispositivo de origem 12 configurado para fornecer dados codificados 13, por exemplo, uma imagem codificada 13, por exemplo, para um dispositivo de destino 14 para decodificar os dados codificados 13.[0065] Figure 1A is a conceptual or schematic block diagram illustrating an example coding system 10, e.g., a video coding system 10, that may utilize techniques of the present application (present disclosure). The encoder 20 (e.g., video encoder 20) and the decoder 30 (e.g., video decoder 30) of the video coding system 10 represent examples of devices that may be configured to perform techniques according to various examples described in the present application. As shown in Figure 1A, the coding system 10 comprises a source device 12 configured to provide encoded data 13, e.g., an encoded image 13, e.g., to a destination device 14 for decoding the encoded data 13.

[0066] O dispositivo de origem 12 compreende um codificador 20, e pode adicionalmente, isto é, opcionalmente, compreender uma fonte de imagem 16, uma unidade de pré-processamento 18, por exemplo, uma unidade de pré- processamento de imagem 18, e uma interface de comunicação ou unidade de comunicação 22.[0066] The source device 12 comprises an encoder 20, and may additionally, i.e. optionally, comprise an image source 16, a pre-processing unit 18, e.g., an image pre-processing unit 18, and a communication interface or communication unit 22.

[0067] A fonte de imagem 16 pode compreender ou ser qualquer tipo de dispositivo de captura de imagem, por exemplo, dispositivo gerador para capturar uma imagem do mundo real e/ou qualquer tipo de uma imagem ou comentário (para codificação de conteúdo de tela, alguns textos na tela são também considerados uma parte de uma imagem ou imagem a ser codificada), por exemplo, um processador gráfico de computador para gerar uma imagem animada por computador, ou qualquer tipo de dispositivo para obter e/ou fornecer uma imagem do mundo real, uma imagem animada por computador (por exemplo, um conteúdo de tela, uma imagem de realidade virtual (VR)) e/ou qualquer combinação destas (por exemplo, uma imagem de realidade aumentada (AR)). A fonte de imagem pode ser qualquer tipo de memória ou armazenamento que armazene qualquer das imagens acima mencionadas.[0067] The image source 16 may comprise or be any type of image capture device, e.g., a generating device for capturing a real-world image and/or any type of an image or commentary (for encoding screen content, some on-screen text is also considered a part of an image or image to be encoded), e.g., a computer graphics processor for generating a computer-animated image, or any type of device for obtaining and/or providing a real-world image, a computer-animated image (e.g., a screen content, a virtual reality (VR) image), and/or any combination thereof (e.g., an augmented reality (AR) image). The image source may be any type of memory or storage that stores any of the aforementioned images.

[0068] Uma imagem (digital) é ou pode ser considerada como um arranjo bidimensional ou arranjo de amostras com valores de intensidade. Uma amostra no arranjo também pode ser referida como pixel (forma abreviada de elemento de imagem) ou um pel. O número de amostras na direção (ou eixo) horizontal e vertical do arranjo ou imagem define o tamanho e/ou resolução da imagem. Para a representação da cor, tipicamente três componentes de cor são empregados, isto é, a imagem pode ser representada por ou incluir três arranjos de amostra. Em formato RBG ou espaço de cores uma imagem compreende um arranjo de amostra vermelha, verde e azul correspondente. No entanto, na codificação de vídeo, cada pixel é tipicamente representado em um formato de luminância/crominância ou espaço de cores, por exemplo, YCbCr, que compreende um componente de luminância indicado por Y (algumas vezes também L é usado alternativamente) e dois componentes de crominância indicados por Cb e Cr. O componente de luminância (ou luma abreviadamente) Y representa o brilho ou intensidade de nível de cinza (por exemplo, como em uma imagem em escala de cinza), enquanto os dois componentes de crominância (ou croma abreviadamente) Cb e Cr representam a cromaticidade ou componentes de informações de cor. Consequentemente, uma imagem em formato YCbCr compreende um arranjo de amostra de luminância de valores de amostra de luminância (Y), e dois arranjos de amostra de crominância de valores de crominância (Cb e Cr). As imagens em formato RGB podem ser convertidas ou transformadas em formato YCbCr e vice-versa, o processo também é conhecido como transformação ou conversão de cores. Se uma imagem for monocromática, a imagem pode compreender apenas um arranjo de amostra de luminância.[0068] A (digital) image is or may be considered as a two-dimensional array or array of samples with intensity values. A sample in the array may also be referred to as a pixel (short for picture element) or a pel. The number of samples in the horizontal and vertical direction (or axis) of the array or image defines the size and/or resolution of the image. For color representation, typically three color components are employed, i.e., the image may be represented by or include three sample arrays. In RBG format or color space, an image comprises a corresponding red, green, and blue sample array. However, in video coding, each pixel is typically represented in a luminance/chrominance format or color space, e.g., YCbCr, which comprises a luminance component denoted by Y (sometimes also L is used alternatively) and two chrominance components denoted by Cb and Cr. The luminance (or luma for short) component, Y, represents the brightness or gray-level intensity (e.g., as in a grayscale image), while the two chrominance (or chroma for short) components, Cb and Cr, represent the chromaticity or color information components. Consequently, a YCbCr format image comprises one luminance sample array of luminance sample values (Y), and two chrominance sample arrays of chrominance values (Cb and Cr). RGB format images can be converted or transformed to YCbCr format and vice versa; this process is also known as color transformation or conversion. If an image is monochromatic, the image may comprise only one luminance sample array.

[0069] A fonte de imagem 16 (por exemplo, fonte de vídeo 16) pode ser, por exemplo, uma câmera para capturar uma imagem, uma memória, por exemplo, uma memória de imagem, compreendendo ou armazenando uma imagem previamente capturada ou gerada e/ou qualquer tipo de interface (interna ou externa) para obter ou receber uma imagem. A câmera pode ser, por exemplo, uma câmera local ou integrada que é integrada no dispositivo de origem, a memória pode ser uma memória local ou integrada, por exemplo, integrado no dispositivo de origem. A interface pode ser, por exemplo, uma interface externa para receber uma imagem de uma fonte de vídeo externa, por exemplo, um dispositivo de captura de imagem externa como uma câmera, uma memória externa ou um dispositivo externo de geração de imagem, por exemplo, um computador gráfico externo processador, computador ou servidor. A interface pode ser qualquer tipo de interface, por exemplo, uma interface com fio ou sem fio, uma interface óptica, de acordo com qualquer protocolo de interface próprio ou padronizado. A interface para obter os dados de imagem 17 pode ser a mesma interface ou uma parte da interface de comunicação 22.[0069] The image source 16 (e.g., video source 16) may be, for example, a camera for capturing an image, a memory, for example, an image memory, comprising or storing a previously captured or generated image, and/or any type of interface (internal or external) for obtaining or receiving an image. The camera may be, for example, a local or integrated camera that is integrated into the source device; the memory may be a local or integrated memory, for example, integrated into the source device. The interface may be, for example, an external interface for receiving an image from an external video source, for example, an external image capture device such as a camera, an external memory, or an external image generation device, for example, an external graphics processor, computer, or server. The interface may be any type of interface, for example, a wired or wireless interface, an optical interface, according to any proprietary or standardized interface protocol. The interface for obtaining the image data 17 may be the same interface or a part of the communication interface 22.

[0070] Para distinguir da unidade de pré-processamento 18 e do processamento realizado pela unidade de pré-processamento 18, a imagem ou dados de imagem 17 (por exemplo, dados de vídeo 16) também podem ser referidos como imagem bruta ou dados de imagem brutos 17.[0070] To distinguish from the pre-processing unit 18 and the processing performed by the pre-processing unit 18, the image or image data 17 (e.g., video data 16) may also be referred to as the raw image or raw image data 17.

[0071] A unidade de pré-processamento 18 está configurada para receber os dados de imagem (brutos) 17 e para realizar pré-processamento nos dados de imagem 17 para obter uma imagem pré-processada 19 ou dados de imagem pré-processados 19. Pré-processamento realizado pela unidade de pré- processamento 18 pode, por exemplo, compreender corte, conversão de formato de cor (por exemplo, de RGB para YCbCr), correção de cor, ou eliminação de ruído. Pode ser entendido que a unidade de pré-processamento 18 pode ser um componente opcional.[0071] The preprocessing unit 18 is configured to receive the (raw) image data 17 and to perform preprocessing on the image data 17 to obtain a preprocessed image 19 or preprocessed image data 19. Preprocessing performed by the preprocessing unit 18 may, for example, comprise cropping, color format conversion (e.g., from RGB to YCbCr), color correction, or noise elimination. It may be understood that the preprocessing unit 18 may be an optional component.

[0072] O codificador 20 (por exemplo, codificador de vídeo 20) é configurado para receber os dados de imagem pré-processados 19 e fornecer dados de imagem codificados 21 (detalhes adicionais serão descritos abaixo, por exemplo, com base na Figura 2 ou Figura 4).[0072] The encoder 20 (e.g., video encoder 20) is configured to receive the preprocessed image data 19 and output encoded image data 21 (further details will be described below, e.g., based on Figure 2 or Figure 4).

[0073] A interface de comunicação 22 do dispositivo de origem 12 pode ser configurada para receber os dados de imagem codificados 21 e para transmitir os dados de imagem codificados 21 (ou qualquer outra versão adicionalmente processada dos mesmos) pelo canal de comunicação 13 para um outro dispositivo, por exemplo, o dispositivo de destino 14 ou qualquer outro dispositivo, para armazenamento ou reconstrução direta.[0073] The communication interface 22 of the source device 12 may be configured to receive the encoded image data 21 and to transmit the encoded image data 21 (or any other further processed version thereof) over the communication channel 13 to another device, e.g., the destination device 14 or any other device, for storage or direct reconstruction.

[0074] A interface de comunicação 22 do dispositivo de origem 12 pode ser configurada para receber os dados de imagem codificados 21 e para transmitir os mesmos para um outro dispositivo, por exemplo, o dispositivo de destino 14 ou qualquer outro dispositivo, para armazenamento ou reconstrução direta, ou para processar os dados de imagem codificados 21 para respectivamente antes de armazenar os dados codificados 13 e/ou transmitir os dados codificados 13 para um outro dispositivo, por exemplo, o dispositivo de destino 14 ou qualquer outro dispositivo para decodificação ou armazenamento.[0074] The communication interface 22 of the source device 12 may be configured to receive the encoded image data 21 and to transmit it to another device, for example, the destination device 14 or any other device, for direct storage or reconstruction, or to process the encoded image data 21 respectively before storing the encoded data 13 and/or transmitting the encoded data 13 to another device, for example, the destination device 14 or any other device for decoding or storage.

[0075] O dispositivo de destino 14 compreende um decodificador 30 (por exemplo, um decodificador de vídeo 30) e pode, adicionalmente, isto é, opcionalmente, compreender uma interface de comunicação ou unidade de comunicação 28, uma unidade de pós-processamento 32 e um dispositivo de exibição 34.[0075] The target device 14 comprises a decoder 30 (e.g., a video decoder 30) and may additionally, i.e., optionally, comprise a communication interface or communication unit 28, a post-processing unit 32, and a display device 34.

[0076] A interface de comunicação 28 do dispositivo de destino 14 é configurada para receber os dados de imagem codificados 21 (ou qualquer versão adicionalmente processada dos mesmos), por exemplo, diretamente a partir do dispositivo de origem 12 ou a partir de qualquer outra fonte, por exemplo, um dispositivo de armazenamento, por exemplo, um dispositivo de armazenamento de dados de imagem codificados, e fornecer os dados de imagem codificados 21 para o decodificador 30.[0076] The communication interface 28 of the destination device 14 is configured to receive the encoded image data 21 (or any further processed version thereof), e.g., directly from the source device 12 or from any other source, e.g., a storage device, e.g., an encoded image data storage device, and provide the encoded image data 21 to the decoder 30.

[0077] A interface de comunicação 28 do dispositivo de destino 14 é configurada para receber os dados de imagem codificados 21 ou os dados codificados 13, por exemplo, diretamente a partir do dispositivo de origem 12 ou a partir de qualquer outra fonte, por exemplo, um dispositivo de armazenamento, por exemplo, um dispositivo de armazenamento de dados de imagem codificados.[0077] The communication interface 28 of the destination device 14 is configured to receive the encoded image data 21 or the encoded data 13, for example, directly from the source device 12 or from any other source, for example, a storage device, for example, an encoded image data storage device.

[0078] A interface de comunicação 22 e a interface de comunicação 28 podem ser configuradas para transmitir ou receber os dados de imagem codificados 21 ou dados codificados 13 por meio de um enlace de comunicação direta entre o dispositivo de origem 12 e o dispositivo de destino 14, por exemplo, uma conexão direta com fio ou sem fio, ou por meio de qualquer tipo de rede, por exemplo, uma rede com fio ou sem fio ou qualquer combinação das mesmas, ou qualquer tipo de rede privada e pública, ou qualquer tipo de combinação das mesmas.[0078] The communication interface 22 and the communication interface 28 may be configured to transmit or receive the encoded image data 21 or encoded data 13 via a direct communication link between the source device 12 and the destination device 14, e.g., a direct wired or wireless connection, or via any type of network, e.g., a wired or wireless network or any combination thereof, or any type of private and public network, or any type of combination thereof.

[0079] A interface de comunicação 22 pode ser, por exemplo, configurada para empacotar os dados de imagem codificados 21 em um formato apropriado, por exemplo, pacotes e/ou processar os dados de imagem codificados usando qualquer tipo de codificação ou processamento de transmissão para transmissão por um enlace de comunicação ou rede de comunicação.[0079] The communication interface 22 may be, for example, configured to package the encoded image data 21 in an appropriate format, e.g., packets, and/or process the encoded image data using any type of transmission encoding or processing for transmission over a communication link or communication network.

[0080] A interface de comunicação 28, formando a contraparte da interface de comunicação 22, pode ser, por exemplo, configurada para desempacotar os dados codificados 13 para obter os dados de imagem codificados 21.[0080] The communication interface 28, forming the counterpart of the communication interface 22, may be, for example, configured to unpack the encoded data 13 to obtain the encoded image data 21.

[0081] A interface de comunicação 28, formando a contraparte da interface de comunicação 22, pode ser, por exemplo, configurada para receber os dados transmitidos e processar os dados de transmissão usando qualquer tipo de decodificação de transmissão correspondente ou processamento e/ou desempacotamento para obter os dados de imagem codificados 21.[0081] The communication interface 28, forming the counterpart of the communication interface 22, may be, for example, configured to receive the transmitted data and process the transmission data using any type of corresponding transmission decoding or processing and/or unpacking to obtain the encoded image data 21.

[0082] Ambas, a interface de comunicação 22 e a interface de comunicação 28 podem ser configuradas como interfaces de comunicação unidirecional conforme indicado pela seta para os dados de imagem codificados 13 na Figura 1A apontando do dispositivo de origem 12 para o dispositivo de destino 14, ou interfaces de comunicação bidirecionais, e podem ser configuradas, por exemplo, para enviar e receber mensagens, por exemplo para estabelecer uma conexão, para confirmar e trocar quaisquer outras informações relacionadas ao enlace de comunicação e/ou transmissão de dados, por exemplo, transmissão de dados de imagem codificados.[0082] Both communication interface 22 and communication interface 28 may be configured as unidirectional communication interfaces as indicated by the arrow for encoded image data 13 in Figure 1A pointing from source device 12 to destination device 14, or bidirectional communication interfaces, and may be configured, for example, to send and receive messages, for example, to establish a connection, to confirm and exchange any other information related to the communication link and/or data transmission, for example, transmission of encoded image data.

[0083] O decodificador 30 é configurado para receber os dados de imagem codificados 21 e fornecer dados de imagem decodificados 31 ou uma imagem decodificada 31 (detalhes adicionais serão descritos abaixo, por exemplo, com base na Figura 3 ou na Figura 5).[0083] The decoder 30 is configured to receive the encoded image data 21 and provide decoded image data 31 or a decoded image 31 (further details will be described below, e.g., based on Figure 3 or Figure 5).

[0084] O pós-processador 32 do dispositivo de destino 14 é configurado para pós-processar os dados de imagem decodificados 31 (também chamados de dados de imagem reconstruída), por exemplo, a imagem decodificada 31, para obter dados de imagem 33 pós-processados, por exemplo, uma imagem pós-processada 33. O pós-processamento realizado pela unidade de pós-processamento 32 pode compreender, por exemplo, conversão de formato de cor (por exemplo, de YCbCr para RGB), correção de cor, corte ou nova amostragem ou qualquer outro processamento, por exemplo, para preparar os dados 31 de imagem decodificados para apresentação, por exemplo, pelo dispositivo de exibição 34.[0084] The post-processor 32 of the target device 14 is configured to post-process the decoded image data 31 (also called reconstructed image data), e.g., the decoded image 31, to obtain post-processed image data 33, e.g., a post-processed image 33. The post-processing performed by the post-processing unit 32 may comprise, e.g., color format conversion (e.g., from YCbCr to RGB), color correction, cropping or resampling, or any other processing, e.g., to prepare the decoded image data 31 for presentation, e.g., by the display device 34.

[0085] O dispositivo de exibição 34 do dispositivo de destino 14 está configurado para receber os dados de imagem pós-processados 33 para exibir a imagem, por exemplo, para um usuário ou visualizador. O dispositivo de exibição 34 pode ser ou compreender qualquer tipo de display para representar a imagem reconstruída, por exemplo, um display ou monitor integrado ou externo. Os displays podem, por exemplo, compreender displays de cristal líquido (LCD), displays de diodos emissores de luz orgânica (OLED), displays de plasma, projetores, displays de microLED, cristal líquido em silício (LCoS), processador de luz digital (DLP) ou qualquer outro tipo de display.[0085] The display device 34 of the target device 14 is configured to receive the post-processed image data 33 to display the image, e.g., to a user or viewer. The display device 34 may be or comprise any type of display for representing the reconstructed image, e.g., an integrated or external display or monitor. Displays may, for example, comprise liquid crystal displays (LCD), organic light-emitting diode (OLED) displays, plasma displays, projectors, microLED displays, liquid crystal on silicon (LCoS), digital light processing (DLP), or any other type of display.

[0086] Embora a Figura 1A represente o dispositivo de origem 12 e o dispositivo de destino 14 como dispositivos separados, modalidades de dispositivos também podem compreender ambos ou ambas as funcionalidades, o dispositivo de origem 12 ou funcionalidade correspondente e o dispositivo de destino 14 ou funcionalidade correspondente. Em tais modalidades, o dispositivo de origem 12 ou funcionalidade correspondente e o dispositivo de destino 14 ou funcionalidade correspondente podem ser implementados usando o mesmo hardware e/ou software ou por hardware e/ou software separado(s) ou qualquer combinação dos mesmos.[0086] Although Figure 1A depicts the source device 12 and the destination device 14 as separate devices, embodiments of devices may also comprise both or both functionality of the source device 12 or corresponding functionality and the destination device 14 or corresponding functionality. In such embodiments, the source device 12 or corresponding functionality and the destination device 14 or corresponding functionality may be implemented using the same hardware and/or software or by separate hardware and/or software, or any combination thereof.

[0087] Como será evidente para a pessoa habilitada com base na descrição, a existência e divisão (exata) de funcionalidades das diferentes unidades ou funcionalidades dentro do dispositivo de origem 12 e/ou do dispositivo de destino 14 como mostrado na Figura 1A pode variar dependendo do dispositivo e aplicativo efetivos.[0087] As will be apparent to the skilled person based on the description, the existence and (exact) division of functionalities of the different units or functionalities within the source device 12 and/or the target device 14 as shown in Figure 1A may vary depending on the actual device and application.

[0088] O codificador 20 (por exemplo, um codificador de vídeo 20) e o decodificador 30 (por exemplo, um decodificador de vídeo 30), podem, cada um, ser implementados como qualquer um dentre uma variedade de conjunto de circuitos adequado, tais como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de portas programáveis em campo (FPGAs), lógica discreta, hardware ou quaisquer combinações dos mesmos. Se as técnicas forem implementadas parcialmente em software, um dispositivo pode armazenar instruções para o software em uma mídia de armazenamento legível por computador não transitória adequada e pode executar as instruções em hardware usando um ou mais processadores para realizar as técnicas desta revelação. Qualquer um dentre os anteriores (incluindo hardware, software, uma combinação de hardware e software, etc.) pode ser considerado somo sendo um ou mais processadores. Cada um dentre o codificador de vídeo 20 e decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, qualquer um dentre os quais pode ser integrado como parte de um codificador/decodificador combinado (CODEC) em um respectivo dispositivo.[0088] Encoder 20 (e.g., a video encoder 20) and decoder 30 (e.g., a video decoder 30) may each be implemented as any of a variety of suitable circuitry, such as one or more microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), discrete logic, hardware, or any combinations thereof. If the techniques are implemented partially in software, a device may store instructions for the software on a suitable non-transitory computer-readable storage medium and may execute the instructions in hardware using one or more processors to perform the techniques of this disclosure. Any of the foregoing (including hardware, software, a combination of hardware and software, etc.) may be considered to be one or more processors. Each of the video encoder 20 and video decoder 30 may be included in one or more encoders or decoders, any of which may be integrated as part of a combined encoder/decoder (CODEC) in a respective device.

[0089] O codificador 20 pode ser implementado por meio de conjunto de circuitos de processamento 46 para incorporar os vários módulos conforme discutido em relação ao codificador 20 da Figura 2 e/ou qualquer outro sistema ou subsistema codificador descrito no presente documento. O decodificador 30 pode ser implementado por meio de conjunto de circuitos de processamento 46 para incorporar os vários módulos conforme discutido em relação ao decodificador 30 da Figura 3 e/ou qualquer outro sistema ou subsistema decodificador descrito no presente documento. O conjunto de circuitos de processamento pode ser configurado para realizar as várias operações conforme discutido mais tarde. Conforme mostrado na Figura 5, se as técnicas forem implementadas parcialmente em software, um dispositivo pode armazenar instruções para o software em uma mídia de armazenamento legível por computador não transitória adequada e pode executar as instruções em hardware usando um ou mais processadores para realizar as técnicas desta revelação. Qualquer um dentre o codificador de vídeo 20 e o decodificador de vídeo 30 pode ser integrado como parte de um codificador/decodificador combinado (CODEC) em um único dispositivo, por exemplo, como mostrado na Figura 1B.[0089] Encoder 20 may be implemented via processing circuitry 46 to incorporate the various modules as discussed with respect to encoder 20 of Figure 2 and/or any other encoder system or subsystem described herein. Decoder 30 may be implemented via processing circuitry 46 to incorporate the various modules as discussed with respect to decoder 30 of Figure 3 and/or any other decoder system or subsystem described herein. The processing circuitry may be configured to perform the various operations as discussed later. As shown in Figure 5, if the techniques are implemented partially in software, a device may store instructions for the software on a suitable non-transitory computer-readable storage medium and may execute the instructions in hardware using one or more processors to perform the techniques of this disclosure. Either of the video encoder 20 and the video decoder 30 may be integrated as part of a combined encoder/decoder (CODEC) in a single device, for example, as shown in Figure 1B.

[0090] O dispositivo de origem 12 pode ser referido como um dispositivo de codificação de vídeo ou um aparelho de codificação de vídeo. O dispositivo de destino 14 pode ser referido como um dispositivo de decodificação de vídeo ou um aparelho de decodificação de vídeo. O dispositivo de origem 12 e o dispositivo de destino 14 podem ser exemplos de dispositivos de codificação de vídeo ou aparelhos de codificação de vídeo.[0090] The source device 12 may be referred to as a video encoding device or a video encoding apparatus. The destination device 14 may be referred to as a video decoding device or a video decoding apparatus. The source device 12 and the destination device 14 may be examples of video encoding devices or video encoding apparatus.

[0091] O dispositivo de origem 12 e o dispositivo de destino 14 podem compreender qualquer um de uma ampla faixa de dispositivos, incluindo qualquer tipo de dispositivos de mão ou estacionários, por exemplo, computadores tipo notebook ou tipo laptop, telefones móveis, telefones inteligentes, tablets ou computadores tipo tablet, câmeras, computadores de mesa, set top boxes, televisões, dispositivos de exibição, reprodutores de mídias digitas, consoles de videogame, dispositivos de streaming de vídeo (tais como servidores de serviços de conteúdo ou servidores de entrega de conteúdo), dispositivo receptor de broadcast, dispositivo transmissor de broadcast ou semelhantes e podem não usar ou usar qualquer tipo de sistema operacional.[0091] The source device 12 and the destination device 14 may comprise any of a wide range of devices, including any type of handheld or stationary devices, for example, notebook or laptop computers, mobile phones, smartphones, tablets or tablet computers, cameras, desktop computers, set top boxes, televisions, display devices, digital media players, video game consoles, video streaming devices (such as content service servers or content delivery servers), broadcast receiver device, broadcast transmitter device, or the like, and may not use or use any type of operating system.

[0092] Em alguns casos, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser equipados para comunicação sem fio. Assim, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser dispositivos de comunicação sem fio.[0092] In some cases, the source device 12 and the destination device 14 may be equipped for wireless communication. Thus, the source device 12 and the destination device 14 may be wireless communication devices.

[0093] Em alguns casos, o sistema de codificação de vídeo 10 ilustrado na Figura 1A é meramente um exemplo e as técnicas do presente pedido podem se aplicar às conformações de codificação de vídeo (por exemplo, codificação de vídeo ou decodificação de vídeo) que não incluem necessariamente qualquer comunicação de dados entre os dispositivos de codificação e decodificação. Em outros exemplos, dados são recuperados a partir de uma memória local, transmitidos por streaming por uma rede ou semelhantes. Um dispositivo de codificação de vídeo pode codificar e armazenar dados na memória, e/ou um dispositivo de decodificação de vídeo pode recuperar e decodificar dados a partir da memória. Em alguns exemplos, a codificação e decodificação são realizadas por dispositivos que não se comunicam entre si, mas simplesmente codificam dados para a memória e/ou recuperam e decodificam dados a partir da memória.[0093] In some instances, the video encoding system 10 illustrated in Figure 1A is merely an example, and the techniques of the present application may apply to video encoding embodiments (e.g., video encoding or video decoding) that do not necessarily include any data communication between the encoding and decoding devices. In other examples, data is retrieved from local memory, streamed over a network, or the like. A video encoding device may encode and store data in memory, and/or a video decoding device may retrieve and decode data from memory. In some examples, encoding and decoding are performed by devices that do not communicate with each other, but simply encode data into memory and/or retrieve and decode data from memory.

[0094] Para conveniência da descrição, modalidades da invenção são descritas no presente documento, por exemplo, por referência à Codificação de Vídeo de Alta Eficiência (HEVC) ou ao software de referência de codificação de Vídeo Versátil (VVC), o padrão de codificação de vídeo de próxima geração desenvolvido pelo Time de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) do Grupo de Especialistas em Codificação de Vídeo (VCEG) ITU-T e Grupo de Especialistas em Imagem em Movimento (MPEG) ISO/IEC. Uma pessoa de habilidade comum na técnica entenderá que as modalidades da invenção não estão limitadas a HEVC ou VVC. Deve ser entendido que, para cada um dentre os exemplos acima descritos com referência ao codificador de vídeo 20, o decodificador de vídeo 30 pode ser configurado para realizar um processo recíproco. No que diz respeito aos elementos de sintaxe de sinalização, o decodificador de vídeo 30 pode ser configurado para receber e analisar tal elemento de sintaxe e decodificar os dados de vídeo associados de acordo. Em alguns exemplos, o codificador de vídeo 20 pode codificar de entropia um ou mais elementos de sintaxe no fluxo de bits de vídeo codificado. Em tais exemplos, o decodificador de vídeo 30 pode analisar tal elemento de sintaxe e decodificar os dados de vídeo associados de acordo.[0094] For convenience of description, embodiments of the invention are described herein, for example, by reference to High Efficiency Video Coding (HEVC) or Versatile Video Coding (VVC) reference software, the next-generation video coding standard developed by the Joint Collaboration Team on Video Coding (JCT-VC) of the ITU-T Video Coding Experts Group (VCEG) and ISO/IEC Moving Picture Experts Group (MPEG). One of ordinary skill in the art will understand that embodiments of the invention are not limited to HEVC or VVC. It should be understood that, for each of the examples described above with reference to video encoder 20, video decoder 30 may be configured to perform a reciprocal process. With respect to signaling syntax elements, video decoder 30 may be configured to receive and parse such syntax element and decode the associated video data accordingly. In some examples, video encoder 20 may entropy encode one or more syntax elements in the encoded video bitstream. In such examples, video decoder 30 may analyze such syntax element and decode the associated video data accordingly.

[0095] A Figura 1B é um diagrama ilustrativo de um outro exemplo de sistema de codificação de vídeo 40 incluindo o codificador 20 da Figura 2 e/ou decodificador 30 da Figura 3 de acordo com uma modalidade exemplificativa. O sistema 40 pode implementar técnicas de acordo com vários exemplos descritos no presente pedido. Na implementação ilustrada, o sistema de codificação de vídeo 40 pode incluir dispositivo(s) de geração de imagem 41, codificador de vídeo 100, decodificador de vídeo 30 (e/ou um codificador de vídeo implementado por meio de conjunto de circuitos lógicos 47 da(s) unidade(s) de processamento 46), uma antena 42, um ou mais processadores 43, um ou mais repositórios em memória 44 e/ou um dispositivo de exibição 45.[0095] Figure 1B is an illustrative diagram of another example video coding system 40 including encoder 20 of Figure 2 and/or decoder 30 of Figure 3 according to an exemplary embodiment. System 40 may implement techniques according to various examples described herein. In the illustrated implementation, video coding system 40 may include image generation device(s) 41, video encoder 100, video decoder 30 (and/or a video encoder implemented via logic circuitry 47 of processing unit(s) 46), an antenna 42, one or more processors 43, one or more memory stores 44, and/or a display device 45.

[0096] Conforme ilustrado, dispositivo(s) de geração de imagem 41, antena 42, unidade(s) de processamento 46, conjunto de circuitos lógicos 47, codificador de vídeo 20, decodificador de vídeo 30, processador(es) 43, repositório(s) em memória 44 e/ou o dispositivo de exibição 45 podem ter capacidade de se comunicar um com o outro. Conforme discutido, embora ilustrado tanto com o codificador de vídeo 20 quanto com o decodificador de vídeo 30, o sistema de codificação de vídeo 40 pode incluir apenas o codificador de vídeo 20 ou apenas o decodificador de vídeo 30 em vários exemplos.[0096] As illustrated, imaging device(s) 41, antenna 42, processing unit(s) 46, logic circuitry 47, video encoder 20, video decoder 30, processor(s) 43, memory store(s) 44, and/or display device 45 may be capable of communicating with one another. As discussed, although illustrated with both video encoder 20 and video decoder 30, video coding system 40 may include only video encoder 20 or only video decoder 30 in various examples.

[0097] Como mostrado, em alguns exemplos, o sistema de codificação de vídeo 40 pode incluir a antena 42. A antena 42 pode ser configurada para transmitir ou receber um fluxo de bits codificado de dados de vídeo, por exemplo. Além disso, em alguns exemplos, o sistema de codificação de vídeo 40 pode incluir o dispositivo de exibição 45. O dispositivo de exibição 45 pode ser configurado para apresentar dados de vídeo. Como mostrado, em alguns exemplos, conjunto de circuitos lógicos 47 pode ser implementado por meio de unidade(s) de processamento 46. A(s) unidade(s) de processamento 46 pode(m) incluir lógica de circuito integrado de aplicação específica (ASIC), processador(es) gráfico(s), processador(es) de propósito geral, ou semelhantes. O sistema de codificação de vídeo 40 também pode incluir processador(es) opcional (opcionais) 43, que pode(m) incluir de forma similar lógica de circuito integrado de aplicação específica (ASIC), processador(es) gráfico(s), processador(es) de propósito geral ou semelhantes. Em alguns exemplos, conjunto de circuitos lógicos 47 pode ser implementado por meio de hardware, hardware dedicado de codificação de vídeo, ou semelhantes, e o(s) processador(es) 43 pode(m) implementar software de propósito geral, sistemas operacionais, ou semelhantes. Além disso, o(s) repositório(s) em memória 44 pode(m) ser qualquer tipo de memória, tais como memória volátil (por exemplo, Memória de Acesso Aleatório Estática (SRAM), Memória de Acesso Aleatório Dinâmica (DRAM), etc.) ou memória não volátil (por exemplo, memória flash, etc.) e assim por diante. Em um exemplo não limitativo, repositório(s) em memória 44 podem ser implementados por memória cache. Em alguns exemplos, conjunto de circuitos lógicos 47 pode acessar repositório(s) em memória 44 (para implementação de um buffer de imagem, por exemplo). Em outros exemplos, conjunto de circuitos lógicos 47 e/ou unidade(s) de processamento 46 podem incluir repositórios em memória (por exemplo, cache ou semelhantes) para a implementação de um buffer de imagem ou semelhantes.[0097] As shown, in some examples, video encoding system 40 may include antenna 42. Antenna 42 may be configured to transmit or receive an encoded bitstream of video data, for example. Further, in some examples, video encoding system 40 may include display device 45. Display device 45 may be configured to present video data. As shown, in some examples, logic circuitry 47 may be implemented by processing unit(s) 46. Processing unit(s) 46 may include application-specific integrated circuit (ASIC) logic, graphics processor(s), general-purpose processor(s), or the like. Video encoding system 40 may also include optional processor(s) 43, which may similarly include application-specific integrated circuit (ASIC) logic, graphics processor(s), general-purpose processor(s), or the like. In some examples, logic circuitry 47 may be implemented via hardware, dedicated video encoding hardware, or the like, and processor(s) 43 may implement general-purpose software, operating systems, or the like. Furthermore, memory repository(ies) 44 may be any type of memory, such as volatile memory (e.g., Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), etc.) or non-volatile memory (e.g., flash memory, etc.), and so on. In a non-limiting example, memory repository(ies) 44 may be implemented via cache memory. In some examples, logic circuitry 47 may access memory repository(ies) 44 (for implementing a picture buffer, for example). In other examples, logic circuitry 47 and/or processing unit(s) 46 may include in-memory repositories (e.g., cache or the like) for implementing an image buffer or the like.

[0098] Em alguns exemplos, o codificador de vídeo 100 implementado por meio de conjunto de circuitos lógicos pode incluir um buffer de imagem (por exemplo, ou por meio de unidade(s) de processamento 46 ou repositório(s) em memória 44)) e uma unidade de processamento gráfico (por exemplo, por meio de unidade(s) de processamento 46). A unidade de processamento gráfico pode ser acoplada comunicativamente ao buffer de imagem. A unidade de processamento gráfico pode incluir codificador de vídeo 100 conforme implementado por meio de conjunto de circuitos lógicos 47 para incorporar os vários módulos, conforme discutido em relação à Figura 2 e/ou qualquer outro sistema ou subsistema codificador descrito no presente documento. Conjunto de circuitos lógicos pode ser configurado para realizar as várias operações conforme discutido no presente documento.[0098] In some examples, video encoder 100 implemented via logic circuitry may include a picture buffer (e.g., either via processing unit(s) 46 or memory repository(ies) 44) and a graphics processing unit (e.g., via processing unit(s) 46). The graphics processing unit may be communicatively coupled to the picture buffer. The graphics processing unit may include video encoder 100 as implemented via logic circuitry 47 to incorporate the various modules as discussed in connection with Figure 2 and/or any other encoder system or subsystem described herein. Logic circuitry may be configured to perform the various operations as discussed herein.

[0099] O decodificador de vídeo 30 pode ser implementado de uma maneira similar conforme implementado por meio do conjunto de circuitos lógicos 47 para incorporar os vários módulos conforme discutido em relação ao decodificador 30 da Figura 3 e/ou qualquer outro sistema ou subsistema decodificador descrito no presente documento. Em alguns exemplos, o decodificador de vídeo 30 pode ser implementado por meio de conjunto de circuitos lógicos pode incluir um buffer de imagem (por exemplo, por meio ou de unidade(s) de processamento 420 ou repositório(s) em memória 44)) e uma unidade de processamento gráfico (por exemplo, por meio de unidade(s) de processamento 46). A unidade de processamento gráfico pode ser acoplada comunicativamente ao buffer de imagem. A unidade de processamento gráfico pode incluir decodificador de vídeo 30 conforme implementado por meio de conjunto de circuitos lógicos 47 para incorporar os vários módulos, conforme discutido em relação à Figura 3 e/ou qualquer outro sistema ou subsistema decodificador descrito no presente documento.[0099] Video decoder 30 may be implemented in a similar manner as implemented via logic circuitry 47 to incorporate the various modules as discussed with respect to decoder 30 of Figure 3 and/or any other decoder system or subsystem described herein. In some examples, video decoder 30 may be implemented via logic circuitry that may include a picture buffer (e.g., via either processing unit(s) 420 or memory store(s) 44) and a graphics processing unit (e.g., via processing unit(s) 46). The graphics processing unit may be communicatively coupled to the picture buffer. The graphics processing unit may include video decoder 30 as implemented via logic circuitry 47 to incorporate the various modules as discussed with respect to Figure 3 and/or any other decoder system or subsystem described herein.

[0100] Em alguns exemplos, a antena 42 de sistema de codificação de vídeo 40 pode ser configurada para receber um fluxo de bits codificado de dados de vídeo. Conforme discutido, o fluxo de bits codificado pode incluir dados, indicadores, valores de índice, dados de seleção de modo, ou semelhantes associados à codificação de um quadro de vídeo como discutido no presente documento, tais como dados associados com a partição de codificação (por exemplo, coeficientes de transformada ou coeficientes de transformada quantizados, indicadores opcionais (conforme discutido) e/ou dados que definem a partição de codificação). O sistema de codificação de vídeo 40 também pode incluir decodificador de vídeo 30 acoplado à antena 42 e configurado para decodificar o fluxo de bits codificado. O dispositivo de exibição 45 configurado para apresentar quadros de vídeo.[0100] In some examples, antenna 42 of video coding system 40 may be configured to receive an encoded bitstream of video data. As discussed, the encoded bitstream may include data, indicators, index values, mode selection data, or the like associated with encoding a video frame as discussed herein, such as data associated with the coding partition (e.g., transform coefficients or quantized transform coefficients, optional indicators (as discussed), and/or data defining the coding partition). Video coding system 40 may also include video decoder 30 coupled to antenna 42 and configured to decode the encoded bitstream. Display device 45 configured to present video frames.

[0101] A Figura 2 mostra um diagrama de blocos esquemático/conceitual de um exemplo de codificador de vídeo 20 que está configurado para implementar as técnicas do presente pedido. No exemplo da Figura 2, o codificador de vídeo 20 compreende uma unidade de cálculo residual 204, uma unidade de processamento de transformada 206, uma unidade de quantização 208, uma unidade de quantização inversa 210, e unidade de processamento de transformada inversa 212, uma unidade de reconstrução 214, um buffer 216, uma unidade de filtro loop 220, um buffer de imagem decodificada (DPB) 230, uma unidade de processamento de predição 260 e uma unidade de codificação de entropia 270. A unidade de processamento de predição 260 pode incluir uma unidade de predição inter 244, uma unidade de predição intra 254 e uma unidade de seleção de modo 262. A unidade de predição inter 244 pode incluir uma unidade de estimativa de movimento e uma unidade de compensação de movimento (não mostradas). Um codificador de vídeo 20, como mostrado na Figura 2 também pode ser referido como codificador de vídeo híbrido ou um codificador de vídeo de acordo com um codec de vídeo híbrido.[0101] Figure 2 shows a schematic/conceptual block diagram of an example video encoder 20 that is configured to implement the techniques of the present application. In the example of Figure 2, the video encoder 20 comprises a residual calculation unit 204, a transform processing unit 206, a quantization unit 208, an inverse quantization unit 210, and inverse transform processing unit 212, a reconstruction unit 214, a buffer 216, a loop filter unit 220, a decoded picture buffer (DPB) 230, a prediction processing unit 260, and an entropy coding unit 270. The prediction processing unit 260 may include an inter prediction unit 244, an intra prediction unit 254, and a mode selection unit 262. The inter prediction unit 244 may include a motion estimation unit and a motion compensation unit (not shown). A video encoder 20 as shown in Figure 2 may also be referred to as a hybrid video encoder or a video encoder according to a hybrid video codec.

[0102] Por exemplo, a unidade de cálculo residual 204, a unidade de processamento de transformada 206, a unidade de quantização 208, a unidade de processamento de predição 260 e a unidade de codificação de entropia 270 formam um percurso de sinal de avanço do codificador 20, enquanto que, por exemplo, a unidade de quantização inversa 210, a unidade de processamento de transformada inversa 212, a unidade de reconstrução 214, o buffer 216, o filtro loop 220, o buffer de imagem decodificada (DPB) 230, a unidade de processamento de predição 260 formam um percurso de sinal de regressão do codificador, em que o percurso do sinal de regressão do codificador corresponde ao percurso de sinal do decodificador (ver decodificador 30 na Figura 3).[0102] For example, the residual calculation unit 204, the transform processing unit 206, the quantization unit 208, the prediction processing unit 260, and the entropy coding unit 270 form a forward signal path of the encoder 20, while, for example, the inverse quantization unit 210, the inverse transform processing unit 212, the reconstruction unit 214, the buffer 216, the filter loop 220, the decoded picture buffer (DPB) 230, and the prediction processing unit 260 form a regression signal path of the encoder, wherein the regression signal path of the encoder corresponds to the signal path of the decoder (see decoder 30 in Figure 3).

[0103] A unidade de quantização inversa 210, a unidade de processamento de transformada inversa 212, a unidade de reconstrução 214, o filtro loop 220, o buffer de imagem decodificada (DPB) 230, a unidade de predição inter 244 e a unidade de predição intra 254 também são referidos para formar o "decodificador embutido" do codificador de vídeo 20. O codificador 20 é configurado para receber, por exemplo, pela entrada 202, uma imagem 201 ou um bloco 203 da imagem 201, por exemplo, imagem de uma sequência de imagens que formam um vídeo ou sequência de vídeo. O bloco de imagem 203 também pode ser referido como bloco de imagem atual ou bloco de imagem a ser codificado, e a imagem 201 como imagem atual ou imagem a ser codificada (em particular em codificação de vídeo para distinguir a imagem atual de outras imagens, por exemplo, imagens previamente codificadas e/ou decodificadas da mesma sequência de vídeo, isto é, a sequência de vídeo que também compreende a imagem atual).[0103] The inverse quantization unit 210, the inverse transform processing unit 212, the reconstruction unit 214, the loop filter 220, the decoded picture buffer (DPB) 230, the inter prediction unit 244, and the intra prediction unit 254 are also referred to form the "embedded decoder" of the video encoder 20. The encoder 20 is configured to receive, for example, by the input 202, a picture 201 or a block 203 of the picture 201, e.g., picture of a sequence of pictures forming a video or video sequence. The picture block 203 may also be referred to as the current picture block or the picture block to be coded, and the picture 201 as the current picture or the picture to be coded (in particular in video coding to distinguish the current picture from other pictures, e.g., previously coded and/or decoded pictures of the same video sequence, i.e., the video sequence that also comprises the current picture).

[0104] Uma imagem (digital) é ou pode ser considerada como um arranjo ou matriz bidimensional de amostras com valores de intensidade. Uma amostra na matriz também pode ser referida como pixel (forma abreviada de elemento de imagem) ou pel. O número de amostras na direção (ou eixo) horizontal e vertical da matriz ou imagem definem o tamanho e/ou resolução da imagem. Para representação da cor, tipicamente três componentes de cor são empregados, isto é, a imagem pode ser representada ou incluir três arranjos de amostra. Em formato RBG ou espaço de cores, uma imagem compreende um arranjo de amostra vermelha, verde e azul correspondente. No entanto, em codificação de vídeo cada pixel é tipicamente representado em um formato de luminância e crominância ou espaço de cores, por exemplo, YCbCr, que compreende um componente de luminância indicado por Y (algumas vezes também L é usado alternativamente) e dois componentes de crominância indicados por Cb e Cr. O componente de luminância (ou luma abreviadamente) Y representa o brilho ou intensidade de nível de cinza (por exemplo, como em uma imagem em escala de cinza), enquanto os dois componentes de crominância (ou croma abreviadamente) Cb e Cr representam a cromaticidade ou componentes de informações de cor. Consequentemente, uma imagem em formato YCbCr compreende um arranjo de amostra de luminância de valores de amostra de luminância (Y), e dois arranjos de amostra de crominância de valores de crominância (Cb e Cr). Imagens em formato RGB podem ser convertidas ou transformadas em formato YCbCr e vice-versa, o processo também é conhecido como transformação ou conversão de cores. Se uma imagem for monocromática, a imagem pode compreender apenas um arranjo de amostra de luminância. Consequentemente, uma imagem pode ser, por exemplo, um arranjo de amostras de luma em formato monocromático ou um arranjo de amostras de luma e dois arranjos correspondentes de amostras de croma em formato de cor 4: 2: 0, 4: 2: 2 e 4: 4: 4.[0104] A (digital) image is or can be considered as a two-dimensional array or matrix of samples with intensity values. A sample in the array can also be referred to as a pixel (short for picture element) or pel. The number of samples in the horizontal and vertical direction (or axis) of the array or image defines the size and/or resolution of the image. For color representation, typically three color components are employed, i.e., the image can be represented or include three sample arrangements. In RBG format or color space, an image comprises a corresponding red, green, and blue sample arrangement. However, in video coding, each pixel is typically represented in a luminance and chrominance format or color space, for example, YCbCr, which comprises a luminance component denoted by Y (sometimes also L is used alternatively) and two chrominance components denoted by Cb and Cr. The luminance (or luma for short) component, Y, represents the brightness or gray-level intensity (e.g., as in a grayscale image), while the two chrominance (or chroma for short) components, Cb and Cr, represent the chromaticity or color information components. Consequently, a YCbCr format image comprises one luminance sample array of luminance sample values (Y), and two chrominance sample arrays of chrominance values (Cb and Cr). RGB format images can be converted or transformed to YCbCr format and vice versa; this process is also known as color transformation or conversion. If an image is monochromatic, the image may comprise only one luminance sample array. Accordingly, an image may be, for example, an array of luma samples in monochrome format, or an array of luma samples and two corresponding arrays of chroma samples in 4:2:0, 4:2:2, and 4:4:4 color format.

PARTICIONAMENTOPARTITIONING

[0105] Modalidades do codificador 20 podem compreender uma unidade de particionamento (não representada na Figura 2) configurada para particionar a imagem 201 em uma pluralidade de blocos de imagem (tipicamente não sobrepostos) 203. Esses blocos também podem ser referidos como blocos raiz, macroblocos (H.264/AVC) ou blocos de árvore de codificação (CTB) ou unidades de árvore de codificação (CTU) (H.265/HEVC e VVC). A unidade de particionamento pode ser configurada para usar o mesmo tamanho de bloco para todas as imagens de uma sequência de vídeo e a grade correspondente definindo o tamanho do bloco, ou para mudar o tamanho do bloco entre imagens ou subconjuntos ou grupos de imagens, e particionar cada imagem nos blocos correspondentes.[0105] Embodiments of the encoder 20 may comprise a partitioning unit (not depicted in Figure 2) configured to partition the picture 201 into a plurality of (typically non-overlapping) picture blocks 203. These blocks may also be referred to as root blocks, macroblocks (H.264/AVC), or coding tree blocks (CTB) or coding tree units (CTU) (H.265/HEVC and VVC). The partitioning unit may be configured to use the same block size for all pictures of a video sequence and the corresponding grid defining the block size, or to change the block size between pictures or subsets or groups of pictures, and partition each picture into the corresponding blocks.

[0106] Em outras modalidades, o codificador de vídeo pode ser configurado para receber diretamente um bloco 203 da imagem 201, por exemplo, um, diversos ou todos os blocos que formam a imagem 201. O bloco de imagem 203 também pode ser referido como bloco de imagem atual ou bloco de imagem a ser codificado. Em um exemplo, a unidade de processamento de predição 260 do codificador de vídeo 20 pode ser configurada para realizar qualquer combinação das técnicas de particionamento descritas acima.[0106] In other embodiments, the video encoder may be configured to directly receive a block 203 of the picture 201, e.g., one, several, or all of the blocks that form the picture 201. The picture block 203 may also be referred to as the current picture block or the picture block to be encoded. In one example, the prediction processing unit 260 of the video encoder 20 may be configured to perform any combination of the partitioning techniques described above.

[0107] Como a imagem 201, o bloco 203 mais uma vez é ou pode ser considerado como um arranjo bidimensional ou matriz de amostras com valores de intensidade (valores de amostra), embora de menor dimensão do que a imagem 201. Em outras palavras, o bloco 203 pode compreender, por exemplo, um arranjo de amostra (por exemplo, um arranjo de luma em caso de uma imagem monocromática 201) ou três arranjos de amostra (por exemplo, um arranjo de luma e dois de croma no caso de uma imagem colorida 201) ou qualquer outro número e/ou tipo de arranjos dependendo do formato de cor aplicado. O número de amostras na direção (ou eixo) horizontal e vertical do bloco 203 define o tamanho do bloco 203. Consequentemente, um bloco pode, por exemplo, um arranjo de amostras MxN (coluna M por linha N), ou um arranjo MxN de coeficientes de transformada.[0107] Like image 201, block 203 once again is or may be considered as a two-dimensional array or matrix of samples with intensity values (sample values), albeit of lower dimension than image 201. In other words, block 203 may comprise, for example, one sample array (e.g., one luma array in the case of a monochrome image 201), or three sample arrays (e.g., one luma and two chroma arrays in the case of a color image 201), or any other number and/or type of arrays depending on the color format applied. The number of samples in the horizontal and vertical direction (or axis) of block 203 defines the size of block 203. Accordingly, a block may, for example, be an MxN array of samples (M column by N row), or an MxN array of transform coefficients.

[0108] O codificador 20 conforme mostrado na Figura 2, está configurado para codificar a imagem 201 bloco a bloco, por exemplo, a codificação e a predição são realizadas por bloco 203.[0108] The encoder 20 as shown in Figure 2 is configured to encode the image 201 block by block, for example, the encoding and prediction are performed per block 203.

[0109] As modalidades do codificador de vídeo 20 como mostrado na Figura 2 podem ser adicionalmente configuradas para particionar e/ou codificar a imagem usando-se fatias (também referidas como fatias de vídeo), em que uma imagem pode ser particionada ou codificada usando uma ou mais fatias (tipicamente não sobrepostas), e cada fatia pode compreender um ou mais blocos (por exemplo, CTUs) ou um ou mais grupos de blocos (por exemplo, tiles (H.265/HEVC e VVC) ou bricks (VVC)).[0109] Embodiments of the video encoder 20 as shown in Figure 2 may be further configured to partition and/or encode the image using slices (also referred to as video slices), wherein an image may be partitioned or encoded using one or more slices (typically non-overlapping), and each slice may comprise one or more blocks (e.g., CTUs) or one or more groups of blocks (e.g., tiles (H.265/HEVC and VVC) or bricks (VVC)).

[0110] As modalidades do codificador de vídeo 20 conforme mostrado na Figura 2, podem ser adicionalmente configuradas para particionar e/ou codificar a imagem usando-se grupos de fatias/tile (também referidos como grupos de tile de vídeo) e/ou tiles (também referidas como tiles de vídeo), em que uma imagem pode ser particionada ou codificada usando um ou mais grupos de fatias/tile (tipicamente não sobrepostos), e cada grupo de fatias/tile pode compreender, por exemplo um ou mais blocos (por exemplo, CTUs) ou um ou mais tiles, em que cada tile, por exemplo, pode ser de formato retangular e pode compreender um ou mais blocos (por exemplo, CTUs), por exemplo, blocos completos ou fracionários.[0110] Embodiments of the video encoder 20 as shown in Figure 2 may be further configured to partition and/or encode the image using slice/tile groups (also referred to as video tile groups) and/or tiles (also referred to as video tiles), wherein an image may be partitioned or encoded using one or more slice/tile groups (typically non-overlapping), and each slice/tile group may comprise, for example, one or more blocks (e.g., CTUs) or one or more tiles, wherein each tile, for example, may be rectangular in shape and may comprise one or more blocks (e.g., CTUs), for example, full or fractional blocks.

CÁLCULO RESIDUALRESIDUAL CALCULATION

[0111] A unidade de cálculo residual 204 é configurada para calcular um bloco residual 205 com base no bloco de imagem 203 e em um bloco de predição 265 (detalhes adicionais sobre o bloco de predição 265 são fornecidos posteriormente), por exemplo, subtraindo-se valores de amostra do bloco de predição 265 dos valores de amostra do bloco de imagem 203, amostra por amostra (pixel por pixel) para obter o bloco residual 205 no domínio de amostra.[0111] The residual calculation unit 204 is configured to calculate a residual block 205 based on the image block 203 and a prediction block 265 (further details about the prediction block 265 are provided later), for example, by subtracting sample values of the prediction block 265 from the sample values of the image block 203, sample by sample (pixel by pixel) to obtain the residual block 205 in the sample domain.

TRANSFORMADATRANSFORMED

[0112] A unidade de processamento de transformada 206 está configurada para aplicar uma transformada, por exemplo, uma transformada discreta de cosseno (DCT) ou transformada discreta de seno (DST), nos valores de amostra do bloco residual 205 para obter coeficientes de transformada 207 em um domínio de transformada. Os coeficientes de transformada 207 também podem ser referidos como coeficientes residuais de transformada e representam o bloco residual 205 no domínio de transformada.[0112] The transform processing unit 206 is configured to apply a transform, e.g., a discrete cosine transform (DCT) or discrete sine transform (DST), to the sample values of the residual block 205 to obtain transform coefficients 207 in a transform domain. The transform coefficients 207 may also be referred to as transform residual coefficients and represent the residual block 205 in the transform domain.

[0113] A unidade de processamento de transformada 206 pode ser configurada para aplicar aproximações em número inteiro de DCT/DST, tais como as transformadas especificadas para HEVC/H.265. Em comparação com uma transformada DCT ortogonal, tais aproximações em número inteiro são tipicamente escalonadas por um determinado fator. A fim de preservar a norma do bloco residual que é processado pelas transformadas de avanço e inversas, fatores de escala adicionais são aplicados como parte do processo de transformada. Os fatores de escala são tipicamente escolhidos com base em certas restrições como fatores de escala sendo uma potência de dois para operação de deslocamento, profundidade de bits dos coeficientes de transformada, compensação entre precisão e custos de implementação, etc. Fatores de escala específicos são, por exemplo, especificados para a transformada inversa, por exemplo, por unidade de processamento de transformada inversa 212, em um decodificador 30 (e a transformada inversa correspondente, por exemplo, por unidade de processamento de transformada inversa 212 em um codificador 20) e fatores de escala correspondentes para a transformada de avanço, por exemplo, pela unidade de processamento de transformada 206, em um codificador 20 pode ser especificado de acordo.[0113] The transform processing unit 206 may be configured to apply integer approximations of DCT/DST, such as the transforms specified for HEVC/H.265. Compared to an orthogonal DCT transform, such integer approximations are typically scaled by a certain factor. In order to preserve the norm of the residual block that is processed by the forward and inverse transforms, additional scaling factors are applied as part of the transform process. The scaling factors are typically chosen based on certain constraints such as scaling factors being a power of two for shift operation, bit depth of the transform coefficients, tradeoff between accuracy and implementation costs, etc. Specific scaling factors are, for example, specified for the inverse transform, e.g., by inverse transform processing unit 212, in a decoder 30 (and the corresponding inverse transform, e.g., by inverse transform processing unit 212 in an encoder 20), and corresponding scaling factors for the forward transform, e.g., by transform processing unit 206, in an encoder 20 may be specified accordingly.

[0114] As modalidades do codificador de vídeo 20 (relativamente à unidade de processamento de transformada 206) podem ser configuradas para emitir parâmetros de transformada, por exemplo, um tipo de transformada ou transformadas, por exemplo, diretamente ou codificada ou comprimida por meio da unidade de codificação de entropia 270, de modo que, por exemplo, o decodificador de vídeo 30 possa receber e usar os parâmetros de transformada para decodificação.[0114] Embodiments of video encoder 20 (relative to transform processing unit 206) may be configured to output transform parameters, e.g., a transform type or transforms, e.g., directly or encoded or compressed via entropy coding unit 270, so that, e.g., video decoder 30 may receive and use the transform parameters for decoding.

QUANTIZAÇÃOQUANTIZATION

[0115] A unidade de quantização 208 é configurada para quantizar os coeficientes de transformada 207 para obter coeficientes de transformada quantizados 209, por exemplo, aplicando-se quantização escalar ou quantização vetorial. Os coeficientes de transformada quantizados 209 também podem ser referidos como coeficientes residuais quantizados 209. O processo de quantização pode reduzir a profundidade de bit associada a alguns dos ou todos os coeficientes de transformada 207. Por exemplo, um coeficiente de Transformada de n bits pode ser arredondado para baixo para um coeficiente de Transformada de m bits durante quantização, onde n é maior que m. O grau de quantização pode ser modificado ajustando-se um parâmetro de quantização (QP). Por exemplo, para quantização escalar, diferentes escalas podem ser aplicadas para alcançar uma quantização mais fina ou mais grosseira. Tamanhos de etapa de quantização menores correspondem à quantização mais fina, enquanto tamanhos de etapa de quantização maiores correspondem à quantização mais grosseira. O tamanho de etapa de quantização aplicável pode ser indicado por um parâmetro de quantização (QP). O parâmetro de quantização pode, por exemplo, ser um índice para um conjunto predefinido de tamanhos de etapas de quantização aplicáveis. Por exemplo, pequenos parâmetros de quantização podem corresponder à quantização fina (tamanhos de etapa de quantização pequenos) e grandes parâmetros de quantização podem corresponder à quantização grosseira (grandes tamanhos de etapa de quantização) ou vice-versa. A quantização pode incluir divisão por um tamanho de etapa de quantização e desquantização correspondente ou inversa, por exemplo, por quantização inversa 210, pode incluir multiplicação pelo tamanho de etapa de quantização. Modalidades de acordo com alguns padrões, por exemplo, HEVC, podem ser configuradas para usar um parâmetro de quantização para determinar o tamanho de etapa de quantização. De modo geral, o tamanho de etapa de quantização pode ser calculado com base em um parâmetro de quantização usando uma aproximação de ponto fixo de uma equação incluindo divisão. Fatores de escala adicionais podem ser introduzidos para quantização e desquantização para restaurar a norma do bloco residual, que poderia ser modificada por causa da escala usada na aproximação de ponto fixo da equação para tamanho de etapa de quantização e parâmetro de quantização. Em um exemplo de implementação, a escala da transformada inversa e a desquantização podem ser combinados. Alternativamente, tabelas de quantização personalizadas podem ser usadas e sinalizadas de um codificador para um decodificador, por exemplo, em uma atual de bits. A quantização é uma operação com perdas, em que a perda aumenta com tamanhos de etapas de quantização cada vez maiores.[0115] The quantization unit 208 is configured to quantize the transform coefficients 207 to obtain quantized transform coefficients 209, for example, by applying scalar quantization or vector quantization. The quantized transform coefficients 209 may also be referred to as quantized residual coefficients 209. The quantization process may reduce the bit depth associated with some or all of the transform coefficients 207. For example, an n-bit transform coefficient may be rounded down to an m-bit transform coefficient during quantization, where n is greater than m. The degree of quantization may be modified by adjusting a quantization parameter (QP). For example, for scalar quantization, different scales may be applied to achieve finer or coarser quantization. Smaller quantization step sizes correspond to finer quantization, while larger quantization step sizes correspond to coarser quantization. The applicable quantization step size may be indicated by a quantization parameter (QP). The quantization parameter may, for example, be an index to a predefined set of applicable quantization step sizes. For example, small quantization parameters may correspond to fine quantization (small quantization step sizes), and large quantization parameters may correspond to coarse quantization (large quantization step sizes), or vice versa. Quantization may include division by a quantization step size, and corresponding dequantization or inverse quantization, e.g., inverse quantization 210, may include multiplication by the quantization step size. Embodiments of some standards, e.g., HEVC, may be configured to use a quantization parameter to determine the quantization step size. In general, the quantization step size can be calculated based on a quantization parameter using a fixed-point approximation of an equation including division. Additional scaling factors can be introduced for quantization and dequantization to restore the residual block norm, which could be modified due to the scaling used in the fixed-point approximation of the equation for the quantization step size and quantization parameter. In an example implementation, inverse transform scaling and dequantization could be combined. Alternatively, custom quantization tables can be used and signaled from an encoder to a decoder, for example, in a bitstream. Quantization is a lossy operation, where the loss increases with increasing quantization step sizes.

[0116] As modalidades do codificador de vídeo 20 (relativamente à unidade de quantização 208) podem ser configuradas para emitir parâmetros de quantização (QP), por exemplo, diretamente ou codificados por meio da unidade de codificação de entropia 270, de modo que, por exemplo, o decodificador de vídeo 30 possa receber e aplicar os parâmetros de quantização para decodificação.[0116] Embodiments of video encoder 20 (relative to quantization unit 208) may be configured to output quantization parameters (QP), e.g., directly or encoded via entropy coding unit 270, so that, e.g., video decoder 30 may receive and apply the quantization parameters for decoding.

[0117] A unidade de quantização inversa 210 é configurada para aplicar a quantização inversa da unidade de quantização 208 nos coeficientes quantizados para obter coeficientes desquantizados 211, por exemplo, aplicando-se o inverso do esquema de quantização aplicado pela unidade de quantização 208 com base no ou usando o mesmo tamanho de etapa de quantização que a unidade de quantização 208. Os coeficientes desquantizados 211 também podem ser referidos como coeficientes residuais desquantizados 211 e correspondem - embora tipicamente não idênticos aos coeficientes de transformada devido à perda por quantização - aos coeficientes de transformada 207.[0117] The inverse quantization unit 210 is configured to apply the inverse quantization of the quantization unit 208 to the quantized coefficients to obtain dequantized coefficients 211, for example, by applying the inverse of the quantization scheme applied by the quantization unit 208 based on or using the same quantization step size as the quantization unit 208. The dequantized coefficients 211 may also be referred to as dequantized residual coefficients 211 and correspond—although typically not identical to the transform coefficients due to quantization loss—to the transform coefficients 207.

[0118] A unidade de processamento de transformada inversa 212 está configurada para aplicar a transformada inversa da transformada aplicada pela unidade de processamento de transformada 206, por exemplo, uma transformada de cosseno discreta inversa (DCT) ou transformada de seno discreta inversa (DST), para obter um bloco de transformada inversa 213 no domínio de amostra. O bloco de transformada inversa 213 também pode ser referido como bloco desquantizado de transformada inversa 213 ou bloco residual de transformada inversa 213.[0118] The inverse transform processing unit 212 is configured to apply the inverse transform of the transform applied by the transform processing unit 206, e.g., an inverse discrete cosine transform (DCT) or inverse discrete sine transform (DST), to obtain an inverse transform block 213 in the sample domain. The inverse transform block 213 may also be referred to as the inverse transform dequantized block 213 or the inverse transform residual block 213.

[0119] A unidade de reconstrução 214 (por exemplo, somador 214) é configurada para adicionar o bloco de transformada inversa 213 (isto é, bloco residual reconstruído 213) ao bloco de predição 265 para obter um bloco reconstruído 215 no domínio de amostra, por exemplo, adicionando-se os valores de amostra do bloco residual reconstruído 213 e os valores de amostra do bloco de predição 265.[0119] The reconstruction unit 214 (e.g., adder 214) is configured to add the inverse transform block 213 (i.e., reconstructed residual block 213) to the prediction block 265 to obtain a reconstructed block 215 in the sample domain, for example, by adding the sample values of the reconstructed residual block 213 and the sample values of the prediction block 265.

[0120] De modo opcional, a unidade de buffer 216 (ou abreviadamente "buffer" 216), por exemplo, um buffer de linha 216 é configurado para armazenar em buffer ou armazenar o bloco reconstruído 215 e os respectivos valores de amostra, por exemplo, para predição intra. Em outras modalidades, o codificador pode ser configurado para usar blocos reconstruídos não filtrados e/ou os respectivos valores de amostra armazenados na unidade de buffer 216 para qualquer tipo de estimativa e/ou predição, por exemplo, predição intra.[0120] Optionally, the buffer unit 216 (or "buffer" 216 for short), e.g., a line buffer 216, is configured to buffer or store the reconstructed block 215 and the respective sample values, e.g., for intra prediction. In other embodiments, the encoder may be configured to use unfiltered reconstructed blocks and/or the respective sample values stored in the buffer unit 216 for any type of estimation and/or prediction, e.g., intra prediction.

[0121] As modalidades do codificador 20 podem ser configuradas de modo que, por exemplo, a unidade de buffer 216 não seja apenas usada para armazenar os blocos reconstruídos 215 para predição intra 254, mas também para a unidade de filtro loop 220 (não mostrada na Figura 2), e/ou de modo que, por exemplo, a unidade de buffer 216 e a unidade de buffer de imagem decodificada 230 formem um buffer. Outras modalidades podem ser configuradas para usar blocos filtrados 221 e/ou blocos ou amostras a partir do buffer de imagem decodificada 230 (ambos não mostrados na Figura 2) como entrada ou base para predição intra 254.[0121] Embodiments of encoder 20 may be configured such that, for example, buffer unit 216 is not only used to store the reconstructed blocks 215 for intra prediction 254, but also for loop filter unit 220 (not shown in Figure 2), and/or such that, for example, buffer unit 216 and decoded picture buffer unit 230 form a buffer. Other embodiments may be configured to use filtered blocks 221 and/or blocks or samples from decoded picture buffer 230 (both not shown in Figure 2) as input or basis for intra prediction 254.

[0122] A unidade de filtro loop 220 (ou abreviadamente "filtro loop" 220), é configurada para filtrar o bloco reconstruído 215 para obter um bloco filtrado 221, por exemplo, para suavizar as transições de pixel, ou aperfeiçoar de outra forma a qualidade do vídeo. A unidade de filtro loop 220 se destina a representar um ou mais filtros loop tais como um filtro de desblocagem, um filtro de desvio adaptável a amostra (SAO) ou outros filtros, por exemplo, um filtro bilateral ou um filtro loop adaptável (ALF) ou filtros de nitidez ou suavização ou filtros colaborativos. Embora a unidade de filtro loop 220 seja mostrada na Figura 2 como sendo um filtro in-loop, em outras configurações, a unidade de filtro loop 220 pode ser implementada como um filtro post-loop. O bloco filtrado 221 também pode ser referido como bloco reconstruído filtrado 221. O buffer de imagem decodificada 230 pode armazenar os blocos de codificação reconstruídos após a unidade de filtro loop 220 realize as operações de filtragem nos blocos de codificação reconstruídos.[0122] The loop filter unit 220 (or "loop filter" 220 for short) is configured to filter the reconstructed block 215 to obtain a filtered block 221, for example, to smooth pixel transitions, or otherwise improve video quality. The loop filter unit 220 is intended to represent one or more loop filters such as a deblocking filter, a sample-adaptive offset (SAO) filter, or other filters, for example, a bilateral filter or an adaptive loop filter (ALF), or sharpening or smoothing filters, or collaborative filters. Although the loop filter unit 220 is shown in Figure 2 as being an in-loop filter, in other embodiments, the loop filter unit 220 may be implemented as a post-loop filter. The filtered block 221 may also be referred to as the filtered reconstructed block 221. The decoded picture buffer 230 may store the reconstructed coding blocks after the filter loop unit 220 performs the filtering operations on the reconstructed coding blocks.

[0123] A unidade de filtro loop 220 (ou abreviadamente "filtro loop" 220), é configurada para filtrar o bloco reconstruído 215 para obter um bloco filtrado 221 ou, em geral, para filtrar amostras reconstruídas para obter valores de amostra filtrada. A unidade de filtro loop é, por exemplo, configurada para suavizar transições de pixel ou aperfeiçoar de outra forma a qualidade do vídeo. A unidade de filtro loop 220 pode compreender um ou mais filtros loop, tais como um filtro de desblocagem, um filtro de deslocamento adaptativo de amostra (SAO) ou um ou mais outros filtros, por exemplo, um filtro loop adaptável (ALF), um filtro de supressão de ruído (NSF) ou qualquer combinação dos mesmos. Em um exemplo, a unidade de filtro loop 220 pode compreender um filtro de desblocagem, um filtro SAO e um filtro ALF. A ordem do processo de filtragem pode ser o filtro de desblocagem, SAO e ALF. Em um outro exemplo, um processo chamado mapeamento de luma com escala de croma (LMCS) (isto é, o remodelador in-loop adaptável) é adicionado. Este processo é realizado antes do desblocagem. Em um outro exemplo, o processo de filtro de desblocagem também pode ser aplicado às bordas do sub-bloco interno, por exemplo, bordas de sub-blocos afins, bordas de sub-blocos ATMVP, bordas de transformada de sub-bloco (SBT) e bordas de subpartição intra (ISP). Embora a unidade de filtro loop 220 seja mostrada na Figura 2 como sendo um filtro in-loop, em outras configurações, a unidade de filtro loop 220 pode ser implementada como um filtro post-loop. O bloco filtrado 221 também pode ser referido como bloco reconstruído filtrado 221.[0123] The loop filter unit 220 (or "loop filter" 220 for short) is configured to filter the reconstructed block 215 to obtain a filtered block 221 or, in general, to filter reconstructed samples to obtain filtered sample values. The loop filter unit is, for example, configured to smooth pixel transitions or otherwise enhance video quality. The loop filter unit 220 may comprise one or more loop filters, such as a deblocking filter, an adaptive sample shift (SAO) filter, or one or more other filters, for example, an adaptive loop filter (ALF), a noise suppression filter (NSF), or any combination thereof. In one example, the loop filter unit 220 may comprise a deblocking filter, an SAO filter, and an ALF filter. The order of the filtering process may be deblocking, SAO, and ALF filter. In another example, a process called luma mapping with chroma scaling (LMCS) (i.e., the adaptive in-loop reshaper) is added. This process is performed before deblocking. In another example, the deblocking filter process can also be applied to internal subblock edges, e.g., affine subblock edges, ATMVP subblock edges, subblock transform (SBT) edges, and intra-subpartition (ISP) edges. Although the loop filter unit 220 is shown in Figure 2 as an in-loop filter, in other embodiments, the loop filter unit 220 can be implemented as a post-loop filter. The filtered block 221 can also be referred to as the filtered reconstructed block 221.

[0124] As modalidades do codificador de vídeo 20 (relativamente à unidade de filtro loop 220) podem ser configuradas para emitir parâmetros de filtro loop (como parâmetros de filtro SAO ou parâmetros de filtro ALF ou parâmetros LMCS), por exemplo, diretamente ou codificado por meio da unidade de codificação de entropia 270, de modo que, por exemplo, um decodificador 30 pode receber e aplicar os mesmos parâmetros de filtro loop ou respectivos filtros loop para decodificação.[0124] Embodiments of video encoder 20 (relative to loop filter unit 220) may be configured to output loop filter parameters (such as SAO filter parameters or ALF filter parameters or LMCS parameters), for example, directly or encoded via entropy coding unit 270, so that, for example, a decoder 30 may receive and apply the same loop filter parameters or respective loop filters for decoding.

[0125] As modalidades do codificador 20 (relativamente à unidade de filtro loop 220) podem ser configuradas para emitir parâmetros de filtro loop (tais como informações de deslocamento adaptável a amostra), por exemplo, codificadas diretamente ou de entropia por meio da unidade de codificação de entropia 270 ou qualquer outra unidade de codificação de entropia, de modo que, por exemplo, um decodificador 30 pode receber e aplicar os mesmos parâmetros de filtro loop para decodificação.[0125] Embodiments of encoder 20 (relative to filter loop unit 220) may be configured to output filter loop parameters (such as sample-adaptive offset information), e.g., directly or entropy-encoded via entropy coding unit 270 or any other entropy coding unit, so that, e.g., a decoder 30 may receive and apply the same filter loop parameters for decoding.

[0126] O buffer de imagem decodificada (DPB) 230 pode ser uma memória de imagem de referência que armazena dados de imagem de referência para uso na codificação de dados de vídeo por codificador de vídeo 20. O DPB 230 pode ser formado por qualquer um dentre uma variedade de dispositivos de memória, tais como memória de acesso aleatório dinâmica (DRAM), incluindo DRAM síncrona (SDRAM), RAM magnetorresistiva (MRAM), RAM resistiva (RRAM) ou outros tipos de dispositivos de memória. O DPB 230 e o buffer 216 podem ser fornecidos pelo mesmo dispositivo de memória ou dispositivos de memória separados. Em algum exemplo, o buffer de imagem decodificada (DPB) 230 é configurado para armazenar o bloco filtrado 221. O buffer de imagem decodificada 230 pode ser adicionalmente configurado para armazenar outros blocos previamente filtrados, por exemplo, blocos previamente reconstruídos e filtrados 221, da mesma imagem atual ou de imagens diferentes, por exemplo, imagens previamente reconstruídas, e pode fornecer imagens reconstruídas, isto é, decodificadas previamente completas (e blocos e amostras de referência correspondentes) e/ou uma imagem atual parcialmente reconstruída (e blocos de referência e amostras correspondentes), por exemplo, para predição inter. Em algum exemplo, se o bloco reconstruído 215 for reconstruído, mas sem filtragem in-loop, o buffer de imagem decodificada (DPB) 230 é configurado para armazenar um ou mais blocos reconstruídos não filtrados 215, ou em geral amostras reconstruídas não filtradas, por exemplo, se o bloco reconstruído 215 não for filtrado pela unidade de filtro loop 220, ou qualquer outra versão adicionalmente processada dos blocos reconstruídos ou amostras.[0126] The decoded picture buffer (DPB) 230 may be a reference picture memory that stores reference picture data for use in encoding video data by video encoder 20. The DPB 230 may be formed by any of a variety of memory devices, such as dynamic random access memory (DRAM), including synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), resistive RAM (RRAM), or other types of memory devices. The DPB 230 and the buffer 216 may be provided by the same memory device or separate memory devices. In some example, the decoded picture buffer (DPB) 230 is configured to store the filtered block 221. The decoded picture buffer 230 may be further configured to store other previously filtered blocks, e.g., previously reconstructed and filtered blocks 221, of the same current picture or of different pictures, e.g., previously reconstructed pictures, and may provide complete previously decoded, i.e., reconstructed pictures (and corresponding reference blocks and samples) and/or a partially reconstructed current picture (and corresponding reference blocks and samples), e.g., for inter-prediction. In some example, if reconstructed block 215 is reconstructed but without in-loop filtering, decoded picture buffer (DPB) 230 is configured to store one or more unfiltered reconstructed blocks 215, or in general unfiltered reconstructed samples, e.g., if reconstructed block 215 is not filtered by loop filter unit 220, or any other further processed version of the reconstructed blocks or samples.

[0127] A unidade de processamento de predição 260, também referida como unidade de processamento de predição de bloco 260, é configurada para receber ou obter o bloco 203 (bloco atual 203 da imagem atual 201) e dados de imagem reconstruídos, por exemplo, amostras de referência da mesma imagem (atual) do buffer 216 e/ou dados de imagem de referência 231 a partir de uma ou uma pluralidade de imagens claramente decodificadas a partir do buffer de imagem decodificada 230, e para processar tais dados para predição, isto é, para fornecer um bloco de predição 265, que pode ser um bloco predito de modo inter 245 ou um bloco predito de modo intra 255.[0127] The prediction processing unit 260, also referred to as the block prediction processing unit 260, is configured to receive or obtain the block 203 (current block 203 of the current picture 201) and reconstructed image data, e.g., reference samples of the same (current) picture from the buffer 216 and/or reference image data 231 from one or a plurality of clearly decoded pictures from the decoded picture buffer 230, and to process such data for prediction, i.e., to provide a prediction block 265, which may be an inter-mode predicted block 245 or an intra-mode predicted block 255.

[0128] A unidade de seleção de modo 262 pode ser configurada para selecionar um modo de predição (por exemplo, um modo de predição intra ou inter) e/ou um bloco de predição correspondente 245 ou 255 para ser usado como bloco de predição 265 para o cálculo do bloco residual 205 e para a reconstrução do bloco reconstruído 215.[0128] The mode selection unit 262 may be configured to select a prediction mode (e.g., an intra- or inter-prediction mode) and/or a corresponding prediction block 245 or 255 to be used as prediction block 265 for the calculation of the residual block 205 and for the reconstruction of the reconstructed block 215.

[0129] As modalidades da unidade de seleção de modo 262 podem ser configuradas para selecionar o modo de predição (por exemplo, a partir daqueles suportados pela unidade de processamento de predição 260), que fornece o melhor pareamento ou, em outras palavras, o residual mínimo (residual mínimo significa melhor compressão para transmissão ou armazenamento), ou um overhead de sinalização mínimo (overhead de sinalização mínimo significa melhor compressão para transmissão ou armazenamento), ou que considera ou equilibra ambos. A unidade de seleção de modo 262 pode ser configurada para determinar o modo de predição com base em otimização de distorção de taxa (RDO), isto é, selecionar o modo de predição que fornece uma otimização de distorção de taxa mínima ou cuja distorção de taxa associada pelo menos atende um critério de seleção de modo de predição.[0129] Embodiments of the mode selection unit 262 may be configured to select the prediction mode (e.g., from those supported by the prediction processing unit 260) that provides the best matching, or in other words, the minimum residual (minimum residual means best compression for transmission or storage), or a minimum signaling overhead (minimum signaling overhead means best compression for transmission or storage), or that considers or balances both. The mode selection unit 262 may be configured to determine the prediction mode based on rate distortion optimization (RDO), i.e., select the prediction mode that provides a minimum rate distortion optimization or whose associated rate distortion at least meets a prediction mode selection criterion.

[0130] A seguir, o processamento de predição (por exemplo, unidade de processamento de predição 260 e seleção de modo (por exemplo, por unidade de seleção de modo 262) realizado por um codificador exemplificativo 20 será explicado em mais detalhe.[0130] Next, prediction processing (e.g., by prediction processing unit 260) and mode selection (e.g., by mode selection unit 262) performed by an exemplary encoder 20 will be explained in more detail.

[0131] Além das ou alternativamente às modalidades acima mencionadas, em outras modalidades de acordo com a Figura 15, a unidade de seleção de modo 260 compreende unidade de particionamento 262, unidade de predição inter 244 e unidade de predição intra 254, e é configurada para receber ou obter dados de imagem original, por exemplo, um bloco original 203 (bloco atual 203 da imagem atual 17), e dados de imagem reconstruídos, por exemplo, amostras ou blocos reconstruídos filtrados e/ou não filtrados da mesma imagem (atual) e/ou a partir de uma ou uma pluralidade de imagens previamente decodificadas, por exemplo, a partir do buffer de imagem decodificada 230 ou outros buffers (por exemplo, buffer de linha, não mostrado). Os dados de imagem reconstruída são usados como dados de imagem de referência para predição, por exemplo, predição inter ou predição intra, para obter um bloco de predição 265 ou preditor 265.[0131] In addition to or alternatively to the aforementioned embodiments, in other embodiments according to Figure 15, the mode selection unit 260 comprises partitioning unit 262, inter prediction unit 244, and intra prediction unit 254, and is configured to receive or obtain original image data, e.g., an original block 203 (current block 203 of the current image 17), and reconstructed image data, e.g., filtered and/or unfiltered reconstructed samples or blocks from the same (current) image and/or from one or a plurality of previously decoded images, e.g., from the decoded image buffer 230 or other buffers (e.g., row buffer, not shown). The reconstructed image data is used as reference image data for prediction, e.g., inter prediction or intra prediction, to obtain a prediction block 265 or predictor 265.

[0132] A unidade de seleção de modo 260 pode ser configurada para determinar ou selecionar um particionamento para um modo de predição de bloco atual (incluindo sem particionamento) e um modo de predição (por exemplo, um modo de predição intra ou inter) e gerar um bloco de predição correspondente 265, que é usado para o cálculo do bloco residual 205 e para a reconstrução do bloco reconstruído 215.[0132] The mode selection unit 260 may be configured to determine or select a partitioning for a current block prediction mode (including no partitioning) and a prediction mode (e.g., an intra- or inter-prediction mode), and generate a corresponding prediction block 265, which is used for the calculation of the residual block 205 and for the reconstruction of the reconstructed block 215.

[0133] As modalidades da unidade de seleção de modo 260 podem ser configuradas para selecionar o particionamento e o modo de predição (por exemplo, a partir daqueles suportados por ou disponíveis para a unidade de seleção de modo 260), que fornecem o melhor pareamento ou em outras palavras o mínimo residual (mínimo residual significa melhor compressão para transmissão ou armazenamento), ou um overhead de sinalização mínimo (overhead de sinalização mínimo significa melhor compressão para transmissão ou armazenamento), ou que considera ou equilibra ambos. A unidade de seleção de modo 260 pode ser configurada para determinar o modo de particionamento e predição com base na otimização de distorção de taxa (RDO), isto é, selecionar o modo de predição que fornece uma distorção de taxa mínima. Termos como "melhor", "mínimo", "ideal" etc. neste contexto não se relacionam necessariamente a um "melhor", "mínimo", "ideal", etc. geral, mas também podem se referir ao cumprimento de um critério de terminação ou de seleção como um valor excedendo ou caindo abaixo de um limiar ou outras restrições levando potencialmente a uma "seleção abaixo de ideal", mas reduzindo a complexidade e o tempo de processamento.[0133] Embodiments of mode selection unit 260 may be configured to select the partitioning and prediction mode (e.g., from those supported by or available to mode selection unit 260) that provide the best matching, or in other words the minimum residual (minimum residual means best compression for transmission or storage), or a minimum signaling overhead (minimum signaling overhead means best compression for transmission or storage), or that considers or balances both. Mode selection unit 260 may be configured to determine the partitioning and prediction mode based on rate distortion optimization (RDO), i.e., select the prediction mode that provides a minimum rate distortion. Terms such as "best," "minimum," "optimal," etc. in this context do not necessarily relate to a "best," "minimum," "optimal," etc. general, but may also refer to the fulfillment of a termination or selection criterion such as a value exceeding or falling below a threshold or other constraints potentially leading to "suboptimal selection" but reducing complexity and processing time.

[0134] Em outras palavras, a unidade de particionamento 262 pode ser configurada para particionar uma imagem de uma sequência de vídeo em uma sequência de unidades de árvore de codificação (CTUs) e a CTU 203 pode ser adicionalmente particionada em partições de bloco ou sub-blocos menores (que formam novamente blocos), por exemplo, iterativamente usando particionamento de árvore quaternária (QT), particionamento de árvore binária (BT) ou particionamento de árvore tripla (TT) ou qualquer combinação dos mesmos, e para realizar, por exemplo, a predição para cada uma dentre as partições de bloco ou sub-blocos, em que a seleção de modo compreende a seleção da estrutura de árvore do bloco particionado 203 e os modos de predição são aplicados a cada uma dentre as partições de bloco ou sub-blocos.[0134] In other words, the partitioning unit 262 may be configured to partition a picture of a video sequence into a sequence of coding tree units (CTUs), and the CTU 203 may be further partitioned into smaller block partitions or sub-blocks (which again form blocks), for example, iteratively using quaternary tree (QT) partitioning, binary tree (BT) partitioning, or triple tree (TT) partitioning, or any combination thereof, and to perform, for example, prediction for each of the block partitions or sub-blocks, wherein the mode selection comprises selecting the tree structure of the partitioned block 203, and the prediction modes are applied to each of the block partitions or sub-blocks.

[0135] A seguir, o particionamento (por exemplo, por unidade de particionamento 260) e processamento de predição (por unidade de predição inter 244 e unidade de predição intra 254) realizados por um codificador de vídeo exemplificativo 20 será explicada em detalhes adicionais. Particionamento[0135] Next, the partitioning (e.g., by partitioning unit 260) and prediction processing (by inter prediction unit 244 and intra prediction unit 254) performed by an exemplary video encoder 20 will be explained in further detail. Partitioning

[0136] A unidade de particionamento 262 pode ser configurada para particionar uma imagem de uma sequência de vídeo em uma sequência de unidades de árvore de codificação (CTUs), e a unidade de particionamento 262 pode particionar (ou dividir) uma unidade de árvore de codificação (CTU) 203 em partições menores, por exemplo, blocos menores de tamanho quadrados ou retangulares. Para uma imagem que tem três arranjos de amostra, uma CTU consiste em um bloco N x N de amostras de luma junto com dois blocos correspondentes de amostras de croma. O tamanho máximo permitido do bloco de luma em uma CTU é especificado como sendo de 128 x 128 na codificação de vídeo versátil em desenvolvimento (VVC), mas pode ser especificado como sendo valor diferente de 128x128 no futuro, por exemplo, 256x256. As CTUs de uma imagem podem ser aglomeradas/agrupadas como grupos de fatias/tile, tiles ou bricks. Um tile cobre uma região retangular de uma imagem, e um tile pode ser dividido em um ou mais bricks. Um brick consiste em várias linhas de CTU dentro de um tile. Um tile que não é particionado em múltiplos bricks pode ser referido como um brick. No entanto, um brick é um verdadeiro subconjunto de um tile e não é referido como um tile. Existem dois modos de grupos de tile suportados em VVC, a saber, o modo de grupo de fatias/tile de varredura-raster e o modo de fatia retangular. No modo de grupo de tile de varredura-raster, um grupo de fatias/tile contém uma sequência de tiles em varredura raster de tile de uma imagem. No modo de fatia retangular, uma fatia contém um número de bricks de uma imagem que, coletivamente, formam uma região retangular da imagem. Os bricks dentro de uma fatia retangular estão na ordem de varredura raster de brick da fatia. Esses blocos menores (que também podem ser chamados de sub-blocos) podem ser particionados em partições ainda menores. Isto também se refere ao particionamento de árvore ou ao particionamento de árvore hierárquica, em que um bloco de raiz, por exemplo, a nível de árvore raiz 0 (nível de hierarquia 0, profundidade 0), pode ser particionado recursivamente, por exemplo, particionado em dois ou mais blocos de um próximo nível de árvore inferior, por exemplo, nós a nível de árvore 1 (nível de hierarquia 1, profundidade 1), em que esses blocos podem ser novamente particionados em dois ou mais blocos de um próximo nível inferior, por exemplo, nível de árvore 2 (nível de hierarquia 2, profundidade 2), etc. até que o particionamento seja terminado, por exemplo, porque um critério de terminação é atendido, por exemplo, uma profundidade máxima da árvore ou tamanho de bloco mínimo é alcançado. Blocos que não são particionados posteriormente também são referidos como blocos folha ou nós folha da árvore. Uma árvore que usa particionamento em duas partições é referida como árvore binária (BT), uma árvore que usa particionamento em três partições é referida como árvore ternária (TT), e uma árvore que usa particionamento em quatro partições é referida como árvore quaternária (QT).[0136] The partitioning unit 262 may be configured to partition a picture of a video sequence into a sequence of coding tree units (CTUs), and the partitioning unit 262 may partition (or divide) a coding tree unit (CTU) 203 into smaller partitions, e.g., smaller square or rectangular sized blocks. For a picture that has three sample arrangements, a CTU consists of an N x N block of luma samples along with two corresponding blocks of chroma samples. The maximum allowable luma block size in a CTU is specified as 128 x 128 in the evolving versatile video coding (VVC), but may be specified as something other than 128 x 128 in the future, e.g., 256 x 256. The CTUs of a picture may be clustered as groups of slices/tiles, tiles, or bricks. A tile covers a rectangular region of an image, and a tile can be divided into one or more bricks. A brick consists of multiple CTU lines within a tile. A tile that is not partitioned into multiple bricks can be referred to as a brick. However, a brick is a true subset of a tile and is not referred to as a tile. There are two tile group modes supported in VVC: raster-scan tile group mode and rectangular slice mode. In raster-scan tile group mode, a tile group contains a sequence of raster-scan tiles from an image. In rectangular slice mode, a slice contains a number of image bricks that collectively form a rectangular region of the image. The bricks within a rectangular slice are in the slice's brick raster scan order. These smaller blocks (also called sub-blocks) can be partitioned into even smaller partitions. This also refers to tree partitioning or hierarchical tree partitioning, where a root block, e.g., at tree level 0 (hierarchy level 0, depth 0), can be recursively partitioned, e.g., into two or more blocks of a next-lower tree level, e.g., nodes at tree level 1 (hierarchy level 1, depth 1), where these blocks can be further partitioned into two or more blocks of a next-lower level, e.g., tree level 2 (hierarchy level 2, depth 2), etc., until the partitioning is terminated, e.g., because a termination criterion is met, e.g., a maximum tree depth or minimum block size is reached. Blocks that are not further partitioned are also referred to as leaf blocks or leaf nodes of the tree. A tree that uses partitioning into two partitions is referred to as a binary tree (BT), a tree that uses partitioning into three partitions is referred to as a ternary tree (TT), and a tree that uses partitioning into four partitions is referred to as a quaternary tree (QT).

[0137] Por exemplo, uma unidade de árvore de codificação (CTU) pode ser ou compreender um CTB de amostras de luma, dois CTBs correspondentes de amostras de croma de uma imagem que tem três arranjos de amostra, ou um CTB de amostras de uma imagem monocromática ou uma imagem que é codificada usando três planos de cores separados e estruturas de sintaxe usadas para codificar as amostras. Correspondentemente, um bloco de árvore de codificação (CTB) pode ser um bloco NxN de amostras para algum valor de N de modo que a divisão de um componente em CTBs seja um particionamento. Uma unidade de codificação (CU) pode ser ou compreender um bloco de codificação de amostras de luma, dois blocos de codificação correspondentes de amostras de croma de uma imagem que tem três arranjos de amostra ou um bloco de codificação de amostras de uma imagem monocromática ou uma imagem que é codificada usando três planos de cores separados e estruturas de sintaxe usadas para codificar as amostras. Correspondentemente, um bloco de codificação (CB) pode ser um bloco MxN de amostras para alguns valores de M e N de modo que a divisão de um CTB em blocos de codificação seja um particionamento.[0137] For example, a coding tree unit (CTU) may be or comprise a CTB of luma samples, two corresponding CTBs of chroma samples of an image that has three sample arrangements, or a CTB of samples of a monochrome image or an image that is coded using three separate color planes and syntax structures used to encode the samples. Correspondingly, a coding tree block (CTB) may be an NxN block of samples for some value of N such that dividing a component into CTBs is a partitioning. A coding unit (CU) may be or comprise a coding block of luma samples, two corresponding coding blocks of chroma samples of an image that has three sample arrangements, or a coding block of samples of a monochrome image or an image that is coded using three separate color planes and syntax structures used to encode the samples. Correspondingly, a coding block (CB) can be an MxN block of samples for some values of M and N so that dividing a CTB into coding blocks is a partitioning.

[0138] Em modalidades, por exemplo, de acordo com HEVC, uma unidade de árvore de codificação (CTU) pode ser dividida em CUs usando-se uma estrutura de árvore quaternária denotada como árvore de codificação. A decisão de se codificar ou não uma área de imagem usando predição imagem inter (temporal) ou de imagem intra (espacial) é feita a nível de CU da folha. Cada CU de folha pode ser dividida em uma, duas ou quatro PUs de acordo com o tipo de divisão de PU. Dentro de uma PU, o mesmo processo de predição é aplicado e as informações relevantes são transmitidas para o decodificador com base na PU. Depois de obter o bloco residual aplicando-se o processo de predição com base no tipo de divisão de PU, uma CU de folha pode ser particionada em unidades de transformada (TUs) de acordo com uma outra estrutura de árvore quaternária similar à árvore de codificação para a CU.[0138] In embodiments, for example, according to HEVC, a coding tree unit (CTU) may be divided into CUs using a quaternary tree structure denoted as coding tree. The decision of whether or not to encode a picture area using inter-picture (temporal) or intra-picture (spatial) prediction is made at the leaf CU level. Each leaf CU may be divided into one, two, or four PUs according to the PU division type. Within a PU, the same prediction process is applied, and relevant information is transmitted to the decoder based on the PU. After obtaining the residual block by applying the prediction process based on the PU division type, a leaf CU may be partitioned into transform units (TUs) according to another quaternary tree structure similar to the coding tree for the CU.

[0139] Em modalidades, por exemplo, de acordo com o padrão de codificação de vídeo mais recente atualmente em desenvolvimento, que é referido como Codificação de Vídeo Versátil (VVC), uma árvore quaternária aninhada combinada com árvore de múltiplos tipos usando estrutura de segmentação de divisões binárias e ternárias, por exemplo, usada para particionar uma unidade de árvore de codificação. Na estrutura de árvore de codificação dentro de uma unidade de árvore de codificação, uma CU pode ter ou um formato quadrado ou retangular. Por exemplo, a unidade de árvore de codificação (CTU) é primeiramente particionada por uma árvore quaternária. Em seguida, os nós folha da árvore quaternária podem ser particionados adicionalmente por uma estrutura de árvore de múltiplos tipos. Existem quatro tipos de divisão na estrutura de árvore de múltiplos tipos, divisão binária vertical (SPLIT_BT_VER), divisão binária horizontal (SPLIT_BT_HOR), divisão ternária vertical (SPLIT_TT_VER) e divisão ternária horizontal (SPLIT_TT_HOR). Os nós folha de árvore de múltiplos tipos são chamados de unidades de codificação (CUs) e, a menos que a CU seja muito grande para o comprimento de transformada máxima, essa segmentação é usada para predição e processamento de transformada sem qualquer particionamento adicional. Isso significa que, na maioria dos casos, a CU, PU e TU têm o mesmo tamanho de bloco na árvore quaternária com estrutura de bloco de codificação de árvore de múltiplos tipos aninhada. A exceção ocorre quando o comprimento de transformada máxima suportado é menor do que a largura ou altura do componente de cor da CU. VVC desenvolve um mecanismo de sinalização exclusivo das informações de divisão de partição em árvore quaternária com estrutura de árvore de codificação de árvore de múltiplos tipos aninhada. No mecanismo de sinalização, uma unidade de árvore de codificação (CTU) é tratada como a raiz de uma árvore quaternária e é primeiramente particionada por uma estrutura de árvore quaternária. Cada nó folha de árvore quaternária (quando suficientemente grande para permitir) é então adicionalmente particionado por uma estrutura de árvore de múltiplos tipos. Na estrutura de árvore de múltiplos tipos, uma primeira flag (mtt_split_cu_flag) é sinalizada para indicar se o nó é adicionalmente particionado; quando um nó é adicionalmente particionado, uma segunda flag (mtt_split_cu_vertical_flag) é sinalizada para indicar a direção de divisão, e então uma terceira flag (mtt_split_cu_binary_flag) é sinalizada para indicar se a divisão é binária ou ternária. Com base nos valores de mtt_split_cu_vertical_flag e mtt_split_cu_binary_flag, o modo de corte de árvore de múltiplos tipos (MttSplitMode) de uma CU pode ser derivado por um decodificador com base em uma regra predefinida ou uma tabela. Deve ser observado, para um determinado projeto, por exemplo, bloco Luma 64 x 64 e projeto de encadeamento Croma 32 x 32 em decodificadores de hardware de VVC, a divisão TT é proibida quando a largura ou altura de um bloco de codificação luma for maior que 64, como mostrado na Figura 6. A divisão TT também é proibida quando ou a largura ou a altura de um bloco de codificação de croma for maior que 32. O projeto de encadeamento irá dividir uma imagem em unidades de dados de encadeamento Virtuais (VPDUs), que são definidas como unidades não sobrepostas em uma imagem. Em decodificadores de hardware, VPDUs sucessivas são processadas por múltiplos estágios de encadeamento simultaneamente. O tamanho de VPDU é aproximadamente proporcional ao tamanho de buffer na maioria dos estágios de encadeamento, então é importante manter o tamanho de VPDU pequeno. Na maioria dos decodificadores de hardware, o tamanho de VPDU pode ser ajustado no tamanho máximo do bloco de transformação (TB). No entanto, em VVC, a partição de árvore ternária (TT) e da árvore binária (BT) pode levar ao aumento dos tamanhos das VPDUs.[0139] In embodiments, for example, according to the latest video coding standard currently under development, which is referred to as Versatile Video Coding (VVC), a nested quaternary tree combined with multi-type tree using binary and ternary splits segmentation structure, for example, is used to partition a coding tree unit. In the coding tree structure within a coding tree unit, a CU may have either a square or rectangular shape. For example, the coding tree unit (CTU) is first partitioned by a quaternary tree. Then, the leaf nodes of the quaternary tree may be further partitioned by a multi-type tree structure. There are four split types in the multi-type tree structure, vertical binary split (SPLIT_BT_VER), horizontal binary split (SPLIT_BT_HOR), vertical ternary split (SPLIT_TT_VER), and horizontal ternary split (SPLIT_TT_HOR). The leaf nodes of a multitype tree are called coding units (CUs), and unless the CU is too large for the maximum transform length, this segmentation is used for prediction and transform processing without any additional partitioning. This means that, in most cases, the CU, PU, and TU have the same block size in a quaternary tree with a nested multitype tree coding block structure. The exception occurs when the maximum supported transform length is smaller than the width or height of the CU's color component. VVC develops a unique signaling mechanism for partition split information in a quaternary tree with a nested multitype tree coding tree structure. In the signaling mechanism, a coding tree unit (CTU) is treated as the root of a quaternary tree and is first partitioned by a quaternary tree structure. Each leaf node of the quaternary tree (when large enough to allow it) is then further partitioned by a multitype tree structure. In the multi-type tree structure, a first flag (mtt_split_cu_flag) is flagged to indicate whether the node is further split; when a node is further split, a second flag (mtt_split_cu_vertical_flag) is flagged to indicate the split direction, and then a third flag (mtt_split_cu_binary_flag) is flagged to indicate whether the split is binary or ternary. Based on the values of mtt_split_cu_vertical_flag and mtt_split_cu_binary_flag, the multi-type tree splitting mode (MttSplitMode) of a CU can be derived by a decoder based on a predefined rule or a table. It should be noted that for a given design, e.g., a 64 x 64 Luma block and a 32 x 32 Chroma thread design in VVC hardware decoders, TT division is prohibited when the width or height of a luma encoding block is greater than 64, as shown in Figure 6. TT division is also prohibited when either the width or height of a chroma encoding block is greater than 32. The thread design will divide an image into Virtual Thread Data Units (VPDUs), which are defined as non-overlapping units in an image. In hardware decoders, successive VPDUs are processed by multiple thread stages simultaneously. The VPDU size is roughly proportional to the buffer size in most thread stages, so it is important to keep the VPDU size small. In most hardware decoders, the VPDU size can be adjusted within the maximum transform block size (TB). However, in VVC, ternary tree (TT) and binary tree (BT) partitioning can lead to increased VPDU sizes.

[0140] Além disso, deve-se notar que, quando uma porção de um bloco de nó de árvore excede a fronteira inferior ou à direita da imagem, o bloco de nó de árvore é forçado a ser dividido até que todas as amostras de toda CU codificada estejam localizadas dentro das fronteiras da imagem.[0140] Furthermore, it should be noted that when a portion of a tree node block exceeds the bottom or right border of the image, the tree node block is forced to be split until all samples of the entire encoded CU are located within the image borders.

[0141] Como um exemplo, a ferramenta Subpartições Intra (ISP) pode dividir blocos de luma preditos de modo intra verticalmente ou horizontalmente em 2 ou 4 subpartições dependendo do tamanho de bloco.[0141] As an example, the Intra Subpartitions (ISP) tool can divide intra-predicted luma blocks vertically or horizontally into 2 or 4 subpartitions depending on the block size.

[0142] Em um exemplo, a unidade de seleção de modo 260 do codificador de vídeo 20 pode ser configurada para realizar qualquer combinação das técnicas de particionamento descritas no presente documento. Conforme descrito acima, o codificador 20 é configurado para determinar ou selecionar o melhor ou um modo de predição ideal a partir de um conjunto de modos de predição (predeterminados). O conjunto de modos de predição pode compreender, por exemplo, modos de predição intra e/ou modos de predição inter.[0142] In one example, the mode selection unit 260 of the video encoder 20 may be configured to perform any combination of the partitioning techniques described herein. As described above, the encoder 20 is configured to determine or select the best or an optimal prediction mode from a set of (predetermined) prediction modes. The set of prediction modes may comprise, for example, intra-prediction modes and/or inter-prediction modes.

[0143] O conjunto de modos de predição intra pode compreender 35 modos de predição intra diferentes, por exemplo, modos não direcionais como modo DC (ou médio) e modo planar, ou modos direcionais, por exemplo, conforme definido em H.265, ou pode compreender 67 modos de predição intra diferentes, por exemplo, modos não direcionais como modo DC (ou médio) e modo planar, ou modos direcionais, por exemplo, conforme definido para VVC. Como um exemplo, vários modos de predição intra angular convencionais são substituídos de forma adaptável por modos de predição intra de grande angular para os blocos não quadrados, por exemplo, conforme definido em VVC. Como um outro exemplo, para evitar operações de divisão para predição de DC, apenas o lado mais longo é usado para computar a média para blocos não quadrados. E, os resultados de predição intra de modo planar podem ser adicionalmente modificados por um método de combinação de predição intra dependente da posição (PDPC).[0143] The set of intra prediction modes may comprise 35 different intra prediction modes, e.g., non-directional modes such as DC (or average) mode and planar mode, or directional modes, e.g., as defined in H.265, or may comprise 67 different intra prediction modes, e.g., non-directional modes such as DC (or average) mode and planar mode, or directional modes, e.g., as defined for VVC. As an example, several conventional wide-angle intra prediction modes are adaptively replaced by wide-angle intra prediction modes for the non-square blocks, e.g., as defined in VVC. As a further example, to avoid splitting operations for DC prediction, only the longest side is used to compute the average for non-square blocks. And, the planar mode intra prediction results may be further modified by a position-dependent intra prediction (PDPC) combination method.

[0144] A unidade de predição intra 254 está configurada para usar amostras reconstruídas de blocos vizinhos da mesma imagem atual para gerar um bloco de predição intra 265 de acordo com um modo de predição intra do conjunto de modos de predição intra.[0144] The intra prediction unit 254 is configured to use reconstructed samples from neighboring blocks of the same current image to generate an intra prediction block 265 according to an intra prediction mode of the set of intra prediction modes.

[0145] A unidade de predição intra 254 (ou em geral a unidade de seleção de modo 260) é adicionalmente configurada para emitir parâmetros de predição intra (ou em informações gerais indicativas do modo de predição intra selecionado para o bloco) para a unidade de codificação de entropia 270 em forma de elementos de sintaxe 266 para inclusão nos dados de imagem codificados 21, de modo que, por exemplo, o decodificador de vídeo 30 possa receber e usar os parâmetros de predição para decodificação.[0145] The intra prediction unit 254 (or in general the mode selection unit 260) is further configured to output intra prediction parameters (or in general information indicative of the intra prediction mode selected for the block) to the entropy coding unit 270 in the form of syntax elements 266 for inclusion in the encoded image data 21, so that, for example, the video decoder 30 can receive and use the prediction parameters for decoding.

[0146] O conjunto de (ou possíveis) modos de predição inter depende das imagens de referência disponíveis (isto é, imagens anteriores pelo menos parcialmente decodificadas, por exemplo, armazenadas em DBP 230) e outros parâmetros de predição inter, por exemplo, se toda a imagem de referência ou apenas uma parte, por exemplo, uma área de janela de busca em torno da área do bloco atual, da imagem de referência é usada para buscar um bloco de referência de melhor pareamento e/ou, por exemplo, se interpolação de pixel é aplicada, por exemplo, interpolação de meio/semi pel, um quarto de pel e/ou 1/16 de pel ou não.[0146] The set of (or possible) inter prediction modes depends on the available reference pictures (i.e., at least partially decoded previous pictures, e.g., stored in DBP 230) and other inter prediction parameters, e.g., whether the entire reference picture or only a part, e.g., a search window area around the current block area, of the reference picture is used to search for a best-matching reference block, and/or e.g., whether pixel interpolation is applied, e.g., half/semi pel, quarter pel, and/or 1/16 pel interpolation, or not.

[0147] Além dos modos de predição acima, o modo de pulo, o modo direto e/ou outro modo de predição inter podem ser aplicados.[0147] In addition to the above prediction modes, skip mode, direct mode and/or other inter prediction mode can be applied.

[0148] Por exemplo, Predição de fusão estendida, a lista de candidatos de fusão desse modo é construída incluindo-se os seguintes cinco tipos de candidatos em ordem: MVP Espacial de CUs vizinhas no espaço, MVP temporal de CUs colocadas, MVP com base em histórico de uma tabela FIFO, MVP média Par a par e MVs Zero. E um refinamento de vetor de movimento lateral de decodificador (DMVR) com base em pareamento bilateral pode ser aplicado para aumentar a precisão dos MVs do modo de fusão. Modo de fusão com MVD (MMVD), que vem do modo de fusão com diferenças de vetor de movimento. Uma flag MMVD é sinalizada logo após o envio de uma flag de pulo e de uma flag de fusão para especificar se o modo MMVD é usado para uma CU. E um esquema de resolução de vetor de movimento adaptável (AMVR) a nível de CU pode ser aplicado. AMVR permite que a MVD da CU seja codificada em precisão diferente. Dependendo do modo de predição para a CU atual, as MVDs da CU atual podem ser selecionadas de forma adaptável. Quando uma CU é codificada no modo de fusão, o modo de predição inter/intra combinadas (CIIP) pode ser aplicado à CU atual. A média ponderada dos sinais de predição inter e intra é realizada para obter a predição de CIIP. Predição compensada de movimento afim, o campo de movimento afim do bloco é descrito por informações de movimento de dois pontos de controle (4 parâmetros) ou três vetores de movimento de ponto de controle (6 parâmetros). A predição de vetor de movimento temporal com base em sub-bloco (SbTMVP), que é similar à predição de vetor de movimento temporal (TMVP) em HEVC, mas prediz os vetores de movimento das sub-CUs dentro da CU atual. Fluxo óptico bidirecional (BDOF), anteriormente referido como BIO, é uma versão mais simples que exige muito menos cômputo, especialmente em termos de número de multiplicações e do tamanho do multiplicador. Modo de partição triangular, nesse modo, uma CU é dividida igualmente em duas partições em formato de triângulo, usando ou a divisão diagonal ou a divisão antidiagonal. Além disso, o modo de predição dupla é estendido além da média simples para permitir a média ponderada dos dois sinais de predição.[0148] For example, Extended Fusion Prediction, the fusion candidate list of this mode is constructed by including the following five types of candidates in order: Spatial MVP of spatially neighboring CUs, Temporal MVP of colocated CUs, History-based MVP of a FIFO table, Pairwise average MVP, and Zero MVs. And a decoder lateral motion vector refinement (DMVR) based on bilateral pairing can be applied to increase the accuracy of the MVs of the fusion mode. Fusion mode with MVD (MMVD), which comes from the fusion mode with motion vector differences. An MMVD flag is signaled just after sending a skip flag and a fusion flag to specify whether the MMVD mode is used for a CU. And a CU-level adaptive motion vector resolution (AMVR) scheme can be applied. AMVR allows the MVD of the CU to be encoded in different precision. Depending on the prediction mode for the current CU, the MVDs of the current CU can be adaptively selected. When a CU is encoded in fusion mode, the combined inter/intra prediction (CIIP) mode can be applied to the current CU. The weighted average of the inter and intra prediction signals is performed to obtain the CIIP prediction. In affine motion-compensated prediction, the affine motion field of the block is described by motion information from two control points (4 parameters) or three control point motion vectors (6 parameters). Sub-block-based temporal motion vector prediction (SbTMVP), which is similar to temporal motion vector prediction (TMVP) in HEVC, predicts the motion vectors of sub-CUs within the current CU. Bidirectional optical flow (BDOF), formerly referred to as BIO, is a simpler version that requires much less computation, especially in terms of the number of multiplications and the size of the multiplier. Triangular partition mode: In this mode, a CU is divided equally into two triangular partitions using either diagonal or antidiagonal partitioning. Furthermore, the dual prediction mode is extended beyond simple averaging to allow for the weighted average of the two prediction signals.

[0149] Além dos modos de predição acima, o modo de pulo e/ou o modo direto podem ser aplicados.[0149] In addition to the above prediction modes, skip mode and/or direct mode can be applied.

[0150] A unidade de processamento de predição 260 pode adicionalmente ser configurada para particionar o bloco 203 em partições de bloco menores ou sub-blocos, por exemplo, iterativamente usando particionamento de árvore quaternária (QT), particionamento binário (BT) ou particionamento de árvore ternária (TT) ou qualquer combinação das mesmas, e para realizar, por exemplo, a predição para cada uma dentre as partições de bloco ou sub-blocos, em que a seleção de modo compreende a seleção da estrutura de árvore do bloco particionado 203 e os modos de predição aplicados a cada uma dentre as partições de bloco ou sub-blocos.[0150] The prediction processing unit 260 may further be configured to partition the block 203 into smaller block partitions or sub-blocks, e.g., iteratively using quaternary tree partitioning (QT), binary partitioning (BT), or ternary tree partitioning (TT), or any combination thereof, and to perform, e.g., prediction for each of the block partitions or sub-blocks, wherein the mode selection comprises selecting the tree structure of the partitioned block 203 and the prediction modes applied to each of the block partitions or sub-blocks.

[0151] A unidade de predição inter 244 pode incluir unidade de estimativa de movimento (ME) (não mostrada na Figura 2) e unidade de compensação de movimento (MC) (não mostrada na Figura 2). A unidade de estimativa de movimento está configurada para receber ou obter o bloco de imagem 203 (bloco de imagem atual 203 da imagem atual 201) e uma imagem decodificada 231, ou pelo menos um ou uma pluralidade de blocos previamente reconstruídos, por exemplo, blocos reconstruídos de uma ou uma pluralidade de outras/diferentes imagens previamente decodificadas 231, para estimativa de movimento. Por exemplo, uma sequência de vídeo pode compreender a imagem atual e as imagens previamente decodificadas 231, ou em outras palavras, a imagem atual e as imagens previamente decodificadas 231 podem fazer parte de ou formar uma sequência de imagens formando uma sequência de vídeo.[0151] The inter prediction unit 244 may include motion estimation unit (ME) (not shown in Figure 2) and motion compensation unit (MC) (not shown in Figure 2). The motion estimation unit is configured to receive or obtain the image block 203 (current image block 203 of the current image 201) and a decoded image 231, or at least one or a plurality of previously reconstructed blocks, e.g., reconstructed blocks from one or a plurality of other/different previously decoded images 231, for motion estimation. For example, a video sequence may comprise the current image and the previously decoded images 231, or in other words, the current image and the previously decoded images 231 may be part of or form a sequence of images forming a video sequence.

[0152] O codificador 20 pode, por exemplo, ser configurado para selecionar um bloco de referência a partir de uma pluralidade de blocos de referência das mesmas ou diferentes imagens da pluralidade de outras imagens e fornecer uma imagem de referência (ou índice de imagem de referência, ...) e/ou um desvio (desvio espacial) entre a posição (coordenadas x, y) do bloco de referência e a posição do bloco atual como parâmetros de predição inter para a unidade de estimativa de movimento (não mostrado na Figura2). Este desvio também é chamado de vetor de movimento (MV).[0152] The encoder 20 may, for example, be configured to select a reference block from a plurality of reference blocks of the same or different pictures of the plurality of other pictures and provide a reference picture (or reference picture index, ...) and/or an offset (spatial deviation) between the position (x, y coordinates) of the reference block and the position of the current block as inter prediction parameters for the motion estimation unit (not shown in Figure 2). This offset is also called a motion vector (MV).

[0153] A unidade de compensação de movimento é configurada para obter, por exemplo, receber, um parâmetro de predição inter e para realizar predição inter com base em ou usando o parâmetro de predição inter para obter um bloco de predição inter 265. A compensação de movimento, realizada pela unidade de compensação de movimento, pode envolver obter ou gerar o bloco de predição com base no vetor de movimento/de bloco determinado por estimativa de movimento, possivelmente realizando interpolações para precisão de subpixel. A filtragem de interpolação pode gerar amostras de pixel adicionais a partir de amostras de pixel conhecidas, aumentando assim potencialmente o número de blocos de predição candidatos que podem ser usados para codificar um bloco de imagem. Mediante recebimento do vetor de movimento para a PU do bloco de imagem atual, a unidade de compensação de movimento pode localizar o bloco de predição para o qual o vetor de movimento aponta em uma dentre as listas de imagem de referência.[0153] The motion compensation unit is configured to obtain, e.g., receive, an inter prediction parameter and to perform inter prediction based on or using the inter prediction parameter to obtain an inter prediction block 265. Motion compensation, performed by the motion compensation unit, may involve obtaining or generating the prediction block based on the motion/block vector determined by motion estimation, possibly performing interpolations to subpixel accuracy. Interpolation filtering may generate additional pixel samples from known pixel samples, thereby potentially increasing the number of candidate prediction blocks that can be used to encode an image block. Upon receiving the motion vector for the PU of the current image block, the motion compensation unit may locate the prediction block to which the motion vector points in one of the reference image lists.

[0154] A unidade de predição intra 254 está configurada para obter, por exemplo, receber, o bloco de imagem 203 (bloco de imagem atual) e um ou uma pluralidade de blocos previamente reconstruídos, por exemplo, gravando blocos vizinhos construídos, da mesma imagem, para estimativa intra. O codificador 20 pode, por exemplo, ser configurado para selecionar um modo de predição intra a partir de uma pluralidade de modos de predição intra (predeterminados).[0154] The intra prediction unit 254 is configured to obtain, e.g., receive, the image block 203 (current image block) and one or a plurality of previously reconstructed blocks, e.g., by recording neighboring constructed blocks of the same image for intra estimation. The encoder 20 may, e.g., be configured to select an intra prediction mode from a plurality of (predetermined) intra prediction modes.

[0155] As modalidades do codificador 20 podem ser configuradas para selecionar o modo de predição intra com base em um critério de otimização, por exemplo, residual mínimo (por exemplo, o modo de predição intra fornecendo o bloco de predição 255 mais similar ao bloco de imagem atual 203) ou distorção de taxa mínima.[0155] Embodiments of encoder 20 may be configured to select the intra prediction mode based on an optimization criterion, e.g., minimum residual (e.g., the intra prediction mode providing the prediction block 255 most similar to the current image block 203) or minimum rate distortion.

[0156] A unidade de predição intra 254 é adicionalmente configurada para determinar com base no parâmetro de predição intra, por exemplo, o modo de predição intra selecionado, o bloco de predição intra 255. Em qualquer caso, depois de selecionar um modo de predição intra para um bloco, a unidade de predição intra 254 também é configurada para fornecer parâmetro de predição intra, isto é, informações indicativas do modo de predição intra selecionado para o bloco para a unidade de codificação de entropia 270. Em um exemplo, a unidade de predição intra 254 pode ser configurada para realizar qualquer combinação das técnicas de predição intra descritas adiante.[0156] The intra prediction unit 254 is further configured to determine based on the intra prediction parameter, e.g., the selected intra prediction mode, the intra prediction block 255. In any case, after selecting an intra prediction mode for a block, the intra prediction unit 254 is also configured to provide intra prediction parameter, i.e., information indicative of the selected intra prediction mode for the block, to the entropy coding unit 270. In one example, the intra prediction unit 254 may be configured to perform any combination of the intra prediction techniques described below.

[0157] A unidade de codificação de entropia 270 é configurada para aplicar um esquema de codificação de entropia de algoritmo ou esquema (por exemplo, um esquema de codificação de comprimento variável (VLC), um esquema VLC adaptável a contexto (CALVC), um esquema de codificação aritmética, uma codificação aritmética binária adaptável a contexto (CABAC), codificação aritmética binária adaptável a contexto com base em sintaxe (SBAC), codificação de entropia de particionamento de intervalo de probabilidade (PIPE) ou uma outra metodologia ou técnica de codificação de entropia) nos coeficientes residuais quantizados 209, parâmetros de predição inter, parâmetro de predição intra, e/ou parâmetros de filtro loop, individualmente ou em conjunto (ou não) para obter dados de imagem codificados 21 que podem ser emitidos pela saída 272, por exemplo, na forma de um fluxo de bits codificado 21. O fluxo de bits codificado 21 pode ser transmitido para o decodificador de vídeo 30 ou arquivado para posterior transmissão ou recuperação pelo decodificador de vídeo 30. A unidade de codificação de entropia 270 pode ser adicionalmente configurada para codificar de entropia os outros elementos de sintaxe para a fatia de vídeo atual sendo codificada.[0157] The entropy coding unit 270 is configured to apply an algorithm or scheme entropy coding scheme (e.g., a variable length coding scheme (VLC), a context-adaptive VLC scheme (CALVC), an arithmetic coding scheme, a context-adaptive binary arithmetic coding (CABAC), syntax-based context-adaptive binary arithmetic coding (SBAC), probability interval partitioning entropy coding (PIPE), or another entropy coding methodology or technique) to the quantized residual coefficients 209, inter-prediction parameters, intra-prediction parameter, and/or loop filter parameters, individually or jointly (or not) to obtain encoded image data 21 that may be output by the output 272, for example, in the form of an encoded bitstream 21. The encoded bitstream 21 may be transmitted to the video decoder 30 or archived for later transmission or retrieval by the video decoder 30. The entropy coding unit 270 may be further configured to entropy encode the other syntax elements for the current video slice being encoded.

[0158] Outras variações estruturais do codificador de vídeo 20 podem ser usadas para codificar o fluxo de vídeo. Por exemplo, um codificador com base em não transformada 20 pode quantizar o sinal residual diretamente sem a unidade de processamento de transformada 206 para certos blocos ou quadros. Em uma outra implementação, um codificador 20 pode ter a unidade de quantização 208 e a unidade de quantização inversa 210 combinadas em uma única unidade.[0158] Other structural variations of the video encoder 20 may be used to encode the video stream. For example, a non-transform-based encoder 20 may quantize the residual signal directly without the transform processing unit 206 for certain blocks or frames. In another implementation, an encoder 20 may have the quantization unit 208 and the inverse quantization unit 210 combined into a single unit.

[0159] A Figura 3 mostra um exemplo de decodificador de vídeo 30 que está configurado para implementar as técnicas do presente pedido. O decodificador de vídeo 30 configurado para receber dados de imagem codificados (por exemplo, fluxo de bits codificado) 21, por exemplo, codificado por codificador 100, para obter uma imagem decodificada 131. Durante o processo de decodificação, o decodificador de vídeo 30 recebe dados de vídeo, por exemplo, um fluxo de bits de vídeo codificado que representa blocos de imagem de uma fatia de vídeo codificada e elementos de sintaxe associados, a partir do codificador de vídeo 100.[0159] Figure 3 shows an example video decoder 30 that is configured to implement the techniques of the present application. The video decoder 30 is configured to receive encoded image data (e.g., encoded bitstream) 21, e.g., encoded by encoder 100, to obtain a decoded image 131. During the decoding process, the video decoder 30 receives video data, e.g., an encoded video bitstream representing image blocks of an encoded video slice and associated syntax elements, from the video encoder 100.

[0160] No exemplo da Figura 3, o decodificador 30 compreende uma unidade de decodificação de entropia 304, uma unidade de quantização inversa 310, uma unidade de processamento de transformada inversa 312, uma unidade de reconstrução 314 (por exemplo, um somador 314), um buffer 316, um filtro loop 320, um buffer de imagem decodificada 330 e uma unidade de processamento de predição 360. A unidade de processamento de predição 360 pode incluir uma unidade de predição inter 344, uma unidade de predição intra 354, e uma unidade de seleção de modo 362. O decodificador de vídeo 30 pode, em alguns exemplos, realizar uma passagem de decodificação de modo geral recíproca à passagem de codificação descrita em relação ao codificador de vídeo 100 da Figura 2.[0160] In the example of Figure 3, the decoder 30 comprises an entropy decoding unit 304, an inverse quantization unit 310, an inverse transform processing unit 312, a reconstruction unit 314 (e.g., an adder 314), a buffer 316, a loop filter 320, a decoded picture buffer 330, and a prediction processing unit 360. The prediction processing unit 360 may include an inter prediction unit 344, an intra prediction unit 354, and a mode selection unit 362. The video decoder 30 may, in some examples, perform a generally reciprocal mode decoding pass to the encoding pass described with respect to the video encoder 100 of Figure 2.

[0161] Conforme explicado no que diz respeito ao codificador 20, a unidade de quantização inversa 210, a unidade de processamento de transformada inversa 212, a unidade de reconstrução 214, o filtro loop 220, o buffer de imagem decodificada (DPB) 230, a unidade de predição inter 344 e a unidade de predição intra 354 também são referidas como formando o "decodificador embutido" do codificador de vídeo 20. Por conseguinte, a unidade de quantização inversa 310 pode ser idêntica em função à unidade de quantização inversa 110, a unidade de processamento de transformada inversa 312 pode ser idêntica em função à unidade de processamento de transformada inversa 212, a unidade de reconstrução 314 pode ser idêntica em função à unidade de reconstrução 214, o filtro loop 320 pode ser idêntico em função ao filtro loop 220, e o buffer de imagem decodificada 330 pode ser idêntico em função ao buffer de imagem decodificada 230. Portanto, as explicações fornecidas para as respectivas unidades e funções do codificador de vídeo 20 se aplicam correspondentemente às respectivas unidades e funções do decodificador de vídeo 30.[0161] As explained with respect to encoder 20, inverse quantization unit 210, inverse transform processing unit 212, reconstruction unit 214, filter loop 220, decoded picture buffer (DPB) 230, inter prediction unit 344, and intra prediction unit 354 are also referred to as forming the "embedded decoder" of video encoder 20. Accordingly, inverse quantization unit 310 may be identical in function to inverse quantization unit 110, inverse transform processing unit 312 may be identical in function to inverse transform processing unit 212, reconstruction unit 314 may be identical in function to reconstruction unit 214, filter loop 320 may be identical in function to filter loop 220, and decoded picture buffer 330 may be identical in function to in function of the decoded picture buffer 230. Therefore, the explanations given for the respective units and functions of the video encoder 20 apply correspondingly to the respective units and functions of the video decoder 30.

[0162] A unidade de decodificação de entropia 304 é configurada para realizar decodificação de entropia nos dados de imagem codificados 21 para obter, por exemplo, coeficientes quantizados 309 e/ou parâmetros de codificação decodificados (não mostrados na Figura 3), por exemplo, qualquer dos ou todos os parâmetros de predição inter (decodificados), parâmetro de predição intra, parâmetros de filtro loop, e/ou outros elementos de sintaxe. A unidade de decodificação de entropia 304 é adicionalmente configurada para encaminhar parâmetros de predição inter, parâmetro de predição intra e/ou outros elementos de sintaxe para a unidade de processamento de predição 360. O decodificador de vídeo 30 pode receber os elementos de sintaxe a nível de fatia de vídeo e/ou nível de bloco de vídeo.[0162] The entropy decoding unit 304 is configured to perform entropy decoding on the encoded image data 21 to obtain, for example, quantized coefficients 309 and/or decoded coding parameters (not shown in Figure 3), for example, any or all of the (decoded) inter prediction parameters, intra prediction parameter, loop filter parameters, and/or other syntax elements. The entropy decoding unit 304 is further configured to forward inter prediction parameters, intra prediction parameter, and/or other syntax elements to the prediction processing unit 360. The video decoder 30 may receive the syntax elements at the video slice level and/or video block level.

[0163] A unidade de decodificação de entropia 304 é configurada para analisar o fluxo de bits 21 (ou em dados de imagem codificados em geral 21) e realizar, por exemplo, decodificação de entropia nos dados de imagem codificados 21 para obter, por exemplo, coeficientes quantizados 309 e/ou parâmetros de codificação decodificados (não mostrados na Figura 3), por exemplo, qualquer ou todos os parâmetros de predição inter (por exemplo, índice de imagem de referência e vetor de movimento), parâmetro de predição intra (por exemplo, modo de predição intra ou índice), parâmetros de transformada, parâmetros de quantização, parâmetros de filtro loop, e/ou outros elementos de sintaxe. A unidade de decodificação de entropia 304 pode ser configurada para aplicar os algoritmos ou esquemas de decodificação correspondentes aos esquemas de codificação conforme descrito em relação à unidade de codificação de entropia 270 do codificador 20. A unidade de decodificação de entropia 304 pode ser adicionalmente configurada para fornecer parâmetros de predição inter, parâmetro de predição intra e/ou outros elementos de sintaxe para a unidade de aplicação de modo 360 e outros parâmetros para outras unidades do decodificador 30. O decodificador de vídeo 30 pode receber os elementos de sintaxe ao nível de fatia de vídeo e/ou nível de bloco de vídeo. Além disso ou como uma alternativa às fatias e respectivos elementos de sintaxe, grupos de tile e/ou tiles e respectivos elementos de sintaxe podem ser recebidos e/ou usados.[0163] The entropy decoding unit 304 is configured to analyze the bit stream 21 (or in general encoded image data 21) and perform, e.g., entropy decoding on the encoded image data 21 to obtain, e.g., quantized coefficients 309 and/or decoded coding parameters (not shown in Figure 3), e.g., any or all inter prediction parameters (e.g., reference image index and motion vector), intra prediction parameter (e.g., intra prediction mode or index), transform parameters, quantization parameters, loop filter parameters, and/or other syntax elements. The entropy decoding unit 304 may be configured to apply the decoding algorithms or schemes corresponding to the coding schemes as described with respect to the entropy coding unit 270 of the encoder 20. The entropy decoding unit 304 may be further configured to provide inter-prediction parameters, intra-prediction parameters, and/or other syntax elements to the mode application unit 360 and other parameters to other units of the decoder 30. The video decoder 30 may receive the syntax elements at the video slice level and/or video block level. In addition to or as an alternative to the slices and their respective syntax elements, tile groups and/or tiles and their respective syntax elements may be received and/or used.

[0164] A unidade de quantização inversa 310 pode ser idêntica em função à unidade de quantização inversa 110, a unidade de processamento de transformada inversa 312 pode ser idêntica em função à unidade de processamento de transformada inversa 112, a unidade de reconstrução 314 pode ser idêntica em função unidade de reconstrução 114, o buffer 316 pode ser idêntico em função ao buffer 116, o filtro loop 320 pode ser idêntico em função ao filtro loop 120, e o buffer de imagem decodificada 330 pode ser idêntico em função ao buffer de imagem decodificada 130.[0164] The inverse quantization unit 310 may be identical in function to the inverse quantization unit 110, the inverse transform processing unit 312 may be identical in function to the inverse transform processing unit 112, the reconstruction unit 314 may be identical in function to the reconstruction unit 114, the buffer 316 may be identical in function to the buffer 116, the filter loop 320 may be identical in function to the filter loop 120, and the decoded picture buffer 330 may be identical in function to the decoded picture buffer 130.

[0165] As modalidades do decodificador 30 podem compreender uma unidade de particionamento (não representada na Figura 3). Em um exemplo, a unidade de processamento de predição 360 do decodificador de vídeo 30 pode ser configurada para realizar qualquer combinação das técnicas de particionamento descritas acima.[0165] Embodiments of the decoder 30 may comprise a partitioning unit (not depicted in Figure 3). In one example, the prediction processing unit 360 of the video decoder 30 may be configured to perform any combination of the partitioning techniques described above.

[0166] A unidade de processamento de predição 360 pode compreender uma unidade de predição inter 344 e uma unidade de predição intra 354, em que a unidade de predição inter 344 pode se assemelhar à unidade de predição inter 144 em função, e a unidade de predição intra 354 pode se assemelhar à unidade de predição intra 154 em função. A unidade de processamento de predição 360 é tipicamente configurada para realizar a predição de bloco e/ou obter o bloco de predição 365 a partir dos dados codificados 21 e para receber ou obter (explicitamente ou implicitamente) os parâmetros relacionados à predição e/ou as informações sobre o modo de predição selecionado, por exemplo, a partir da unidade de decodificação de entropia 304.[0166] The prediction processing unit 360 may comprise an inter prediction unit 344 and an intra prediction unit 354, wherein the inter prediction unit 344 may resemble the inter prediction unit 144 in function, and the intra prediction unit 354 may resemble the intra prediction unit 154 in function. The prediction processing unit 360 is typically configured to perform the block prediction and/or obtain the prediction block 365 from the encoded data 21 and to receive or obtain (explicitly or implicitly) the prediction-related parameters and/or the information about the selected prediction mode, for example, from the entropy decoding unit 304.

[0167] Quando a fatia de vídeo é codificada como uma fatia codificada de modo intra (I), a unidade de predição intra 354 da unidade de processamento de predição 360 é configurada para gerar o bloco de predição 365 para um bloco de imagem da fatia de vídeo atual com base em um modo de predição intra sinalizado e dados a partir de blocos previamente decodificados do quadro ou imagem atual. Quando o quadro de vídeo é codificado como uma fatia codificada de modo inter (isto é, B ou P), a unidade de predição inter 344 (por exemplo, unidade de compensação de movimento) da unidade de processamento de predição 360 é configurada para produzir blocos de predição 365 para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe recebidos a partir da unidade de decodificação de entropia 304. Para predição inter, os blocos de predição podem ser produzidos a partir de uma dentre as imagens de referência dentro de uma dentre as listas de imagem de referência. O decodificador de vídeo 30 pode construir as listas de quadros de referência, Lista 0 e Lista 1, usando técnicas de construção padrão com base em imagens de referência armazenadas no DPB 330.[0167] When the video slice is encoded as an intra (I) mode encoded slice, the intra prediction unit 354 of the prediction processing unit 360 is configured to generate the prediction block 365 for a picture block of the current video slice based on a signaled intra prediction mode and data from previously decoded blocks of the current frame or picture. When the video frame is encoded as an inter (i.e., B or P) mode encoded slice, the inter prediction unit 344 (e.g., motion compensation unit) of the prediction processing unit 360 is configured to produce prediction blocks 365 for a video block of the current video slice based on the motion vectors and other syntax elements received from the entropy decoding unit 304. For inter prediction, the prediction blocks may be produced from one of the reference pictures within one of the reference picture lists. The video decoder 30 may construct the reference frame lists, List 0 and List 1, using standard construction techniques based on reference pictures stored in the DPB 330.

[0168] A unidade de processamento de predição 360 é configurada para determinar as informações de predição para um bloco de vídeo da fatia de vídeo atual, analisando-se os vetores de movimento e outros elementos de sintaxe, e usa as informações de predição para produzir os blocos de predição para o bloco de vídeo atual sendo decodificado. Por exemplo, a unidade de processamento de predição 360 usa alguns dos elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, predição intra ou inter) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de predição inter (por exemplo, fatia B, fatia P, ou fatia GPB), informações de construção para uma ou mais das listas de imagem de referência para a fatia, vetores de movimento para cada bloco de vídeo codificado de modo inter da fatia, status de predição inter para cada bloco de vídeo codificado da fatia, e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual.[0168] The prediction processing unit 360 is configured to determine prediction information for a video block of the current video slice by analyzing motion vectors and other syntax elements, and uses the prediction information to produce prediction blocks for the current video block being decoded. For example, the prediction processing unit 360 uses some of the received syntax elements to determine a prediction mode (e.g., intra- or inter-prediction) used to encode the video blocks of the video slice, an inter-prediction slice type (e.g., B-slice, P-slice, or GPB-slice), construction information for one or more of the reference picture lists for the slice, motion vectors for each inter-mode encoded video block of the slice, inter-prediction status for each encoded video block of the slice, and other information for decoding the video blocks in the current video slice.

[0169] A unidade de quantização inversa 310 é configurada para quantizar inversamente, isto é, desquantizar, os coeficientes de transformada quantizados fornecidos no fluxo de bits e decodificados pela unidade de decodificação de entropia 304. O processo de quantização inversa pode incluir uso de um parâmetro de quantização calculado por codificador de vídeo 100 para cada bloco de vídeo na fatia de vídeo para determinar um grau de quantização e, da mesma forma, um grau de quantização inversa que deve ser aplicado.[0169] The inverse quantization unit 310 is configured to inversely quantize, i.e., dequantize, the quantized transform coefficients provided in the bitstream and decoded by the entropy decoding unit 304. The inverse quantization process may include using a quantization parameter calculated by video encoder 100 for each video block in the video slice to determine a degree of quantization and, likewise, a degree of inverse quantization that should be applied.

[0170] A unidade de quantização inversa 310 pode ser configurada para receber parâmetros de quantização (QP) (ou em informações gerais relacionadas à quantização inversa) e coeficientes quantizados a partir dos dados de imagem codificados 21 (por exemplo, por análise e/ou decodificação, por exemplo, por unidade de decodificação de entropia 304) e para aplicar com base nos parâmetros de quantização uma quantização inversa nos coeficientes quantizados decodificados 309 para obter coeficientes desquantizados 311, que também podem ser referidos como coeficientes de transformada 311.[0170] The inverse quantization unit 310 may be configured to receive quantization parameters (QP) (or in general information related to inverse quantization) and quantized coefficients from the encoded image data 21 (e.g., by analysis and/or decoding, e.g., by entropy decoding unit 304) and to apply based on the quantization parameters an inverse quantization on the decoded quantized coefficients 309 to obtain dequantized coefficients 311, which may also be referred to as transform coefficients 311.

[0171] A unidade de processamento de transformada inversa 312 é configurada para aplicar uma transformada inversa, por exemplo, uma DCT inversa, uma transformada de número inteiro inversa ou um processo de transformada inversa conceitualmente similar, aos coeficientes de transformada a fim de produzir blocos residuais no domínio de pixel.[0171] The inverse transform processing unit 312 is configured to apply an inverse transform, e.g., an inverse DCT, an inverse integer transform, or a conceptually similar inverse transform process, to the transform coefficients in order to produce residual blocks in the pixel domain.

[0172] A unidade de processamento de transformada inversa 312 pode ser configurada para receber coeficientes desquantizados 311, também referidos como coeficientes de transformada 311, e para aplicar uma transformada aos coeficientes desquantizados 311 a fim de obter blocos residuais reconstruídos 213 no domínio de amostra. Os blocos residuais reconstruídos 213 também podem ser referidos como blocos de transformada 313. A transformada pode ser uma transformada inversa, por exemplo, uma DCT inversa, uma DST inversa, uma transformada inteira inversa, ou um processo de transformada inversa conceitualmente similar. A unidade de processamento de transformada inversa 312 pode ser adicionalmente configurada para receber parâmetros de transformada ou informações correspondentes a partir dos dados de imagem codificados 21 (por exemplo, por análise e/ou decodificação, por exemplo, por unidade de decodificação de entropia 304) para determinar a transformada a ser aplicada aos coeficientes desquantizados 311.[0172] The inverse transform processing unit 312 may be configured to receive dequantized coefficients 311, also referred to as transform coefficients 311, and to apply a transform to the dequantized coefficients 311 in order to obtain reconstructed residual blocks 213 in the sample domain. The reconstructed residual blocks 213 may also be referred to as transform blocks 313. The transform may be an inverse transform, e.g., an inverse DCT, an inverse DST, an inverse integer transform, or a conceptually similar inverse transform process. The inverse transform processing unit 312 may be further configured to receive transform parameters or corresponding information from the encoded image data 21 (e.g., by parsing and/or decoding, e.g., by entropy decoding unit 304) to determine the transform to be applied to the dequantized coefficients 311.

[0173] A unidade de reconstrução 314 (por exemplo, somador 314) é configurada para adicionar o bloco de transformada inversa 313 (isto é, bloco residual reconstruído 313) ao bloco de predição 365 para obter um bloco reconstruído 315 no domínio de amostra, por exemplo, adicionando-se os valores de amostra do bloco residual reconstruído 313 e os valores de amostra do bloco de predição 365.[0173] The reconstruction unit 314 (e.g., adder 314) is configured to add the inverse transform block 313 (i.e., reconstructed residual block 313) to the prediction block 365 to obtain a reconstructed block 315 in the sample domain, for example, by adding the sample values of the reconstructed residual block 313 and the sample values of the prediction block 365.

[0174] A unidade de filtro loop 320 (no circuito de codificação ou depois do circuito de codificação) é configurada para filtrar o bloco reconstruído 315 para obter um bloco filtrado 321, por exemplo, para suavizar transições de pixel, ou aperfeiçoar de outra forma a qualidade de vídeo. A unidade de filtro loop 320 pode compreender um ou mais filtros loop, tais como um filtro de desblocagem, um filtro de desvio adaptável a amostra (SAO) ou um ou mais outros filtros, por exemplo, um filtro loop adaptável (ALF), um filtro de supressão de ruído (NSF) ou qualquer combinação dos mesmos. Em um exemplo, a unidade de filtro loop 220 pode compreender um filtro de desblocagem, um filtro SAO e um filtro ALF. A ordem do processo de filtragem pode ser o filtro de desblocagem, SAO e ALF. Em um outro exemplo, um processo chamado mapeamento de luma com escala de croma (LMCS) (a saber, o remodelador inloop adaptável) é adicionado. Este processo é realizado antes do desblocagem. Em um outro exemplo, o processo de filtro de desblocagem também pode ser aplicado às bordas de sub-bloco internas, por exemplo, bordas de sub-blocos afins, bordas de sub-blocos ATMVP, bordas de transformada de sub-bloco (SBT) e bordas de subpartição intra (ISP). Embora a unidade de filtro loop 320 seja mostrada na Figura 3 como sendo um filtro in-loop, em outras configurações, a unidade de filtro loop 320 pode ser implementada como um filtro post-loop.[0174] The loop filter unit 320 (in the encoding circuit or after the encoding circuit) is configured to filter the reconstructed block 315 to obtain a filtered block 321, for example, to smooth pixel transitions, or otherwise improve video quality. The loop filter unit 320 may comprise one or more loop filters, such as a deblocking filter, a sample adaptive offset (SAO) filter, or one or more other filters, for example, an adaptive loop filter (ALF), a noise suppression filter (NSF), or any combination thereof. In one example, the loop filter unit 220 may comprise a deblocking filter, an SAO filter, and an ALF filter. The order of the filtering process may be deblocking, SAO, and ALF filter. In another example, a process called luma mapping with chroma scaling (LMCS) (namely, the adaptive in-loop reshaper) is added. This process is performed before deblocking. In another example, the deblocking filter process can also be applied to internal subblock edges, e.g., affine subblock edges, ATMVP subblock edges, subblock transform (SBT) edges, and intra-subpartition (ISP) edges. Although the loop filter unit 320 is shown in Figure 3 as an in-loop filter, in other configurations, the loop filter unit 320 can be implemented as a post-loop filter.

[0175] Os blocos de vídeo decodificados 321 em um determinado quadro ou imagem são então armazenados no buffer de imagem decodificada 330, que armazena imagens de referência usadas para compensação de movimento subsequente.[0175] The decoded video blocks 321 in a given frame or image are then stored in the decoded image buffer 330, which stores reference images used for subsequent motion compensation.

[0176] Os blocos de vídeo decodificados 321 de uma imagem são então armazenados no buffer de imagem decodificada 330, que armazena as imagens decodificadas 331 como imagens de referência para compensação de movimento subsequente para outras imagens e/ou para emissão no que diz respeito à exibição.[0176] The decoded video blocks 321 of a picture are then stored in the decoded picture buffer 330, which stores the decoded pictures 331 as reference pictures for subsequent motion compensation for other pictures and/or for output with respect to display.

[0177] O decodificador 30 é configurado para emitir a imagem decodificada 331, por exemplo, por meio da saída 332, para apresentação ou visualização para um usuário.[0177] The decoder 30 is configured to output the decoded image 331, for example, via the output 332, for presentation or display to a user.

[0178] Outras variações do decodificador de vídeo 30 podem ser usadas para decodificar o fluxo de bits comprimido. Por exemplo, o decodificador 30 pode produzir o fluxo de vídeo emitido sem a unidade de filtragem loop 320. Por exemplo, um decodificador 30 com base em não transformada pode quantizar inversamente o sinal residual diretamente sem a unidade de processamento de transformada inversa 312 para certos blocos ou quadros. Em uma outra implementação, o decodificador de vídeo 30 pode ter a unidade de quantização inversa 310 e a unidade de processamento de transformada inversa 312 combinadas em uma única unidade.[0178] Other variations of the video decoder 30 may be used to decode the compressed bitstream. For example, the decoder 30 may produce the output video stream without the loop filtering unit 320. For example, a non-transform based decoder 30 may inversely quantize the residual signal directly without the inverse transform processing unit 312 for certain blocks or frames. In another implementation, the video decoder 30 may have the inverse quantization unit 310 and the inverse transform processing unit 312 combined into a single unit.

[0179] Além das ou alternativamente às modalidades acima mencionadas, em outras modalidades de acordo com a Figura 16, a unidade de predição inter 344 pode ser idêntica à unidade de predição inter 244 (em particular à unidade de compensação de movimento) e a unidade de predição intra 354 pode ser idêntica à unidade de predição inter 254 em função, e realiza decisões de divisão ou particionamento e predição com base nos parâmetros de particionamento e/ou predição ou respectivas informações recebidas a partir dos dados de imagem codificados 21 (por exemplo, por análise e/ou decodificação, por exemplo, por unidade de decodificação de entropia 304). A unidade de aplicação de modo 360 pode ser configurada para realizar a predição (predição intra ou inter) por bloco com base em imagens reconstruídas, em blocos ou em respectivas amostras (filtradas ou não filtradas) para obter o bloco de predição 365.[0179] In addition to or alternatively to the aforementioned embodiments, in other embodiments according to Figure 16, the inter prediction unit 344 may be identical to the inter prediction unit 244 (in particular to the motion compensation unit) and the intra prediction unit 354 may be identical to the inter prediction unit 254 in function, and performs splitting or partitioning and prediction decisions based on the partitioning and/or prediction parameters or respective information received from the encoded image data 21 (e.g., by parsing and/or decoding, e.g., by entropy decoding unit 304). The mode application unit 360 may be configured to perform prediction (intra or inter prediction) per block based on reconstructed images, on blocks or on respective samples (filtered or unfiltered) to obtain the prediction block 365.

[0180] Quando a fatia de vídeo é codificada como uma fatia codificada de modo intra (I), a unidade de predição intra 354 da unidade de aplicação de modo 360 é configurada para gerar o bloco de predição 365 para um bloco de imagem da fatia de vídeo atual com base em um modo de predição intra sinalizado e em dados de blocos previamente decodificados da imagem atual. Quando a imagem de vídeo é codificada como uma fatia codificada de modo inter (isto é, B ou P), a unidade de predição inter 344 (por exemplo, unidade de compensação de movimento) da unidade de aplicação de modo 360 é configurada para produzir blocos de predição 365 para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e em outros elementos de sintaxe recebidos a partir da unidade de decodificação de entropia 304. Para predição inter, os blocos de predição podem ser produzidos a partir de uma dentre as imagens de referência dentro de uma dentre as listas de imagem de referência. O decodificador de vídeo 30 pode construir as listas de quadros de referência, Lista 0 e Lista 1, usando técnicas de construção padrão com base em imagens de referência armazenadas no DPB 330. O mesmo ou similar pode ser aplicado para ou por modalidades usando grupos de tile (por exemplo, grupos de tile de vídeo) e/ou tiles (por exemplo, tiles de vídeo) além das ou alternativamente a fatias (por exemplo, fatias de vídeo), por exemplo, um vídeo pode ser codificado usando grupos de tile I, P ou B e/ou tiles.[0180] When the video slice is coded as an intra (I) mode coded slice, the intra prediction unit 354 of the mode application unit 360 is configured to generate the prediction block 365 for a picture block of the current video slice based on a signaled intra prediction mode and previously decoded block data of the current picture. When the video picture is coded as an inter (i.e., B or P) mode coded slice, the inter prediction unit 344 (e.g., motion compensation unit) of the mode application unit 360 is configured to produce prediction blocks 365 for a video block of the current video slice based on the motion vectors and other syntax elements received from the entropy decoding unit 304. For inter prediction, the prediction blocks may be produced from one of the reference pictures within one of the reference picture lists. The video decoder 30 may construct the lists of reference frames, List 0 and List 1, using standard construction techniques based on reference pictures stored in the DPB 330. The same or similar may be applied to or by embodiments using tile groups (e.g., video tile groups) and/or tiles (e.g., video tiles) in addition to or alternatively to slices (e.g., video slices), for example, a video may be encoded using I, P, or B tile groups and/or tiles.

[0181] A unidade de aplicação de modo 360 é configurada para determinar as informações de predição para um bloco de vídeo da fatia de vídeo atual analisando-se os vetores de movimento ou informações relacionadas e outros elementos de sintaxe, e usa as informações de predição para produzir os blocos de predição para o bloco de vídeo atual sendo decodificado. Por exemplo, a unidade de aplicação de modo 360 usa alguns dos elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, predição intra ou inter) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de predição inter (por exemplo, fatia B, Fatia P, ou fatia GPB), informações de construção para uma ou mais das listas de imagem de referência para a fatia, vetores de movimento para cada bloco de vídeo codificado de modo inter da fatia, status de predição inter para cada bloco de vídeo codificado da fatia, e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual. O mesmo ou similar pode ser aplicado para ou por modalidades usando grupos de tile (por exemplo, grupos de tile de vídeo) e/ou tiles (por exemplo, tiles de vídeo) além das ou alternativamente a fatias (por exemplo, fatias de vídeo), por exemplo, um vídeo pode ser codificado usando grupos de tile I, P ou B e/ou tiles.[0181] The 360-mode application unit is configured to determine prediction information for a video block of the current video slice by analyzing motion vectors or related information and other syntax elements, and uses the prediction information to produce prediction blocks for the current video block being decoded. For example, the 360-mode application unit uses some of the received syntax elements to determine a prediction mode (e.g., intra- or inter-prediction) used to encode the video blocks of the video slice, an inter-prediction slice type (e.g., B-slice, P-slice, or GPB-slice), construction information for one or more of the reference picture lists for the slice, motion vectors for each inter-mode encoded video block of the slice, inter-prediction status for each encoded video block of the slice, and other information for decoding the video blocks in the current video slice. The same or similar may be applied to or by embodiments using tile groups (e.g., video tile groups) and/or tiles (e.g., video tiles) in addition to or alternatively to slices (e.g., video slices), for example, a video may be encoded using I, P, or B tile groups and/or tiles.

[0182] As modalidades do decodificador de vídeo 30, como mostrado na Figura 3, podem ser configuradas para particionar e/ou decodificar a imagem usando-se fatias (também referidas como fatias de vídeo), em que uma imagem pode ser particionada ou decodificada usando um ou mais fatias (tipicamente não sobrepostas), e cada fatia pode compreender um ou mais blocos (por exemplo, CTUs) ou um ou mais grupos de blocos (por exemplo, tiles (H.265/HEVC e VVC) ou bricks (VVC)).[0182] Embodiments of the video decoder 30, as shown in Figure 3, may be configured to partition and/or decode the picture using slices (also referred to as video slices), wherein a picture may be partitioned or decoded using one or more slices (typically non-overlapping), and each slice may comprise one or more blocks (e.g., CTUs) or one or more groups of blocks (e.g., tiles (H.265/HEVC and VVC) or bricks (VVC)).

[0183] As modalidades do decodificador de vídeo 30 como mostrado na Figura 3 podem ser configuradas para particionar e/ou decodificar a imagem usando-se grupos de fatias/tile (também referidos como grupos de tile de vídeo) e/ou tiles (também referidas como tiles de vídeo), em que uma imagem pode ser particionada em ou decodificada usando um ou mais grupos de fatias/tile (tipicamente não sobrepostos), e cada grupo de fatia/tile pode compreender, por exemplo, um ou mais blocos (por exemplo, CTUs) ou um ou mais tiles, em que cada tile, por exemplo, pode ser de formato retangular e pode compreender um ou mais blocos (por exemplo, CTUs), por exemplo, blocos completos ou fracionários.[0183] Embodiments of the video decoder 30 as shown in Figure 3 may be configured to partition and/or decode the picture using slice/tile groups (also referred to as video tile groups) and/or tiles (also referred to as video tiles), wherein a picture may be partitioned into or decoded using one or more slice/tile groups (typically non-overlapping), and each slice/tile group may comprise, for example, one or more blocks (e.g., CTUs) or one or more tiles, wherein each tile, for example, may be rectangular in shape and may comprise one or more blocks (e.g., CTUs), for example, full or fractional blocks.

[0184] Outras variações do decodificador de vídeo 30 podem ser usadas para decodificar os dados de imagem codificados 21. Por exemplo, o decodificador 30 pode produzir o fluxo de vídeo de saída sem a unidade de filtragem loop 320. Por exemplo, um decodificador com base em não transformada 30 pode quantizar inversamente o sinal residual diretamente sem a unidade de processamento de transformada inversa 312 para certos blocos ou quadros. Em uma outra implementação, o decodificador de vídeo 30 pode ter a unidade de quantização inversa 310 e a unidade de processamento de transformada inversa 312 combinadas em uma única unidade.[0184] Other variations of the video decoder 30 may be used to decode the encoded image data 21. For example, the decoder 30 may produce the output video stream without the loop filtering unit 320. For example, a non-transform based decoder 30 may inversely quantize the residual signal directly without the inverse transform processing unit 312 for certain blocks or frames. In another implementation, the video decoder 30 may have the inverse quantization unit 310 and the inverse transform processing unit 312 combined into a single unit.

[0185] Deve ser entendido que, no codificador 20 e no decodificador 30, um resultado de processamento de uma etapa atual pode ser posteriormente processado e então enviado para a próxima etapa. Por exemplo, após a filtragem por interpolação, derivação de vetor de movimento ou filtragem loop, uma operação adicional, tal como Clip ou deslocamento, pode ser realizada no resultado de processamento da filtragem de interpolação, derivação de vetor de movimento ou filtragem loop.[0185] It should be understood that, in encoder 20 and decoder 30, a processing result from a current step may be further processed and then sent to the next step. For example, after interpolation filtering, motion vector derivation, or loop filtering, an additional operation, such as Clip or Shift, may be performed on the processing result of the interpolation filtering, motion vector derivation, or loop filtering.

[0186] A Figura 4 é um diagrama esquemático de um dispositivo de codificação de vídeo 400 de acordo com uma modalidade da revelação. O dispositivo de codificação de vídeo 400 é adequado para implementar as modalidades reveladas conforme descrito no presente documento. Em uma modalidade, o dispositivo de codificação de vídeo 400 pode ser um decodificador, tal como o decodificador de vídeo 30 da Figura 1A ou um codificador tal como o codificador de vídeo 20 da Figura 1A. Em uma modalidade, o dispositivo de codificação de vídeo 400 pode ser um ou mais componentes do decodificador de vídeo 30 da Figura 1A ou o codificador de vídeo 20 da Figura 1A conforme descrito acima.[0186] Figure 4 is a schematic diagram of a video encoding device 400 according to an embodiment of the disclosure. The video encoding device 400 is suitable for implementing the disclosed embodiments as described herein. In one embodiment, the video encoding device 400 may be a decoder, such as the video decoder 30 of Figure 1A, or an encoder such as the video encoder 20 of Figure 1A. In one embodiment, the video encoding device 400 may be one or more components of the video decoder 30 of Figure 1A or the video encoder 20 of Figure 1A as described above.

[0187] O dispositivo de codificação de vídeo 400 compreende portas de ingresso 410 e unidades receptoras (Rx) 420 para receber dados; um processador, unidade lógica, ou unidade de processamento central (CPU) 430 para processar os dados; unidades transmissoras (Tx) 440 e portas de egresso 450 para transmitir os dados; e uma memória 460 para armazenar os dados. O dispositivo de codificação de vídeo 400 também pode compreender componentes ópticos para elétricos (OE) e componentes elétricos para ópticos (EO) acoplados às portas de ingresso 410, às unidades receptoras 420, às unidades transmissoras 440 e às portas de egresso 450 para egresso ou ingresso de sinais ópticos ou elétricos.[0187] The video encoding device 400 comprises ingress ports 410 and receiver (Rx) units 420 for receiving data; a processor, logic unit, or central processing unit (CPU) 430 for processing the data; transmitter (Tx) units 440 and egress ports 450 for transmitting the data; and a memory 460 for storing the data. The video encoding device 400 may also comprise optical-to-electrical (OE) components and electrical-to-optical (EO) components coupled to the ingress ports 410, the receiver units 420, the transmitter units 440, and the egress ports 450 for egressing or ingressing optical or electrical signals.

[0188] O processador 430 é implementado por hardware e software. O processador 430 pode ser implementado como um ou mais chips de CPU, núcleos (por exemplo, como um processador multinúcleo), FPGAs, ASICs e DSPs. O processador 430 está em comunicação com as portas de ingresso 410, unidades receptoras 420, unidades transmissoras 440, portas de egresso 450 e memória 460. O processador 430 compreende um módulo de codificação 470. O módulo de codificação 470 implementa as modalidades reveladas descritas acima. Por exemplo, o módulo de codificação 470 implementa, processa, prepara ou fornece as várias operações de codificação. A inclusão do módulo de codificação 470, portanto, fornece um aperfeiçoamento substancial para a funcionalidade do dispositivo de codificação de vídeo 400 e efetua uma transformação do dispositivo de codificação de vídeo 400 para um estado diferente. Alternativamente, o módulo de codificação 470 é implementado como instruções armazenadas na memória 460 e executadas pelo processador 430.[0188] Processor 430 is implemented by hardware and software. Processor 430 may be implemented as one or more CPU chips, cores (e.g., as a multi-core processor), FPGAs, ASICs, and DSPs. Processor 430 is in communication with ingress ports 410, receiver units 420, transmitter units 440, egress ports 450, and memory 460. Processor 430 comprises an encoding module 470. Encoding module 470 implements the disclosed embodiments described above. For example, encoding module 470 implements, processes, prepares, or provides the various encoding operations. The inclusion of encoding module 470, therefore, provides a substantial enhancement to the functionality of video encoding device 400 and effects a transformation of video encoding device 400 to a different state. Alternatively, the encoding module 470 is implemented as instructions stored in memory 460 and executed by the processor 430.

[0189] A memória 460 compreende um ou mais discos, unidades de fita, e unidades de estado sólido e pode ser usada como um dispositivo de armazenamento de dados de estouro de capacidade, para armazenar programas quando tais programas são selecionados para execução, e para armazenar instruções e dados que são lidos durante execução de programa. A memória 460 pode ser volátil e/ou não volátil e pode ser memória somente leitura (ROM), memória de acesso aleatório (RAM), memória endereçável por conteúdo ternário (TCAM) e/ou memória de acesso aleatório estática (SRAM).[0189] Memory 460 comprises one or more disks, tape drives, and solid-state drives and may be used as an overflow data storage device, to store programs when such programs are selected for execution, and to store instructions and data that are read during program execution. Memory 460 may be volatile and/or non-volatile and may be read-only memory (ROM), random-access memory (RAM), ternary content-addressable memory (TCAM), and/or static random-access memory (SRAM).

[0190] A Figura 5 é um diagrama de blocos simplificado de um aparelho 500 que pode ser usado como um dentre os ou ambos o dispositivo de origem 310 e o dispositivo de destino 320 da Figura 1 de acordo com uma modalidade exemplificativa. O aparelho 500 pode implementar técnicas do presente pedido descritas acima. O aparelho 500 pode estar na forma de um sistema de computação incluindo múltiplos dispositivos de computação, ou na forma de um único dispositivo de computação, por exemplo, um telefone móvel, um computador tipo tablet, um computador tipo laptop, um computador tipo notebook, um computador de mesa, e similar.[0190] Figure 5 is a simplified block diagram of an apparatus 500 that may be used as one of or both the source device 310 and the destination device 320 of Figure 1 according to an exemplary embodiment. The apparatus 500 may implement techniques of the present application described above. The apparatus 500 may be in the form of a computing system including multiple computing devices, or in the form of a single computing device, e.g., a mobile phone, a tablet computer, a laptop computer, a notebook computer, a desktop computer, and the like.

[0191] Um processador 502 no aparelho 500 pode ser uma unidade de processamento central. Alternativamente, o processador 502 pode ser qualquer outro tipo de dispositivo, ou múltiplos dispositivos, tendo capacidade de manipular ou processar informações agora existentes ou desenvolvidas posteriormente. Embora as implementações reveladas possam ser praticadas com um único processador, como mostrado, por exemplo, o processador 502, vantagens em velocidade e eficiência podem ser alcançadas usando mais de um processador.[0191] A processor 502 in apparatus 500 may be a central processing unit. Alternatively, processor 502 may be any other type of device, or multiple devices, having the capability to manipulate or process information now existing or later developed. Although the disclosed implementations may be practiced with a single processor, as shown, for example, processor 502, advantages in speed and efficiency may be achieved by using more than one processor.

[0192] Uma memória 504 no aparelho 500 pode ser um dispositivo de memória somente leitura (ROM) ou um dispositivo de memória de acesso aleatório (RAM) em uma implementação. Qualquer outro tipo adequado de dispositivo de armazenamento pode ser usado como a memória 504. A memória 504 pode incluir código e dados 506 que são acessados pelo processador 502 usando um barramento 512. A memória 504 pode incluir adicionalmente um sistema operacional 508 e programas de aplicativo 510, os programas de aplicativo 510 incluindo pelo menos um programa que permite ao processador 502 realizar os métodos descritos aqui. Por exemplo, os programas de aplicativo 510 podem incluir aplicativos de 1 a N, que incluem adicionalmente um aplicativo de codificação de vídeo que realiza os métodos descritos aqui. O aparelho 500 também pode incluir memória adicional na forma de um armazenamento secundário 514, que pode, por exemplo, ser um cartão de memória usado com um dispositivo de computação móvel. Como as sessões de comunicação de vídeo podem conter um montante significativo de informações, elas podem ser armazenadas no todo ou em parte no armazenamento secundário 514 e carregadas na memória 504 conforme necessário para processamento. O aparelho 500 também pode incluir um ou mais dispositivos de saída, tais como um display 518. O display 518 pode ser, em um exemplo, um display sensível ao toque que combina um display com um elemento sensível ao toque que é operável para sensoriar entradas de toque. O display 518 pode ser acoplado ao processador 502 por meio do barramento 512.[0192] A memory 504 in the apparatus 500 may be a read-only memory (ROM) device or a random access memory (RAM) device in one implementation. Any other suitable type of storage device may be used as the memory 504. The memory 504 may include code and data 506 that are accessed by the processor 502 using a bus 512. The memory 504 may additionally include an operating system 508 and application programs 510, the application programs 510 including at least one program that enables the processor 502 to perform the methods described herein. For example, the application programs 510 may include applications 1 through N, which additionally include a video encoding application that performs the methods described herein. The apparatus 500 may also include additional memory in the form of secondary storage 514, which may, for example, be a memory card used with a mobile computing device. Because video communication sessions may contain a significant amount of information, it may be stored in whole or in part in secondary storage 514 and loaded into memory 504 as needed for processing. The apparatus 500 may also include one or more output devices, such as a display 518. The display 518 may be, in one example, a touch-sensitive display that combines a display with a touch-sensitive element operable to sense touch inputs. The display 518 may be coupled to the processor 502 via the bus 512.

[0193] O aparelho 500 também pode incluir um ou mais dispositivos de saída, tais como um display 518. O display 518 pode ser, em um exemplo, um display sensível ao toque que combina um display com um elemento sensível ao toque que é operável para sensoriar inserções por toque. O display 518 pode ser acoplado ao processador 502 por meio do barramento 512. Outros dispositivos de saída que permitem a um usuário programar ou usar de outra forma o aparelho 500 podem ser fornecidos adicionalmente ou como uma alternativa ao display 518. Quando o dispositivo de saída é ou inclui um display, o display pode ser implementado de várias maneiras, incluindo por um display de cristal líquido (LCD), um display de tubo de raios catódicos (CRT), um display de plasma ou display de diodo emissor de luz (LED), tal como um display de LED orgânico (OLED).[0193] Apparatus 500 may also include one or more output devices, such as a display 518. Display 518 may be, in one example, a touch-sensitive display that combines a display with a touch-sensitive element that is operable to sense touch inputs. Display 518 may be coupled to processor 502 via bus 512. Other output devices that allow a user to program or otherwise use apparatus 500 may be provided in addition to or as an alternative to display 518. When the output device is or includes a display, the display may be implemented in a variety of ways, including by a liquid crystal display (LCD), a cathode ray tube (CRT) display, a plasma display, or a light-emitting diode (LED) display, such as an organic LED display (OLED).

[0194] O aparelho 500 também pode incluir ou estar em comunicação com um dispositivo de sensoriamento de imagem 520, por exemplo, uma câmera, ou qualquer outro dispositivo de sensoriamento de imagem 520 agora existente ou desenvolvido posteriormente que pode sensoriar uma imagem tal como a imagem de um usuário que opera o aparelho 500. O dispositivo de sensoriamento de imagem 520 pode ser posicionado de modo que ele seja direcionado ao usuário que opera o aparelho 500. Em um exemplo, a posição e o eixo óptico do dispositivo de sensoriamento de imagem 520 podem ser configurados de modo que o campo de visão inclua uma área que é diretamente adjacente ao display 518 e a partir da qual o display 518 seja visível.[0194] The apparatus 500 may also include or be in communication with an image sensing device 520, e.g., a camera, or any other image sensing device 520 now existing or later developed that can sense an image such as the image of a user operating the apparatus 500. The image sensing device 520 may be positioned so that it is directed toward the user operating the apparatus 500. In one example, the position and optical axis of the image sensing device 520 may be configured so that the field of view includes an area that is directly adjacent to the display 518 and from which the display 518 is visible.

[0195] O aparelho 500 também pode incluir ou estar em comunicação com um dispositivo de sensoriamento de som 522, por exemplo, um microfone, ou qualquer outro dispositivo de sensoriamento de som agora existente ou desenvolvido posteriormente que possa sensoriar sons perto do aparelho 500. O dispositivo de sensoriamento de som 522 pode ser posicionado de modo que ele seja direcionado para o usuário que opera o aparelho 500 e pode ser configurado para receber sons, por exemplo, fala ou outras elocuções, feitas pelo usuário enquanto o usuário opera o aparelho 500.[0195] The apparatus 500 may also include or be in communication with a sound sensing device 522, e.g., a microphone, or any other sound sensing device now existing or later developed that can sense sounds near the apparatus 500. The sound sensing device 522 may be positioned so that it is directed toward the user operating the apparatus 500 and may be configured to receive sounds, e.g., speech or other utterances, made by the user while the user operates the apparatus 500.

[0196] Embora a Figura 5 represente o processador 502 e a memória 504 do aparelho 500 como sendo integrados em uma única unidade, outras configurações podem ser utilizadas. As operações do processador 502 podem ser distribuídas por meio de várias máquinas (cada máquina tendo um ou mais dos processadores) que podem ser acopladas diretamente ou por meio de uma área local ou outra rede. A memória 504 pode ser distribuída por meio de múltiplas máquinas tais como uma memória com base em rede ou memória em múltiplas máquinas que realizam as operações do aparelho 500. Embora representado aqui como um único barramento, o barramento 512 do aparelho 500 pode ser composto de múltiplos barramentos. Além disso, o armazenamento secundário 514 pode ser diretamente acoplado aos outros componentes do aparelho 500 ou pode ser acessado por meio de uma rede e pode compreender uma única unidade integrada tal como um cartão de memória ou múltiplas unidades tais como múltiplos cartões de memória. O aparelho 500 pode assim ser implementado em uma ampla variedade de configurações.[0196] Although Figure 5 depicts the processor 502 and memory 504 of the apparatus 500 as being integrated into a single unit, other configurations may be utilized. The operations of the processor 502 may be distributed across multiple machines (each machine having one or more of the processors) that may be coupled directly or via a local area or other network. The memory 504 may be distributed across multiple machines such as a network-based memory or memory on multiple machines that perform the operations of the apparatus 500. Although depicted here as a single bus, the bus 512 of the apparatus 500 may be composed of multiple buses. Furthermore, the secondary storage 514 may be directly coupled to the other components of the apparatus 500 or may be accessed via a network and may comprise a single integrated unit such as a memory card or multiple units such as multiple memory cards. The apparatus 500 may thus be implemented in a wide variety of configurations.

[0197] A Codificação de Vídeo de Próxima Geração (NGVC) remove a separação dos conceitos de CU, PU e TU, e suporta mais flexibilidade para formatos de partição CU. Um tamanho da CU corresponde a um tamanho do nó de codificação e pode ser quadrado ou não quadrado (por exemplo, retangular) no formato.[0197] Next Generation Video Coding (NGVC) removes the separation of the concepts of CU, PU, and TU, and supports more flexibility for CU partition formats. A CU size corresponds to a coding node size and can be square or non-square (e.g., rectangular) in shape.

[0198] Em J. An et al., "Block partitioning structure for next generation video coding", International Telecommunication Union, COM16-C966, setembro de 2015 (doravante, "proposta VCEG COM16-C966"), técnicas de particionamento árvore quaternária-ave binária em árvore (QTBT) foram propostas para o futuro padrão de codificação de vídeo além do HEVC. Simulações mostraram que a estrutura QTBT proposta é mais eficiente do que a estrutura de árvore quaternária na HEVC usada. Em HEVC, a predição inter para pequenos blocos é restrita para reduzir o acesso à memória de compensação de movimento, e predição inter não é suportada para blocos 4 x 4. No QTBT do JEM, essas restrições são removidas.[0198] In J. An et al., "Block partitioning structure for next generation video coding", International Telecommunication Union, COM16-C966, September 2015 (hereinafter, "VCEG COM16-C966 proposal"), quaternary tree-binary tree (QTBT) partitioning techniques were proposed for the future video coding standard beyond HEVC. Simulations showed that the proposed QTBT structure is more efficient than the quaternary tree structure used in HEVC. In HEVC, inter-prediction for small blocks is restricted to reduce motion compensation memory access, and inter-prediction is not supported for 4 x 4 blocks. In JEM's QTBT, these restrictions are removed.

[0199] Na QTBT, uma CU pode ter ou um formato quadrado ou retangular. Como mostrado na Figura 6, uma unidade de árvore de codificação (CTU) é primeiramente particionada por uma estrutura de árvore quaternária. Os nós folha de árvore quaternária podem ser adicionalmente particionados por uma estrutura de árvore binária. Existem dois tipos de divisão, divisão horizontal simétrica e divisão vertical simétrica, na divisão de árvore binária. Em cada caso, um nó é dividido dividindo-se o nó ao meio, ou horizontalmente ou verticalmente. Os nós folha de árvore binária são chamados unidades de codificação (CUs), e essa segmentação é usada para predição e processamento de transformada sem qualquer particionamento adicional. Isso significa que CU, PU e TU têm o mesmo tamanho de bloco na estrutura de bloco de codificação QTBT. Uma CU algumas vezes consiste em blocos de codificação (CBs) de componentes de cores diferentes, por exemplo, uma CU contém um CB de luma e dois CBs de croma no caso de fatias P e B do formato de croma 4: 2: 0 e algumas vezes consiste em um CB de um único componente, por exemplo, uma CU contém apenas um CB de luma ou apenas dois CBs de croma no caso de fatias I.[0199] In QTBT, a CU can be either square or rectangular in shape. As shown in Figure 6, a coding tree unit (CTU) is first partitioned by a quaternary tree structure. The leaf nodes of the quaternary tree can be further partitioned by a binary tree structure. There are two types of splitting, symmetric horizontal splitting and symmetric vertical splitting, in binary tree splitting. In each case, a node is split by splitting the node in half, either horizontally or vertically. The leaf nodes of the binary tree are called coding units (CUs), and this segmentation is used for prediction and transform processing without any further partitioning. This means that CU, PU, and TU have the same block size in the QTBT coding block structure. A CU sometimes consists of coding blocks (CBs) of different color components, e.g., a CU contains one luma CB and two chroma CBs in the case of P and B slices of 4:2:0 chroma format, and sometimes consists of a CB of a single component, e.g., a CU contains only one luma CB or only two chroma CBs in the case of I slices.

[0200] Os seguintes parâmetros são definidos para o esquema de particionamento de QTBT.- Tamanho CTU: o tamanho de nó raiz de uma árvore quaternária, o mesmo conceito que em HEVC- MinQTSize: o tamanho de nó folha de árvore quaternária mínimo permitido- MaxBTSize: o tamanho de nó raiz de árvore binária máximo permitido- MaxBTDepth: a profundidade de árvore binária máxima permitida- MinBTSize: o tamanho de nó de folha da árvore binária mínimo permitido[0200] The following parameters are defined for the QTBT partitioning scheme.- CTU Size: the root node size of a quaternary tree, the same concept as in HEVC- MinQTSize: the minimum allowed quaternary tree leaf node size- MaxBTSize: the maximum allowed binary tree root node size- MaxBTDepth: the maximum allowed binary tree depth- MinBTSize: the minimum allowed binary tree leaf node size

[0201] Em um exemplo da estrutura de particionamento de QTBT, quando o nó de árvore quaternária tem tamanho igual ou menor que MinQTSize, nenhuma árvore quaternária adicional é considerada. Ela não será adicionalmente dividida pela árvore binária, pois o tamanho (MinQTSize) excede o MaxBTSize. Caso contrário, o nó folha de árvore quaternária poderia ser particionado adicionalmente pela árvore binária. Portanto, o nó folha de árvore quaternária também é o nó raiz da árvore binária e tem a profundidade da árvore binária como 0 (zero). Quando a profundidade da árvore binária atinge MaxBTDepth (isto é, 4), nenhuma divisão adicional é considerada. Quando o nó de árvore binária tem largura igual a MinBTSize (isto é, 4), nenhuma divisão horizontal adicional é considerada. Similarmente, quando o nó de árvore binária tem altura igual a MinBTSize, nenhuma divisão vertical adicional é considerada. Os nós folha da árvore binária são adicionalmente processados por predição e processamento de transformada sem qualquer particionamento adicional. No JEM, o tamanho máximo da CTU é de amostras de luma 256 x 256. Os nós folha da árvore binária (CUs) podem ser adicionalmente processados (por exemplo, realizando-se um processo de predição e um processo de transformada) sem qualquer particionamento adicional.[0201] In an example of the QTBT partitioning structure, when the quaternary tree node has a size equal to or less than MinQTSize, no additional quaternary tree is considered. It will not be further split by the binary tree since its size (MinQTSize) exceeds MaxBTSize. Otherwise, the quaternary tree leaf node could be further partitioned by the binary tree. Therefore, the quaternary tree leaf node is also the root node of the binary tree and has the binary tree depth as 0 (zero). When the binary tree depth reaches MaxBTDepth (i.e., 4), no additional splits are considered. When the binary tree node has a width equal to MinBTSize (i.e., 4), no additional horizontal splits are considered. Similarly, when the binary tree node has a height equal to MinBTSize, no additional vertical splits are considered. The leaf nodes of the binary tree are further processed by prediction and transform processing without any additional partitioning. In JEM, the maximum CTU size is 256 x 256 luma samples. Binary tree leaf nodes (CUs) can be further processed (e.g., by performing a prediction process and a transform process) without any additional partitioning.

[0202] A Figura 6 ilustra um exemplo de um bloco 30 (por exemplo, um CTB) particionado com o uso de técnicas de particionamento de QTBT. Como mostrado na Figura 6, com o uso de técnicas de partição de QTBT, cada um dentre os blocos é dividido simetricamente através do centro de cada bloco. A Figura 7 ilustra a estrutura de árvore correspondente ao particionamento de bloco da Figura 6. As linhas cheias na Figura 7 indicam divisão em árvore quaternária e linhas tracejadas indicam divisão em árvore binária. Em um exemplo, em cada nó de divisão (isto é, não folha) da árvore binária, um elemento de sintaxe (por exemplo, uma flag) é sinalizado para indicar o tipo de divisão realizada (por exemplo, horizontal ou vertical), em que 0 indica divisão horizontal e 1 indica divisão vertical. Para a divisão de árvore quaternária, não há necessidade de indicar o tipo de divisão, uma vez que a divisão de árvore quaternária sempre divide um bloco horizontalmente e verticalmente em 4 sub- blocos com um tamanho igual.[0202] Figure 6 illustrates an example of a block 30 (e.g., a CTB) partitioned using QTBT partitioning techniques. As shown in Figure 6, using QTBT partitioning techniques, each of the blocks is split symmetrically through the center of each block. Figure 7 illustrates the tree structure corresponding to the block partitioning of Figure 6. Solid lines in Figure 7 indicate quaternary tree splitting and dashed lines indicate binary tree splitting. In one example, at each split (i.e., non-leaf) node of the binary tree, a syntax element (e.g., a flag) is flagged to indicate the type of split performed (e.g., horizontal or vertical), where 0 indicates horizontal splitting and 1 indicates vertical splitting. For quaternary tree splitting, there is no need to indicate the type of splitting, since quaternary tree splitting always splits a block horizontally and vertically into 4 subblocks of equal size.

[0203] Conforme mostrado na Figura 7, no nó 50, o bloco 30 (correspondente à raiz 50) é dividido nos quatro blocos 31, 32, 33 e 34, mostrados na Figura 6, usando a partição de QT. O bloco 34 não é adicionalmente dividido e, portanto, é um nó folha. No nó 52, o bloco 31 é adicionalmente dividido em dois blocos usando particionamento de BT. Como mostrado na Figura 7, o nó 52 é marcado com um 1, indicando divisão vertical. Sendo assim, a divisão no nó 52 resulta no bloco 37 e no bloco incluindo ambos os blocos 35 e 36. Os blocos 35 e 36 são criados por uma divisão vertical adicional no nó 54. No nó 56, o bloco 32 é adicionalmente dividido em dois blocos 38 e 39 usando particionamento de BT.[0203] As shown in Figure 7, at node 50, block 30 (corresponding to root 50) is split into the four blocks 31, 32, 33, and 34, shown in Figure 6, using QT partitioning. Block 34 is not further split and is therefore a leaf node. At node 52, block 31 is further split into two blocks using BT partitioning. As shown in Figure 7, node 52 is marked with a 1, indicating vertical split. Thus, the split at node 52 results in block 37 and the block including both blocks 35 and 36. Blocks 35 and 36 are created by a further vertical split at node 54. At node 56, block 32 is further split into two blocks 38 and 39 using BT partitioning.

[0204] No nó 58, o bloco 33 é dividido em 4 blocos de tamanhos iguais usando particionamento de QT. Os blocos 43 e 44 são criados a partir dessa partição de QT e não são adicionalmente divididos. No nó 60, o bloco superior esquerdo é primeiro dividido usando divisão de árvore binária vertical, resultando no bloco 40 e um bloco vertical direito. O bloco vertical direito é então dividido usando divisão de árvore binária horizontal nos blocos 41 e 42. O bloco inferior direito criado a partir da divisão de árvore quaternária no nó 58, é dividido no nó 62 usando divisão de árvore binária horizontal em blocos 45 e 46 Como mostrado na Figura 7, o nó 62 é marcado com um 0, indicando divisão horizontal.[0204] At node 58, block 33 is split into 4 equal-sized blocks using QT partitioning. Blocks 43 and 44 are created from this QT partition and are not further split. At node 60, the top-left block is first split using vertical binary tree splitting, resulting in block 40 and a right-hand vertical block. The right-hand vertical block is then split using horizontal binary tree splitting into blocks 41 and 42. The bottom-right block created from the quaternary tree split at node 58, is split at node 62 using horizontal binary tree splitting into blocks 45 and 46. As shown in Figure 7, node 62 is marked with a 0, indicating horizontal splitting.

[0205] Além de QTBT, uma estrutura de particionamento de bloco denominada árvore de múltiplos tipos (MTT) é proposta para substituir BT em estruturas de CU com base em QTBT, o que significa que uma CTU pode ser dividida por particionamento de QT em primeiro lugar para obter um bloco da CTU, e então o bloco pode ser dividido por particionamento MTT em segundo lugar.[0205] In addition to QTBT, a block partitioning structure called multi-type tree (MTT) is proposed to replace BT in QTBT-based CU structures, which means that a CTU can be divided by QT partitioning firstly to obtain a block of the CTU, and then the block can be divided by MTT partitioning secondly.

[0206] A estrutura de particionamento MTT ainda é uma estrutura de árvore recursiva. Em MTT, múltiplas estruturas de partição diferentes (por exemplo, duas ou mais) são usadas. Por exemplo, de acordo com as técnicas de MTT, duas ou mais estruturas de partição diferentes podem ser usadas para cada nó não folha respectivo de uma estrutura de árvore, em cada profundidade da estrutura de árvore. A profundidade de um nó em uma estrutura de árvore pode se referir ao comprimento do percurso (por exemplo, o número de divisões) do nó à raiz da estrutura de árvore.[0206] The MTT partitioning structure is still a recursive tree structure. In MTT, multiple different partition structures (e.g., two or more) are used. For example, according to MTT techniques, two or more different partition structures may be used for each respective non-leaf node of a tree structure, at each depth of the tree structure. The depth of a node in a tree structure may refer to the length of the traversal (e.g., the number of splits) from the node to the root of the tree structure.

[0207] Em MTT, existem dois tipos de partição, particionamento de BT e particionamento de árvore ternária (TT). O tipo de partição pode ser selecionado a partir de particionamento de BT e particionamento de TT. A estrutura de partição TT difere das estruturas QT ou BT, em que a estrutura de partição TT não divide um bloco no centro. A região central do bloco permanece junto no mesmo sub-bloco. Diferente de QT, que produz quatro blocos, ou árvore binária, que produz dois blocos, a divisão de acordo com uma estrutura de partição TT produz três blocos. Tipos de partição exemplificativos de acordo com a estrutura de partição TT incluem tipos de partição simétrica (horizontal e vertical), bem como tipos de partição assimétrica (tanto horizontal quanto vertical). Além disso, os tipos de partição simétrica de acordo com a estrutura de partição TT podem ser irregulares/não uniformes ou regulares/uniformes. Os tipos de partição assimétrica de acordo com a estrutura de partição TT são irregulares/não uniformes. Em um exemplo, uma estrutura de partição TT pode incluir pelo menos um dentre os seguintes tipos de partição: árvore ternária simétrica horizontal regular/uniforme, árvore ternária simétrica vertical regular/uniforme, árvore ternária simétrica horizontal irregular/não uniforme, árvore ternária simétrica vertical irregular/não uniforme, árvore ternária assimétrica horizontal irregular/não uniforme, ou tipos de partição de árvore ternária assimétrica vertical irregular/não uniforme.[0207] In MTT, there are two partition types, BT partitioning and ternary tree (TT) partitioning. The partition type can be selected from BT partitioning and TT partitioning. The TT partition structure differs from the QT or BT structures in that the TT partition structure does not split a block at the center. The central region of the block remains together in the same subblock. Unlike QT, which produces four blocks, or binary tree, which produces two blocks, splitting according to a TT partition structure produces three blocks. Exemplary partition types according to the TT partition structure include symmetric partition types (both horizontal and vertical) as well as asymmetric partition types (both horizontal and vertical). Furthermore, symmetric partition types according to the TT partition structure can be irregular/non-uniform or regular/uniform. Asymmetric partition types according to the TT partition structure are irregular/non-uniform. In an example, a TT partition structure may include at least one of the following partition types: regular/uniform horizontal symmetric ternary tree, regular/uniform vertical symmetric ternary tree, irregular/non-uniform horizontal symmetric ternary tree, irregular/non-uniform vertical symmetric ternary tree, irregular/non-uniform horizontal asymmetric ternary tree, or irregular/non-uniform vertical asymmetric ternary tree partition types.

[0208] Em geral, um tipo de partição de árvore ternária simétrica irregular/não uniforme é um tipo de partição que é simétrico em relação a uma linha central do bloco, mas onde pelo menos um dentre os três blocos resultantes não é do mesmo tamanho que o outros dois. Um exemplo preferido é onde os blocos laterais têm 1/4 do tamanho do bloco, e o bloco central tem 1/2 do tamanho do bloco. Um tipo de partição de árvore ternária simétrica regular/uniforme é um tipo de partição que é simétrico em torno de uma linha central do bloco, e os blocos resultantes são todos do mesmo tamanho. Essa partição é possível se a altura ou largura do bloco, dependendo de uma divisão vertical ou horizontal, for um múltiplo de 3. Um tipo de partição de árvore ternária assimétrica irregular/não uniforme é um tipo de partição que não é simétrico em torno de uma linha central do bloco, e onde pelo menos um dentre os blocos resultantes não é do mesmo tamanho que os outros dois.[0208] In general, an irregular/non-uniform symmetric ternary tree partition type is a partition type that is symmetric about a block centerline, but where at least one of the three resulting blocks is not the same size as the other two. A preferred example is where the side blocks are 1/4 the size of the block, and the center block is 1/2 the size of the block. A regular/uniform symmetric ternary tree partition type is a partition type that is symmetric about a block centerline, and the resulting blocks are all the same size. Such a partition is possible if the block height or width, depending on a vertical or horizontal partition, is a multiple of 3. An irregular/non-uniform asymmetric ternary tree partition type is a partition type that is not symmetric about a block centerline, and where at least one of the resulting blocks is not the same size as the other two.

[0209] A Figura 8 é um diagrama conceitual que ilustra tipos de partição de árvore ternária horizontal exemplificativos opcionais. A Figura 9 é um diagrama conceitual que ilustra exemplos opcionais de tipos de partição de árvore ternária vertical. Tanto na Figura 8 quanto na Figura 9, h representa a altura do bloco em amostras de luma ou croma e w representa a largura do bloco em amostras de luma ou croma. Observe-se que a respectiva linha central de um bloco não representa a fronteira do bloco (isto é, as partições de árvore ternária não dividem um bloco através da linha central). Em vez disso, a linha central \ é usada para representar se um tipo de partição particular é ou não simétrico ou assimétrico em relação à linha central do bloco original. A linha central também está ao longo da direção da divisão.[0209] Figure 8 is a conceptual diagram illustrating optional example horizontal ternary tree partition types. Figure 9 is a conceptual diagram illustrating optional examples of vertical ternary tree partition types. In both Figure 8 and Figure 9, h represents the block height in luma or chroma samples, and w represents the block width in luma or chroma samples. Note that the respective centerline of a block does not represent the block boundary (i.e., ternary tree partitions do not split a block along the centerline). Instead, the centerline \ is used to represent whether or not a particular partition type is symmetric or asymmetric about the original block centerline. The centerline is also along the direction of the split.

[0210] Conforme mostrado na Figura 8, o bloco 71 é particionado com um tipo de partição simétrica horizontal regular/uniforme. O tipo de partição simétrica horizontal regular/uniforme produz metades superior e inferior simétricas em relação à linha central do bloco 71. O tipo de partição simétrica horizontal regular/uniforme produz três sub-blocos de tamanho igual, cada um com uma altura de h/3 e uma largura de w. O tipo de partição simétrica horizontal regular/uniforme é possível quando a altura do bloco 71 é divisível uniformemente por 3.[0210] As shown in Figure 8, block 71 is partitioned with a regular/uniform horizontal symmetric partition type. The regular/uniform horizontal symmetric partition type produces upper and lower halves that are symmetric about the centerline of block 71. The regular/uniform horizontal symmetric partition type produces three equally sized sub-blocks, each with a height of h/3 and a width of w. The regular/uniform horizontal symmetric partition type is possible when the height of block 71 is evenly divisible by 3.

[0211] O bloco 73 é particionado com um tipo de partição simétrica horizontal irregular/não uniforme. O tipo de partição simétrica horizontal irregular/não uniforme produz metades superior e inferior simétricas em relação à linha central do bloco 73. O tipo de partição simétrica horizontal irregular/não uniforme produz dois blocos de tamanho igual (por exemplo, os blocos superior e inferior com uma altura de h/4), e um bloco central de um tamanho diferente (por exemplo, um bloco central com uma altura de h/2). Em um exemplo, de acordo com o tipo de partição simétrica horizontal irregular/não uniforme, a área do bloco central é igual às áreas combinadas dos blocos superior e inferior. Em alguns exemplos, o tipo de partição simétrica horizontal irregular/não uniforme pode ser preferido para blocos com uma altura que é uma potência de 2 (por exemplo, 2, 4, 8, 16, 32, etc.).[0211] Block 73 is partitioned with an irregular/non-uniform horizontal symmetric partition type. The irregular/non-uniform horizontal symmetric partition type produces top and bottom halves that are symmetric about the centerline of block 73. The irregular/non-uniform horizontal symmetric partition type produces two blocks of equal size (e.g., top and bottom blocks with a height of h/4), and a center block of a different size (e.g., a center block with a height of h/2). In one example, under the irregular/non-uniform horizontal symmetric partition type, the area of the center block is equal to the combined areas of the top and bottom blocks. In some examples, the irregular/non-uniform horizontal symmetric partition type may be preferred for blocks with a height that is a power of 2 (e.g., 2, 4, 8, 16, 32, etc.).

[0212] O bloco 75 é particionado com um tipo de partição assimétrica horizontal irregular/não uniforme. O tipo de partição assimétrica horizontal irregular/não uniforme não produz uma metade superior e inferior simétricas em relação à linha central do bloco 75 (isto é, as metades superior e inferior são assimétricas). No exemplo da Figura 8, o tipo de partição assimétrica horizontal irregular/não uniforme produz um bloco superior com altura de h/4, um bloco central com altura de 3h/8 e um bloco inferior com altura de 3h/8. Certamente, outras disposições assimétricas podem ser usadas.[0212] Block 75 is partitioned with an irregular/non-uniform horizontal asymmetric partition type. The irregular/non-uniform horizontal asymmetric partition type does not produce a symmetric top and bottom half about the centerline of block 75 (i.e., the top and bottom halves are asymmetric). In the example of Figure 8, the irregular/non-uniform horizontal asymmetric partition type produces a top block with a height of h/4, a center block with a height of 3h/8, and a bottom block with a height of 3h/8. Of course, other asymmetric arrangements may be used.

[0213] Conforme mostrado na Figura 9, o bloco 81 é particionado com um tipo de partição simétrica vertical regular/uniforme. O tipo de partição simétrica vertical regular/uniforme produz metades esquerda e direita simétricas em relação à linha central do bloco 81. O tipo de partição simétrica vertical regular/uniforme produz três sub-blocos de tamanho igual, cada um com uma largura de w/3 e uma altura de h. O tipo de partição simétrica vertical regular/uniforme é possível quando a largura do bloco 81 é uniformemente divisível por 3.[0213] As shown in Figure 9, block 81 is partitioned with a regular/uniform vertical symmetric partition type. The regular/uniform vertical symmetric partition type produces left and right halves that are symmetric about the centerline of block 81. The regular/uniform vertical symmetric partition type produces three equally sized sub-blocks, each with a width of w/3 and a height of h. The regular/uniform vertical symmetric partition type is possible when the width of block 81 is evenly divisible by 3.

[0214] O bloco 83 é particionado com um tipo de partição simétrica vertical irregular/não uniforme. O tipo de partição simétrica vertical irregular/não uniforme produz metades esquerda e direita simétricas em relação à linha central do bloco 83. O tipo de partição simétrica vertical irregular/não uniforme produz metades esquerda e simétricas direita em relação à linha central do bloco 83. O tipo de partição simétrica vertical irregular/não uniforme produz dois blocos de tamanho igual (por exemplo, os blocos esquerdo e direito com uma largura de w/4), e um bloco central de um tamanho diferente (por exemplo, um bloco central com uma largura de w/2). Em um exemplo, de acordo com o tipo de partição simétrica vertical irregular/não uniforme, a área do bloco central é igual às áreas combinadas dos blocos esquerdo e direito. Em alguns exemplos, o tipo de partição simétrica vertical irregular/não uniforme pode ser preferido para blocos tendo uma largura que é uma potência de 2 (por exemplo, 2, 4, 8, 16, 32, etc.).[0214] Block 83 is partitioned with an irregular/non-uniform vertical symmetric partition type. The irregular/non-uniform vertical symmetric partition type produces left and right halves symmetric about the centerline of block 83. The irregular/non-uniform vertical symmetric partition type produces left and right halves symmetric about the centerline of block 83. The irregular/non-uniform vertical symmetric partition type produces two blocks of equal size (e.g., left and right blocks with a width of w/4), and a center block of a different size (e.g., a center block with a width of w/2). In one example, under the irregular/non-uniform vertical symmetric partition type, the area of the center block is equal to the combined areas of the left and right blocks. In some examples, the irregular/non-uniform vertical symmetric partition type may be preferred for blocks having a width that is a power of 2 (e.g., 2, 4, 8, 16, 32, etc.).

[0215] O bloco 85 é particionado com um tipo de partição assimétrica vertical irregular/não uniforme. O tipo de partição assimétrica vertical irregular/não uniforme não produz uma metade esquerda e direita simétrica em relação à linha central do bloco 85 (isto é, as metades esquerda e direita são assimétricas). No exemplo da Figura 9, o tipo de partição assimétrica vertical irregular/não uniforme produz um bloco esquerdo com largura de w/4, um bloco central com largura de 3w/8 e um bloco direito com largura de 3w/8. Certamente, outros arranjos assimétricos podem ser usados.[0215] Block 85 is partitioned with an irregular/non-uniform vertical asymmetric partition type. The irregular/non-uniform vertical asymmetric partition type does not produce a left and right half that is symmetric about the centerline of block 85 (i.e., the left and right halves are asymmetric). In the example of Figure 9, the irregular/non-uniform vertical asymmetric partition type produces a left block with a width of w/4, a center block with a width of 3w/8, and a right block with a width of 3w/8. Of course, other asymmetric arrangements may be used.

[0216] Além dos (ou alternativamente aos) parâmetros para QTBT definidos acima, os seguintes parâmetros são definidos para o esquema de particionamento MTT. - MaxBTSize: o tamanho de nó raiz de árvore binária máximo permitido- MinBtSize: o tamanho de nó raiz de árvore binária mínimo permitido- MaxMttDepth: a profundidade de árvore de múltiplos tipos máxima- Desvio MaxMttDepth: o desvio de profundidade de árvore de múltiplos tipos máxima- MaxTtSize: o tamanho de nó raiz de árvore ternária máximo permitido- MinTtSize: o tamanho de nó raiz de árvore ternária mínimo permitido- MinCbSize: o tamanho de bloco de codificação mínimo permitido[0216] In addition to (or alternatively to) the parameters for QTBT defined above, the following parameters are defined for the MTT partitioning scheme. - MaxBTSize: the maximum allowed binary tree root node size - MinBtSize: the minimum allowed binary tree root node size - MaxMttDepth: the maximum multitype tree depth - MaxMttDepth Offset: the maximum multitype tree depth offset - MaxTtSize: the maximum allowed ternary tree root node size - MinTtSize: the minimum allowed ternary tree root node size - MinCbSize: the minimum allowed coding block size

[0217] As modalidades da revelação podem ser implementadas por um codificador de vídeo ou um decodificador de vídeo, tal como o codificador de vídeo 20 da Figura 2 ou decodificador de vídeo 30 da Figura 3, de acordo com uma modalidade do presente pedido. Um ou mais elementos estruturais do codificador de vídeo 20 ou decodificador de vídeo 30, incluindo unidade de partição, podem ser configurados para realizar as técnicas de modalidades da revelação.[0217] Embodiments of the disclosure may be implemented by a video encoder or a video decoder, such as video encoder 20 of Figure 2 or video decoder 30 of Figure 3, according to an embodiment of the present application. One or more structural elements of video encoder 20 or video decoder 30, including partition unit, may be configured to perform the techniques of embodiments of the disclosure.

[0218] Em modalidades da revelação:Em JVET-K1001-v4, log2_ctu_size_minus2,log2_min_qt_size_intra_slices_minus2 e log2_min_qt_size_inter_slices_minus2 são sinalizados em SPS (como elementos de sintaxe).[0218] In embodiments of the disclosure: In JVET-K1001-v4, log2_ctu_size_minus2, log2_min_qt_size_intra_slices_minus2, and log2_min_qt_size_inter_slices_minus2 are flagged in SPS (as syntax elements).

[0219] O parâmetro log2_ctu_size_minus2 mais 2 especifica o tamanho de bloco de árvore de codificação luma de cada CTU. Em particular:CtbLog2SizeY = log2_ctu_size_minus2 + 2 (7-5)CtbSizeY = 1 << CtbLog2SizeY (7-6)[0219] The parameter log2_ctu_size_minus2 plus 2 specifies the luma coding tree block size of each CTU. In particular:CtbLog2SizeY = log2_ctu_size_minus2 + 2 (7 - 5)CtbSizeY = 1 << CtbLog2SizeY (7 - 6)

[0220] Em outras palavras, CtbLog2SizeY especifica o valor log2 do tamanho CTU CtbSizeY, correspondente ao tamanho de bloco de árvore de codificação (CTB) para luma (Y).[0220] In other words, CtbLog2SizeY specifies the log2 value of the CTU size CtbSizeY, corresponding to the coding tree block (CTB) size for luma (Y).

[0221] Outras configurações são fornecidas como a seguir:MinCbLog2SizeY = 2 (7-7)MinCbSizeY = 1 << MinCbLog2SizeY (7-8)MinTbSizeY = 4 (7-9)MaxTbSizeY = 64 (7-10)[0221] Other settings are provided as follows:MinCbLog2SizeY = 2 (7-7)MinCbSizeY = 1 << MinCbLog2SizeY (7-8)MinTbSizeY = 4 (7-9)MaxTbSizeY = 64 (7-10)

[0222] O parâmetro log2_min_qt_size_intra_slices_minus2 mais 2 especifica o tamanho de luma mínimo de um bloco folha resultante da divisão de árvore quaternária de uma CTU em fatias com slice_type igual a 2 (I), isto é, fatias intra. O valor Log2_min_qt_size_intra_slices_minus2 deve estar na faixa de 0 a CtbLog2SizeY - 2, inclusive.MinQtLog2SizeIntraY = log2_min_qt_size_intra_slices_minus2 + 2 (722)[0222] The log2_min_qt_size_intra_slices_minus2 plus 2 parameter specifies the minimum luma size of a leaf block resulting from quaternary tree division of a CTU into slices with slice_type equal to 2 (I), that is, intra slices. The Log2_min_qt_size_intra_slices_minus2 value must be in the range 0 to CtbLog2SizeY - 2, inclusive. MinQtLog2SizeIntraY = log2_min_qt_size_intra_slices_minus2 + 2 (722)

[0223] O parâmetro log2_min_qt_size_inter_slices_minus2 mais 2 especifica o tamanho de luma mínimo de um bloco folha resultante da divisão de árvore quaternária de uma CTU em fatias com slice_type igual a 0 (B) ou 1 (P), isto é, entre fatias. O valor Log2_min_qt_size_inter_slices_minus2 deve estar na faixa de 0 a CtbLog2SizeY - 2, inclusive.MinQtLog2SizeInterY = log2_min_qt_size_inter_slices_minus2 + 2 (723)[0223] The log2_min_qt_size_inter_slices_minus2 plus 2 parameter specifies the minimum luma size of a leaf block resulting from quaternary tree division of a CTU into slices with slice_type equal to 0 (B) or 1 (P), that is, inter slices. The Log2_min_qt_size_inter_slices_minus2 value must be in the range 0 to CtbLog2SizeY - 2, inclusive. MinQtLog2SizeInterY = log2_min_qt_size_inter_slices_minus2 + 2 (723)

[0224] O MinQtSizeY é definido em (7-30), o que significa o tamanho de divisão de árvore quaternária mínimo permitido em amostra de luma. Se o tamanho do bloco de codificação for menor que ou igual a MinQtSizeY, a divisão de árvore quaternária não é permitida. Outras configurações são fornecidas da seguinte forma:MinQtLog2SizeY = (slice_type = = I)? MinQtLog2SizeIntraY:MinQtLog2SizeInterY (7-25)MaxBtLog2SizeY = CtbLog2SizeY - log2_diff_ctu_max_bt_size (7-26)MinBtLog2SizeY = MinCbLog2SizeY (7-27)MaxTtLog2SizeY = (slice_type = = I)? 5: 6 (7-28)MinTtLog2SizeY = MinCbLog2SizeY (7-29)MinQtSizeY = 1 << MinQtLog2SizeY (7-30)MaxBtSizeY = 1 << MaxBtLog2SizeY (7-31)MinBtSizeY = 1 << MinBtLog2SizeY (7-32)MaxTtSizeY = 1 << MaxTtLog2SizeY (7-33)MinTtSizeY = 1 << MinTtLog2SizeY (7-34)MaxMttDepth = (slice_type = = I)?max_mtt_hierarchy_depth_intra_slices:max_mtt_hierarchy_depth_inter_slices (7-35)[0224] MinQtSizeY is set to (7-30), which means the minimum allowed quaternary tree split size in luma sample. If the coding block size is less than or equal to MinQtSizeY, quaternary tree split is not allowed. Other settings are provided as follows: MinQtLog2SizeY = (slice_type == I) ? MinQtLog2SizeIntraY : MinQtLog2SizeInterY (7-25) MaxBtLog2SizeY = CtbLog2SizeY - log2_diff_ctu_max_bt_size (7-26) MinBtLog2SizeY = MinCbLog2SizeY (7-27) MaxTtLog2SizeY = (slice_type == I) ? 5:6 (7-28)MinTtLog2SizeY = MinCbLog2SizeY (7-29)MinQtSizeY = 1 << MinQtLog2SizeY (7-30)MaxBtSizeY = 1 << MaxBtLog2SizeY (7-31)MinBtSizeY = 1 << MinBtLog2SizeY (7-32)MaxTtSizeY = 1 << MaxTtLog2SizeY (7-33)MinTtSizeY = 1 << MinTtLog2SizeY (7-34)MaxMttDepth = (slice_type = = I)?max_mtt_hierarchy_depth_intra_slices:max_mtt_hierarchy_depth_inter_slices (7-35)

[0225] Os parâmetros max_mtt_hierarchy_depth_intra_slices e max_mtt_hierarchy_depth_inter_slices denotam a profundidade de hierarquia máxima para divisão do tipo MTT para fatias intra e inter, respectivamente.[0225] The max_mtt_hierarchy_depth_intra_slices and max_mtt_hierarchy_depth_inter_slices parameters denote the maximum hierarchy depth for MTT-type slicing for intra and inter slices, respectively.

[0226] Com base na semântica delog2_min_qt_size_intra_slices_minus2 elog2_min_qt_size_inter_slices_minus2, as faixas delog2_min_qt_size_intra_slices_minus2 e log2_min_qt_size_tLoges_minus2 são de 0 a CtbLog2SizeY - 2[0226] Based on the semantics of delog2_min_qt_size_intra_slices_minus2 and log2_min_qt_size_inter_slices_minus2, the ranges of delog2_min_qt_size_intra_slices_minus2 and log2_min_qt_size_tLoges_minus2 are from 0 to CtbLog2SizeY - 2

[0227] Aqui, o CtbLog2SizeY é definido na semântica de log2_ctu_size_minus2, o que significa que o valor log2 do tamanho de bloco de árvore de codificação luma de cada CTU, o CtbLog2SizeY em VTM2.0 é igual a 7.[0227] Here, the CtbLog2SizeY is defined in the semantics of log2_ctu_size_minus2, which means that the log2 value of the luma coding tree block size of each CTU, the CtbLog2SizeY in VTM2.0 is equal to 7.

[0228] Com base em (7-22) e (7-23), a faixa de MinQtLog2SizeIntraY e MinQtLog2SizeInterY é de 2 a CtbLog2SizeY.[0228] Based on (7-22) and (7-23), the range of MinQtLog2SizeIntraY and MinQtLog2SizeInterY is from 2 to CtbLog2SizeY.

[0229] Com base em (7- 25), a faixa de MinQtLog2SizeY é de 2 a CtbLog2SizeY.[0229] Based on (7- 25), the range of MinQtLog2SizeY is from 2 to CtbLog2SizeY.

[0230] Com base em (7 - 30), a faixa de MinQtSizeY, em JVET-K1001- v4, é de (1<< 2) a (1<< CtbLog2SizeY), em VTM2.0 a faixa é de (1 < <2) a (1<< 7), que é igual a de 4 a 128.[0230] Based on (7 - 30), the range of MinQtSizeY, in JVET-K1001- v4, is from (1<< 2) to (1<< CtbLog2SizeY), in VTM2.0 the range is from (1 < <2) to (1<< 7), which is equal to from 4 to 128.

[0231] Em JVET-K1001-v4, log2_diff_ctu_max_bt_size é sinalizado condicionalmente no cabeçalho Fatia.[0231] In JVET-K1001-v4, log2_diff_ctu_max_bt_size is conditionally flagged in the Slice header.

[0232] O parâmetro log2_diff_ctu_max_bt_size especifica a diferença entre o tamanho de CTB de luma e o tamanho de luma máximo (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão binária. O valor Log2_diff_ctu_max_bt_size deve estar na faixa de 0 a CtbLog2SizeY - MinCbLog2SizeY, inclusive.[0232] The log2_diff_ctu_max_bt_size parameter specifies the difference between the luma CTB size and the maximum luma size (width or height) of a coding block that can be divided using binary division. The Log2_diff_ctu_max_bt_size value must be in the range 0 to CtbLog2SizeY - MinCbLog2SizeY, inclusive.

[0233] Quando log2_diff_ctu_max_bt_size não está presente, o valor Log2_diff_ctu_max_bt_size é inferido como sendo igual a 2.[0233] When log2_diff_ctu_max_bt_size is not present, the value Log2_diff_ctu_max_bt_size is inferred to be equal to 2.

[0234] O MinCbLog2SizeY é definido em (7-7), o que significa o tamanho de bloco de codificação mínimo permitido.[0234] The MinCbLog2SizeY is set to (7-7), which means the minimum allowed coding block size.

[0235] Com base na semântica de log2_diff_ctu_max_bt_size, a faixa de log2_diff_ctu_max_bt_size é de 0 a CtbLog2SizeY - MinCbLog2SizeY.[0235] Based on the semantics of log2_diff_ctu_max_bt_size, the range of log2_diff_ctu_max_bt_size is from 0 to CtbLog2SizeY - MinCbLog2SizeY.

[0236] Com base em (7-26), a faixa de MaxBtLog2SizeY é de CtbLog2SizeY a MinCbLog2SizeY[0236] Based on (7-26), the range of MaxBtLog2SizeY is from CtbLog2SizeY to MinCbLog2SizeY

[0237] Com base em (7-31), a faixa de MaxBtSizeY é de (1<< CtbLog2SizeY) a (1<< MinCbLog2SizeY).[0237] Based on (7-31), the range of MaxBtSizeY is from (1<< CtbLog2SizeY) to (1<< MinCbLog2SizeY).

[0238] Com base em (7-7), a faixa de MaxBtSizeY, em JVET-K1001- v4, é de (1<< CtbLog2SizeY) a (1<< 2), como em VTM2.0 CtbLog2SizeY é igual a 7, a faixa de MaxBtSizeY em VTM2.0 é igual a 128 a 4.[0238] Based on (7-7), the range of MaxBtSizeY, in JVET-K1001-v4, is from (1<< CtbLog2SizeY) to (1<< 2), as in VTM2.0 CtbLog2SizeY is equal to 7, the range of MaxBtSizeY in VTM2.0 is equal to 128 to 4.

[0239] Portanto, MinQtSizeY tem a faixa de 4 a (1<< CtbLog2SizeY), em VTM2.0 de 4 a 128, MaxBtSizeY tem a faixa de (1<< CtbLog2SizeY) a 4, em VTM2.0 de 128 a 4.[0239] Therefore, MinQtSizeY has the range from 4 to (1<< CtbLog2SizeY), in VTM2.0 from 4 to 128, MaxBtSizeY has the range from (1<< CtbLog2SizeY) to 4, in VTM2.0 from 128 to 4.

[0240] Consequentemente, há a possibilidade de que MinQtSizeY seja maior que MaxBtSizeY.[0240] Consequently, there is a possibility that MinQtSizeY is greater than MaxBtSizeY.

[0241] Além disso, com base no tratamento de fronteira atual em VVC 2.0, apenas o particionamento de QT e de BT é permitida para blocos localizados em fronteira (TT não permitida, não divisão não permitida).[0241] Furthermore, based on the current boundary treatment in VVC 2.0, only QT and BT partitioning is allowed for blocks located on the boundary (TT not allowed, non-splitting not allowed).

[0242] Se o bloco de codificação atual estiver localizado na fronteira, e o tamanho de bloco de codificação atual cbSizeY cumprir a condição:MinQtSizeY> cbSizeY> MaxBtSizeY,não há divisão de QT nem BT possível para o bloco de codificação atual. Portanto, não há modo de partição disponível para o bloco atual.[0242] If the current coding block is located on the boundary, and the current coding block size cbSizeY satisfies the condition: MinQtSizeY > cbSizeY > MaxBtSizeY, there is no QT nor BT split possible for the current coding block. Therefore, there is no partition mode available for the current block.

MODALIDADE 1MODALITY 1

[0243] A solução (modalidades da invenção) dos problemas mencionados acima, incluindo o problema de caixa de fronteira, são descritos abaixo em mais detalhes.[0243] The solution (embodiments of the invention) of the above-mentioned problems, including the boundary box problem, are described below in more detail.

[0244] De acordo com uma modalidade, para resolver o problema mencionado, a fronteira inferior de MaxBtSizeY deve ser limitada a MinQtSizeY, para garantir que MaxBtSizeY não seja menor que MinQtSizeY. Em particular, o limite inferior de MaxBtSizeY pode ser igual a MinQtSizeY, assim a faixa de MaxBtSizeY deve ser a partir de (1<< CtbLog2SizeY) a (1<< MinQtLog2SizeY), de modo que a faixa de MaxBtLog2SizeY deve ser de CtbLog2SizeY a MinQtLog2SizeY, de modo que a faixa de log2_diff_ctu_max_bt_size deve ser de 0 a CtbLog2SizeY - MinQtLog2SizeY. Assim as informações de MinQtSizeY podem ser usadas para determinar a validade de MaxBtSizeY. Em outras palavras, MaxBtSizeY pode ser determinado com base em informações de MinQtSizeY.[0244] According to an embodiment, to solve the mentioned problem, the lower bound of MaxBtSizeY should be limited to MinQtSizeY, to ensure that MaxBtSizeY is not smaller than MinQtSizeY. In particular, the lower bound of MaxBtSizeY may be equal to MinQtSizeY, so the range of MaxBtSizeY should be from (1<< CtbLog2SizeY) to (1<< MinQtLog2SizeY), so the range of MaxBtLog2SizeY should be from CtbLog2SizeY to MinQtLog2SizeY, so the range of log2_diff_ctu_max_bt_size should be from 0 to CtbLog2SizeY - MinQtLog2SizeY. Thus the information of MinQtSizeY can be used to determine the validity of MaxBtSizeY. In other words, MaxBtSizeY can be determined based on information from MinQtSizeY.

[0245] A mudança correspondente no texto de rascunho (de padrão de vídeo) está na semântica de log2_diff_ctu_max_bt_size da seguinte forma:log2_diff_ctu_max_bt_size especifica a diferença entre o tamanho de CTB de luma e o tamanho máximo de luma (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão binária. O valor Log2_diff_ctu_max_bt_size deve estar na faixa de 0 a CtbLog2SizeY - MinQtLog2SizeY, inclusive.[0245] The corresponding change in the draft (video standard) text is in the semantics of log2_diff_ctu_max_bt_size as follows: log2_diff_ctu_max_bt_size specifies the difference between the luma CTB size and the maximum luma size (width or height) of a coding block that can be divided using binary division. The Log2_diff_ctu_max_bt_size value must be in the range 0 to CtbLog2SizeY - MinQtLog2SizeY, inclusive.

[0246] O método correspondente de codificação implementado por um dispositivo de codificação (decodificador ou codificador) pode ser o seguinte: determinar se o bloco atual de uma imagem é um bloco de fronteira; determinar se o tamanho do bloco atual é maior que um tamanho de nó folha de árvore quaternária mínimo permitido;se o bloco atual é um bloco de fronteira e o tamanho do bloco atual não é maior que o tamanho de nó folha de árvore quaternária mínimo permitido, aplicar divisão binária ao bloco atual; em que o tamanho de nó folha de árvore quaternária mínimo permitido (MinQtSizeY) não é maior que um tamanho de nó raiz de árvore binária máximo permitido (MaxBtSizeY).[0246] The corresponding encoding method implemented by an encoding device (decoder or encoder) may be as follows: determining whether the current block of an image is a boundary block; determining whether the current block size is greater than a minimum allowed quaternary tree leaf node size; if the current block is a boundary block and the current block size is not greater than the minimum allowed quaternary tree leaf node size, applying binary split to the current block; wherein the minimum allowed quaternary tree leaf node size (MinQtSizeY) is not greater than a maximum allowed binary tree root node size (MaxBtSizeY).

[0247] Em que aplicar divisão binária ao bloco atual pode compreender aplicar divisão binária forçada ao bloco atual.[0247] Wherein applying binary split to the current block may comprise applying forced binary split to the current block.

[0248] No presente documento, a codificação corresponde à codificação de imagem, vídeo ou imagem em movimento.[0248] In this document, coding corresponds to the coding of image, video or moving image.

[0249] Ser um bloco de fronteira significa que a fronteira imagem/quadro corta o bloco, ou, em outras palavras, que o bloco está na fronteira imagem/quadro. Na modalidade acima, divisão binária é aplicada ao bloco atual se o bloco atual for um bloco de fronteira (condição 1) e seu tamanho não for maior que o tamanho de nó folha de árvore quaternária mínimo permitido (condição 2). É notado que em algumas modalidades, divisão ternária ou outra divisão pode ser usada em vez da divisão binária. Além disso, em algumas modalidades, a divisão binária pode ser aplicada sob a condição 2 independentemente da condição 1. Em outras palavras, a condição 1 não precisa ser avaliada. Se o tamanho do bloco atual for de fato maior que o tamanho mínimo permitido do nó folha de árvore quaternária (isto é, condição 2 não cumprida), a divisão de árvore quaternária pode ser aplicada.[0249] Being a boundary block means that the image/frame boundary intersects the block, or in other words, that the block is on the image/frame boundary. In the above embodiment, binary split is applied to the current block if the current block is a boundary block (condition 1) and its size is not greater than the minimum allowed quaternary tree leaf node size (condition 2). It is noted that in some embodiments, ternary split or another split may be used instead of binary split. Furthermore, in some embodiments, binary split may be applied under condition 2 independently of condition 1. In other words, condition 1 does not need to be evaluated. If the current block size is indeed greater than the minimum allowed quaternary tree leaf node size (i.e., condition 2 is not met), quaternary tree split may be applied.

[0250] É notado que existem modalidades nas quais a divisão binária é usada apenas para os blocos de fronteira (condição 1). Para blocos que não são de fronteira, a divisão de árvore quaternária pode ser a única divisão usada. Aplicar divisão binária (ou ternária) na fronteira da imagem/quadro fornece uma vantagem de divisão possivelmente mais eficiente, por exemplo, partições binárias/ternárias horizontais na fronteira horizontal e partições binárias/ternárias verticais na fronteira vertical.[0250] It is noted that there are embodiments in which binary splitting is used only for the boundary blocks (condition 1). For non-boundary blocks, quaternary tree splitting may be the only splitting used. Applying binary (or ternary) splitting at the image/frame boundary provides a possibly more efficient splitting advantage, e.g., horizontal binary/ternary partitions at the horizontal boundary and vertical binary/ternary partitions at the vertical boundary.

[0251] Outro método correspondente de codificação implementado por um dispositivo de codificação (decodificador ou codificador) pode ser o seguinte: determinar se o tamanho de um bloco de fronteira é maior que um tamanho de nó folha de árvore quaternária mínimo permitido. Se o tamanho do bloco de fronteira não for maior que o tamanho de nó folha de árvore quaternária mínimo permitido, o tamanho de nó folha de árvore quaternária mínimo permitido não é maior que um tamanho de nó raiz de árvore binária máximo permitido (por exemplo, por especificação padrão) e divisão binária é aplicada a o bloco de fronteira.[0251] Another corresponding encoding method implemented by an encoding device (decoder or encoder) may be as follows: determining whether the size of a boundary block is greater than a minimum allowed quaternary tree leaf node size. If the boundary block size is not greater than the minimum allowed quaternary tree leaf node size, the minimum allowed quaternary tree leaf node size is not greater than a maximum allowed binary tree root node size (e.g., by standard specification), and binary splitting is applied to the boundary block.

[0252] Opcionalmente, o bloco de fronteira pode não compreender bloco de canto. Em outras palavras, o bloco de canto que é cortado tanto pela fronteira vertical quanto pela horizontal da imagem/quadro, não é considerado um bloco de fronteira para o propósito da condição 1 acima mencionada.[0252] Optionally, the boundary block may not comprise a corner block. In other words, the corner block that is cut by both the vertical and horizontal boundaries of the image/frame is not considered a boundary block for the purpose of the above-mentioned condition 1.

MODALIDADE 2MODALITY 2

[0253] Outras modalidades da revelação (combináveis com as modalidades mencionadas acima) são descritas abaixo.[0253] Other embodiments of the disclosure (combinable with the embodiments mentioned above) are described below.

[0254] Em JVET-K1001-v4, max_mtt_hierarchy_depth_inter_slices e max_mtt_hierarchy_depth_intra_slices é sinalizado em SPS. Em outras palavras, max_mtt_hierarchy_depth_inter_slices emax_mtt_hierarchy_depth_intra_slices são elementos de sintaxe, o que significa que seu valor está incluído no fluxo de bits incluindo também a imagem ou vídeo codificado.[0254] In JVET-K1001-v4, max_mtt_hierarchy_depth_inter_slices and max_mtt_hierarchy_depth_intra_slices is flagged in SPS. In other words, max_mtt_hierarchy_depth_inter_slices and max_mtt_hierarchy_depth_intra_slices are syntax elements, meaning that their value is included in the bitstream including also the encoded image or video.

[0255] Em particular, max_mtt_hierarchy_depth_inter_slicesespecifica a profundidade de hierarquia máxima para unidades de codificação resultantes da divisão de árvore de múltiplos tipos de uma folha de árvore quaternária em fatias com slice_type igual a 0 (B) ou 1 (P). O valor demax_mtt_hierarchy_depth_inter_slices deve estar na faixa de 0 a CtbLog2SizeY - MinTbLog2SizeY, inclusive.[0255] In particular, max_mtt_hierarchy_depth_inter_slices specifies the maximum hierarchy depth for coding units resulting from multi-type tree splitting of a quaternary tree leaf into slices with slice_type equal to 0 (B) or 1 (P). The value of max_mtt_hierarchy_depth_inter_slices must be in the range 0 to CtbLog2SizeY - MinTbLog2SizeY, inclusive.

[0256] max_mtt_hierarchy_depth_intra_slices especifica aprofundidade de hierarquia máxima para unidades de codificação resultantes da divisão de árvore de múltiplos tipos de uma folha de árvore quaternária em fatias com slice_type igual a 2 (I). O valor de max_mtt_hierarchy_depth_intra_slices deverá estar na faixa de 0 a CtbLog2SizeY - MinTbLog2SizeY, inclusive.[0256] max_mtt_hierarchy_depth_intra_slices specifies the maximum hierarchy depth for coding units resulting from multi-type tree splitting of a quaternary tree leaf into slices with slice_type equal to 2 (I). The value of max_mtt_hierarchy_depth_intra_slices shall be in the range 0 to CtbLog2SizeY - MinTbLog2SizeY, inclusive.

[0257] MinTbSizeY é definido em (7-9), que é fixado como 4, portanto, MinTbLog2SizeY = log2 MinTbSizeY que é fixado como 2.[0257] MinTbSizeY is defined in (7-9), which is fixed as 4, therefore, MinTbLog2SizeY = log2 MinTbSizeY which is fixed as 2.

[0258] A MaxMttDepth é definida, a qual significa a profundidade máxima permitida de partição de árvore de Múltiplos tipos. Se a profundidade de partição de árvore de múltiplos tipos atual for maior que ou igual a MaxMttDepth, a partição de árvore de Múltiplos tipos não é permitida (aplicada).[0258] MaxMttDepth is set, which means the maximum allowed depth of Multi-type tree partition. If the current Multi-type tree partition depth is greater than or equal to MaxMttDepth, Multi-type tree partition is not allowed (enforced).

[0259] Com base na semântica demax_mtt_hierarchy_depth_inter_slices emax_mtt_hierarchy_depth_intra_slices, a faixa demax_mtt_hierarchy_depth_inter_slices e max_mtt_hierarchy_depth_intra_slices é de 0 a CtbLog2SlogSlize2 - MintraSlices.[0259] Based on the semantics of max_mtt_hierarchy_depth_inter_slices and max_mtt_hierarchy_depth_intra_slices, the range of max_mtt_hierarchy_depth_inter_slices and max_mtt_hierarchy_depth_intra_slices is 0 to CtbLog2SlogSlize2 - MintraSlices.

[0260] Com base em (7-35), a faixa de MaxMttDepth é de 0 a CtbLog2SizeY - MinTbLog2SizeY. Como em VTM2.0 CtbLog2SizeY é igual a 7, a faixa de MaxMttDepth é de 0 a 5.[0260] Based on (7-35), the range of MaxMttDepth is 0 to CtbLog2SizeY - MinTbLog2SizeY. Since in VTM2.0 CtbLog2SizeY is equal to 7, the range of MaxMttDepth is 0 to 5.

[0261] Portanto, MaxMttDepth tem a faixa de 0 a CtbLog2SizeY - MinTbLog2SizeY, em VTM2.0 de 0 a 5[0261] Therefore, MaxMttDepth has the range from 0 to CtbLog2SizeY - MinTbLog2SizeY, in VTM2.0 from 0 to 5

[0262] Com base no tratamento de fronteira atual em VVC 2.0, apenas o particionamento de QT e de BT é permitido para um bloco localizado na fronteira (TT não permitida, não divisão não permitida).[0262] Based on the current boundary treatment in VVC 2.0, only QT and BT partitioning is allowed for a block located on the boundary (TT not allowed, non-splitting not allowed).

[0263] Se o primeiro problema mencionado acima for resolvido (MaxBtSizeY> = MinQtSizeY), ainda assim a seguinte condição será preenchida:cbSizeY <= MinQtSizeYMaxMttDepth = 0[0263] If the first problem mentioned above is solved (MaxBtSizeY >= MinQtSizeY), then the following condition will still be fulfilled: cbSizeY <= MinQtSizeY MaxMttDepth = 0

[0264] Não há níveis suficientes de partições de BT (em geral, qualquer MTT, incluindo TT) para o tratamento de fronteira.[0264] There are not enough levels of BT partitions (generally any MTT, including TT) for boundary treatment.

[0265] Por exemplo, MinQtSizeY é igual a 16, MinTbSizeY é igual a 4, MaxMttDepth é 0.[0265] For example, MinQtSizeY is equal to 16, MinTbSizeY is equal to 4, MaxMttDepth is 0.

[0266] Se um bloco de fronteira com cbSizeY = 16, e a partição pai for QT, e este bloco ainda estiver localizado na fronteira, nenhuma partição adicional pode ser realizada, porque a Mttdepth do bloco atual é atingida MaxMttDepth.[0266] If a boundary block with cbSizeY = 16, and the parent partition is QT, and this block is still located on the boundary, no further partition can be performed, because the Mttdepth of the current block is reached MaxMttDepth.

[0267] Solução (uma Modalidade da Invenção) deste problema de caixa de fronteira: para resolver o problema mencionado, o limite inferior de MaxMttDepth deve ser limitado a 1 (em outras palavras, não pode assumir o valor de zero), para garantir que após o particionamento de QT, haja níveis suficientes de partição de árvore de múltiplos tipos para caixa de fronteira. Ou, mais ainda, a fronteira inferior de MaxMttDepth deve ser limitada a (MinQtLog2SizeY- MinTbLog2SizeY), para garantir que após a partição de QT, haja níveis suficientes de partições de árvore de múltiplos tipos para caixa tanto de fronteira quanto não de fronteira.[0267] Solution (an Embodiment of the Invention) of this boundary box problem: To solve the mentioned problem, the lower bound of MaxMttDepth should be bounded to 1 (in other words, it cannot take the value of zero), to ensure that after QT partitioning, there are enough levels of multi-type tree partition for boundary box. Or, further, the lower bound of MaxMttDepth should be bounded to (MinQtLog2SizeY - MinTbLog2SizeY), to ensure that after QT partitioning, there are enough levels of multi-type tree partitions for both boundary and non-boundary box.

[0268] A mudança correspondente no texto de rascunho (padrão) está na semântica de max_mtt_hierarchy_depth_inter_slices emax_mtt_hierarchy_depth_intra_slices como a seguir:max_mtt_hierarchy_depth_inter_slices especifica a profundidade de hierarquia máxima para unidades de codificação resultantes da divisão de árvore de múltiplos tipos de uma folha de árvore quaternária em fatias com slice_type igual a 0 (B) ou 1 (P). O valor de max_mtt_hierarchy_depth_inter_slices estará na faixa de 1 a CtbLog2SizeY - MinTbLog2SizeY, inclusive.max_mtt_hierarchy_depth_intra_slices especifica a profundidade de hierarquia máxima para unidades de codificação resultantes da divisão de árvore de múltiplos tipos de uma folha de árvore quaternária em fatias com slice_type igual a 2 (I). O valor de max_mtt_hierarchy_depth_intra_slices deve estar na faixa de 1 a CtbLog2SizeY - MinTbLog2SizeY, inclusive.ou,max_mtt_hierarchy_depth_inter_slices especifica a profundidade de hierarquia máxima para unidades de codificação resultantes da divisão de árvore de múltiplos tipos de uma folha de árvore quaternária em fatias com slice_type igual a 0 (B) ou 1 (P). O valor de max_mtt_hierarchy_depth_inter_slices deve estar na faixa de MinQtLog2SizeY- MinTbLog2SizeY a CtbLog2SizeY - MinTbLog2SizeY, inclusive.max_mtt_hierarchy_depth_intra_slices especifica a profundidade de hierarquia máxima para unidades de codificação resultantes da divisão de árvore de múltiplos tipos de uma folha de árvore quaternária em fatias com slice_type igual a 2 (I). O valor de max_mtt_hierarchy_depth_intra_slices deve estar na faixa de MinQtLog2SizeY- MinTbLog2SizeY a CtbLog2SizeY - MinTbLog2SizeY, inclusive.[0268] The corresponding change in the draft (default) text is in the semantics of max_mtt_hierarchy_depth_inter_slices and max_mtt_hierarchy_depth_intra_slices as follows: max_mtt_hierarchy_depth_inter_slices specifies the maximum hierarchy depth for coding units resulting from multi-type tree splitting of a quaternary tree leaf into slices with slice_type equal to 0 (B) or 1 (P). The value of max_mtt_hierarchy_depth_inter_slices will be in the range 1 to CtbLog2SizeY - MinTbLog2SizeY, inclusive. max_mtt_hierarchy_depth_intra_slices specifies the maximum hierarchy depth for coding units resulting from multi-type tree splitting of a quaternary tree leaf into slices with slice_type equal to 2 (I). The value of max_mtt_hierarchy_depth_intra_slices must be in the range 1 to CtbLog2SizeY - MinTbLog2SizeY, inclusive. or, max_mtt_hierarchy_depth_inter_slices specifies the maximum hierarchy depth for coding units resulting from multitype tree splitting of a quaternary tree leaf into slices with slice_type equal to 0 (B) or 1 (P). The value of max_mtt_hierarchy_depth_inter_slices must be in the range MinQtLog2SizeY - MinTbLog2SizeY to CtbLog2SizeY - MinTbLog2SizeY, inclusive. max_mtt_hierarchy_depth_intra_slices specifies the maximum hierarchy depth for coding units resulting from multitype tree splitting of a quaternary tree leaf into slices with slice_type equal to 2 (I). The value of max_mtt_hierarchy_depth_intra_slices must be in the range MinQtLog2SizeY - MinTbLog2SizeY to CtbLog2SizeY - MinTbLog2SizeY, inclusive.

[0269] O método correspondente de codificação implementado por um dispositivo de codificação (decodificador ou codificador) pode ser o seguinte:[0269] The corresponding encoding method implemented by an encoding device (decoder or encoder) may be as follows:

[0270] Divisão de uma imagem em blocos, em que os blocos compreendem um bloco de fronteira; Aplicar divisão binária ao bloco de fronteira com uma profundidade de partição de múltiplos tipos de fronteira máxima, em que a profundidade de partição de múltiplos tipos de fronteira máxima é uma soma de pelo menos uma profundidade de árvore de múltiplos tipos máxima e um desvio de profundidade de árvore de múltiplos tipos máxima, em que a profundidade de árvore de múltiplos tipos máxima é maior que 0. Esta modalidade pode ser combinada com a MODALIDADE 1 ou pode ser aplicada sem a MODALIDADE 1.[0270] Splitting an image into blocks, wherein the blocks comprise a boundary block; Applying binary split to the boundary block with a maximum boundary multi-type partition depth, wherein the maximum boundary multi-type partition depth is a sum of at least a maximum multi-type tree depth and a maximum multi-type tree depth offset, wherein the maximum multi-type tree depth is greater than 0. This embodiment may be combined with EMBODIMENT 1 or may be applied without EMBODIMENT 1.

[0271] Opcionalmente, a profundidade de árvore de múltiplos tipos máxima é maior que 0 ao se aplicar a divisão binária ao bloco de fronteira.[0271] Optionally, the maximum multitype tree depth is greater than 0 when applying binary split to the boundary block.

[0272] Opcionalmente, o bloco de fronteira pode não compreender bloco de canto.[0272] Optionally, the boundary block may not comprise a corner block.

MODALIDADE 3MODALITY 3

[0273] Em outras modalidades da revelação:[0273] In other embodiments of the disclosure:

[0274] Em JVET-K1001-v4, Se MinQtSizeY> MaxBtSizeY e MinQtSizeY> MaxTtSizeY.[0274] In JVET-K1001-v4, If MinQtSizeY > MaxBtSizeY and MinQtSizeY > MaxTtSizeY.

[0275] Se cbSize = MinQtsizeY, a partição não pode atingir o MinCbSizeY (MinTbSizeY e MinCbsizeY são fixos e iguais a 4), porque não há modo de partição possível disponível.[0275] If cbSize = MinQtsizeY, the partition cannot reach MinCbSizeY (MinTbSizeY and MinCbsizeY are fixed and equal to 4), because there is no possible partition mode available.

[0276] Solução deste problema de caixa que não é de fronteira ou caixa de fronteira: para resolver o problema mencionado, o limite inferior de MaxBtSizeY deve ser limitado a MinQtSizeY, para garantir que MaxBtSizeY não é menor que MinQtSizeY. Ou, o limite inferior de MaxTtSizeY deve ser limitado a MinQtSizeY, para garantir que MaxTtSizeY não seja menor que MinQtSizeY.[0276] Solution of this non-boundary box or boundary box problem: To solve the mentioned problem, the lower bound of MaxBtSizeY should be bounded to MinQtSizeY, to ensure that MaxBtSizeY is not less than MinQtSizeY. Or, the lower bound of MaxTtSizeY should be bounded to MinQtSizeY, to ensure that MaxTtSizeY is not less than MinQtSizeY.

[0277] A mudança correspondente no texto do rascunho está na semântica delog2_diff_ctu_max_bt_size especifica a diferença entre o tamanho de CTB de luma e o tamanho máximo de luma (largura ou altura) de um bloco de codificação que pode ser dividido usando uma divisão binária. O valor Log2_diff_ctu_max_bt_size deve estar na faixa de 0 a CtbLog2SizeY - MinQtLog2SizeY, inclusive.[0277] The corresponding change in the draft text is in the semantics of log2_diff_ctu_max_bt_size specifies the difference between the luma CTB size and the maximum luma size (width or height) of a coding block that can be divided using binary division. The Log2_diff_ctu_max_bt_size value must be in the range 0 to CtbLog2SizeY - MinQtLog2SizeY, inclusive.

[0278] E/ou, log2_min_qt_size_intra_slices_minus2 mais 2 especifica o tamanho de luma mínimo de um bloco folha resultante da divisão de árvore quaternária de uma CTU em fatias com slice_type igual a 2 (I). O valor Log2_min_qt_size_intra_slices_minus2 deve estar na faixa de 0 a MaxTtLog2SizeY - 2, inclusive.log2_min_qt_size_inter_slices_minus2 mais 2 especifica o tamanho de luma mínimo de um bloco folha resultante da divisão de árvore quaternária de uma CTU em fatias com slice_type igual a 0 (B) ou 1 (P). O valorLog2_min_qt_size_inter_slices_minus2 deve estar na faixa de 0 a MaxTtLog2SizeY - 2, inclusive.[0278] And/or, log2_min_qt_size_intra_slices_minus2 plus 2 specifies the minimum luma size of a leaf block resulting from quaternary tree splitting of a CTU into slices with slice_type equal to 2 (I). The Log2_min_qt_size_intra_slices_minus2 value must be in the range 0 to MaxTtLog2SizeY - 2, inclusive. log2_min_qt_size_inter_slices_minus2 plus 2 specifies the minimum luma size of a leaf block resulting from quaternary tree splitting of a CTU into slices with slice_type equal to 0 (B) or 1 (P). The Log2_min_qt_size_inter_slices_minus2 value must be in the range 0 to MaxTtLog2SizeY - 2, inclusive.

[0279] O método correspondente de codificação implementado por um dispositivo de codificação (decodificador ou codificador) pode ser o seguinte:[0279] The corresponding encoding method implemented by an encoding device (decoder or encoder) may be as follows:

[0280] Determinar se o tamanho de um bloco atual é maior que um tamanho de nó folha de árvore quaternária mínimo permitido;[0280] Determine whether the size of a current block is greater than a minimum allowed quaternary tree leaf node size;

[0281] Se o tamanho do bloco atual não for maior que o tamanho de nó folha de árvore quaternária mínimo permitido, aplicar divisão de árvore de múltiplos tipos ao bloco atual;[0281] If the current block size is not greater than the minimum allowed quaternary tree leaf node size, apply multi-type tree splitting to the current block;

[0282] Em que o tamanho de nó folha de árvore quaternária mínimo permitido não é maior que um tamanho de nó raiz de árvore binária máximo permitido ou o tamanho de nó folha de árvore quaternária mínimo permitido não é maior que um tamanho de nó raiz de árvore ternária máximo permitido.[0282] Wherein the minimum allowed quaternary tree leaf node size is not greater than a maximum allowed binary tree root node size or the minimum allowed quaternary tree leaf node size is not greater than a maximum allowed ternary tree root node size.

[0283] Opcionalmente, o tamanho de nó folha de árvore quaternária mínimo permitido não é maior que um tamanho de nó raiz de árvore binária máximo permitido e o tamanho de nó folha de árvore quaternária mínimo permitido não é maior que um tamanho de nó raiz de árvore ternária máximo permitido.[0283] Optionally, the minimum allowed quaternary tree leaf node size is no greater than a maximum allowed binary tree root node size, and the minimum allowed quaternary tree leaf node size is no greater than a maximum allowed ternary tree root node size.

[0284] Opcionalmente, a aplicação de divisão de árvore de múltiplos tipos ao bloco atual compreende aplicar divisão ternária ao bloco atual, ou aplicar divisão binária ao bloco atual.[0284] Optionally, applying multi-type tree splitting to the current block comprises applying ternary splitting to the current block, or applying binary splitting to the current block.

[0285] Opcionalmente, o bloco de fronteira pode não compreender o bloco de canto.[0285] Optionally, the boundary block may not comprise the corner block.

MODALIDADE 4MODALITY 4

[0286] Em outras modalidades da revelação:Se MaxBtSizeY> = MinQtSizeY, MinQtSizeY> MinTbLog2SizeY e MaxMttDepth <(MinQtLog2SizeY- MinTbLog2SizeY),Se cbSize = MinQtsizeY, a partição não pode alcançar MinCbSizeY, porque não há níveis suficientes de partição de árvore de múltiplos tipos que são permitidos.[0286] In other embodiments of the disclosure: If MaxBtSizeY >= MinQtSizeY, MinQtSizeY > MinTbLog2SizeY, and MaxMttDepth <(MinQtLog2SizeY - MinTbLog2SizeY), If cbSize = MinQtsizeY, the partition cannot reach MinCbSizeY because there are not enough levels of tree partition of multiple types that are allowed.

[0287] A solução deste problema de caixa que não é de fronteira ou caixa de fronteira: Para resolver o problema mencionado, o limite inferior de MaxMttDepth deve ser limitado a (MinQtLog2SizeY- MinTbLog2SizeY), para garantir que após a partição de QT, existam níveis suficientes de partição de árvore de múltiplos tipos tanto para caixa de fronteira e que não é de fronteira.[0287] The solution of this non-boundary box or boundary box problem: To solve the mentioned problem, the lower bound of MaxMttDepth should be limited to (MinQtLog2SizeY- MinTbLog2SizeY), to ensure that after QT partition, there are enough levels of multi-type tree partition for both boundary box and non-boundary box.

[0288] A mudança correspondente no texto de rascunho está na semântica de max_mtt_hierarchy_depth_inter_slices emax_mtt_hierarchy_depth_intra_slices da seguinte forma:max_mtt_hierarchy_depth_inter_slices especifica a profundidade de hierarquia máxima para unidades de codificação resultantes da divisão de árvore de múltiplos tipos de uma folha de árvore quaternária em fatias com slice_type igual a 0 (B) ou 1 (P). O valor de max_mtt_hierarchy_depth_inter_slices estará na faixa de MinQtLog2SizeY- MinTbLog2SizeY a CtbLog2SizeY - MinTbLog2SizeY, inclusive.max_mtt_hierarchy_depth_intra_slices especifica a profundidade de hierarquia máxima para unidades de codificação resultantes da divisão de árvore de múltiplos tipos de uma folha de árvore quaternária em fatias com slice_type igual a 2 (I). O valor de max_mtt_hierarchy_depth_intra_slices estará na faixa de MinQtLog2SizeY- MinTbLog2SizeY a CtbLog2SizeY - MinTbLog2SizeY, inclusive.[0288] The corresponding change in the draft text is in the semantics of max_mtt_hierarchy_depth_inter_slices and max_mtt_hierarchy_depth_intra_slices as follows: max_mtt_hierarchy_depth_inter_slices specifies the maximum hierarchy depth for coding units resulting from multi-type tree splitting of a quaternary tree leaf into slices with slice_type equal to 0 (B) or 1 (P). The value of max_mtt_hierarchy_depth_inter_slices will be in the range MinQtLog2SizeY - MinTbLog2SizeY to CtbLog2SizeY - MinTbLog2SizeY, inclusive. max_mtt_hierarchy_depth_intra_slices specifies the maximum hierarchy depth for coding units resulting from multi-type tree splitting of a quaternary tree leaf into slices with slice_type equal to 2 (I). The value of max_mtt_hierarchy_depth_intra_slices will be in the range MinQtLog2SizeY - MinTbLog2SizeY to CtbLog2SizeY - MinTbLog2SizeY, inclusive.

[0289] O método correspondente de codificação implementado por um dispositivo de codificação (decodificador ou codificador) pode ser como a seguir:Dividir uma imagem em blocos;Aplicação de divisão de árvore de múltiplos tipos a um bloco dos blocos com uma profundidade de árvore de múltiplos tipos máxima final, em que a profundidade de árvore de múltiplos tipos máxima final é uma soma de pelo menos uma profundidade de árvore de múltiplos tipos máxima e um desvio de profundidade de árvore de múltiplos tipos máxima, em que a profundidade de árvore de múltiplos tipos máxima é maior que ou igual à subtração de valor Log2 de tamanho de bloco de transformada mínimo permitido do valor Log2 de tamanho de nó folha de árvore quaternária mínimo permitido, ou a profundidade de árvore de múltiplos tipos máxima é maior que ou igual à subtração de valor Log2 do tamanho de bloco de codificação mínimo permitido do valor Log2 de tamanho de nó folha de árvore quaternária mínimo permitido.[0289] The corresponding encoding method implemented by an encoding device (decoder or encoder) may be as follows: Dividing an image into blocks; Applying multi-type tree splitting to a block of the blocks with a final maximum multi-type tree depth, wherein the final maximum multi-type tree depth is a sum of at least a maximum multi-type tree depth and a maximum multi-type tree depth offset, wherein the maximum multi-type tree depth is greater than or equal to the minimum allowable transform block size Log2 value subtraction from the minimum allowable quaternary tree leaf node size Log2 value, or the maximum multi-type tree depth is greater than or equal to the minimum allowable coding block size Log2 value subtraction from the minimum allowable quaternary tree leaf node size Log2 value.

[0290] Opcionalmente, o bloco é um bloco que não é de fronteira.[0290] Optionally, the block is a non-boundary block.

[0291] Opcionalmente, o desvio de profundidade de árvore de múltiplos tipos máxima é 0.[0291] Optionally, the maximum multitype tree depth offset is 0.

[0292] Opcionalmente, o bloco é um bloco de fronteira e a divisão de árvore de múltiplos tipos é divisão binária.[0292] Optionally, the block is a boundary block and the multi-type tree split is binary split.

[0293] Opcionalmente, a divisão de árvore de múltiplos tipos é (ou inclui) divisão ternária.[0293] Optionally, the multi-type tree split is (or includes) ternary split.

[0294] Opcionalmente, o bloco de fronteira pode não compreender bloco de canto.[0294] Optionally, the boundary block may not comprise a corner block.

[0295] As modalidades 1 a 4 podem ser aplicadas no lado de codificador para particionar a imagem/quadro em unidades de codificação e para codificar as unidades de codificação. As modalidades 1 a 4 podem ser aplicadas no lado de decodificador para fornecer partições da imagem/quadro, isto é, unidades de codificação e para decodificar as unidades de codificação de acordo (por exemplo, analisar as unidades de codificação corretamente a partir do fluxo e decodificar as mesmas).[0295] Embodiments 1-4 may be applied at the encoder side to partition the picture/frame into coding units and to encode the coding units. Embodiments 1-4 may be applied at the decoder side to provide partitions of the picture/frame, i.e., coding units, and to decode the coding units accordingly (e.g., parse the coding units correctly from the stream and decode them).

[0296] De acordo com algumas modalidades, um decodificador é fornecido, compreendendo um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o decodificador para realizar qualquer um dentre os métodos descritos acima com referência às modalidades 1 a 4.[0296] According to some embodiments, a set-top box is provided, comprising one or more processors; and a non-transitory computer-readable storage medium coupled to the processors and storing programming for execution by the processors, wherein the programming, when executed by the processors, configures the set-top box to perform any of the methods described above with reference to embodiments 1-4.

[0297] Além disso, um codificador é fornecido, compreendendo um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o codificador para realizar qualquer um dentre os métodos descritos acima com referência às modalidades 1 a 4.[0297] Furthermore, an encoder is provided, comprising one or more processors; and a non-transitory computer-readable storage medium coupled to the processors and storing programming for execution by the processors, wherein the programming, when executed by the processors, configures the encoder to perform any of the methods described above with reference to embodiments 1-4.

MODALIDADES ADICIONAIS RELACIONADAS AOPARTICIONAMENTO DE FRONTEIRAADDITIONAL MODALITIES RELATED TO BORDER PARTITIONING

[0298] Em VVC, uma estrutura de segmentação de árvore de múltiplos tipos (binária/ternária/quaternária) (BT/TT/QT ou árvore binária/árvore ternária/árvore quaternária) deve substituir, ou pode substituir, o conceito de múltiplos tipos de unidade de partição, isto é, remove a separação dos conceitos de CU, PU e TU, exceto conforme necessário para CUs que têm um tamanho muito grande para o comprimento de transformada máxima e suporta mais flexibilidade para formatos de partição CU. [J][0298] In VVC, a multiple-type (binary/ternary/quaternary) tree segmentation structure (BT/TT/QT or binary tree/ternary tree/quaternary tree) should replace, or may replace, the concept of multiple partition unit types, i.e., it removes the separation of the concepts of CU, PU, and TU except as needed for CUs that have a size too large for the maximum transform length, and supports more flexibility for CU partition formats. [J]

[0299] As Figuras 10A-F ilustram, como exemplo, os modos de partição atualmente usados em VTM. A Figura 10A mostra um bloco não dividido (sem divisão), a Figura 10Bb mostra particionamento quaternário ou de árvore quaternária (QT), a Figura 10C mostra um particionamento binário horizontal ou de árvore binária (BT), a Figura 10D mostra um particionamento binário vertical ou de árvore binária (BT), a Figura 10E mostra um particionamento ternário horizontal ou de árvore ternária (TT), e a Figura 10F mostra um particionamento ternário vertical ou de árvore ternária (TT) de um bloco tal como uma CU ou CTU. As modalidades podem ser configuradas para implementar os modos de partição como mostrado nas Figuras 10A a 10F.[0299] Figures 10A-F illustrate, by way of example, the partitioning modes currently used in VTM. Figure 10A shows an unpartitioned (splitless) block, Figure 10Bb shows quaternary or quaternary tree (QT) partitioning, Figure 10C shows horizontal binary or binary tree (BT) partitioning, Figure 10D shows vertical binary or binary tree (BT) partitioning, Figure 10E shows horizontal ternary or ternary tree (TT) partitioning, and Figure 10F shows vertical ternary or ternary tree (TT) partitioning of a block such as a CU or CTU. Embodiments may be configured to implement the partitioning modes as shown in Figures 10A-10F.

[0300] Em modalidades os seguintes parâmetros podem ser definidos e especificados por elementos de sintaxe de conjunto de parâmetros de sequência (SPS) para o esquema de árvore de codificação BT/TT/QT:Tamanho de CTU: o tamanho de nó raiz de uma árvore quaternáriaMinQTSize: o tamanho de nó folha de árvore quaternária mínimo permitidoMaxBTTSize: o tamanho de nó raiz de árvore binária e ternária máximo permitidoMaxBTTDepth: a profundidade de árvore binária e ternária máxima permitida, eMinBTTSize: o tamanho de nó folha da árvore binária e ternária mínimo permitido[0300] In embodiments, the following parameters may be defined and specified by sequence parameter set (SPS) syntax elements for the BT/TT/QT coding tree scheme: CTU Size: the root node size of a quaternary tree MinQTSize: the minimum allowed quaternary tree leaf node size MaxBTTSize: the maximum allowed binary and ternary tree root node size MaxBTTDepth: the maximum allowed binary and ternary tree depth, and MinBTTSize: the minimum allowed binary and ternary tree leaf node size

[0301] Em outras modalidades, o parâmetro MinQTSize de tamanho de nó folha de árvore quaternária mínimo também pode estar compreendido em outros cabeçalhos ou conjuntos, por exemplo, o cabeçalho de fatia (SH) ou conjunto de parâmetros de imagem (PPS).[0301] In other embodiments, the minimum quaternary tree leaf node size parameter MinQTSize may also be comprised in other headers or sets, e.g., the slice header (SH) or image parameter set (PPS).

[0302] No padrão HEVC, as unidades de árvore de codificação (CTU) ou unidades de codificação (CU), que estão localizadas nas fronteiras fatia/imagem, serão divididas à força usando árvore quaternária (QT) até a amostra inferior direita do nó folha estar localizado dentro da fronteira da fatia/imagem. A partição ou particionamento de QT forçado não precisa ser sinalizado no fluxo de bits porque tanto o codificador quanto o decodificador, por exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30, sabem quando aplicar QT forçada. O propósito da partição forçada é tornar a fronteira CTU/CU possível por codificador de vídeo 20/decodificador de vídeo 30.[0302] In the HEVC standard, coding tree units (CTU) or coding units (CU), which are located at slice/picture boundaries, will be forcibly split using quaternary tree (QT) until the bottom right sample of the leaf node is located within the slice/picture boundary. The forced QT partition or partitioning does not need to be signaled in the bitstream because both the encoder and the decoder, e.g., video encoder 20 and video decoder 30, know when to apply forced QT. The purpose of the forced partition is to make the CTU/CU boundary possible by video encoder 20/video decoder 30.

[0303] A publicação de patente internacional número WO 2016/090568 revela uma estrutura QTBT (árvore quaternária mais árvore binária), e também em VTM 1.0, o processo de particionamento forçado CTU/CU de fronteira é herdado de HEVC. Isso significa que ao CTU/CU localizada na fronteira do quadro é particionada à força por uma estrutura de árvore quaternária (QT) sem considerar otimização de distorção de taxa (RD) até que todo a CU atual esteja dentro da fronteira de imagem. Essas partições forçadas não são sinalizadas no fluxo de bits.[0303] International patent publication number WO 2016/090568 discloses a QTBT (quaternary tree plus binary tree) structure, and also in VTM 1.0, the boundary CTU/CU forced partitioning process is inherited from HEVC. This means that the CTU/CU located at the frame boundary is forcibly partitioned by a quaternary tree (QT) structure without considering rate distortion (RD) optimization until the entire current CU is within the picture boundary. These forced partitions are not signaled in the bitstream.

[0304] A Figura 11A mostra um exemplo de partição forçada para uma CTU de fronteira inferior de alta definição (HD) (1920x1080 pixels) (128x128) particionada por QT forçada. Na Figura 11, a imagem HD tem ou é de 1920x1080 pixels e a CTU tem ou é de 128x128 pixels.[0304] Figure 11A shows an example of a forced partition for a forced QT-partitioned high definition (HD) (1920x1080 pixels) (128x128) lower boundary CTU. In Figure 11, the HD image is or is 1920x1080 pixels and the CTU is or is 128x128 pixels.

[0305] Em SubCE2 (tratamento de fronteira de imagem) de CE1 (particionamento) na reunião de San Diego (04.2018) [JVET-J1021, 15 testes foram propostos para tratamento de fronteira de imagem usando BT, TT ou ABT (BT assimétrico). Em JVET-K0280 e JVET-K0376, por exemplo, a fronteira é definida como mostrado na Figura 12. A Figura 12 mostra as bordas de uma imagem por linhas ponto-traço e áreas de caixas de fronteira em linhas retas, a saber, uma caixa de fronteira inferior, uma caixa de fronteira de canto e uma caixa de fronteira à direita. Uma fronteira inferior pode ser particionada por BT forçada horizontal ou QT forçada, uma fronteira à direita pode ser particionada por BT forçada vertical ou QT forçada e uma caixa de canto só pode ser dividida por QT forçada, em que a decisão de se usar ou não qualquer um dentre o particionamento de BT forçado ou QT forçado é com base em um critério de otimização de distorção de taxa e é sinalizado no fluxo de bits. Particioanmento forçado significa que o bloco deve ser particionado, por exemplo, particionamento forçado é aplicado a blocos de fronteira que não podem ser codificados usando "não divisão", como mostrado na Figura 10A.[0305] In SubCE2 (Image boundary treatment) of CE1 (Partitioning) at the San Diego meeting (04.2018) [JVET-J1021, 15 tests were proposed for image boundary treatment using BT, TT, or ABT (Asymmetric BT). In JVET-K0280 and JVET-K0376, for example, the boundary is defined as shown in Figure 12. Figure 12 shows the edges of an image by dot-dash lines and areas of boundary boxes in straight lines, namely, a bottom boundary box, a corner boundary box, and a right boundary box. A lower boundary can be partitioned by horizontal forced BT or forced QT, a right boundary can be partitioned by vertical forced BT or forced QT, and a corner box can only be partitioned by forced QT, where the decision to use either forced BT or forced QT partitioning is based on a rate-distortion optimization criterion and is signaled in the bitstream. Forced partitioning means that the block must be partitioned; for example, forced partitioning is applied to boundary blocks that cannot be coded using "no-splitting," as shown in Figure 10A.

[0306] Se a divisão de QT forçada for usada em um particionamento de fronteira forçado, a restrição de particionamento de MinQTSize é ignorada. Por exemplo, na Figura 13A, se o MinQTSize for sinalizado como 32 no SPS, para parear com a fronteira com um método de QT forçada, um QT dividido para um tamanho de bloco 8x8 seria necessário, o que ignora a restrição de MinQTSize sendo 32.[0306] If forced QT splitting is used in a forced frontier partitioning, the MinQTSize partitioning constraint is ignored. For example, in Figure 13A, if the MinQTSize is flagged as 32 in the SPS, to match the frontier with a forced QT method, a QT split to an 8x8 block size would be required, which ignores the constraint of MinQTSize being 32.

[0307] De acordo com modalidades da revelação, se a QT forçada for usada para particionamento de fronteira de imagem, a divisão de QT forçada obedece, por exemplo, não ignora, uma restrição de divisão conforme sinalizada, por exemplo, em um SPS. Se uma divisão forçada adicional for exigida, apenas a BT forçada é usada, que em combinação também pode ser referida como QTBT forçada. Em modalidades da revelação, por exemplo, a restrição de partição MinQTSize é considerada para o particionamento de QT forçado nas fronteiras da imagem e nenhuma sinalização adicional para o particionamento de BT forçado é exigida. As modalidades também permitem harmonizar o particionamento para blocos normais (não de fronteira) e blocos de fronteira. Por exemplo, em soluções convencionais, dois parâmetros “MinQTSize” são exigidos, um para particionamento de bloco normal e outro para particionamento de bloco de fronteira. As modalidades exigem apenas um parâmetro "MinQTSize" comum para ambos, particionamento de bloco normal e de bloco de fronteira, que pode ser definido de forma flexível entre o codificador e o decodificador, por exemplo, sinalizando-se um parâmetro “MinQTSize”. Além disso, as modalidades exigem menos partições do que, por exemplo, QT forçada.[0307] According to embodiments of the disclosure, if forced QT is used for image boundary partitioning, the forced QT split obeys, e.g., does not ignore, a split constraint as signaled, e.g., in an SPS. If an additional forced split is required, only forced BT is used, which in combination may also be referred to as forced QTBT. In embodiments of the disclosure, e.g., the MinQTSize partition constraint is considered for forced QT partitioning at image boundaries, and no additional signaling for forced BT partitioning is required. Embodiments also allow harmonizing partitioning for normal (non-boundary) blocks and boundary blocks. For example, in conventional solutions, two “MinQTSize” parameters are required, one for normal block partitioning and one for boundary block partitioning. Modalities require only a common "MinQTSize" parameter for both normal block and boundary block partitioning, which can be flexibly set between the encoder and decoder, for example, by flagging a "MinQTSize" parameter. Furthermore, Modalities require fewer partitions than, for example, forced QT.

[0308] Soluções para caixa de fronteira inferior e caixa de fronteira à direita[0308] Solutions for bottom bounding box and right bounding box

[0309] Na caixa de fronteira inferior e à direita, se o tamanho do bloco for maior que MinQTSize, então o modo de partição para particionamento de fronteira de imagem pode ser selecionado entre o particionamento de BT forçado e o particionamento de QT forçado, por exemplo, com base em RDO (otimização de distorção de taxa). Caso contrário (isto é, se o tamanho de bloco for igual ou menor que MinQTSize), apenas o particionamento de BT forçado é usado para o particionamento de fronteira de imagem, mais especificamente, BT horizontal forçada é usada para uma fronteira inferior respectivamente para um bloco de fronteira localizado na fronteira inferior de uma imagem, e BT forçada vertical é usada para uma fronteira à direita, respectivamente, para um bloco de fronteira localizado na fronteira à direita de uma imagem.[0309] In the bottom and right boundary case, if the block size is larger than MinQTSize, then the partition mode for image boundary partitioning can be selected between forced BT partitioning and forced QT partitioning, e.g., based on RDO (rate distortion optimization). Otherwise (i.e., if the block size is equal to or smaller than MinQTSize), only forced BT partitioning is used for image boundary partitioning, more specifically, forced horizontal BT is used for a bottom boundary respectively for a boundary block located at the bottom boundary of an image, and forced vertical BT is used for a right boundary respectively for a boundary block located at the right boundary of an image.

[0310] O particionamento de BT forçado pode compreender particionar recursivamente o bloco atual por um particionamento de fronteira forçado horizontal até que uma subpartição do bloco atual esteja localizada na fronteira inferior da imagem e particionar recursivamente a subpartição por um particionamento de fronteira forçado vertical até que um nó folha esteja inteiramente localizado na fronteira à direita da imagem. Alternativamente, o particionamento de BT forçado pode compreender particionar recursivamente o bloco atual por um particionamento de fronteira forçado vertical até que uma subpartição do bloco atual esteja localizada na fronteira inferior e particionar recursivamente a subpartição por um particionamento de fronteira forçado horizontal até um nó folha o nó está inteiramente localizada na fronteira à direita. MinQTSize pode ser aplicado também para controlar o particionamento de um bloco que não é de fronteira.[0310] Enforced BT partitioning may comprise recursively partitioning the current block by a horizontal enforced boundary partitioning until a subpartition of the current block is located at the bottom boundary of the image, and recursively partitioning the subpartition by a vertical enforced boundary partitioning until a leaf node is located entirely at the right boundary of the image. Alternatively, enforced BT partitioning may comprise recursively partitioning the current block by a vertical enforced boundary partitioning until a subpartition of the current block is located at the bottom boundary, and recursively partitioning the subpartition by a horizontal enforced boundary partitioning until a leaf node is located entirely at the right boundary. MinQTSize may also be applied to control the partitioning of a non-boundary block.

[0311] Por exemplo, no caso mostrado na Figura 11A, se o MinQTSize é, ou está limitado, a 32, embora o tamanho de um bloco retangular (não quadrado) de altura ou largura de 8 amostras é necessário para parear com a fronteira da imagem, o particionamento de BT forçado será usada para particionar o bloco localizado na fronteira de 32x32. As partições de BT podem ser adicionalmente particionadas usando particionamento de BT forçado do mesmo tipo, por exemplo, no caso de particionamento de BT vertical forçado ter sido aplicado, somente o particionamento de BT vertical forçado adicional será aplicado e, no caso do particionamento de BT horizontal forçado ter sido aplicado, somente o particionamento de BT horizontal forçada será aplicada. O recorte forçado em porções de BT é continuado até que o nó folha esteja inteiramente dentro da imagem.[0311] For example, in the case shown in Figure 11A, if the MinQTSize is, or is limited to, 32, although the size of a rectangular (non-square) block of height or width 8 samples is required to match the image boundary, forced BT partitioning will be used to partition the block located at the 32x32 boundary. The BT partitions may be further partitioned using forced BT partitioning of the same type, e.g., in case forced vertical BT partitioning has been applied, only further forced vertical BT partitioning will be applied, and in case forced horizontal BT partitioning has been applied, only forced horizontal BT partitioning will be applied. Forced clipping into BT portions is continued until the leaf node is entirely within the image.

[0312] A Figura 11B mostra um o particionamento exemplificativa de uma CTU de fronteira inferior com um tamanho de amostras de 128x128 de acordo com uma modalidade da invenção. A CTU de fronteira inferior, que forma um bloco raiz ou nó raiz de uma árvore de particionamento, é particionada em partições menores, por exemplo, blocos menores de tamanho quadrado ou retangular. Essas partições ou blocos menores podem ser particionados adicionalmente em partições ou blocos ainda menores. Na Figura 11B, a CTU é primeiramente particionada em árvore quaternária em quatro blocos quadrados 710, 720, 730 e 740, cada um com um tamanho de amostras de 64x64. Destes blocos, os blocos 710 e 720 são novamente blocos de fronteira inferior, enquanto que os blocos 730 e 740 estão fora da imagem (estão localizados respectivamente fora da imagem) e não são processados.[0312] Figure 11B shows an exemplary partitioning of a lower frontier CTU with a sample size of 128x128 according to an embodiment of the invention. The lower frontier CTU, which forms a root block or root node of a partitioning tree, is partitioned into smaller partitions, e.g., smaller square or rectangular blocks. These smaller partitions or blocks can be further partitioned into even smaller partitions or blocks. In Figure 11B, the CTU is first quaternary tree partitioned into four square blocks 710, 720, 730, and 740, each with a sample size of 64x64. Of these blocks, blocks 710 and 720 are again lower frontier blocks, while blocks 730 and 740 are out-of-picture (are respectively located outside the picture) and are not processed.

[0313] O bloco 710 é adicionalmente particionado usando particionamento de árvore quaternária em quatro blocos quadrados 750, 760, 770 e 780, cada um tendo um tamanho de amostras de 32x32. Os blocos 750 e 760 estão localizados dentro da imagem, enquanto que os blocos 770 e 780 novamente formam blocos de fronteira inferior. Como o tamanho do bloco 770 não é maior que MinQTSize, que é por exemplo 32, particionamento binário forçado horizontal recursivo é aplicado ao bloco 770 até que um nó folha esteja inteiramente dentro ou localizado inteiramente dentro da imagem, por exemplo, até um bloco de nó folha 772, um bloco não quadrado retangular tendo amostras de 32x16 está dentro da imagem (após um o particionamento binário horizontal), ou bloco de nó folha 774, um bloco não quadrado retangular localizado na fronteira inferior da imagem e tendo amostras de 32x8 está dentro da imagem (após dois particionamentos binários horizontais). O mesmo se aplica ao bloco 780.[0313] Block 710 is further partitioned using quaternary tree partitioning into four square blocks 750, 760, 770, and 780, each having a sample size of 32x32. Blocks 750 and 760 are located within the image, while blocks 770 and 780 again form lower boundary blocks. Since the size of block 770 is not larger than MinQTSize, which is for example 32, recursive horizontal forced binary partitioning is applied to block 770 until a leaf node is entirely within or located entirely within the image, for example, until at leaf node block 772, a rectangular non-square block having 32x16 samples is within the image (after one horizontal binary partitioning), or at leaf node block 774, a rectangular non-square block located at the lower border of the image and having 32x8 samples is within the image (after two horizontal binary partitionings). The same applies to block 780.

[0314] As modalidades da revelação permitem harmonizar o particionamento para blocos normais localizados completamente dentro da imagem e o particionamento de blocos de fronteira. Blocos de fronteira são blocos que não estão completamente dentro da imagem e nem completamente fora da imagem. Em outras palavras, blocos de fronteira são blocos que compreendem uma parte que está localizada dentro da imagem e uma parte que está localizada fora da imagem. Além disso, modalidades da revelação permitem reduzir a sinalização uma vez que o particionamento de BT forçado em MinQTSize ou abaixo dele não precisa ser sinalizada.[0314] Embodiments of the disclosure allow for harmonizing partitioning for normal blocks located completely within the image and partitioning for boundary blocks. Boundary blocks are blocks that are neither completely within the image nor completely outside the image. In other words, boundary blocks are blocks that comprise a portion that is located within the image and a portion that is located outside the image. Furthermore, embodiments of the disclosure allow for reduced flagging since forced BT partitioning at or below MinQTSize does not need to be flagged.

[0315] Soluções para caixa de canto[0315] Corner box solutions

[0316] Na caixa de canto, algumas abordagens permitem apenas uma divisão de QT forçada, que também ignora a restrição de MinQTSize. As modalidades da revelação fornecem duas soluções para a caixa de canto. Uma caixa de canto ocorre quando o bloco processado atualmente está no canto da imagem. Este é o caso se o bloco atual for cruzado por ou estiver adjacente a duas fronteiras de imagem (vertical e horizontal).[0316] In corner boxing, some approaches only allow a forced QT split, which also ignores the MinQTSize constraint. Embodiments of the present invention provide two solutions for corner boxing. A corner boxing occurs when the currently processed block is in the corner of the image. This is the case if the current block is crossed by or is adjacent to two image boundaries (vertical and horizontal).

[0317] Solução 1:[0317] Solution 1:

[0318] A caixa de canto é considerada como uma caixa de fronteira inferior ou uma caixa de fronteira à direita. A Figura 14 mostra uma modalidade de uma definição de fronteira. A Figura 14 mostra os limites de uma imagem por linhas ponto-traço e áreas de caixas de fronteira em linhas retas. Conforme mostrado, a caixa de canto é definida como uma caixa de fronteira inferior. Assim, a solução é a mesma descrita para a caixa de fronteira inferior e caixa de fronteira à direita acima. Em outras palavras, primeiro um particionamento horizontal é aplicado (conforme descrito para a caixa de fronteira inferior) até que os blocos ou partições estejam inteiramente dentro da imagem (na direção vertical) e, em seguida, um particionamento vertical é aplicado (conforme descrito para a caixa de fronteira à direita) até que os nós folhas estejam inteiramente dentro da imagem (na direção horizontal). Caixa de fronteira também pode ser bloco de fronteira.[0318] The corner box is considered as a bottom boundary box or a right boundary box. Figure 14 shows one embodiment of a boundary definition. Figure 14 shows the boundaries of an image by dot-dash lines and areas of boundary boxes in straight lines. As shown, the corner box is defined as a bottom boundary box. Thus, the solution is the same as described for the bottom boundary box and right boundary box above. In other words, first a horizontal partitioning is applied (as described for the bottom boundary box) until the blocks or partitions are entirely within the image (in the vertical direction), and then a vertical partitioning is applied (as described for the right boundary box) until the leaf nodes are entirely within the image (in the horizontal direction). A boundary box can also be a block boundary.

[0319] Solução 2:[0319] Solution 2:

[0320] A definição das caixas de fronteira ainda é mantida como está. Se a QT forçada for restrita por MinQTSize (tamanho de bloco atual igual ou menor que MinQTSize), usar BT forçada horizontal para parear com a fronteira inferior, quando a fronteira inferior parear, usar BT forçada vertical para parear com a fronteira à direita.[0320] The definition of the boundary boxes is still kept as is. If forced QT is constrained by MinQTSize (current block size equal or smaller than MinQTSize), use horizontal forced BT to match the bottom boundary, when the bottom boundary matches, use vertical forced BT to match the right boundary.

[0321] Por exemplo, na Figura 13A, que mostra uma modalidade de uma QTBT forçada para um bloco localizado em um canto de uma imagem, se MinQTSize for, ou for limitado a 32, para a partição de QT forçada de caixa de canto, outra partição de BT será usada após a partição do bloco de 32x32 até que a partição forçada seja terminada.[0321] For example, in Figure 13A, which shows an embodiment of a forced QTBT for a block located in a corner of an image, if MinQTSize is, or is limited to, 32 for the corner box forced QTBT partition, another BT partition will be used after the 32x32 block partition until the forced partition is finished.

[0322] A Figura 13B mostra detalhes adicionais de um particionamento exemplificativo de uma CTU de fronteira a ou em um canto de uma imagem de acordo com uma modalidade da invenção, em que a CTU tem um tamanho de amostras de 128x128. A CTU é primeiramente particionada em árvore quaternária em quatro blocos quadrados, cada um tendo um tamanho de amostras de 64x64. Destes blocos, apenas o bloco superior esquerdo 910 é um bloco de fronteira, enquanto os outros três estão localizados fora (totalmente fora) da imagem e não são processados posteriormente. O bloco 910 é adicionalmente particionado usando particionamento de árvore quaternária em quatro blocos quadrados 920, 930, 940 e 950, cada um tendo um tamanho de amostras de 32x32. O bloco 920 está localizado dentro da imagem, enquanto os blocos 930, 940 e 950 novamente formam blocos de fronteira. Como o tamanho desses blocos 930, 940 e 950 não é maior que MinQTSize, que é 32,particionamento binário forçado é aplicada aos blocos 930, 940 e 950.[0322] Figure 13B shows additional details of an exemplary partitioning of a boundary CTU at or in a corner of an image according to an embodiment of the invention, wherein the CTU has a sample size of 128x128. The CTU is first quaternary tree partitioned into four square blocks, each having a sample size of 64x64. Of these blocks, only the top left block 910 is a boundary block, while the other three are located outside (entirely outside) the image and are not processed further. Block 910 is further partitioned using quaternary tree partitioning into four square blocks 920, 930, 940, and 950, each having a sample size of 32x32. Block 920 is located inside the image, while blocks 930, 940, and 950 again form boundary blocks. Since the size of these blocks 930, 940 and 950 is not greater than MinQTSize, which is 32, forced binary partitioning is applied to blocks 930, 940 and 950.

[0323] O bloco 930 está localizado em uma fronteira à direita e é particionado usando particionamento binário forçado vertical recursivo até que um nó folha esteja dentro da imagem, por exemplo, bloco 932 localizado na fronteira à direita da imagem (doravante dois particionamentos binários verticais).[0323] Block 930 is located on a right-hand boundary and is partitioned using recursive vertical forced binary partitioning until a leaf node is within the image, e.g., block 932 located on the right-hand boundary of the image (hereinafter two vertical binary partitionings).

[0324] O bloco 940 está localizado em uma fronteira inferior e é particionado usando particionamento binário forçado horizontal recursivo até que um nó folha esteja dentro da imagem, por exemplo, bloco 942 localizado na fronteira à direita da imagem (doravante dois particionamentos binários horizontais).[0324] Block 940 is located at a lower boundary and is partitioned using recursive horizontal forced binary partitioning until a leaf node is within the image, e.g., block 942 located at the right boundary of the image (hereinafter two horizontal binary partitionings).

[0325] O bloco 950 está localizado em uma fronteira de canto e é particionado usando o primeiro particionamento binário forçado horizontal recursivo até que uma subpartição ou bloco, aqui bloco 952, esteja localizado em uma fronteira inferior da imagem (doravante dois particionamentos binários horizontais) e então o particionamento recursivo da subpartição por um particionamento de fronteira forçado vertical até um nó folha ou bloco, por exemplo, bloco 954, está localizada na fronteira à direita da imagem (doravante dois particionamentos binários verticais), ou respectivamente, até que um nó folha esteja localizado dentro da imagem.[0325] Block 950 is located at a corner boundary and is partitioned using first recursive horizontal forced binary partitioning until a subpartition or block, here block 952, is located at a lower boundary of the image (hereinafter two horizontal binary partitionings) and then recursive partitioning of the subpartition by a vertical forced boundary partitioning until a leaf node or block, e.g., block 954, is located at the right boundary of the image (hereinafter two vertical binary partitionings), or respectively, until a leaf node is located within the image.

[0326] As abordagens acima podem ser aplicadas tanto à decodificação quanto à codificação. Para decodificação, MinQTSize pode ser recebido por meio de um SPS. Para codificação, MinQTSize pode ser transmitido por meio de um SPS. As modalidades podem usar definições de fronteira como mostradas na Figura 12 ou na Figura 14, ou outras definições de fronteira.[0326] The above approaches may be applied to both decoding and encoding. For decoding, MinQTSize may be received via an SPS. For encoding, MinQTSize may be transmitted via an SPS. Embodiments may use boundary definitions as shown in Figure 12 or Figure 14, or other boundary definitions.

[0327] Outras modalidades da presente revelação são fornecidas a seguir. Deve-se notar que a numeração usada na seção a seguir não precisa necessariamente estar de acordo com a numeração usada nas seções anteriores.[0327] Other embodiments of the present disclosure are provided below. It should be noted that the numbering used in the following section does not necessarily need to agree with the numbering used in the previous sections.

[0328] Modalidade 1: Um método de particionamento quecompreende:determinar se o bloco atual de uma imagem é um bloco de fronteira;se o bloco atual for um bloco de fronteira, determinar se o tamanho do bloco atual é maior que um tamanho de nó folha de árvore quaternária mínimo permitido;se o tamanho do bloco atual não for maior que o tamanho de nó folha de árvore quaternária mínimo permitido, aplicar particionamento de árvore binária forçada ao bloco atual.[0328] Embodiment 1: A partitioning method comprising: determining whether the current block of an image is a boundary block; if the current block is a boundary block, determining whether the size of the current block is greater than a minimum allowable quaternary tree leaf node size; if the size of the current block is not greater than the minimum allowable quaternary tree leaf node size, applying forced binary tree partitioning to the current block.

[0329] Modalidade 2: O método de particionamento da modalidade 1, em que o particionamento de árvore binária forçado é um particionamento binário forçado horizontal recursivo no caso do bloco atual estar localizado em uma fronteira inferior da imagem, ou é um particionamento de fronteira forçado vertical recursivo caso o bloco atual esteja localizado em uma fronteira à direita da imagem.[0329] Embodiment 2: The partitioning method of embodiment 1, wherein the forced binary tree partitioning is a recursive horizontal forced binary tree partitioning in case the current block is located at a lower boundary of the image, or is a recursive vertical forced boundary partitioning in case the current block is located at a right boundary of the image.

[0330] Modalidade 3: O método de particionamento da modalidade 1 ou 2, em que o particionamento binário forçado compreende particionar recursivamente o bloco atual por um particionamento de fronteira forçado horizontal até que uma subpartição do bloco atual esteja localizada diretamente na fronteira inferior da imagem, e particionar recursivamente a subpartição por um particionamento de fronteira forçado vertical até que um nó folha esteja inteiramente localizado diretamente na fronteira à direita da imagem, ou vice- versa.[0330] Embodiment 3: The partitioning method of embodiment 1 or 2, wherein the forced binary partitioning comprises recursively partitioning the current block by a horizontal forced boundary partitioning until a subpartition of the current block is located directly on the bottom boundary of the image, and recursively partitioning the subpartition by a vertical forced boundary partitioning until a leaf node is entirely located directly on the right boundary of the image, or vice versa.

[0331] Modalidade 4: O método de particionamento de qualquer uma dentre as modalidades 1 a 3, em que o tamanho de nó folha de árvore quaternária mínimo permitido é um tamanho de nó folha de árvore quaternária mínimo permitido também aplicado para controlar o particionamento de um bloco que não está na fronteira.[0331] Embodiment 4: The partitioning method of any one of embodiments 1 to 3, wherein the minimum allowed quaternary tree leaf node size is a minimum allowed quaternary tree leaf node size also applied to control the partitioning of a block that is not on the boundary.

[0332] Modalidade 5: Um método de decodificação para decodificar um bloco particionando o bloco de acordo com o método de corte em porções de qualquer uma dentre as modalidades 1 a 4.[0332] Embodiment 5: A decoding method for decoding a block by partitioning the block according to the slicing method of any one of Embodiments 1 to 4.

[0333] Modalidade 6: O método de decodificação da modalidade 5, em que o tamanho de nó folha de árvore quaternária mínimo permitido é recebido por meio de um SPS.[0333] Embodiment 6: The decoding method of embodiment 5, wherein the minimum allowed quaternary tree leaf node size is received via an SPS.

[0334] Modalidade 7: Um método de codificação para codificar um bloco particionando-se o bloco de acordo com o método de corte em porções de qualquer uma dentre as modalidades 1 a 4.[0334] Embodiment 7: An encoding method for encoding a block by partitioning the block according to the slicing method of any one of embodiments 1 to 4.

[0335] Modalidade 8: O método de codificação da modalidade 7, em que o tamanho de nó folha de árvore quaternária mínimo permitido é transmitido por meio de um SPS.[0335] Embodiment 8: The coding method of embodiment 7, wherein the minimum allowable quaternary tree leaf node size is transmitted via an SPS.

[0336] Modalidade 9: Um dispositivo de decodificação,compreendendo conjunto de circuitos lógicos configurado para realizar qualquer um dentre os métodos da modalidade 5 ou 6.[0336] Embodiment 9: A decoding device, comprising a logic circuitry configured to perform any of the methods of embodiment 5 or 6.

[0337] Modalidade 10: Um dispositivo de codificação,compreendendo conjunto de circuitos lógicos configurado para realizar qualquer um dentre os métodos da modalidade 7 ou 8.[0337] Embodiment 10: An encoding device, comprising a logic circuitry configured to perform any of the methods of embodiment 7 or 8.

[0338] Modalidade 11: Uma mídia de armazenamento não transitória para armazenar instruções quando executadas por um processador faz com que o processador realize qualquer um dentre os métodos de acordo com as modalidades 1 a 8.[0338] Embodiment 11: A non-transitory storage medium for storing instructions when executed by a processor causes the processor to perform any of the methods according to embodiments 1-8.

[0339] Um aparelho compreende um elemento de memória; e um elemento processador acoplado ao elemento de memória e configurado para determinar se um bloco atual de uma imagem é um bloco de fronteira, determinar, quando o bloco atual é um bloco de fronteira, se um tamanho do bloco atual é maior que um tamanho de nó folha de árvore quaternária (QT) mínimo permitido (MinQTSize) e aplicar, quando o tamanho do bloco atual não for maior que MinQTSize, particionamento forçado de árvore binária (BT) ao bloco atual.[0339] An apparatus comprises a memory element; and a processor element coupled to the memory element and configured to determine whether a current block of an image is a boundary block, determine, when the current block is a boundary block, whether a size of the current block is greater than a minimum allowed quaternary tree (QT) leaf node size (MinQTSize), and apply, when the current block size is not greater than MinQTSize, forced binary tree (BT) partitioning to the current block.

[0340] Em resumo, as modalidades do presente pedido (ou da presente revelação) fornecem aparelhos e métodos para codificação e decodificação.[0340] In summary, embodiments of the present application (or the present disclosure) provide apparatus and methods for encoding and decoding.

[0341] Um primeiro aspecto se relaciona a um método departicionamento que compreende determinar se um bloco atual de uma imagem é um bloco de fronteira e se o tamanho do bloco atual é maior que um tamanho de nó folha de árvore quaternária mínimo permitido; e se o bloco atual é o bloco de fronteira e o tamanho do bloco atual não é maior que o tamanho de nó folha de árvore quaternária mínimo permitido (MinQTSize), aplicando o particionamento de árvore binária (BT) forçada ao bloco atual.[0341] A first aspect relates to a partitioning method comprising determining whether a current block of an image is a boundary block and whether the current block size is greater than a minimum allowed quaternary tree leaf node size; and if the current block is the boundary block and the current block size is not greater than the minimum allowed quaternary tree leaf node size (MinQTSize), applying forced binary tree (BT) partitioning to the current block.

[0342] Em uma primeira forma de implementação do método de acordo com o primeiro aspecto propriamente dito, o particionamento de árvore binária forçado é um particionamento binário forçado horizontal recursivo no caso do bloco atual estar localizado em uma fronteira inferior da imagem ou um particionamento de fronteira forçado vertical recursivo caso o bloco atual esteja localizado em uma fronteira à direita da imagem.[0342] In a first form of implementation of the method according to the first aspect itself, the forced binary tree partitioning is a recursive horizontal forced binary tree partitioning in case the current block is located at a lower boundary of the image or a recursive vertical forced boundary partitioning in case the current block is located at a right boundary of the image.

[0343] Em uma segunda forma de implementação do método de acordo com o primeiro aspecto propriamente dito ou qualquer forma de implementação anterior do primeiro aspecto, o particionamento de árvore binária forçado é continuado até que um bloco de nó folha esteja dentro da imagem.[0343] In a second form of implementation of the method according to the first aspect itself or any prior form of implementation of the first aspect, the forced binary tree partitioning is continued until a leaf node block is within the image.

[0344] Em uma terceira forma de implementação do método de acordo com o primeiro aspecto propriamente dito ou qualquer forma de implementação anterior do primeiro aspecto, o particionamento binário forçado compreende particionar recursivamente o bloco atual por um particionamento de fronteira forçado horizontal até uma subpartição do bloco atual está localizado na fronteira inferior da imagem; e particionar recursivamente a subpartição por um particionamento de fronteira forçado vertical até que um nó folha esteja inteiramente localizado na fronteira à direita da imagem.[0344] In a third form of implementation of the method according to the first aspect itself or any prior form of implementation of the first aspect, the forced binary partitioning comprises recursively partitioning the current block by a horizontal forced boundary partitioning until a subpartition of the current block is located at the bottom boundary of the image; and recursively partitioning the subpartition by a vertical forced boundary partitioning until a leaf node is located entirely at the right boundary of the image.

[0345] Em uma quarta forma de implementação do método de acordo com o primeiro aspecto propriamente dito ou qualquer forma de implementação anterior do primeiro aspecto, o particionamento de BT forçado compreende particionar recursivamente o bloco atual por um particionamento de fronteira forçado vertical até que uma subpartição do bloco atual esteja localizada na fronteira inferior; e particionar recursivamente a subpartição por um particionamento de fronteira horizontal forçado até que um nó folha esteja inteiramente localizado na fronteira à direita.[0345] In a fourth form of implementation of the method according to the first aspect itself or any prior form of implementation of the first aspect, the forced BT partitioning comprises recursively partitioning the current block by a vertical forced boundary partitioning until a subpartition of the current block is located at the bottom boundary; and recursively partitioning the subpartition by a horizontal forced boundary partitioning until a leaf node is located entirely at the right boundary.

[0346] Em uma quinta forma de implementação do método de acordo com o primeiro aspecto propriamente dito ou qualquer forma de implementação anterior do primeiro aspecto, o método compreende adicionalmente aplicar o tamanho de nó folha de árvore quaternária mínimo permitido para controlar um particionamento de um bloco que não é de fronteira.[0346] In a fifth implementation form of the method according to the first aspect itself or any prior implementation form of the first aspect, the method further comprises applying the minimum allowable quaternary tree leaf node size to control a partitioning of a non-boundary block.

[0347] Em uma sexta forma de implementação do método de acordo com o primeiro aspecto propriamente dito ou qualquer forma de implementação anterior do primeiro aspecto, o bloco de fronteira é um bloco que não está completamente dentro da imagem e não está completamente fora da imagem.[0347] In a sixth form of implementation of the method according to the first aspect itself or any prior form of implementation of the first aspect, the boundary block is a block that is not completely within the image and is not completely outside the image.

[0348] Um segundo aspecto se relaciona a um método de decodificação para decodificar um bloco particionando-se o bloco de acordo com o primeiro aspecto propriamente dito ou qualquer forma de implementação anterior do primeiro aspecto.[0348] A second aspect relates to a decoding method for decoding a block by partitioning the block according to the first aspect itself or any prior implementation of the first aspect.

[0349] Em uma primeira forma de implementação do método de acordo com o segundo aspecto propriamente dito, o método compreende adicionalmente receber o tamanho de nó folha de árvore quaternária mínimo permitido por meio de um conjunto de parâmetros de sequência (SPS).[0349] In a first form of implementation of the method according to the second aspect itself, the method further comprises receiving the minimum allowed quaternary tree leaf node size by means of a set of sequence parameters (SPS).

[0350] Um terceiro aspecto se relaciona a um método de codificação para codificar um bloco particionando o bloco de acordo com o primeiro aspecto propriamente dito ou qualquer forma de implementação anterior do primeiro aspecto.[0350] A third aspect relates to an encoding method for encoding a block by partitioning the block according to the first aspect itself or any prior implementation of the first aspect.

[0351] Em uma primeira forma de implementação do método de acordo com o terceiro aspecto propriamente dito, o método compreende adicionalmente transmitir o tamanho de nó folha de árvore quaternária mínimo permitido por meio de um conjunto de parâmetros de sequência (SPS).[0351] In a first form of implementation of the method according to the third aspect itself, the method further comprises transmitting the minimum allowed quaternary tree leaf node size via a set of sequence parameters (SPS).

[0352] Um quarto aspecto se relaciona a um dispositivo de decodificação que compreende conjunto de circuitos lógicos configurado para decodificar um bloco particionando-se o bloco de acordo com o método de particionamento do primeiro aspecto propriamente dito ou qualquer forma de implementação anterior do primeiro aspecto.[0352] A fourth aspect relates to a decoding device comprising logic circuitry configured to decode a block by partitioning the block according to the partitioning method of the first aspect itself or any prior implementation of the first aspect.

[0353] Em uma primeira forma de implementação do dispositivo de decodificação de acordo com o quarto aspecto propriamente dito, conjunto de circuitos lógicos é adicionalmente configurado para receber o tamanho de nó folha de árvore quaternária mínimo permitido por meio de um conjunto de parâmetros de sequência (SPS).[0353] In a first form of implementation of the decoding device according to the fourth aspect itself, the logic circuitry is further configured to receive the minimum allowed quaternary tree leaf node size via a sequence parameter set (SPS).

[0354] Um quinto aspecto se relaciona a um dispositivo de codificação que compreende conjunto de circuitos lógicos configurado para codificar um bloco particionando-se o bloco de acordo com o método de particionamento do primeiro aspecto propriamente dito ou qualquer forma de implementação anterior do primeiro aspecto.[0354] A fifth aspect relates to an encoding device comprising logic circuitry configured to encode a block by partitioning the block according to the partitioning method of the first aspect itself or any prior implementation of the first aspect.

[0355] Em uma primeira forma de implementação do dispositivo de decodificação de acordo com o quinto aspecto propriamente dito, conjunto de circuitos lógicos é adicionalmente configurado para transmitir o tamanho de nó folha de árvore quaternária mínimo permitido por meio de um conjunto de parâmetros de sequência (SPS).[0355] In a first form of implementation of the decoding device according to the fifth aspect itself, the logic circuitry is further configured to transmit the minimum allowable quaternary tree leaf node size via a sequence parameter set (SPS).

[0356] Um sexto aspecto refere-se a uma mídia de armazenamento não transitória para armazenar instruções que quando executadas por um processador fazem com que um processador realize qualquer um dentre o primeiro, segundo ou terceiro aspecto propriamente dito ou qualquer forma de implementação anterior do primeiro, segundo, ou terceiro aspecto.[0356] A sixth aspect relates to a non-transitory storage medium for storing instructions that when executed by a processor cause a processor to perform any of the first, second, or third aspect itself or any prior form of implementation of the first, second, or third aspect.

[0357] Um sétimo aspecto se relaciona a um método que compreende fazer uma determinação de que um bloco atual de uma imagem é um bloco de fronteira e que um tamanho do bloco atual é menor que ou igual a um tamanho de nó folha de árvore quaternária (QT) mínimo permitido (MinQTSize); e aplicar, em resposta à determinação, particionamento de árvore binária (BT) forçado ao bloco atual.[0357] A seventh aspect relates to a method comprising making a determination that a current block of an image is a boundary block and that a size of the current block is less than or equal to a minimum allowed quaternary tree (QT) leaf node size (MinQTSize); and applying, in response to the determination, forced binary tree (BT) partitioning to the current block.

[0358] Em uma primeira forma de implementação do método de acordo com o sétimo aspecto propriamente dito, o bloco atual está localizado em uma fronteira inferior da imagem, e em que o particionamento de BT forçado é um particionamento de BT forçado horizontal recursivo.[0358] In a first form of implementation of the method according to the seventh aspect itself, the current block is located at a lower boundary of the image, and wherein the forced BT partitioning is a recursive horizontal forced BT partitioning.

[0359] Em uma segunda forma de implementação do método de acordo com o sétimo aspecto propriamente dito ou qualquer forma de implementação anterior do sétimo aspecto, o bloco atual está localizado em uma fronteira à direita da imagem, e em que o particionamento de BT forçada é um particionamento de BT forçado vertical recursivo.[0359] In a second form of implementation of the method according to the seventh aspect itself or any prior form of implementation of the seventh aspect, the current block is located on a right-hand boundary of the image, and wherein the forced BT partitioning is a recursive vertical forced BT partitioning.

[0360] Em uma terceira forma de implementação do método de acordo com o sétimo aspecto propriamente dito ou qualquer forma de implementação anterior do sétimo aspecto, o particionamento de BT forçado compreende particionar recursivamente o bloco atual por um particionamento de fronteira forçado horizontal até uma subpartição do bloco atual estar localizada na fronteira inferior; e particionar recursivamente a subpartição por um particionamento de fronteira forçado vertical até que um nó folha esteja inteiramente localizado na fronteira à direita.[0360] In a third form of implementation of the method according to the seventh aspect itself or any prior form of implementation of the seventh aspect, the forced BT partitioning comprises recursively partitioning the current block by a horizontal forced boundary partitioning until a subpartition of the current block is located on the bottom boundary; and recursively partitioning the subpartition by a vertical forced boundary partitioning until a leaf node is located entirely on the right boundary.

[0361] Em uma quarta forma de implementação do método de acordo com o sétimo aspecto propriamente dito ou qualquer forma de implementação anterior do sétimo aspecto, o particionamento de BT forçado compreende particionar recursivamente o bloco atual por um particionamento de fronteira forçado vertical até que uma subpartição do bloco atual esteja localizada na fronteira inferior; e particionar recursivamente a subpartição por um particionamento de fronteira horizontal forçado até que um nó folha esteja inteiramente localizado na fronteira à direita.[0361] In a fourth form of implementation of the method according to the seventh aspect itself or any prior form of implementation of the seventh aspect, the forced BT partitioning comprises recursively partitioning the current block by a vertical forced boundary partitioning until a subpartition of the current block is located at the bottom boundary; and recursively partitioning the subpartition by a horizontal forced boundary partitioning until a leaf node is located entirely at the right boundary.

[0362] Em uma quinta forma de implementação do método de acordo com o sétimo aspecto propriamente dito ou qualquer forma de implementação anterior do sétimo aspecto, o método compreende adicionalmente aplicar MinQTSize para controlar o particionamento de um bloco que não está na fronteira.[0362] In a fifth form of implementation of the method according to the seventh aspect itself or any prior form of implementation of the seventh aspect, the method further comprises applying MinQTSize to control the partitioning of a block that is not on the boundary.

[0363] Em uma sexta forma de implementação do método de acordo com o sétimo aspecto propriamente dito ou qualquer forma de implementação anterior do sétimo aspecto, o método compreende adicionalmente receber MinQTSize por meio de um conjunto de parâmetros de sequência (SPS).[0363] In a sixth form of implementation of the method according to the seventh aspect itself or any prior form of implementation of the seventh aspect, the method further comprises receiving MinQTSize via a sequence parameter set (SPS).

[0364] Em uma sétima forma de implementação do método de acordo com o sétimo aspecto propriamente dito ou qualquer forma de implementação anterior do sétimo aspecto, o método compreende adicionalmente a transmissão de MinQTSize por meio de um conjunto de parâmetros de sequência (SPS).[0364] In a seventh form of implementation of the method according to the seventh aspect itself or any prior form of implementation of the seventh aspect, the method further comprises passing MinQTSize via a sequence parameter set (SPS).

[0365] Um oitavo aspecto refere-se a um aparelho que compreende uma memória; e um processador acoplado à memória e configurado para determinar se um bloco atual de uma imagem é um bloco de fronteira, determinar, quando o bloco atual é um bloco de fronteira, se um tamanho do bloco atual é maior que um tamanho de nó folha de árvore quaternária (QT) mínimo permitido (MinQTSize), e aplicar, quando o tamanho do bloco atual não for maior que MinQTSize, particionamento de árvore binária (BT) forçado para o bloco atual.[0365] An eighth aspect relates to an apparatus comprising a memory; and a processor coupled to the memory and configured to determine whether a current block of an image is a boundary block, determine, when the current block is a boundary block, whether a size of the current block is greater than a minimum allowed quaternary tree (QT) leaf node size (MinQTSize), and apply, when the current block size is not greater than MinQTSize, forced binary tree (BT) partitioning to the current block.

[0366] Em uma primeira forma de implementação do aparelho de acordo com o oitavo aspecto propriamente dito, o particionamento de BT forçado é um particionamento de BT forçado horizontal recursivo quando o bloco atual está localizado em uma fronteira inferior da imagem ou um particionamento de BT forçado vertical recursivo quando o bloco atual está localizado em uma fronteira à direita da imagem.[0366] In a first form of implementation of the apparatus according to the eighth aspect itself, the forced BT partitioning is a recursive horizontal forced BT partitioning when the current block is located at a bottom boundary of the image or a recursive vertical forced BT partitioning when the current block is located at a right boundary of the image.

[0367] Em uma segunda forma de implementação do aparelho de acordo com o oitavo aspecto propriamente dito ou qualquer forma de implementação anterior do oitavo aspecto, o particionamento de BT forçado compreende particionar recursivamente o bloco atual por um particionamento de fronteira forçado horizontal até uma subpartição do bloco atual estar localizada na fronteira inferior; e particionar recursivamente a subpartição por um particionamento de fronteira forçado vertical até que um nó folha esteja inteiramente localizado na fronteira à direita.[0367] In a second form of implementation of the apparatus according to the eighth aspect itself or any prior form of implementation of the eighth aspect, the forced BT partitioning comprises recursively partitioning the current block by a horizontal forced boundary partitioning until a subpartition of the current block is located on the bottom boundary; and recursively partitioning the subpartition by a vertical forced boundary partitioning until a leaf node is located entirely on the right boundary.

[0368] Em uma terceira forma de implementação do aparelho de acordo com o oitavo aspecto propriamente dito ou qualquer forma de implementação anterior do oitavo aspecto, o particionamento de BT forçado compreende particionar recursivamente o bloco atual por um particionamento de fronteira forçado vertical até uma subpartição do bloco atual estar localizada na fronteira inferior; e particionar recursivamente a subpartição por um particionamento de fronteira forçado horizontal até que um nó folha esteja inteiramente localizado na fronteira à direita.[0368] In a third form of implementation of the apparatus according to the eighth aspect itself or any prior form of implementation of the eighth aspect, the forced BT partitioning comprises recursively partitioning the current block by a vertical forced boundary partitioning until a subpartition of the current block is located on the bottom boundary; and recursively partitioning the subpartition by a horizontal forced boundary partitioning until a leaf node is located entirely on the right boundary.

[0369] Em uma quarta forma de implementação do aparelho de acordo com o oitavo aspecto propriamente dito ou qualquer forma de implementação anterior do oitavo aspecto, o processador é adicionalmente configurado para aplicar MinQTSize para controlar o particionamento de um bloco que não está na fronteira.[0369] In a fourth form of implementation of the apparatus according to the eighth aspect itself or any prior form of implementation of the eighth aspect, the processor is further configured to apply MinQTSize to control the partitioning of a block that is not on the boundary.

[0370] Em uma quinta forma de implementação do aparelho de acordo com o oitavo aspecto propriamente dito ou qualquer forma de implementação anterior do oitavo aspecto, o aparelho compreende adicionalmente um receptor acoplado ao processador e configurado para receber MinQTSize por meio de um conjunto de parâmetros de sequência (SPS).[0370] In a fifth form of implementation of the apparatus according to the eighth aspect itself or any prior form of implementation of the eighth aspect, the apparatus further comprises a receiver coupled to the processor and configured to receive MinQTSize via a sequence parameter set (SPS).

[0371] Em uma sexta forma de implementação do aparelho de acordo com o oitavo aspecto propriamente dito ou qualquer forma de implementação anterior do oitavo aspecto, o aparelho compreende adicionalmente um transmissor acoplado ao processador e configurado para transmitir MinQTSize por meio de um conjunto de parâmetros de sequência (SPS).[0371] In a sixth form of implementation of the apparatus according to the eighth aspect itself or any prior form of implementation of the eighth aspect, the apparatus further comprises a transmitter coupled to the processor and configured to transmit MinQTSize via a sequence parameter set (SPS).

[0372] Um nono aspecto se relaciona a um produto de programa de computador que compreende instruções executadas por computador armazenadas em uma mídia não transitória que, quando executadas por um processador, faz com que um aparelho determine se um bloco atual de uma imagem é um bloco de fronteira; determinar, quando o bloco atual é um bloco de fronteira, se um tamanho do bloco atual é maior que um tamanho de nó folha de árvore quaternária (QT) mínimo permitido (MinQTSize); e aplicar, quando o tamanho do bloco atual 0 não for maior que MinQTSize, particionamento de árvore binária (BT) forçado para o bloco atual.[0372] A ninth aspect relates to a computer program product comprising computer-executable instructions stored on a non-transitory medium that, when executed by a processor, causes an apparatus to determine whether a current block of an image is a boundary block; determine, when the current block is a boundary block, whether a size of the current block is greater than a minimum allowable quaternary tree (QT) leaf node size (MinQTSize); and apply, when the current block size is not greater than MinQTSize, forced binary tree (BT) partitioning to the current block.

[0373] Em uma primeira forma de implementação do aparelho de acordo com o oitavo aspecto propriamente dito, o particionamento de BT forçado é um particionamento de BT forçado horizontal recursivo quando o bloco atual está localizado em uma fronteira inferior da imagem ou um particionamento de BT forçado vertical recursivo quando o bloco atual está localizado em uma fronteira à direita da imagem.[0373] In a first form of implementation of the apparatus according to the eighth aspect itself, the forced BT partitioning is a recursive horizontal forced BT partitioning when the current block is located at a bottom boundary of the image or a recursive vertical forced BT partitioning when the current block is located at a right boundary of the image.

[0374] Em uma segunda forma de implementação do aparelho de acordo com o nono aspecto propriamente dito ou qualquer forma de implementação anterior do nono aspecto, o particionamento de BT forçado compreende particionar recursivamente o bloco atual por um particionamento de fronteira forçado horizontal até que uma subpartição do bloco atual esteja localizada na fronteira inferior; e particionar recursivamente a subpartição por um particionamento de fronteira forçado vertical até que um nó folha esteja inteiramente localizado na fronteira à direita.[0374] In a second form of implementation of the apparatus according to the ninth aspect itself or any prior form of implementation of the ninth aspect, the forced BT partitioning comprises recursively partitioning the current block by a horizontal forced boundary partitioning until a subpartition of the current block is located on the bottom boundary; and recursively partitioning the subpartition by a vertical forced boundary partitioning until a leaf node is located entirely on the right boundary.

[0375] Em uma terceira forma de implementação do aparelho de acordo com o nono aspecto propriamente dito ou qualquer forma de implementação anterior do nono aspecto, o particionamento de BT forçado compreende particionar recursivamente o bloco atual por um particionamento de fronteira forçado vertical até que uma subpartição do bloco atual esteja localizada na fronteira inferior; e particionar recursivamente a subpartição por um particionamento de fronteira forçado horizontal até que um nó folha esteja inteiramente localizado na fronteira à direita.[0375] In a third form of implementation of the apparatus according to the ninth aspect itself or any prior form of implementation of the ninth aspect, the forced BT partitioning comprises recursively partitioning the current block by a vertical forced boundary partitioning until a subpartition of the current block is located on the bottom boundary; and recursively partitioning the subpartition by a horizontal forced boundary partitioning until a leaf node is located entirely on the right boundary.

[0376] Em uma quarta forma de implementação do aparelho de acordo com o nono aspecto propriamente dito ou qualquer forma de implementação anterior do nono aspecto, as instruções fazem adicionalmente com que o aparelho aplique MinQTSize para controlar o particionamento de um bloco que não está na fronteira.[0376] In a fourth form of implementation of the apparatus according to the ninth aspect itself or any prior form of implementation of the ninth aspect, the instructions further cause the apparatus to apply MinQTSize to control the partitioning of a block that is not on the boundary.

[0377] Em uma quinta forma de implementação do aparelho de acordo com o nono aspecto propriamente dito ou qualquer forma de implementação anterior do nono aspecto, as instruções fazem adicionalmente com que o aparelho receba MinQTSize por meio de um conjunto de parâmetros de sequência (SPS).[0377] In a fifth form of implementation of the apparatus according to the ninth aspect itself or any prior form of implementation of the ninth aspect, the instructions further cause the apparatus to receive MinQTSize via a sequence parameter set (SPS).

[0378] Em uma sexta forma de implementação do aparelho de acordo com o nono aspecto propriamente dito ou qualquer forma de implementação anterior do nono aspecto, as instruções fazem adicionalmente com que o aparelho transmita MinQTSize por meio de um conjunto de parâmetros de sequência (SPS).[0378] In a sixth form of implementation of the apparatus according to the ninth aspect itself or any prior form of implementation of the ninth aspect, the instructions further cause the apparatus to transmit MinQTSize via a sequence parameter set (SPS).

[0379] De acordo com algumas modalidades, um decodificador é fornecido, compreendendo um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o decodificador para realizar qualquer um dentre os métodos descritos acima com referência às modalidades 1 a 4.[0379] According to some embodiments, a set-top box is provided, comprising one or more processors; and a non-transitory computer-readable storage medium coupled to the processors and storing programming for execution by the processors, wherein the programming, when executed by the processors, configures the set-top box to perform any of the methods described above with reference to embodiments 1-4.

[0380] Além disso, um codificador é fornecido, compreendendo um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e armazenando programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o codificador para realizar qualquer um dentre os métodos descritos acima com referência às modalidades 1 a 4.[0380] Furthermore, an encoder is provided, comprising one or more processors; and a non-transitory computer-readable storage medium coupled to the processors and storing programming for execution by the processors, wherein the programming, when executed by the processors, configures the encoder to perform any of the methods described above with reference to embodiments 1-4.

[0381] A seguir se encontra uma explicação das aplicações do método de codificação bem como do método de decodificação conforme mostrado nas modalidades acima mencionadas, e um sistema que usa os mesmos.[0381] The following is an explanation of the applications of the encoding method as well as the decoding method as shown in the aforementioned embodiments, and a system using them.

[0382] A Figura 17 é um diagrama de blocos que mostra um sistema de suprimento de conteúdo 3100 para realizar serviço de distribuição de conteúdo. Este sistema de suprimento de conteúdo 3100 inclui dispositivo de captura 3102, dispositivo terminal 3106, e opcionalmente inclui display 3126. O dispositivo de captura 3102 se comunica com o dispositivo terminal 3106 por meio do enlace de comunicação 3104. O enlace de comunicação pode incluir o canal de comunicação 13 descrito acima. O enlace de comunicação 3104 inclui, porém, sem limitação, WIFI, Ethernet, cabo, sem fio (3G/4G/5G), USB, ou qualquer tipo de combinação dos mesmos, ou semelhantes.[0382] Figure 17 is a block diagram showing a content supply system 3100 for performing content distribution service. This content supply system 3100 includes capture device 3102, terminal device 3106, and optionally includes display 3126. The capture device 3102 communicates with the terminal device 3106 via the communication link 3104. The communication link may include the communication channel 13 described above. The communication link 3104 includes, but is not limited to, WIFI, Ethernet, cable, wireless (3G/4G/5G), USB, or any type of combination thereof, or the like.

[0383] O dispositivo de captura 3102 gera dados, e pode codificar os dados pelo método de codificação, conforme mostrado nas modalidades acima. Alternativamente, o dispositivo de captura 3102 pode distribuir os dados para um servidor de streaming (não mostrado nas Figuras), e o servidor codifica os dados e transmite os dados codificados para o dispositivo terminal 3106. O dispositivo de captura 3102 inclui, porém, sem limitação, a câmera, smartphone ou Pad, computador ou laptop, sistema de videoconferência, PDA, dispositivo montado em veículo, ou uma combinação de qualquer um deles, ou semelhantes. Por exemplo, o dispositivo de captura 3102 pode incluir o dispositivo de origem 12 conforme descrito acima. Quando os dados incluem vídeo, o codificador de vídeo 20 incluído no dispositivo de captura 3102 pode realmente realizar o processamento de codificação de vídeo. Quando os dados incluem áudio (isto é, voz), um codificador de áudio incluído no dispositivo de captura 3102 pode realmente realizar o processamento de codificação de áudio. Para alguns cenários práticos, o dispositivo de captura 3102 distribui os dados de vídeo e áudio codificados multiplexando os mesmos juntos. Para outros cenários práticos, por exemplo, no sistema de videoconferência, os dados de áudio codificados e os dados de vídeo codificados não são multiplexados. O dispositivo de captura 3102 distribui os dados de áudio codificados e os dados de vídeo codificados para o dispositivo terminal 3106 separadamente.[0383] The capture device 3102 generates data, and may encode the data by the encoding method as shown in the above embodiments. Alternatively, the capture device 3102 may distribute the data to a streaming server (not shown in the Figures), and the server encodes the data and transmits the encoded data to the terminal device 3106. The capture device 3102 includes, but is not limited to, the camera, smartphone or Pad, computer or laptop, video conferencing system, PDA, vehicle-mounted device, or a combination of any of these, or the like. For example, the capture device 3102 may include the source device 12 as described above. When the data includes video, the video encoder 20 included in the capture device 3102 may actually perform the video encoding processing. When the data includes audio (i.e., voice), an audio encoder included in the capture device 3102 may actually perform the audio encoding processing. For some practical scenarios, capture device 3102 distributes the encoded video and audio data by multiplexing them together. For other practical scenarios, for example, in a videoconferencing system, the encoded audio data and the encoded video data are not multiplexed. Capture device 3102 distributes the encoded audio data and the encoded video data to the terminal device 3106 separately.

[0384] No sistema de suprimento de conteúdo 3100, o dispositivo terminal 310 recebe e reproduz os dados codificados. O dispositivo terminal 3106 poderia ser um dispositivo com capacidade de receber e recuperar dados, tal como smartphone ou Pad 3108, computador ou laptop 3110, gravador de vídeo em rede (NVR)/gravador de vídeo digital (DVR) 3112, TV 3114, set top box (STB) 3116, sistema de videoconferência 3118, sistema de vigilância por vídeo 3120, assistente digital pessoal (PDA) 3122, dispositivo montado em veículo 3124, ou uma combinação de qualquer um deles, ou semelhantes com capacidade de decodificar os dados codificados acima mencionados. Por exemplo, o dispositivo terminal 3106 pode incluir o dispositivo de destino 14, conforme descrito acima. Quando os dados codificados incluem vídeo, o decodificador de vídeo 30 incluído no dispositivo terminal é priorizado para realizar decodificação de vídeo. Quando os dados codificados incluem áudio, um decodificador de áudio incluído no dispositivo terminal é priorizado para realizar processamento de decodificação de áudio.[0384] In the content delivery system 3100, the terminal device 310 receives and plays back the encoded data. The terminal device 3106 could be a device capable of receiving and retrieving data, such as a smartphone or Pad 3108, a computer or laptop 3110, a network video recorder (NVR)/digital video recorder (DVR) 3112, a TV 3114, a set top box (STB) 3116, a video conferencing system 3118, a video surveillance system 3120, a personal digital assistant (PDA) 3122, a vehicle-mounted device 3124, or a combination of any of them, or the like capable of decoding the aforementioned encoded data. For example, the terminal device 3106 may include the destination device 14 as described above. When the encoded data includes video, the video decoder 30 included in the terminal device is prioritized to perform video decoding. When the encoded data includes audio, an audio decoder included in the terminal device is prioritized to perform audio decoding processing.

[0385] Para um dispositivo terminal com seu display, por exemplo, smartphone ou Pad 3108, computador ou laptop 3110, gravador de vídeo em rede (NVR)/gravador de vídeo digital (DVR) 3112, TV 3114, assistente digital pessoal (PDA) 3122, ou dispositivo montado em veículo 3124, o dispositivo terminal pode alimentar os dados decodificados para seu display. Para um dispositivo terminal equipado sem display, por exemplo, STB 3116, sistema de videoconferência 3118, ou sistema de vigilância por vídeo 3120, um monitor externo 3126 é contatado nele para receber e mostrar os dados decodificados.[0385] For a terminal device with its display, e.g., smartphone or Pad 3108, computer or laptop 3110, network video recorder (NVR)/digital video recorder (DVR) 3112, TV 3114, personal digital assistant (PDA) 3122, or vehicle-mounted device 3124, the terminal device may feed the decoded data to its display. For a terminal device equipped without a display, e.g., STB 3116, video conferencing system 3118, or video surveillance system 3120, an external monitor 3126 is contacted thereto to receive and display the decoded data.

[0386] Quando cada dispositivo neste sistema realiza codificação ou decodificação, o dispositivo de codificação de imagem ou o dispositivo de decodificação de imagem, como mostrado nas modalidades mencionadas acima, podem ser usados.[0386] When each device in this system performs encoding or decoding, the image encoding device or the image decoding device as shown in the above-mentioned embodiments can be used.

[0387] A Figura 18 é um diagrama que mostra uma estrutura de um exemplo do dispositivo terminal 3106. Depois que o dispositivo terminal 3106 recebe fluxo a partir do dispositivo de captura 3102, a unidade de procedimento de protocolo 3202 analisa o protocolo de transmissão do fluxo. O protocolo inclui, porém, sem limitação, Protocolo de Streaming em Tempo Real (RTSP), Protocolo de Transferência de Hipertexto (HTTP), protocolo de streaming ao vivo HTTP (HLS), MPEG-DASH, protocolo de Transporte em Tempo Real (RTP), Protocolo de Mensagem em Tempo Real (RTMP), ou qualquer tipo de combinação dos mesmos, ou semelhantes.[0387] Figure 18 is a diagram showing a structure of an example terminal device 3106. After terminal device 3106 receives stream from capture device 3102, protocol processing unit 3202 analyzes the transmission protocol of the stream. The protocol includes, but is not limited to, Real-Time Streaming Protocol (RTSP), Hypertext Transfer Protocol (HTTP), HTTP live streaming protocol (HLS), MPEG-DASH, Real-Time Transport Protocol (RTP), Real-Time Messaging Protocol (RTMP), or any combination thereof, or the like.

[0388] Depois que a unidade de procedimento de protocolo 3202 processa o fluxo, o arquivo de fluxo é gerado. O arquivo é emitido para uma unidade de demultiplexação 3204. A unidade de demultiplexação 3204 pode separar os dados multiplexados nos dados de áudio codificados e nos dados de vídeo codificados. Conforme descrito acima, para alguns cenários práticos, por exemplo, no sistema de videoconferência, os dados de áudio codificados e os dados de vídeo codificados não são multiplexados. Nesta situação, os dados codificados são transmitidos para o decodificador de vídeo 3206 e decodificador de áudio 3208 externo por meio da unidade de demultiplexação 3204.[0388] After the protocol processing unit 3202 processes the stream, the stream file is generated. The file is output to a demultiplexing unit 3204. The demultiplexing unit 3204 may separate the multiplexed data into encoded audio data and encoded video data. As described above, for some practical scenarios, e.g., in the video conferencing system, the encoded audio data and the encoded video data are not multiplexed. In this situation, the encoded data is transmitted to the video decoder 3206 and external audio decoder 3208 via the demultiplexing unit 3204.

[0389] Por meio do processamento de demultiplexação, fluxo elementar (ES) de vídeo, ES de áudio e, opcionalmente, legenda são gerados. O decodificador de vídeo 3206, que inclui o decodificador de vídeo 30 conforme explicado nas modalidades mencionadas acima, decodifica o ES de vídeo pelo método de decodificação como mostrado nas modalidades mencionadas acima para gerar quadro de vídeo, e alimenta esses dados para a unidade síncrona 3212. O decodificador de áudio 3208 decodifica o ES de áudio para gerar quadro de áudio, e alimenta esses dados para a unidade síncrona 3212. Alternativamente, o quadro de vídeo pode armazenar em um buffer (não mostrado na Figura 18) antes de alimentar o mesmo para a unidade síncrona 3212. Similarmente, o quadro de áudio pode armazenar em um buffer (não mostrado na Figura 18) antes de alimentar o mesmo para a unidade síncrona 3212.[0389] Through demultiplexing processing, video elementary stream (ES), audio ES, and optionally, caption are generated. Video decoder 3206, which includes video decoder 30 as explained in the above-mentioned embodiments, decodes video ES by decoding method as shown in the above-mentioned embodiments to generate video frame, and feeds this data to synchronous unit 3212. Audio decoder 3208 decodes audio ES to generate audio frame, and feeds this data to synchronous unit 3212. Alternatively, the video frame may store in a buffer (not shown in Figure 18) before feeding it to synchronous unit 3212. Similarly, the audio frame may store in a buffer (not shown in Figure 18) before feeding it to synchronous unit 3212.

[0390] A unidade síncrona 3212 sincroniza o quadro de vídeo e o quadro de áudio e supre o vídeo/áudio para um display de vídeo/áudio 3214. Por exemplo, a unidade síncrona 3212 sincroniza a apresentação das informações de vídeo e áudio. As informações podem codificar na sintaxe usando carimbos de data/hora relativos à apresentação de dados de áudio e visuais codificados e carimbos de data/hora relativos à entrega do próprio fluxo de dados.[0390] The synchronous unit 3212 synchronizes the video frame and the audio frame and supplies the video/audio to a video/audio display 3214. For example, the synchronous unit 3212 synchronizes the presentation of the video and audio information. The information may encode in syntax using timestamps relative to the presentation of encoded audio and visual data and timestamps relative to the delivery of the data stream itself.

[0391] Se a legenda for incluída no fluxo, o decodificador de legenda 3210 decodifica a legenda, e sincroniza a mesma com o quadro de vídeo e o quadro de áudio, e supre o vídeo/áudio/legenda para um display de vídeo/áudio/legenda 3216.[0391] If the caption is included in the stream, the caption decoder 3210 decodes the caption, and synchronizes it with the video frame and the audio frame, and outputs the video/audio/caption to a video/audio/caption display 3216.

[0392] A presente invenção não está limitada ao sistema acima mencionado, e ou o dispositivo de codificação de imagem ou o dispositivo de decodificação de imagem nas modalidades acima mencionadas pode ser incorporado em outro sistema, por exemplo, um sistema de carro.[0392] The present invention is not limited to the above-mentioned system, and either the image encoding device or the image decoding device in the above-mentioned embodiments may be incorporated into another system, for example, a car system.

[0393] Embora as modalidades da invenção tenham sido descritas principalmente com base em codificação de vídeo, deve-se notar que modalidades do sistema de codificação 10, codificador 20 e decodificador 30 (e correspondentemente do sistema 10) e as outras modalidades descritas no presente documento também podem ser configurado para processamento ou codificação de imagens estáticas, isto é, o processamento ou codificação de uma imagem individual independente de qualquer imagem precedente ou consecutiva como em codificação de vídeo. Em geral apenas unidades de predição inter 244 (codificador) e 344 (decodificador) podem não estar disponíveis no caso de a codificação de processamento de imagem ser limitada a uma única imagem 17. Todas as outras funcionalidades (também referidas como ferramentas ou tecnologias) do codificador de vídeo 20 e decodificador de vídeo 30 podem igualmente ser usadas para processamento de imagens estáticas, por exemplo, cálculo residual 204/304, transformada 206, quantização 208, quantização inversa 210/310, transformada (inversa) 212/312, particionamento 262/362, predição intra 254/354 e/ou filtragem loop 220, 320 e codificação de entropia 270 e decodificação de entropia 304.[0393] Although embodiments of the invention have been described primarily based on video coding, it should be noted that embodiments of the coding system 10, encoder 20, and decoder 30 (and correspondingly of the system 10) and the other embodiments described herein may also be configured for processing or coding still images, i.e., processing or coding an individual image independent of any preceding or consecutive images as in video coding. In general only inter prediction units 244 (encoder) and 344 (decoder) may not be available in case the image processing coding is limited to a single image 17. All other functionalities (also referred to as tools or technologies) of video encoder 20 and video decoder 30 may equally be used for still image processing, e.g., residual calculation 204/304, transform 206, quantization 208, inverse quantization 210/310, (inverse) transform 212/312, partitioning 262/362, intra prediction 254/354 and/or loop filtering 220, 320, and entropy encoding 270 and entropy decoding 304.

[0394] Modalidades, por exemplo do codificador 20 e do decodificador 30, e funções descritas no presente documento, por exemplo, com referência ao codificador 20 e ao decodificador 30, podem ser implementadas em hardware, software, firmware ou qualquer combinação dos mesmos. Se implementadas em software, as funções podem ser armazenadas em uma mídia legível por computador ou transmitidas por mídias de comunicação como uma ou mais instruções ou código e executadas por uma unidade de processamento com base em hardware. Mídias legíveis por computador podem incluir mídias de armazenamento legíveis por computador, o que corresponde a uma mídia tangível tal como mídias de armazenamento de dados ou mídias de comunicação, incluindo qualquer mídia que facilite a transferência de um programa de computador de um lugar para um outro, por exemplo, de acordo com um protocolo de comunicação. Desta forma, as mídias legíveis por computador de modo geral podem corresponder a (1) mídia de armazenamento legível por computador tangível que é não transitória ou (2) uma mídia de comunicação, como um sinal ou onda portadora. As mídias de armazenamento de dados podem ser quaisquer mídias disponíveis que podem ser acessadas por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estruturas de dados para implementação das técnicas descritas nesta revelação. Um produto de programa de computador pode incluir uma mídia legível por computador.[0394] Embodiments, for example, of encoder 20 and decoder 30, and functions described herein, for example, with reference to encoder 20 and decoder 30, may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on a computer-readable medium or transmitted over communication media as one or more instructions or code and executed by a hardware-based processing unit. Computer-readable media may include computer-readable storage media, which corresponds to a tangible medium such as data storage media, or communication media, including any media that facilitates the transfer of a computer program from one place to another, for example, in accordance with a communication protocol. Thus, computer-readable media generally may correspond to (1) tangible computer-readable storage media that is non-transitory, or (2) a communication medium, such as a signal or carrier wave. Data storage media may be any readily available media that can be accessed by one or more computers or one or more processors to retrieve instructions, code, and/or data structures for implementing the techniques described in this disclosure. A computer program product may include computer-readable media.

[0395] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação dos mesmos. Se implementadas em software, as funções podem ser armazenadas ou transmitidas como uma ou mais instruções ou código em uma mídia legível por computador e executadas por uma unidade de processamento com base em hardware. As mídias legíveis por computador podem incluir mídias de armazenamento legíveis por computador, que correspondem a uma mídia tangível, como mídia de armazenamento de dados ou mídia de comunicação, incluindo qualquer mídia que facilite a transferência de um programa de computador de um lugar para um outro, por exemplo, de acordo com um protocolo de comunicação. Desta maneira, as mídias legíveis por computador de modo geral podem corresponder a (1) mídia de armazenamento legível por computador tangível que é não transitória ou (2) uma mídia de comunicação tal como um sinal ou onda portadora. As mídias de armazenamento de dados podem ser quaisquer mídias disponíveis que podem ser acessadas por um ou mais computadores ou um ou mais processadores para recuperar instruções, código e/ou estruturas de dados para implementação das técnicas descritas nesta revelação. Um produto de programa de computador pode incluir uma mídia legível por computador.[0395] In one or more examples, the described functions may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored or transmitted as one or more instructions or code on a computer-readable medium and executed by a hardware-based processing unit. Computer-readable media may include computer-readable storage media, which correspond to a tangible medium, such as data storage media, or communications media, including any media that facilitates the transfer of a computer program from one place to another, for example, in accordance with a communications protocol. Thus, computer-readable media generally may correspond to (1) tangible computer-readable storage media that is non-transitory, or (2) a communications medium such as a signal or carrier wave. Data storage media may be any readily available media that can be accessed by one or more computers or one or more processors to retrieve instructions, code, and/or data structures for implementing the techniques described in this disclosure. A computer program product may include computer-readable media.

[0396] A título de exemplo, e não de limitação, tais mídias de armazenamento legíveis por computador podem compreender RAM, ROM, EEPROM, CD-ROM ou outro armazenamento de disco óptico, armazenamento de disco magnético, ou outros dispositivos de armazenamento magnético, memória flash, ou qualquer outra mídia que pode ser usada para armazenar código de programa desejado na forma de instruções ou estruturas de dados e que pode ser acessada por um computador. Além disso, qualquer conexão é apropriadamente denominada uma mídia legível por computador. Por exemplo, se instruções são transmitidas a partir de um site da web, servidor ou outra fonte remota usando um cabo coaxial, cabo de fibra óptica, par trançado, linha de assinante digital (DSL), ou tecnologias sem fio tais como infravermelho, rádio e micro-ondas, então o cabo coaxial, cabo de fibra óptica, par trançado, DSL ou tecnologias sem fio, como infravermelho, rádio, e micro-ondas, estão incluídos na definição de mídia. Deve ser entendido, no entanto, que mídias de armazenamento legíveis por computador e mídias de armazenamento de dados não incluem conexões, ondas portadoras, sinais, ou outras mídias transitórias, mas são direcionados por sua vez para mídias de armazenamento tangíveis não transitórias. Disco magnético e disco óptico, conforme usado no presente documento, inclui disco compacto (CD), disco laser, disco óptico, disco versátil digital (DVD), disquete e disco Blu-ray, onde os discos magnéticos de modo geral reproduzem dados magneticamente, enquanto os discos ópticos reproduzem dados opticamente com lasers. Combinações destes acima também devem ser incluídas no escopo de mídias legíveis por computador.[0396] By way of example, and not limitation, such computer-readable storage media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage, or other magnetic storage devices, flash memory, or any other media that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Furthermore, any connection is properly termed a computer-readable media. For example, if instructions are transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of media. It should be understood, however, that computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other transient media, but are instead intended for non-transitory tangible storage media. Magnetic disc and optical disc, as used herein, include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray Disc, where magnetic discs generally reproduce data magnetically, while optical discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.

[0397] As instruções podem ser executadas por um ou mais processadores, tais como um ou mais processadores de sinal digital (DSPs), microprocessadores de propósito geral, circuitos integrados de aplicação específica (ASICs), arranjos lógicos programáveis por campo (FPGAs) ou outro conjunto de circuitos lógicos integrados ou discretos equivalentes. Consequentemente, o termo "processador", conforme usado no presente documento, pode se referir a qualquer uma dentre as estruturas anteriores ou qualquer outra estrutura adequada para implementação das técnicas descritas no presente documento. Além disso, em alguns aspectos, a funcionalidade descrita pode ser fornecida em módulos de hardware e/ou software dedicados configurados para codificação e decodificação, ou incorporados em um codec combinado. Além disso, as técnicas podem ser totalmente implementadas em um ou mais conjunto de circuitos ou elementos lógicos.[0397] The instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field-programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Accordingly, the term "processor" as used herein may refer to any of the foregoing structures or any other structure suitable for implementing the techniques described herein. Furthermore, in some aspects, the described functionality may be provided in dedicated hardware and/or software modules configured for encoding and decoding, or incorporated into a combined codec. Furthermore, the techniques may be implemented entirely in one or more circuit or logic element sets.

[0398] As técnicas desta revelação podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um fone sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Vários componentes, módulos ou unidades são descritos nesta revelação para enfatizar aspectos funcionais de dispositivos configurados para realizar as técnicas reveladas, mas não necessariamente exigem realização por diferentes unidades de hardware. Em vez disso, conforme descrito acima, várias unidades podem ser combinadas em uma unidade de hardware de codec ou fornecidas por uma coleção de unidades de hardware interoperacionais, incluindo um ou mais processadores conforme descrito acima, em conjunto com software e/ou firmware adequados.[0398] The techniques of this disclosure can be implemented in a wide variety of devices or apparatus, including a wireless handset, an integrated circuit (IC), or a set of ICs (e.g., a chipset). Various components, modules, or units are described in this disclosure to emphasize functional aspects of devices configured to perform the disclosed techniques, but do not necessarily require implementation by different hardware units. Rather, as described above, multiple units can be combined into a codec hardware unit or provided by a collection of interoperable hardware units, including one or more processors as described above, in conjunction with suitable software and/or firmware.

[0399] Os seguintes operadores lógicos ou Operadores matemáticos são definidos como a seguir:[0399] The following logical operators or Mathematical Operators are defined as follows:

[0400] Os operadores matemáticos usados neste pedido são similares aos usados na linguagem de programação C. No entanto, os resultados das operações de divisão por número inteiro e deslocamento aritmético são definidos mais precisamente, e operações adicionais são definidas, tais como exponenciação e divisão com valor real. As convenções de numeração e contagem de modo geral começam em 0, por exemplo, "o primeiro" é equivalente ao 0, "o segundo" é equivalente ao 1°, etc.[0400] The mathematical operators used in this application are similar to those used in the C programming language. However, the results of integer division and arithmetic shift operations are defined more precisely, and additional operations are defined, such as exponentiation and real-valued division. Numbering and counting conventions generally start at 0, e.g., "the first" is equivalent to 0, "the second" is equivalent to 1st, etc.

[0401] Operadores aritméticos[0401] Arithmetic operators

[0402] Os seguintes operadores aritméticos são definidos conforme a seguir:+ Adição- Subtração (como um operador de dois argumentos) ounegação (como um operador de prefixo unário)* Multiplicação, incluindo multiplicação de matrizxy Exponenciação. Especifica x elevado à potência y. Emoutros contextos, essa notação é usada para sobrescritar, não destinada àinterpretação como exponenciação./ Divisão por número inteiro com truncamento do resultado emdireção a zero. Por exemplo, 7/4 e −7 / −4 são truncados para 1 e −7 / 4 e 7 / −4são truncados para −1.÷ Usado para denotar divisão em equações matemáticas ondenenhum truncamento ou arredondamento é pretendido.Usado para denotar divisão em equações matemáticas ondenenhum truncamento ou arredondamento é pretendido. A soma de f (i) com i tomando todos os valores em númerointeiro de x até y e incluindo y.x % y Módulo. Restante de x dividido por y, definido apenas paranúmero inteiros com x> = 0 e y> 0.[0402] The following arithmetic operators are defined as follows:+ Addition- Subtraction (as a two-argument operator) or negation (as a unary prefix operator)* Multiplication, including matrix multiplication xy Exponentiation. Specifies x raised to the y power. In other contexts, this notation is used for superscripting, not intended for interpretation as exponentiation./ Division by an integer with truncation of the result towards zero. For example, 7/4 and −7 / −4 are truncated to 1, and −7 / 4 and 7 / −4 are truncated to −1.÷ Used to denote division in mathematical equations where no truncation or rounding is intended. Used to denote division in mathematical equations where no truncation or rounding is intended. The sum of f(i) with i taking all integer values from x to y and including yx % y Modulus. Remainder of x divided by y, defined only for integers with x>=0 and y>0.

[0403] Operadores lógicos[0403] Logical operators

[0404] Os seguintes operadores lógicos são definidos como a seguir:x && y Lógica booliana "e" de x e yx | | y Lógica booliana "ou" de x e y! Lógica booliana "não"x? y: z Se x for VERDADEIRO ou não igual a 0, avalia para o valorde y; caso contrário, avalia para o valor de z.[0404] The following logical operators are defined as follows:x && y Boolean "and" of x and yx | | y Boolean "or" of x and y ! Boolean "not"x ? y : z If x is TRUE or not equal to 0, evaluates to the value of y; otherwise, evaluates to the value of z.

[0405] Operadores relacionais[0405] Relational operators

[0406] Os seguintes operadores relacionais são definidos como a seguir:> Maior que> = Maior que ou igual a> Menor que<= Menor que ou igual a= = Igual a! = Não igual a[0406] The following relational operators are defined as follows: > Greater than > = Greater than or equal to > Less than <= Less than or equal to = = Equal to ! = Not equal to

[0407] Quando um operador relacional é aplicado a um elemento de sintaxe ou variável a que foi atribuído o valor "na" (não aplicável), o valor "na" é tratado como um valor distinto para o elemento de sintaxe ou variável. O valor "na" não é considerado igual a qualquer outro valor.[0407] When a relational operator is applied to a syntax element or variable that has been assigned the value "na" (not applicable), the value "na" is treated as a distinct value for the syntax element or variable. The value "na" is not considered equal to any other value.

[0408] Operadores referentes a bit[0408] Bitwise operators

[0409] Os seguintes operadores bit-wise são definidos como a seguir:& bit-wise "e". Ao operar com argumentos de número inteiro,opera em uma representação de complemento de dois do valor de número inteiro. Ao operar em um argumento binário que contém menos bits que um outro argumento, o argumento mais curto é estendido adicionando-se bits mais significativos iguais a 0.| bit-wise "ou". Ao operar com argumentos de número inteiro,opera em uma representação de complemento de dois do valor de número inteiro. Ao operar em um argumento binário que contém menos bits que um outro argumento, o argumento mais curto é estendido adicionando-se bits mais significativos iguais a 0.A bit-wise "exclusivo ou". Ao operar com argumentos denúmero inteiro, opera em uma representação de complemento de dois do valor de número inteiro. Ao operar em um argumento binário que contém menos bits que outro argumento, o argumento mais curto é estendido adicionando bits mais significativos iguais a 0.x >> y Deslocamento aritmético para a direita de uma representação inteira de complemento de dois de x por y dígitos binários. Esta função é definida apenas para valores de número inteiro não negativos de y. Bits deslocados para os bits mais significativos (MSBs) como resultado do deslocamento à direita têm um valor igual ao MSB de x antes da operação de deslocamento.x << y Deslocamento aritmético para a esquerda de uma representação inteira em complemento de dois dígitos binários de x por y. Esta função é definida apenas para valores de número inteiro não negativos de y. Bits deslocados para os bits menos significativos (LSBs) como resultado do deslocamento à esquerda têm um valor igual a 0.[0409] The following bit-wise operators are defined as follows:& bit-wise "and". When operating on integer arguments, operates on a two's complement representation of the integer value. When operating on a binary argument that contains fewer bits than another argument, the shorter argument is extended by adding more significant bits equal to 0.| bit-wise "or". When operating on integer arguments, operates on a two's complement representation of the integer value. When operating on a binary argument that contains fewer bits than another argument, the shorter argument is extended by adding more significant bits equal to 0.A bit-wise "exclusive or". When operating on integer arguments, operates on a two's complement representation of the integer value. When operating on a binary argument that contains fewer bits than another argument, the shorter argument is extended by adding more significant bits equal to 0.x >> y Arithmetic right shift of a two's complement integer representation of x by y binary digits. This function is defined only for non-negative integer values of y. Bits shifted to the most significant bits (MSBs) as a result of the right shift have a value equal to the MSB of x before the shift operation. x << y Arithmetic left shift of a binary two's complement integer representation of x by y. This function is defined only for non-negative integer values of y. Bits shifted to the least significant bits (LSBs) as a result of the left shift have a value equal to 0.

[0410] Operadores de atribuição[0410] Assignment operators

[0411] Os seguintes operadores aritméticos são definidos como a seguir:= Operador de atribuição+ + Incremento, isto é, x + + é equivalente a x = x + 1; quandousado em um índice de arranjo, avalia para o valor da variável antes da operação de incremento.- - Decremento, isto é, x- - é equivalente a x = x - 1; quandousado em um índice de arranjo, avalia para o valor da variável antes da operação de decremento.+ = Incremento pela quantidade especificada, isto é, x += 3 éequivalente a x = x + 3, e x + = (-3) é equivalente a x = x + (-3).- = Decremento pela quantidade especificada, isto é, x - = 3 éequivalente a x = x - 3, e x - = (-3) é equivalente a x = x - (-3).[0411] The following arithmetic operators are defined as follows:= Assignment operator+ + Increment, that is, x + + is equivalent to x = x + 1; when used in an array index, evaluates to the value of the variable before the increment operation.- - Decrement, that is, x - - is equivalent to x = x - 1; when used in an array index, evaluates to the value of the variable before the decrement operation.+ = Increment by the specified amount, that is, x += 3 is equivalent to x = x + 3, and x + = (-3) is equivalent to x = x + (-3).- = Decrement by the specified amount, that is, x - = 3 is equivalent to x = x - 3, and x - = (-3) is equivalent to x = x - (-3).

[0412] Notação de faixa[0412] Range notation

[0413] A seguinte notação é usada para especificar uma faixa de valores:x = y..z x assume valores de número inteiro começando de y a z, inclusive, com x, y e z sendo números inteiros e z sendo maior que y.[0413] The following notation is used to specify a range of values:x = y..z x takes on integer values starting from y to z, inclusive, with x, y, and z being integers and z being greater than y.

[0414] Funções matemáticas[0414] Mathematical functions

[0415] As seguintes funções matemáticas são definidas:Asin (x) a função de seno inversa trigonométrica, operandoem um argumento x que está na faixa de -1,0 a 1,0, inclusive, com um valor desaída na faixa de −π ÷ 2 a π ÷ 2, inclusive, em unidades de radianosAtan (x) a função tangente inversa trigonométrica, operando em um argumento x, com um valor de saída na faixa de -π * 2 a π * 2, inclusive,em unidades de radianosCeil (x) o menor inteiro maior que ou igual a x.Clip1Y (x) = Clip3 (0, (1 << BitDepthY) - 1, x)Clip1C (x) = Clip3 (0, (1<< BitDepthC) - 1, x)Cos (x) a função trigonométrica cosseno operando em umargumento x em unidades de radianos.Floor (x) o maior número inteiro menor que ou igual a x.Ln (x) o logaritmo natural de x (o logaritmo de base e, ondee é o logaritmo natural constante de base 2,718 281 828 ...).Log2 (x) o logaritmo de base 2 de x.Log10 (x) o logaritmo de base 10 de x.Round(x) = Sign(x) * Floor( Abs (x) + 0,5)Sin (x) a função trigonométrica seno operando em umargumento x em unidades de radianosSqrt( x ) = √xSwap(x, y) = (y, x)Tan(x) a função trigonométrica tangente operando em um argumento x em unidades de radianos[0415] The following mathematical functions are defined: Asin(x) the trigonometric inverse sine function, operating on an argument x that is in the range −1.0 to 1.0 inclusive, with an output value in the range −π ÷ 2 to π ÷ 2 inclusive, in radian unitsAtan(x) the trigonometric inverse tangent function, operating on an argument x, with an output value in the range −π * 2 to π * 2 inclusive, in radian units Ceil(x) the smallest integer greater than or equal to x.Clip1Y(x) = Clip3(0, (1 << BitDepthY) - 1, x)Clip1C(x) = Clip3(0, (1 << BitDepthC) - 1, x) Cos(x) the trigonometric cosine function operating on an argument x in units of radians. Floor(x) the largest integer less than or equal to x. Ln(x) the natural logarithm of x (the logarithm to base e, where e is the constant natural logarithm to base 2.718 281 828 ...).Log2(x) the logarithm to base 2 of x.Log10(x) the logarithm to base 10 of x. Round(x) = Sign(x) * Floor( Abs (x) + 0.5) Sin(x) the trigonometric sine function operating on an argument x in units of radiansSqrt( x ) = √xSwap(x, y) = (y, x)Tan(x) the trigonometric tangent function operating on an argument x in units of radians

[0416] Ordem de precedência de operação[0416] Order of precedence of operation

[0417] Quando uma ordem de precedência em uma expressão não é indicada explicitamente pelo uso de parênteses, as seguintes regras se aplicam:- Operações de precedência mais alta são avaliadas antes de qualquer operação de precedência mais baixa.- Operações da mesma precedência são avaliadas sequencialmente da esquerda para a direita.[0417] When an order of precedence in an expression is not explicitly indicated by the use of parentheses, the following rules apply:- Operations of higher precedence are evaluated before any operations of lower precedence.- Operations of the same precedence are evaluated sequentially from left to right.

[0418] A tabela abaixo especifica a precedência de operações da mais alta para a mais baixa; uma posição mais alta na tabela indica uma precedência mais alta.[0418] The table below specifies the precedence of operations from highest to lowest; a higher position in the table indicates a higher precedence.

[0419] Para aqueles operadores que também são usados na linguagem de programação C, a ordem de precedência usada nesse Relatório é a mesma usada na linguagem de programação C.Tabela: Precedência de operação da mais alta (no topo da tabela) para a mais baixa (na parte inferior da tabela) [0419] For those operators that are also used in the C programming language, the order of precedence used in this Report is the same as that used in the C programming language.Table: Operation precedence from highest (at the top of the table) to lowest (at the bottom of the table)

[0420] Descrição de texto de operações lógicas[0420] Text description of logical operations

[0421] No texto, uma declaração de operações lógicas como seria descrito matematicamente na seguinte forma:if( condition 0 )statement 0else if( condition 1 ) statement 1 ...else /* informative remark on remaining condition */ statement npode ser descrita da maneira a seguir:... da seguinte forma / ... aplica-se o seguinte:- Se condição 0, declaração 0- Caso contrário, se condição 1, declaração 1 - ...- Caso contrário (observação informativa sobre condição restante), declaração n[0421] In the text, a statement of logical operations as would be described mathematically in the following form:if( condition 0 )statement 0else if( condition 1 ) statement 1 ...else /* informative remark on remaining condition */ statement ncan be described in the following way:... in the following form / ...the following applies:- If condition 0, statement 0- Otherwise, if condition 1, statement 1 - ...- Otherwise (informative remark on remaining condition), statement n

[0422] Cada declaração "Se ... Caso contrário, se ... Caso contrário, ..." no texto é introduzida com "... como a seguir" ou "... O seguinte se aplica" imediatamente seguida por "Se. .. ". A última condição do "Se ... Caso contrário, se ... Caso contrário, ..." é sempre um "Caso contrário, ...". As declarações intercaladas "Se ... Caso contrário, se ... Caso contrário, ..." podem ser identificadas pareando-se "... como a seguir" ou "... o seguinte se aplica" com a finalização "Caso contrário, ..." .[0422] Each "If... Otherwise, if... Otherwise,..." statement in the text is introduced with "... as follows" or "... The following applies" immediately followed by "If... ". The last condition of the "If... Otherwise, if... Otherwise,..." is always an "Otherwise,...". Interleaved "If... Otherwise, if... Otherwise,..." statements can be identified by pairing "... as follows" or "... the following applies" with the ending "Otherwise,...".

[0423] No texto, uma declaração de operações lógicas como seria descrita matematicamente na seguinte forma:if( condition 0a && condition 0b )statement 0else if( condition 1a | | condition 1b ) statement 1 ...elsestatement npode ser descrita da maneira a seguir:... como a seguir / ... aplica-se o seguinte: - Se todas as seguintes condições forem verdadeiras, declaração 0:- condição 0a- condição 0b- Caso contrário, se uma ou mais das seguintes condições forem verdadeiras, declaração 1:- condição 1a- condição 1b- ...- Caso contrário, declaração n[0423] In the text, a statement of logical operations such as would be described mathematically in the following form:if( condition 0a && condition 0b )statement 0else if( condition 1a | | condition 1b ) statement 1 ...elsestatement ncan be described in the following way:... as follows / ...the following applies: - If all of the following conditions are true, statement 0:- condition 0a- condition 0b- Otherwise, if one or more of the following conditions are true, statement 1:- condition 1a- condition 1b- ...- Otherwise, statement n

[0424] No texto, uma declaração de operações lógicas como seria descrita matematicamente na seguinte forma:if( condition 0 )statement 0if( condition 1 ) statement 1pode ser descrita da maneira a seguir:Quando condição 0, declaração 0Quando condição 1, declaração 1[0424] In the text, a statement of logical operations such as would be described mathematically in the following form:if( condition 0 )statement 0if( condition 1 ) statement 1can be described in the following manner:When condition 0, statement 0When condition 1, statement 1

[0425] Em resumo, a presente revelação se relaciona a métodos e dispositivos a serem empregados para codificação e decodificação de imagem ou sinal de vídeo. Eles incluem a determinação de se o tamanho de um bloco atual é maior que um tamanho de nó folha de árvore quaternária mínimo permitido. Se o tamanho do bloco atual não for maior que o tamanho de nó folha de árvore quaternária mínimo permitido, divisão de árvore de múltiplos tipos é aplicada ao bloco atual. O tamanho de nó folha de árvore quaternária mínimo permitido não é maior que o tamanho de nó raiz de árvore binária máximo permitido ou o tamanho de nó folha de árvore quaternária mínimo permitido não é maior que um tamanho de nó raiz de árvore ternária máximo permitido.[0425] In summary, the present disclosure relates to methods and devices to be employed for encoding and decoding an image or video signal. They include determining whether the size of a current block is greater than a minimum allowable quaternary tree leaf node size. If the size of the current block is not greater than the minimum allowable quaternary tree leaf node size, multi-type tree splitting is applied to the current block. The minimum allowable quaternary tree leaf node size is not greater than the maximum allowable binary tree root node size, or the minimum allowable quaternary tree leaf node size is not greater than a maximum allowable ternary tree root node size.

Claims (13)

1. Método de codificação, CARACTERIZADO pelo fato de que compreende:determinar se um tamanho de um bloco atual é maior que um tamanho de nó folha de árvore quaternária mínimo permitido;em condição de que o tamanho do bloco atual não seja maior que o tamanho de nó folha de árvore quaternária mínimo permitido, aplicar divisão de árvore binária ao bloco atual com base em um tamanho de nó raiz de árvore binária máximo permitido, em que o tamanho de nó raiz de árvore binária máximo permitido é determinado com base no tamanho de nó folha de árvore quaternária mínimo permitido, e o tamanho de nó folha de árvore quaternária mínimo permitido não é maior que o tamanho de nó raiz de árvore binária máximo permitido.1. An encoding method comprising: determining whether a size of a current block is greater than a minimum allowable quaternary tree leaf node size; provided that the current block size is not greater than the minimum allowable quaternary tree leaf node size, applying binary tree splitting to the current block based on a maximum allowable binary tree root node size, wherein the maximum allowable binary tree root node size is determined based on the minimum allowable quaternary tree leaf node size, and the minimum allowable quaternary tree leaf node size is not greater than the maximum allowable binary tree root node size. 2. Método de codificação, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que compreende adicionalmente as etapas de: determinar se o bloco atual de uma imagem é um bloco de fronteira; em que em condição de que o tamanho do bloco atual não seja maior que o tamanho de nó folha de árvore quaternária mínimo permitido, aplicar divisão de árvore binária ao bloco atual compreende:em condição de que o bloco atual seja um bloco de fronteira e o tamanho do bloco atual não seja maior que o tamanho de nó folha de árvore quaternária mínimo permitido, aplicar divisão de árvore binária ao bloco atual, em que o tamanho de nó folha de árvore quaternária mínimo permitido não é maior que um tamanho de nó raiz de árvore binária máximo permitido.2. The encoding method of claim 1, further comprising the steps of: determining whether the current block of an image is a boundary block; wherein on condition that the current block size is not greater than the minimum allowable quaternary tree leaf node size, applying binary tree split to the current block; and wherein on condition that the current block size is not greater than the minimum allowable quaternary tree leaf node size. 3. Método de codificação, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que compreende adicionalmente as etapas de:dividir uma imagem em blocos, em que os blocos compreendem o bloco atual;em que a aplicação de divisão de árvore binária ao bloco atual compreende:aplicar divisão de árvore binária ao bloco de fronteira com uma profundidade de partição de múltiplos tipos de fronteira máxima, em que a profundidade de partição de múltiplos tipos de fronteira máxima é uma soma de pelo menos uma profundidade de árvore de múltiplos tipos máxima e um desvio de profundidade de árvore de múltiplos tipos máxima, em que a profundidade de árvore de múltiplos tipos máxima é maior que 0.3. The encoding method of claim 2, further comprising the steps of: dividing an image into blocks, wherein the blocks comprise the current block; wherein applying binary tree splitting to the current block comprises: applying binary tree splitting to the boundary block with a maximum boundary multi-type partition depth, wherein the maximum boundary multi-type partition depth is a sum of at least a maximum multi-type tree depth and a maximum multi-type tree depth offset, wherein the maximum multi-type tree depth is greater than 0. 4. Método de codificação, de acordo com a reivindicação 3, CARACT ERIZADO pelo fato de que a profundidade de árvore de múltiplos tipos máxima é maior que 0 quando se aplica a divisão de árvore binária ao bloco de fronteira.4. The encoding method of claim 3, wherein the maximum multi-type tree depth is greater than 0 when applying binary tree splitting to the boundary block. 5. Método de codificação, de acordo com qualquer uma das reivindicações 1 a 4, CARACT ERIZADO pelo fato de que compreende adicionalmente:dividir uma imagem em blocos, em que os blocos compreendem o bloco atual;em que a aplicação de divisão de árvore binária ao bloco atual compreende:aplicar divisão de árvore binária ao bloco atual dos blocos com uma profundidade de árvore de múltiplos tipos máxima final, em que a profundidade de árvore de múltiplos tipos máxima final é uma soma de pelo menos uma profundidade de árvore de múltiplos tipos máxima e um desvio de profundidade de árvore de múltiplos tipos máxima, em que a profundidade de árvore de múltiplos tipos máxima é maior que ou igual a subtração de valor de Log2 de tamanho de bloco de codificação mínimo permitido do valor de Log2 de tamanho de nó folha de árvore quaternária mínimo permitido.5. The encoding method of any one of claims 1 to 4, further comprising: dividing an image into blocks, wherein the blocks comprise the current block; wherein applying binary tree splitting to the current block comprises: applying binary tree splitting to the current block of the blocks with a final maximum multi-type tree depth, wherein the final maximum multi-type tree depth is a sum of at least a maximum multi-type tree depth and a maximum multi-type tree depth offset, wherein the maximum multi-type tree depth is greater than or equal to subtracting the minimum allowed coding block size Log2 value from the minimum allowed quaternary tree leaf node size Log2 value. 6. Método de codificação, de acordo com a reivindicação 5, CARACT ERIZADO pelo fato de que o bloco atual é um bloco que não é de fronteira.6. The encoding method of claim 5, wherein the current block is a non-boundary block. 7. Método de codificação, de acordo com a reivindicação 5 ou 6, CARACT ERIZADO pelo fato de que o desvio de profundidade de árvore de múltiplos tipos máxima é 0.7. The coding method of claim 5 or 6, wherein the maximum multi-type tree depth offset is 0. 8. Dispositivo de decodificação, CARACTERIZADO pelo fato de que compreende:conjunto de circuitos configurado para:determinar se o tamanho de um bloco atual é maior que um tamanho de nó folha de árvore quaternária mínimo permitido;em condição de que o tamanho do bloco atual não seja maior que o tamanho de nó folha de árvore quaternária mínimo permitido, aplicar divisão de árvore binária ao bloco atual com base em um tamanho de nó raiz de árvore binária máximo permitido, em que o tamanho de nó raiz de árvore binária máximo permitido é determinado com base no tamanho de nó folha de árvore quaternária mínimo permitido, e o tamanho de nó folha de árvore quaternária mínimo permitido não é maior que o tamanho de nó raiz de árvore binária máximo permitido.8. A decoding device comprising: a circuitry configured to: determine whether a current block size is greater than a minimum allowable quaternary tree leaf node size; provided that the current block size is not greater than the minimum allowable quaternary tree leaf node size, apply binary tree splitting to the current block based on a maximum allowable binary tree root node size, wherein the maximum allowable binary tree root node size is determined based on the minimum allowable quaternary tree leaf node size, and the minimum allowable quaternary tree leaf node size is not greater than the maximum allowable binary tree root node size. 9. Dispositivo de codificação, CARACTERIZADO pelo fato de que compreende:conjunto de circuitos configurado para:determinar se o tamanho de um bloco atual é maior que um tamanho de nó folha de árvore quaternária mínimo permitido;em condição de que o tamanho do bloco atual não seja maior que o tamanho de nó folha de árvore quaternária mínimo permitido, aplicar divisão de árvore binária ao bloco atual com base em um tamanho de nó raiz de árvore binária máximo permitido, em que o tamanho de nó raiz de árvore binária máximo permitido é determinado com base no tamanho de nó folha de árvore quaternária mínimo permitido, e o tamanho de nó folha de árvore quaternária mínimo permitido não é maior que o tamanho de nó raiz de árvore binária máximo permitido.9. A coding device comprising: a circuitry configured to: determine whether a current block size is greater than a minimum allowable quaternary tree leaf node size; provided that the current block size is not greater than the minimum allowable quaternary tree leaf node size, apply binary tree splitting to the current block based on a maximum allowable binary tree root node size, wherein the maximum allowable binary tree root node size is determined based on the minimum allowable quaternary tree leaf node size, and the minimum allowable quaternary tree leaf node size is not greater than the maximum allowable binary tree root node size. 10. Mídia de armazenamento legível por computador não transitória, CARACTERIZADA pelo fato de que armazena programação para execução por um conjunto de circuitos de processamento, em que a programação, quando executada pelo conjunto de circuitos de processamento, configura o conjunto de circuitos de processamento para realizar o método conforme definido em qualquer uma das reivindicações 1 a 7.10. A non-transitory computer-readable storage medium that stores programming for execution by a set of processing circuits, wherein the programming, when executed by the set of processing circuits, configures the set of processing circuits to perform the method as defined in any one of claims 1 to 7. 11. Decodificador, CARACTERIZADO pelo fato de que compreende: um ou mais processadores; euma mídia de armazenamento legível por computador não transitória acoplada aos processadores e que armazena programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o decodificador para realizar o método conforme definido em qualquer uma das reivindicações 1 a 7.11. A set-top box comprising: one or more processors; and a non-transitory computer-readable storage medium coupled to the processors and storing programming for execution by the processors, wherein the programming, when executed by the processors, configures the set-top box to perform the method as defined in any one of claims 1 to 7. 12. Codificador, CARACTERIZADO pelo fato de que compreende:um ou mais processadores; e uma mídia de armazenamento legível por computador não transitória acoplada aos processadores e que armazena programação para execução pelos processadores, em que a programação, quando executada pelos processadores, configura o codificador para realizar o método conforme definido em qualquer uma das reivindicações 1 a 7.12. An encoder comprising: one or more processors; and a non-transitory computer-readable storage medium coupled to the processors and storing programming for execution by the processors, wherein the programming, when executed by the processors, configures the encoder to perform the method as defined in any one of claims 1 to 7. 13. Mídia de armazenamento não transitória, CARACTERIZADA pelo fato de que inclui um programa de computador, o qual quando executado por um processador, faz com que o processador realize o método conforme definido em qualquer uma das reivindicações 1 a 7 para gerar um fluxo de bits.13. Non-transitory storage media, CHARACTERIZED by the fact that it includes a computer program, which when executed by a processor, causes the processor to perform the method as defined in any one of claims 1 to 7 to generate a bit stream.
BR122022016938-4A 2018-09-03 2019-09-03 VIDEO ENCODER, VIDEO DECODER AND CORRESPONDING METHODS BR122022016938B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62/726,423 2018-09-03
US62/818,996 2019-03-15

Publications (1)

Publication Number Publication Date
BR122022016938B1 true BR122022016938B1 (en) 2025-06-24

Family

ID=

Similar Documents

Publication Publication Date Title
US11930171B2 (en) Video encoder, a video decoder and corresponding methods with improved block partitioning
KR102699033B1 (en) Relation between partition constraint elements
EP4070545A1 (en) Cross-component adaptive loop filtering for video coding
AU2024201576B2 (en) A video encoder, a video decoder and corresponding methods
BR122022009445A2 (en) ENCODER, DECODER, AND CORRESPONDING METHODS TO SIMPLIFY IMAGE HEADER SIGNALING
BR122022016938B1 (en) VIDEO ENCODER, VIDEO DECODER AND CORRESPONDING METHODS
BR112021003946B1 (en) VIDEO ENCODER, VIDEO DECODER AND CORRESPONDING METHODS
BR122023023994B1 (en) VIDEO ENCODER, VIDEO DECODER AND CORRESPONDING METHODS
BR122023024004B1 (en) VIDEO ENCODER, VIDEO DECODER AND CORRESPONDING METHODS
BR112020025569B1 (en) VIDEO ENCODER, VIDEO DECODER AND CORRESPONDING METHODS
BR122024001393A2 (en) ENCODER, DECODER AND CORRESPONDING METHODS FOR SUBPICTURE SIGNALING IN SEQUENCE PARAMETERS SET
BR122024000709A2 (en) ENCODER, DECODER AND CORRESPONDING METHODS ON HIGH-LEVEL SYNTAX SIGNALING
BR122023005459B1 (en) CODED BIT STREAM, DEVICE AND METHOD FOR STORING A BIT STREAM, DEVICE AND METHOD FOR TRANSMITTING A BIT STREAM, AND SYSTEM FOR PROCESSING A BIT STREAM
BR112022005469B1 (en) METHOD OF DECODING AN ENCODED VIDEO BIT STREAM, METHOD OF ENCODING AN ENCODED VIDEO BIT STREAM, DECODING DEVICE, ENCODING DEVICE AND NON-TRAINER COMPUTER READABLE MEDIA
BR122023025769A2 (en) CROSS-COMPONENT ADAPTIVE LOOP FILTERING FOR VIDEO CODING
BR122024004581A2 (en) METHOD AND APPARATUS FOR STORING MOTION INFORMATION
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载