BR112020024082A2 - método e aparelho para codificar e decodificar vídeo com base em particionamento binário assimétrico de blocos de imagem - Google Patents

método e aparelho para codificar e decodificar vídeo com base em particionamento binário assimétrico de blocos de imagem Download PDF

Info

Publication number
BR112020024082A2
BR112020024082A2 BR112020024082-6A BR112020024082A BR112020024082A2 BR 112020024082 A2 BR112020024082 A2 BR 112020024082A2 BR 112020024082 A BR112020024082 A BR 112020024082A BR 112020024082 A2 BR112020024082 A2 BR 112020024082A2
Authority
BR
Brazil
Prior art keywords
block
residue
fact
residual blocks
size
Prior art date
Application number
BR112020024082-6A
Other languages
English (en)
Inventor
Fabrice LELEANNEC
Franck Galpin
Tangi POIRIER
Original Assignee
Interdigital Vc Holdings, Inc.
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 Interdigital Vc Holdings, Inc. filed Critical Interdigital Vc Holdings, Inc.
Publication of BR112020024082A2 publication Critical patent/BR112020024082A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

A presente invenção refere-se a diferentes implementações, particularmente implementações para codificar e decodificar vídeo com base em particionamento binário assimétrico de blocos de imagem. O método de codificação compreende um quadro, em que pelo menos um componente do quadro é dividido em blocos de amostras, particionando um bloco em partições de bloco, em que pelo menos uma partição de bloco tem um tamanho igual a um número inteiro positivo diferente de uma potência de 2 em largura e/ou altura, obtendo um resíduo com base em uma diferença entre uma predição das partições de bloco e as partições de bloco, separando o resíduo em pelo menos dois blocos residuais com um tamanho igual a uma potência de 2 em largura e altura e codificando os pelo menos dois blocos residuais. Outras modalidades são apresentadas para um particionamento de bloco na borda do quadro, para definir tamanhos de bloco máximo e/ou mínimo e para método de decodificação correspondente.

Description

“MÉTODO E APARELHO PARA CODIFICAR E DECODIFICAR VÍDEO COM BASE EM PARTICIONAMENTO BINÁRIO ASSIMÉTRICO DE BLOCOS DE IMAGEM” CAMPO TÉCNICO
[001] Um método e um aparelho para codificar um vídeo em um fluxo de bits são divulgados. Um método e um aparelho de decodificação correspondentes são também divulgados.
FUNDAMENTO
[002] Para a compressão de dados de vídeo, regiões em forma de bloco dos quadros são codificadas usando predição interquadro para explorar redundância temporal entre diferentes quadros do sinal de origem de vídeo ou usando predição intraquadro para explorar redundância espacial em um único quadro do sinal de origem. Para esse propósito, dependendo do padrão de compressão usado, uma variedade de tamanhos de bloco no quadro pode ser especificada. O resíduo de predição pode então ser adicionalmente comprimido usando uma transformação para remover a correlação dentro do bloco de transformação antes de ser quantizada e finalmente ainda mais comprimida usando codificação por entropia.
[003] No padrão de compressão de vídeo HEVC, também conhecido como recomendação ITU-T H.265, um quadro é dividido nas chamadas Unidades de Árvore de Codificação (CTUs), que são as unidades básicas de codificação, análogas a Macroblocos em padrões anteriores . Uma CTU geralmente compreende três Blocos de Árvore de Codificação, um bloco para luminância, e dois blocos para crominância, e elementos de sintaxe associados. As Unidades de Árvore de Codificação podem ser ainda divididas em Unidades de Codificação (CUs), que são os menores elementos de codificação para uma decisão do tipo de predição, ou seja, se deve realizar predição interquadro ou intraquadro. Finalmente, as Unidades de Codificação podem ser ainda divididas em uma ou mais Unidades de Predição (PUs) para melhorar a eficiência da predição. Além disso, para codificar o resíduo de predição, as CUs podem ser divididas em Unidades de Transformação (TUs), em que uma Unidade de Transformação encapsula blocos de transformação que são, cada um, blocos quadrados de amostras para os componentes de quadro aos quais a mesma transformação é aplicada. Deve-se notar que as Unidades de Transformação não têm que ser alinhadas com Unidades de Predição para que seja, por exemplo,. possível realizar uma única transformação entre os resíduos de várias Unidades de Predição e vice-versa.
[004] No padrão HEVC, uma variedade de tamanhos de blocos são definidos para as várias unidades de codificação lógica e os blocos de codificação correspondentes, de modo que um ajuste ou seleção apropriado durante o processo de codificação e decodificação permite otimizar a eficiência de compressão. O particionamento de unidades de codificação em HEVC sempre segue o processo de separação de árvore quádrupla (quad-tree), que consiste em dividir uma CU em 4 unidades de subcodificação (sub-CUs) com igual tamanho. Dessa forma, todas as unidades de codificação HEVC têm formato quadrado, e sua largura e altura são iguais a uma potência de 2.
[005] Em particular, para particionamento binário assimétrico de blocos de imagem, há uma necessidade de maior flexibilidade na representação de unidade de codificação e separação para otimizar a compensação (trade-off) entre complexidade do codificador e decodificador e eficiência de compressão.
SUMÁRIO
[006] De acordo com um aspecto da presente divulgação, um método para codificar um quadro é divulgado, em que pelo menos um componente do quadro é dividido em um ou mais blocos de amostras. Tal método compreende particionar um bloco em partições de bloco, em que pelo menos uma partição de bloco tem um tamanho igual a um número inteiro positivo diferente de uma potência de 2 em largura e/ou altura; obter um resíduo com base em uma diferença entre uma predição das partições de bloco e as partições de bloco; separar o resíduo em pelo menos dois blocos residuais com um tamanho igual a uma potência de 2 em largura e altura; e transformar os pelo menos dois blocos residuais em coeficientes de transformação, quantizar os coeficientes de transformação, e codificar por entropia de os coeficientes de transformação quantizados.
[007] De acordo com outro aspecto da presente divulgação, um aparelho para codificar um quadro é divulgado, em que pelo menos um componente do quadro é dividido em um ou mais blocos de amostras. Tal aparelho compreende meios para particionar um bloco em partições de bloco, em que pelo menos uma partição de bloco tem um tamanho igual a um número inteiro positivo diferente de uma potência de 2 em largura e/ou altura; meios para gerar um resíduo por predição das partições de bloco e subtraindo a predição das partições de bloco; meios para separar o resíduo gerado em pelo menos dois blocos residuais com um tamanho igual a uma potência de 2 em largura e altura; e meios para transformar os pelo menos dois blocos residuais em coeficientes de transformação, quantizar os coeficientes de transformação, e codificar por entropia os coeficientes de transformação quantizados.
[008] De acordo com um aspecto da presente divulgação, um aparelho para codificar um quadro é provido, o aparelho incluindo um processador, e pelo menos uma memória acoplada ao processador, o processador sendo configura do para particionar um bloco em partições de bloco, em que pelo menos uma partição de bloco tem um tamanho igual a um número inteiro positivo diferente de uma potência de 2 em largura e/ou altura; para obter um resíduo com base em uma diferença entre uma predição das partições de bloco e as partições de bloco; para separar o resíduo em pelo menos dois blocos residuais com um tamanho igual a uma potência de 2 em largura e altura; e para transformar os pelo menos dois blocos residuais em coeficientes de transformação, quantizar os coeficientes de transformação, e codificar por entropia os coeficientes de transformação quantizados.
[009] De acordo com outro aspecto da presente divulgação, um método para decodificar um vídeo é divulgado, em que pelo menos um componente do quadro é dividido em um ou mais blocos de amostras. Tal método compreende receber em um fluxo de bits coeficientes de transformação quantizados; decodificar por entropia, desquantizar e realizar transformação inversa dos coeficientes de transformação para obter blocos residuais com um tamanho igual a uma potência de 2 em largura e altura; unir pelo menos dois blocos residuais para reconstruir um resíduo para uma partição de bloco tendo um tamanho igual a um número inteiro positivo diferente de uma potência de 2 em largura e/ou altura; e reconstruir um bloco do quadro com base em uma predição das partições de bloco e as partições de bloco.
[010] De acordo com outro aspecto da presente divulgação, um aparelho para decodificar um vídeo é divulgado, em que pelo menos um componente do quadro é dividido em um ou mais blocos de amostras. Tal aparelho compreende meios para receber em um fluxo de bits coeficientes de transformação quantizados; meios para decodificar por entropia, desquantizar e realizar transformação inversa dos coeficientes de transformação para obter blocos residuais com um tamanho igual a uma potência de 2 em largura e altura; meios para unir pelo menos dois blocos residuais para reconstruir um resíduo para uma partição de bloco tendo um tamanho igual a um número inteiro positivo diferente de uma potência de 2 em largura e/ou altura; e meios para reconstruir um bloco do quadro com base em uma predição das partições de bloco e as partições de bloco.
[011] De acordo com um aspecto da presente divulgação, um aparelho para decodificar um vídeo é provido, o aparelho incluindo um processador, e pelo menos uma memória acoplada ao processador, o processador sendo configura do para receber em um fluxo de bits coeficientes de transformação quantizados; para decodificar por entropia, desquantizar e realizar transformação inversa dos coeficientes de transformação para obter blocos residuais com um tamanho igual a uma potência de 2 em largura e altura; para unir pelo menos dois blocos residuais para reconstruir um resíduo para uma partição de bloco tendo um tamanho igual a um número inteiro positivo diferente de uma potência de 2 em largura e/ou altura; e para reconstruir um bloco do quadro com base em uma predição das partições de bloco e as partições de bloco.
[012] A presente divulgação também fornece um sinal compreendendo dados de vídeo gerados de acordo com o método ou o aparelho de qualquer uma das descrições precedentes. As presentes modalidades também fornecem um produto de programa de computador incluindo instruções, que, quando executadas por um computador, levam o computador a realizar os métodos descritos.
[013] A presente divulgação também fornece um meio de armazenamento legível por computador tendo nele armazenado um fluxo de bits gerados de acordo com os métodos descritos acima. A presente divulgação também fornece um método e aparelho para transmitir o fluxo de bits gerado de acordo com os métodos descritos acima.
[014] O acima apresenta um resumo simplificado do objeto a fim de fornecer uma compreensão básica de alguns aspectos das modalidades do objeto. Este resumo não é uma visão geral extensa do objeto. Não se destina a identificar elementos-chave/críticos das modalidades ou a delinear o escopo do objeto. Seu único propósito é apresentar alguns conceitos do objeto de uma forma simplificada como um prelúdio para a descrição mais detalhada que será apresentada posteriormente.
[015] Características e vantagens adicionais da presente divulgação se tornarão aparentes a partir da seguinte descrição detalhada de modalidades ilustrativas que prossegue com referência às figuras anexas.
BREVE DESCRIÇÃO DOS DESENHOS
[016] A Figura 1 ilustra uma Unidade de Árvore de Codificação e o conceito de Árvore de Codificação para representar um quadro codificado de acordo com o padrão HEVC,
[017] A Figura 2 ilustra uma divisão de uma Unidade de Árvore de Codificação em Unidades de Codificação, Unidades de Predição e Unidades de Transformação de acordo com o padrão HEVC,
[018] A Figura 3 ilustra os vários tipos de partição usados no padrão HEVC para particionamento de Unidades de Codificação em Unidades de Predição,
[019] A Figura 4 ilustra um exemplo em que uma Unidade de Árvore de Codificação é separada em ambas uma árvore quádrupla e uma árvore binária e a representação de árvore de codificação correspondente da Unidade de Árvore de Codificação,
[020] A Figura 5 ilustra modos adicionais de separação assimétrica binária de Unidade de Codificação,
[021] A Figura 6 ilustra um conjunto estendido de possíveis modos de separação de CU, incluindo um modo de separação de árvore tripla vertical e horizontal,
[022] A Figura 7 ilustra um exemplo de estruturas de codificação escolhido para codificar um quadro exemplificativo com decomposição de árvore quádrupla de Unidades de Árvore de Codificação e decomposição de Árvore Binária incorporada na Árvore quádrupla,
[023] A Figura 8 ilustra um exemplo de particionamento de bloco na borda de quadro de um quadro exemplificativo usando apenas decomposição de árvore quádrupla,
[024] A Figura 9 ilustra um exemplo de particionamento de bloco na borda de quadro de um quadro exemplificativo usando apenas Árvore quádrupla e decomposição de Árvore Binária,
[025] A Figura 10 ilustra um exemplo de particionamento de bloco na borda de quadro de um quadro exemplificativo usando decomposição de árvore quádrupla, Árvore Binária e Árvore Binária Assimétrica de acordo com uma modalidade da presente divulgação,
[026] A Figura 11 ilustra uma estrutura hierárquica de codificação temporal de quadro B,
[027] A Figura 12 ilustra a computação da frequência de utilização de tamanho de bloco grande e/ou pequeno em uma dada fatia de uma dada camada temporal de acordo com uma segunda modalidade da presente divulgação,
[028] A Figura 13 ilustra o ajuste do tamanho de bloco máximo e/ou mínimo para o qual particionamento de Árvore Binária Assimétrica é permitido de acordo com uma segunda modalidade da presente divulgação,
[029] A Figura 14 ilustra um método para limitar o uso de modos de particionamento de Árvore Binária Assimétrica de acordo com uma primeira variante da segunda modalidade da presente divulgação,
[030] A Figura 15 ilustra um método para limitar o uso de modos de particionamento de Árvore Binária Assimétrica de acordo com uma segunda variante da segunda modalidade da presente divulgação,
[031] A Figura 16 ilustra um método para limitar o uso de modos de particionamento de Árvore Binária Assimétrica de acordo com uma terceira variante da segunda modalidade da presente divulgação,
[032] A Figura 17 ilustra um método para separar uma unidade de codificação com um tamanho igual a um múltiplo de 3 em largura ou altura em duas Unidades de Transformação com um tamanho igual a uma potência de 2 de acordo com uma primeira variante de uma quarta modalidade da presente divulgação,
[033] A Figura 18 ilustra um método para separar uma unidade de codificação em duas Unidades de Transformação de acordo com uma segunda variante de uma quarta modalidade da presente divulgação,
[034] A Figura 19 ilustra um método para separar uma unidade de codificação em três Unidades de Transformação de acordo com uma terceira variante de uma quarta modalidade da presente divulgação,
[035] A Figura 20 ilustra um método para separar uma unidade de codificação em Unidades de Transformação emulando um particionamento de Árvore Tripla de acordo com uma quarta variante de uma quarta modalidade da presente divulgação,
[036] A Figura 21 ilustra um codificador exemplificativo de acordo com uma modalidade da presente divulgação,
[037] A Figura 22 ilustra um decodificador exemplificativo de acordo com uma modalidade da presente divulgação,
[038] A Figura 23 ilustra um diagrama de blocos de um exemplo de um sistema, em que vários aspectos e modalidades são implementados,
[039] A Figura 24 ilustra um método de decodificação de acordo com uma modalidade da presente divulgação,
[040] A Figura 25 ilustra um método de codificação de acordo com uma modalidade da presente divulgação.
DESCRIÇÃO DE MODALIDADES
[041] O campo técnico de uma ou mais implementações é geralmente relacionado à compressão de vídeo. Pelo menos algumas modalidades ainda se referem a melhorar a eficiência de compressão em comparação com os sistemas de compressão de vídeo existentes. Pelo menos uma modalidade propõe melhorar o particionamento Binário Assimétrico de blocos em termos de eficiência de compressão, compensação entre tempo de codificação e compressão, e suporte apenas para transformações com um tamanho igual a uma potência de 3.
[042] No padrão de compressão de vídeo HEVC, um quadro é dividido nas chamadas Unidades de Árvore de Codificação (CTU), cujo tamanho é tipicamente
64x64, 128x128, ou 256x256 pixels. Cada CTU é representada por uma Árvore de Codificação no domínio comprimido. Essa é uma divisão de árvore quádrupla da CTU, em que cada folha é denominada uma unidade de codificação (CU), como mostrado na Figura 1, que representa duas CTUs. Nesse caso, a CTU esquerda é diretamente usada como está, enquanto a CTU da direita é particionada em múltiplas seções menores com base nas características de sinal da região de quadro coberta pela CTU.
As setas indicam os vetores de movimento de predição da respectiva seção.
[043] A cada CU são então dados alguns parâmetros de intra- ou interpredição (Informação de Predição). Para tanto, é espacialmente particionada em uma ou mais Unidades de Predição (PUs), a cada PU sendo atribuídas algumas informações de predição. O modo de intra- ou interpredição é atribuído no nível de CU conforme mos- trado na Figura 2.
[044] O particionamento de uma Unidade de Codificação em Unidade(s) de Predição é feito de acordo com o tipo particionamento, sinalizado no fluxo de bits.
Para uma unidade de intracodificação, apenas os tipos de partição 2Nx2N e NxN, ilustrados a Figura 3 são usados. Isso significa que apenas as Unidades de Predição quadradas são utilizadas nas Unidades de Intracodificação. Ao contrário, Unidades de Intercodificação podem usar todos os tipos de partição mostrados na Figura 3.
[045] De acordo com o padrão HEVC, Unidades de Codificação são também divididas nas chamadas Unidades de Transformação, de forma recursiva, seguindo uma “árvore de transformação”. Assim, uma árvore de transformação é uma divisão de árvore quádrupla de uma unidade de codificação, e unidades de transformação são a folha da árvore de transformação. Uma unidade de transformação encapsula os blocos de transformação quadrados de cada componente de quadro correspondente a uma área espacial quadrada considerada. Um bloco de transformação é um bloco quadrado de amostras em um único componente, em que a mesma transformação é aplicada.
[046] Novas ferramentas de compressão de vídeo incluem uma representação de Unidade de Árvore de Codificação no domínio comprimido, que permite representar dados de quadro de uma forma mais flexível no domínio comprimido. A vantagem dessa representação flexível da árvore de codificação é que ela oferece maior eficiência de compressão em comparação com o arranjo CU/PU/TU do padrão HEVC.
A ferramenta de codificação denominada Árvore Quádrupla mais Árvore Binária (QTBT) oferece essa flexibilidade aumentada. Consiste em uma árvore de codificação em que unidades de codificação podem ser separadas em ambas uma árvore quádrupla e uma árvore binária. Um exemplo de um particionamento de bloco de uma Unidade de Árvore de Codificação usando QTBT e a representação de árvore de codificação correspondente é ilustrado na Figura 4.
[047] A separação de uma unidade de codificação é decidida no lado do codificador por meio de um procedimento de otimização de distorção de taxa, que consiste em determinar a representação QTBT da CTU com custo de distorção de taxa mínimo. Na tecnologia QTBT, uma CU tem o formato quadrado ou retangular. O tamanho de uma unidade de codificação é sempre uma potência de 2, e tipicamente vai de 4 a 128. Além dessa variedade de formatos retangulares para uma unidade de codificação, essa nova representação de CTU tem as seguintes características diferentes em comparação com HEVC.
 A decomposição QTBT de uma CTU é feita de duas etapas: primeiramente, a CTU é separada em uma árvore quádrupla, depois cada folha da árvore quádrupla pode ser ainda dividida de forma binária. Isso é ilustrado à direita da Figura 4, onde linhas sólidas representam a fase de decomposição de árvore quádrupla e linhas tracejadas representam a decomposição binária que é espacialmente incorporada nas folhas da árvore quádrupla. Em cada nó de separação da árvore binária, um sinalizador sinaliza se separação horizontal (0) ou separação vertical (1) foi usada, para a separação de Árvore Quádrupla, nenhuma indicação do tipo de separação é necessária.
 Em intrafatias, a estrutura de particionamento de bloco Luma e Croma é separada, e decidida de maneira independente.
 Particionamento de CU em unidades de predição ou unidades de transformação não é mais empregado. Em outras palavras, cada Unidade de Codificação é sistematicamente feita de uma única unidade de predição (anteriormente tipo de partição de unidade de predição 2Nx2N) e única unidade de transformação (sem divisão em uma árvore de transformação).
[048] Pelo menos uma modalidade no domínio de representação de unidade de codificação de quadro em compressão melhora a eficiência de compressão em comparação com a tecnologia QTBT.
[049] A Figura 5 ilustra um modo de separação assimétrica binária de CU adicional proposto na Arquitetura Codec de Unidades de Codificação Assimétricas.
Unidades de Codificação com novos formatos retangulares são introduzidas, as quais resultam de um novo Modo de Separação Binário denominado modo de separação assimétrico. Isso significa que novos formatos de CU retangulares são adicionados.
Esses novos formatos consistem em tamanhos iguais a 3 ∙ 2n em largura e/ou altura. Além disso, uma CU com um tamanho múltiplo de 3 em largura ou altura pode ser ainda dividida de forma binária, horizontal ou verticalmente.
[050] Como consequência, uma unidade de codificação quadrada com tamanho (w, h) (largura e altura) que seria separada por meio de um dos modos de separação binária assimétrica propostos, por exemplo, HOR_UP (horizontal para cima), levaria a 2 unidades de subcodificação com respectivos tamanhos retangulares e .
[051] Além disso, o denominado particionamento de árvore tripla de uma CU pode ser usado, levando ao conjunto de possíveis partições dado na Figura 6. Árvore tripla consiste em separar uma CU em três sub-CU com tamanho (1/4, 1/2,1/4) em relação à CU de origem, na orientação considerada.
[052] A Figura 7 ilustra as unidades de codificação escolhidas pelo codificador para um quadro exemplificativo. Vê-se que unidades de codificação assimétricas são frequentemente utilizadas neste quadro exemplificativo. Também se observa que essas topologias de unidade de codificação adicionais ajudam a ter estruturas de codificação que correspondem espacialmente às estruturas e descontinuidades contidas no sinal original.
[053] A seção a seguir descreve pelo menos uma implementação. Está organizado da seguinte forma. Em primeiro lugar, várias implementações de uma primeira modalidade que melhoram o particionamento de bloco na borda do quadro são descritas. Em seguida, diferentes implementações de uma segunda modalidade, implementadas no lado do codificador ou no lado do decodificador, adaptando o particionamento binário assimétrico de acordo com o tamanho de bloco são descritas.
Além disso, novas heurísticas para pesquisa de distorção de taxa rápida da árvore de codificação são divulgadas. Por fim, pelo menos uma modalidade para suporte para ABT (separação de Árvore Binária Assimétrica) com apenas tamanhos de transformação iguais a uma potência de 2 é proposta.
Melhor particionamento do bloco na borda do quadro
[054] No software de referência de Codec de Vídeo Versátil (denominado VTM-1.0 ou BMS-1.0 doravante), o particionamento de bloco na borda do quadro é feito separando o bloco atual tanto no modo de árvore quádrupla ou no modo de árvore binária simétrica, na orientação fazer borda de quadro. No BMS-1.0, se o bloco atual estiver parcialmente fora do quadro atual, então, a separação de Árvore Tripla não é permitida e o modo de divisão binária simétrica é marcado como implícito. Separação implícita significa que é a única separação permitida (exceto separação de Árvore Quádrupla que é processada separadamente), o que também significa que o decodificador infere essa separação sem qualquer análise de modo de separação dedicada. Com a introdução da separação binária assimétrica, propomos o uso da separação binária assimétrica como separação implícita se a separação for exatamente no limite do quadro. Nesse caso, usar a separação ABT leva a uma CU maior e, portanto, melhor eficiência de codificação.
[055] Isso é representado por um quadro exemplificativo nas figuras 8 a 10, que mostram o tratamento do limite de quadro para diferentes métodos de particionamento. A Figura 8 mostra o particionamento resultante quando apenas separação de Árvore Quádrupla é aplicada, a Figura 9 para separação de Árvore Quádrupla e Árvore Binária, e a Figura 10 com separação de Árvore Quádrupla, Árvore Binária e Árvore Binária Assimétrica. Como pode ser visto na Figura 10, usar separação ABT leva a uma CU maior, por exemplo, no canto de quadro inferior esquerdo.
Uso adaptativo de particionamento binário assimétrico de acordo com o tamanho de bloco ao lado do codificador e do decodificador
[056] Esta seção descreve uma implementação de um método normativo para restringir o uso de ABT, de forma que melhora a compensação entre tempo de codificação e eficiência de compressão.
[057] O método compreende a ativação dos modos de separação binária assimétrica (HOR_UP,…, VER_RIGHT) de acordo com o tamanho da Unidade de Codificação que está prestes a ser particionada, e de acordo com a taxa de uso média de tamanhos de bloco grandes e/ou pequenos em fatias já codificadas/decodificadas no mesmo período Intra.
[058] De fato, a ferramenta de particionamento binário assimétrico apresenta os novos tamanhos de bloco 6, 12, 24 e 48. O tamanho de bloco 6 é tipicamente usado apenas em Croma, que no formato de 420 cores corresponde a um tamanho de bloco 12 no componente Luma.
[059] Observou-se que o tamanho de bloco grande 48 pode ser de interesse para eficiência de compressão em um determinado tipo de conteúdo de vídeo. Além disso, o tamanho de bloco 12 é amplamente utilizado em muitos tipos de conteúdo de vídeo, mas é de interesse limitado no conteúdo de vídeo em que tamanhos de bloco maiores (por exemplo, 32, 48, 64) são de interesse.
[060] De acordo com uma variante da segunda modalidade, o método consiste aqui em definir um tamanho máximo e/ou mínimo de CU (em largura ou altura) para o qual o particionamento binário assimétrico é permitido.
[061] Esse tamanho máximo e/ou mínimo de CU é considerado para cada fatia a ser codificada e decodificada.
[062] De acordo com uma variante da segunda modalidade, a ativação ou desativação de ABT (Árvore Binária Assimétrica) para alguns tamanhos de bloco ocorre apenas em quadro ou fatias não-INTRA, ou grupo de mosaico ou mosaico (nomeadamente fatias Inter de tipo P ou B).
[063] De acordo com outra variante da segunda modalidade, o tamanho máximo e/ou mínimo de CU está sendo sinalizado no cabeçalho de fatia, e é obtido pelo decodificador durante a análise do cabeçalho de fatia. De acordo com outra variante da segunda modalidade, o limite de tamanho máximo/mínimo de CU é determinado no lado do decodificador da mesma forma que no lado do codificador.
[064] De acordo com outra variante da segunda modalidade, o limite de tamanho máximo e/ou mínimo é determinado para cada fatia, em função da camada temporal da fatia considerada. A camada temporal corresponde à camada de escalabilidade temporal em um vídeo que é codificado de acordo com a estrutura de quadro B hierárquica mostrada na Figura 11.
[065] A Figura 12 ilustra uma modalidade de um método para calcular a frequência de uso de bloco grande e/ou pequeno em uma fatia em uma dada camada temporal. O método compreende a contagem do número total de blocos na fatia considerada e do número total de blocos grandes e/ou pequenos na fatia. Por bloco grande, entende-se um bloco que é maior do que ou igual a um determinado limite (por exemplo, 48) em largura ou altura. Por bloco pequeno, entende-se um bloco que é menor do que ou igual a um determinado limite (por exemplo, 12) em largura ou altura. Portanto, uma CU de tamanho 48x4 é considerada aqui um grande bloco. Além disso, uma CU do lado 12x32 é considerado o tamanho pequeno aqui. Essa taxa de uso de bloco grande/pequeno é computada no lado do codificador. De acordo com uma variante da segunda modalidade, a taxa de uso de bloco grande/pequeno é também computada no lado do decodificador. Observe que, no lado do codificador, o método da Figura 12 é executado para cada fatia, uma vez que a fatia é codificada.
[066] Com base na frequência computada de bloco grande/pequeno em fatias já codificadas em uma dada camada temporal, o codificador determina o tamanho máximo e/ou mínimo de bloco para o qual o particionamento binário assimétrico é permitido. Esse processo é mostrado na Figura 13. Esses tamanhos de bloco máximo e mínimo são respectivamente indicados maxABTSize e minABTSize.
[067] De acordo com uma modalidade, o método compreende, para uma determinada fatia, com a camada temporal TLayer, que deve ser codificada, testar se uma fatia anterior foi codificada no período Intra atual, na camada temporal atual. Isso é determinado testando se o número de blocos codificados numBlock[TLayer] é estritamente maior que zero. Nesse caso, a frequência de uso de blocos grandes na fatia anterior na mesma camada temporal é comparada a um limiar (tipicamente 25%).
Se for inferior ao limite, então uma restrição é colocada no valor maxABTSize.
Tipicamente, esse valor é definido como 32 nesse caso. Isso impedirá o uso de ABT em blocos de tamanho 64 ou mais altos na próxima fatia para processar.
[068] Da mesma forma, a frequência de uso de blocos pequenos na fatia anterior na mesma camada temporal é comparada a um limiar (medido 25%). Se for menor do que o limite, então, uma restrição é colocada no valor minABTSize.
Tipicamente, esse valor é definido como 16 nesse caso. Isso impedirá o uso de ABT em blocos de tamanho 12 ou inferior na próxima fatia a processar.
[069] De acordo com uma modalidade, os métodos da Figura 12 e da Figura 13 apenas ocorrem no lado do codificador. Nesse caso, as grandezas maxABTSize e/ou minABTSize são sinalizadas no fluxo de bits, para que o decodificador saiba em quais tamanhos de bloco o particionamento de ABT é permitido ou não.
[070] De acordo com uma modalidade, os métodos da Figura 12 e da Figura 13 ocorrem apenas no lado do codificador, mas nenhuma grandeza maxABTSize e/ou minABTSize é sinalizada no fluxo de bits. Nesse caso, é utilizada a sintaxe de separação usual de CU, independentemente da frequência de utilização de ABT em fatias anteriores na sequência e camada temporal consideradas.
[071] De acordo com uma modalidade, os métodos da Figura 12 e da Figura 13 ocorrem tanto no lado do codificador quanto do decodificador, e o método realizado no decodificador é idêntico ao método realizado no lado do codificador. Nesse caso, a sinalização de maxABTSize e/ou minABTSize no cabeçalho de fatia pode ser evitada, economizando alguns bits.
[072] A Figura 14, Figura 15 e Figura 16 mostram métodos exemplificativos não limitantes que podem ser usados, tanto no lado do codificador quanto no lado do decodificador, de forma idêntica em ambos os lados, para limitar o uso de modos de particionamento de ABT. Esses métodos levam em consideração a largura e altura de uma CU sendo processada, e as restrições previamente calculadas maxABTSize e minABTSize.
[073] No método da Figura 14, todos os modos de particionamento de ABT são vetados se pelo menos uma da largura e altura da CU exceder maxABTSize ou tiver um valor menor que minABTSize, enquanto na variante da Figura 15, os modos de particionamento de ABT são vetados se a largura e a altura da CU excederem maxABTSize ou tiverem um valor inferior a minABTSize. A variante da Figura 16 permite vetar separadamente os modos de separação de ABT vertical ou horizontal.
[074] Os métodos divulgados acima usados para habilitar ou desabilitar o uso de particionamento de ABT em algum tamanho de bloco reduzem vantajosamente o número de modos de divisão sendo avaliados durante o processo de otimização de distorção de taxa, tornando-o mais rápido. Além disso, essa aceleração do codificador vem com uma perda muito limitada na eficiência de codificação.
Novas heurísticas para pesquisa de distorção de taxa rápida da árvore de codificação
[075] Esta seção apresenta um método adicional de aceleração de codificador no que diz respeito à seleção dos modos de separação binária assimétrica HOR_UP,…, VER_RIGHT, durante a busca de distorção de taxa da árvore de codificação no lado do codificador.
[076] Esse método compreende a desativação dos modos de separação de ABT caso os modos de separação já testados (QT_SPLIT, HOR, VER) levem a uma melhor CU, que está no modo pular e não é particionada em sub-CUs. Nesse caso, e se o modo de separação binária simétrica VER de HOR tiver sido testado, então os modos de separação de ABT não são avaliados para a CU atual.
[077] Além disso, se o modo de separação simétrica binária horizontal HOR tiver sido testado e se a melhor CU encontrada até agora não for particionada e tiver resíduo nulo, então os modos de separação assimétrica horizontal HOR_UP e HOR_DOWN são desativados.
[078] Da mesma forma, se o modo de separação simétrica binária vertical VER tiver sido testado e se a melhor CU encontrada até agora não for particionada e tiver resíduo nulo, então os modos de separação assimétrica vertical VER_LEFT e VER_RIGHT são desativados.
Suporte para ABT com apenas tamanhos de transformação iguais a uma potência de 2
[079] A separação de árvore binária assimétrica, da forma que foi proposta anteriormente, introduz tamanhos de transformação adicionais para o projeto QTBT.
Para evitar o aumento do número de transformações que não são suportadas no projeto do decodificador, é necessário processar a transformação residual, quantização e codificação por entropia sobre um tamanho de bloco igual a uma potência de 2 em largura e altura.
[080] Pelo menos uma modalidade propõe métodos para separar uma unidade de codificação com um tamanho igual a um múltiplo de 3 em largura ou altura, em unidades de transformação com um tamanho igual a uma potência de 2. vários arranjos de unidades de transformação dentro da CU são divulgados, e correspondem às modalidades propostas.
[081] De acordo com uma primeira modalidade mostrada na Figura 17, uma CU de origem com um tamanho de referência normalizado para “1” é separado de acordo com um modo de separação assimétrica HOR_UP em duas sub-CUs menores (a seguir, também simplesmente referidas como CUs). O exemplo mostrado é baseado no modo HOR_UP, entretanto, o mesmo método pode ser aplicado para os outros modos de separação assimétrica.
[082] Devido à separação assimétrica, uma das duas CUs tem um tamanho que é um múltiplo de 3 em largura ou altura, no exemplo mostrado, a CU inferior. A CU com um tamanho sendo um múltiplo de 3 em largura ou altura é separada em duas TUs (Unidades de Transformação) com razão de separação (1/3,2/3) em comparação com a CU, portanto com tamanho relativo ¼ e ½ em relação à CU de origem. Assim, isso leva a duas TUs com tamanhos iguais a uma potência de 2. Como mostrado na Figura 17, a menor TU é, neste caso, na primeira posição, a maior TU na segunda posição. De acordo com outra modalidade ilustrada na Figura 18, as razões de separação entre a CU e as TUs é (2/3,1/3), o que significa que as maiores TUs aparecem primeiro na CU considerada.
[083] De acordo com uma terceira modalidade, a CU é separada em três TUs com tamanho relativo (1/3,1/3,1/3) em comparação com a CU considerada. Isso é mostrado na Figura 19. Esta terceira modalidade pode ser relevante para intra-CUs, porque, como no HEVC, quando uma CU é separada em TUs, então, a intrapredição é realizada em uma base de TU para TU. Isso significa que uma dada TU é primeiro codificada e reconstruída antes da intrapredição da TU que segue na CU considerada.
Dessa forma, essa separação em três TU de tamanho pequeno pode ser útil para garantir uma boa intrapredição, que apresenta melhor desempenho uma vez que o tamanho de bloco predito é menor.
[084] De acordo com uma quarta modalidade, o particionamento em unidades de transformação é organizado de forma que o particionamento de bloco geral resultante emula o particionamento de Árvore Tripla do ponto de vista da topologia.
Isso é ilustrado na Figura 20. Para tanto, o método compreende as seguintes etapas:  Obter os um ou dois modos de separação assimétrica que levaram à atual CU com tamanho igual a um múltiplo de 3 em largura e/ou altura.
 Para cada modo de separação assimétrica obtido na etapa anterior, dividir a CU atual em duas TUs, de acordo com o modo assimétrico que é o modo oposto ao modo de separação assimétrica obtido. Vários casos desta modalidade são ilustrados na Figura 20. Portanto, se a separação de CU assimétrica considerada era (1/4,3/4), então, a separação de TU é realizada com a razão (2/3,1/3). Além disso, se a separação de CU assimétrica era (3/4,1/4), então a separação de TU é (1/3,2/3).
 Além disso, no caso de uma CU cujo tamanho é um múltiplo de 3 em largura E altura, na modalidade da Figura 20, a CU está sendo dividida em 4 Unidades de Transformação.
[085] De acordo com outra modalidade, a separação de TU (1/3,1/3,1/3) é usada apenas na CU Intra.
[086] De acordo com em outra modalidade, a separação de TU de uma CU Intra depende da direção de intrapredição. É escolhida de tal forma que a menor TU está localizada mais próxima das amostras de referência que o usuário usou para intrapredizer a CU considerada.
[087] De acordo com outra modalidade, a separação de TU de uma CU Intra é derivada da direção de intrapredição. É escolhida de tal forma que a maior TU é localizada mais próxima das amostras de referência usadas para intrapredizer a CU considerada.
[088] De acordo com outra modalidade, a separação de TU com custo mínimo de distorção de taxa é escolhida e está sendo sinalizada no fluxo de bits.
[089] De acordo com outra modalidade, no caso da predição de a TU atual precisar de alguns parâmetros de predição derivados de algumas informações circundantes em torno da CU considerada, então a derivação desses parâmetros de predição é realizada em uma base de TU para TU. Esta modalidade tipicamente diz respeito à intrapredição com base no modelo linear de componente cruzado (conhecida como modo LM), ou à interpredição de bases de correspondência de modelos.
[090] Observe que o conceito de separar uma CU, cujo tamanho é uma não potência de 2 em largura ou altura, em unidades de transformação com um tamanho igual a uma potência de 2, pode não estar restrito ao caso ABT com razões de separação de CU (1/4,3/4). Pode ser aplicável a alguns outros casos de separação de árvore binária assimétrica. Por exemplo, a separação binária assimétrica de uma CU pode consistir em separar uma CU em largura ou altura com razões de separação iguais a 3/8 e 5/8. Nesse caso, duas sub-CU com respectivos tamanhos iguais a 3 ∙ 2n e 5 ∙ 2n resultam desta separação. Então, essas 2 Tus podem ser separadas em unidades de transformação, na mesma orientação que a separação de CU binária assimétrica acima. A primeira sub-UC pode ser dividida em duas TU com razões de separação 1/3 e 2/3 na orientação. A segunda sub-CU pode ser dividida em duas TU com razões de separação 3/5 e 2/5.
Modalidades e Informações Adicionais
[091] Este documento descreve uma variedade de aspectos, incluindo ferramentas, recursos, modalidades, modelos, abordagens etc. Muitos desses aspectos são descritos com especificidade e, pelo menos para mostrar as características individuais, são frequentemente descritos de uma maneira que pode soar limitante. No entanto, isso é para efeitos de clareza na descrição, e não limita a aplicação ou escopo desses aspectos. Na verdade, todos os diferentes aspectos podem ser combinados e intercambiados para fornecer outros aspectos. Além disso, os aspectos podem ser também combinados e intercambiados com aspectos descritos em registros anteriores.
[092] Os aspectos descritos e contemplados neste documento podem ser implementados de muitas formas diferentes. As Figuras 21, 22 e 23 abaixo fornecem algumas modalidades, mas outras modalidades são contempladas e a discussão das figuras 21, 22 e 23 não limita a amplitude das implementações. Pelo menos um dos aspectos geralmente se refere à codificação e decodificação de vídeo, e pelo menos um outro aspecto geralmente se refere à transmissão de um fluxo de bits gerado ou codificado. Esses e outros aspectos podem ser implementados como um método, um aparelho, um meio de armazenamento legível por computador tendo nele armazenadas instruções para codificar ou decodificar dados de vídeo de acordo com qualquer um dos métodos descritos, e/ou um meio de armazenamento legível por computador tendo nele armazenado um fluxo de bits gerado de acordo com qualquer um dos métodos descritos.
[093] No presente pedido, os termos “reconstruído” e “decodificado” podem ser usados indistintamente, os termos “pixel” e “amostra” podem ser usados indistintamente, os termos “imagem”, “quadro” e “frame” podem ser usados indistintamente. Normalmente, mas não necessariamente, o termo “reconstruído” é usado no lado do codificador, enquanto “decodificado” é usado no lado do decodificador.
[094] Vários métodos são descritos neste documento, e cada um dos métodos compreende uma ou mais etapas ou ações para alcançar o método descrito. A menos que uma ordem específica de etapas ou ações seja necessária para a operação adequada do método, a ordem e/ou o uso de etapas e/ou ações específicas podem ser modificados ou combinados.
[095] Vários métodos e outros aspectos descritos neste documento podem ser usados para modificar módulos, por exemplo, os módulos de particionamento de imagem, transformação/transformação inversa, intrapredição, codificação por entropia e/ou decodificação (102, 235, 125, 250, 160 , 260, 145, 230), de um codificador 100 e decodificador 200 de vídeo como mostrado na Figura 21 e a Figura 22. Além disso, os presentes aspectos não se limitam a VVC ou HEVC, e podem ser aplicados, por exemplo, a outros padrões e recomendações, sejam preexistentes ou desenvolvidos no futuro, e extensões de quaisquer desses padrões e recomendações (incluindo VVC e HEVC). Salvo indicação em contrário, ou tecnicamente impedido, os aspectos descritos neste documento podem ser utilizados individualmente ou em combinação.
[096] Vários valores numéricos são usados no presente documento, por exemplo, para maxABTSize ou MinABTsize. Os valores específicos são para fins de exemplo e os aspectos descritos não se limitam a esses valores específicos.
[097] A Figura 21 ilustra um codificador 100. Variações desse codificador 100 são contempladas, mas o codificador 100 é descrito abaixo para fins de clareza sem descrever todas as variações esperadas.
[098] Antes de ser codificada, a sequência de vídeo pode passar por processamento de pré-codificação (101), por exemplo, aplicando uma transformação de cor ao quadro de cor de entrada (por exemplo, conversão de RGB 4:4:4 para YCbCr 4:2:0), ou realizando um remapeamento dos componentes de quadro de entrada para obter uma distribuição de sinal mais resiliente à compressão (por exemplo, usando uma equalização de histograma de um dos componentes de cor).
Os metadados podem ser associados ao pré-processamento, e anexados ao fluxo de bits.
[099] No codificador 100, um quadro é codificado pelos elementos de codificador como descrito abaixo. O quadro a ser codificado é particionado (102) e processado em unidades de, por exemplo, CUs. Cada unidade é codificada usando, por exemplo, um modo intra ou inter. Quando uma unidade é codificada em um modo intra, ela realiza intrapredição (160). Em um modo inter, a estimativa de movimento (175) e a compensação (170) são realizadas. O codificador decide (105) qual do modo intra ou modo inter usar para codificar a unidade, e indica a decisão intra/inter, por exemplo, por um indicador de modo de predição. Residuais de predição são calculados, por exemplo, subtraindo (110) o bloco predito do bloco de imagem original.
[0100] Os residuais de predição são então transformados (125) e quantizados (130). Os coeficientes de transformação quantizados, assim como vetores de movimento e outros elementos de sintaxe, são codificadores por entropia (145) para emitir um fluxo de bits. O codificador pode pular a transformação e aplicar a quantização diretamente ao sinal residual não transformado. O codificador pode ignorar tanto a transformação quanto a quantização, ou seja, o resíduo é codificado diretamente sem a aplicação dos processos de transformação ou quantização.
[0101] O codificador decodifica um bloco codificado para fornecer uma referência para predições adicionais. Os coeficientes de transformação quantizados são desquantizados (140) e inversamente transformados (150) para decodificar residuais de predição. Combinando (155) os resíduos de predição decodificados e o bloco predito, um bloco de imagem é reconstruído. Filtros em loop (165) são aplicados ao quadro reconstruído para realizar, por exemplo, filtragem de desbloqueio/SAO (Desvio Adaptativo de Amostra) para reduzir artefatos de codificação. A imagem filtrada é armazenada em um buffer de quadro de referência (180).
[0102] A Figura 22 ilustra um diagrama de blocos de um decodificador de vídeo 200. No decodificador 200, um fluxo de bits é decodificado pelos elementos de decodificador, como descrito abaixo. O decodificador de vídeo 200 geralmente executa uma passagem de decodificação recíproca à passagem de codificação, conforme descrito na Figura 21. O codificador 100 também geralmente executa decodificação de vídeo como parte de codificação de dados de vídeo.
[0103] Em particular, a entrada do decodificador inclui um fluxo de bits de vídeo, que pode ser gerado pelo codificador de vídeo 100. O fluxo de bits é primeiramente decodificado por entropia (230) para obter coeficientes de transformação, vetores de movimento, e outras informações codificadas. As informações de partição de quadro indicam como o quadro é particionado. O decodificador pode, portanto, dividir (235) o quadro de acordo com as informações de particionamento de quadro decodificadas. Os coeficientes de transformação são desquantizados (240) e inversamente transformados (250) para decodificar os resíduos de predição. Combinando (255) os resíduos de predição decodificados e o bloco predito, um bloco de imagem é reconstruído. O bloco predito pode ser obtido (270) de intrapredição (260) ou predição compensada por movimento (ou seja, interpredição) (275). Filtros em loop (265) são aplicados à imagem reconstruída. A imagem filtrada é armazenada em um buffer de quadro de referência (280).
[0104] O quadro decodificado pode ainda ir por meio de processamento pós- decodificação (285), por exemplo, uma transformação de cor inversa (por exemplo, conversão de YCbCr 4:2:0 em RGB 4:4:4) ou um remapeamento inverso realizando o inverso do processo de remapeamento realizado no processamento de pré- codificação (101). O processamento pós-decodificação pode utilizar metadados derivados no processamento de pré-codificação e sinalizados no fluxo de bits.
[0105] A Figura 23 ilustra um diagrama de blocos de um exemplo de um sistema em que vários aspectos e modalidades são implementados. O sistema 1000 pode ser incorporado como um dispositivo incluindo os vários componentes descritos abaixo e é configurado para realizar um ou mais dos aspectos descritos neste documento. Exemplos de tais dispositivos incluem, mas sem limitação, vários dispositivos eletrônicos, tais como computadores pessoais, laptops, smartphones, tablets, decodificadores multimídia digitais, receptores de televisão digital, sistemas de gravação de vídeo pessoal, eletrodomésticos conectados e servidores. Os elementos do sistema 1000, individualmente ou em combinação, podem ser incorporados em um único circuito integrado, vários ICs e/ou componentes discretos.
Por exemplo, em pelo menos uma modalidade, os elementos de processamento e codificador/decodificador do sistema 1000 são distribuídos em vários ICs e/ou componentes discretos. Em várias modalidades, o sistema 1000 é comunicativamente acoplado a outros sistemas semelhantes, ou a outros dispositivos eletrônicos, por meio de, por exemplo, um barramento de comunicações ou por meio de portas de entrada e/ou saída dedicadas. Em várias modalidades, o sistema 1000 é configurado para implementar um ou mais dos aspectos descritos neste documento.
[0106] O sistema 1000 inclui pelo menos um processador 1010 configurado para executar as instruções nele carregadas para implementar, por exemplo, os vários aspectos descritos neste documento. O processador 1010 pode incluir memória embutida, interface de entrada e saída e vários outros circuitos, conforme conhecido na técnica. O sistema 1000 inclui pelo menos uma memória 1020 (por exemplo, um dispositivo de memória volátil e/ou um dispositivo de memória não volátil). O Sistema 1000 inclui um dispositivo de armazenamento 1040, que pode incluir memória não volátil e/ou memória volátil, incluindo, mas sem limitação, EEPROM, ROM, PROM, RAM, DRAM, SRAM, flash, unidade de disco magnético e/ou unidade de disco óptico.
O dispositivo de armazenamento 1040 pode incluir um dispositivo de armazenamento interno, um dispositivo de armazenamento acoplado e/ou um dispositivo de armazenamento acessível em rede, como exemplos não limitantes.
[0107] O sistema 1000 inclui um módulo de codificador/decodificador 1030 configurado, por exemplo, para processar dados para fornecer um vídeo codificado ou decodificado, e o módulo de codificador/decodificador 1030 pode incluir seu próprio processador e memória. O módulo de codificador/decodificador 1030 representa módulo(s) que pode(m) ser incluído(s) em um dispositivo para executar as funções de codificação e/ou decodificação. Como se sabe, um dispositivo pode incluir um ou ambos os módulos de codificação e decodificação. Além disso, o módulo de codificador/decodificador 1030 pode ser implementado como um elemento separado do sistema 1000 ou pode ser incorporado dentro do processador 1010 como uma combinação de hardware e software, como conhecido pelos versados na técnica.
[0108] O código de programa a ser carregado no processador 1010 ou codificador/decodificador 1030 para realizar os vários aspectos descritos neste documento pode ser armazenado no dispositivo de armazenamento 1040 e subsequentemente carregado na memória 1020 para execução pelo processador
1010. De acordo com várias modalidades, um ou mais de processador 1010, memória 1020, dispositivo de armazenamento 1040, e módulo de codificador/decodificador 1030 pode armazenar um ou mais de vários itens durante a execução dos processos descritos neste documento. Esses itens armazenados podem incluir, mas sem limitação, o vídeo de entrada, o vídeo decodificado ou porções do vídeo decodificado, o fluxo de bits, matrizes, variáveis e resultados intermediários ou finais do processamento de equações, fórmulas, operações e lógica operacional.
[0109] Em várias modalidades, a memória dentro do processador 1010 e/ou o módulo de codificador/decodificador 1030 é usado para armazenar instruções e para fornecer memória de trabalho para processamento que é necessário durante a codificação ou decodificação. Em outras modalidades, no entanto, uma memória externa ao dispositivo de processamento (por exemplo, o dispositivo de processamento pode ser o processador 1010 ou o módulo de codificador/decodificador 1030) é usada para uma ou mais dessas funções. A memória externa pode ser a memória 1020 e/ou o dispositivo de armazenamento 1040, por exemplo, uma memória volátil dinâmica e/ou uma memória flash não volátil.
Em várias modalidades, uma memória flash não volátil externa é usada para armazenar o sistema operacional de uma televisão. Em pelo menos uma modalidade, uma memória volátil dinâmica externa rápida, tal como uma RAM, é usada como memória de trabalho para operações de codificação e decodificação de vídeo, tal como para MPEG-2, HEVC ou VVC (Codificação de Vídeo Versátil).
[0110] A entrada para os elementos do sistema 1000 pode ser fornecida por meio de vários dispositivos de entrada, conforme indicado no bloco 1130. Tais dispositivos de entrada incluem, mas sem limitação, (i) uma porção de RF que recebe um sinal de RF transmitido, por exemplo, pelo ar por um radiotransmisssor, (ii) um terminal de entrada composto, (iii) um terminal de entrada USB e/ou (iv) um terminal de entrada HDMI.
[0111] Em várias modalidades, os dispositivos de entrada de bloco 1130 têm associados respectivos elementos de processamento de entrada, conforme conhecido na técnica. Por exemplo, a porção de RF pode ser associada a elementos necessários para (i) selecionar uma frequência desejada (também referido como selecionar um sinal, ou limitar por banda um sinal para uma banda de frequências), (ii) converter descendentemente o sinal selecionado, (iii) limitar por banda novamente para uma banda mais estreita de frequências para selecionar (por exemplo) uma banda de frequência de sinal que pode ser referida como um canal em certas modalidades, (iv) demodular o sinal de limitado por banda e convertido descendentemente, (v) realizar correção de erros e (vi) demultiplexar para selecionar o fluxo de pacotes de dados desejado. A porção de RF de várias modalidades inclui um ou mais elementos para executar essas funções, por exemplo, seletores de frequência, seletores de sinal, limitadores de banda, seletores de canal, filtros,
conversores descendentes, demoduladores, corretores de erro, e demultiplexadores.
A porção de RF pode incluir um sintonizador que executa várias dessas funções, incluindo, por exemplo, conversão descendente do sinal recebido para uma frequência inferior (por exemplo, uma frequência intermediária ou uma frequência de banda de base próxima) ou para a banda base. Em uma modalidade de conversor, a porção de RF e seu elemento de processamento de entrada associado recebe um sinal de RF transmitido através de um meio com fio (por exemplo, cabo), e realiza seleção de frequência por filtragem, conversão descendente e filtragem novamente para uma banda de frequência desejada. Várias modalidades reorganizam a ordem dos elementos descritos acima (e outros), removem alguns desses elementos e/ou adicionam outros elementos que desempenham funções semelhantes ou diferentes.
Adicionar elementos pode incluir inserir elementos entre elementos existentes, por exemplo, inserindo amplificadores e um conversor analógico-digital. Em várias modalidades, a porção de RF inclui uma antena.
[0112] Além disso, os terminais de USB e/ou HDMI podem incluir respectivos processadores de interface para conectar o sistema 1000 a outros dispositivos eletrônicos através de conexões USB e/ou HDMI. Deve ser entendido que vários aspectos de processamento de entrada, por exemplo, correção de erro Reed- Solomon, podem ser implementados, por exemplo, dentro de um IC de processamento de entrada separado ou dentro do processador 1010, conforme necessário. Da mesma forma, aspectos de processamento de interface USB ou HDMI podem ser implementados dentro de ICs de interface separados ou dentro do processador 1010, conforme necessário. O fluxo demodulado, corrigido para erro e demultiplexado é fornecido a vários elementos de processamento, incluindo, por exemplo, o processador 1010, codificador/decodificador 1030 operando em combinação com a memória e elementos de armazenamento para processar o fluxo de dados conforme necessário para apresentação em um dispositivo de saída .
[0113] Vários elementos do sistema 1000 podem ser fornecidos dentro de um invólucro integrado, dentro do invólucro integrado, os vários elementos podem ser interconectados e transmitir dados entre eles usando arranjo de conexão adequado 1140, por exemplo, um barramento interno, como conhecido na técnica, incluindo o barramento I2C, fiação e placas de circuito impresso.
[0114] O sistema 1000 inclui interface de comunicação 1050 que permite a comunicação com outros dispositivos através do canal de comunicação 1060. A interface de comunicação 1050 pode incluir, mas sem limitação, um transceptor configurado para transmitir e para receber dados através do canal de comunicação
1060. A interface de comunicação 1050 pode incluir, mas sem limitação, um modem ou placa de rede, e o canal de comunicação 1060 pode ser implementado, por exemplo, dentro de um meio com fio e/ou sem fio.
[0115] Os dados são transmitidos em fluxo contínuo ao sistema 1000, em várias modalidades, usando uma rede Wi-Fi, tal como IEEE 802.11. O sinal Wi-Fi dessas modalidades é recebido através do canal de comunicação 1060 e da interface de comunicação 1050, que são adaptados para comunicações Wi-Fi. O canal de comunicação 1060 dessas modalidades é tipicamente conectado a um ponto de acesso ou roteador que oferece acesso a redes externas, incluindo a Internet para permitir aplicativos de transmissão em fluxo contínuo e outras comunicações over-the- top. Outras modalidades fornecem dados transmitidos em fluxo ao sistema 1000 usando um decodificador que entrega os dados pela conexão HDMI do bloco de entrada 1130. Ainda outras modalidades fornecem dados transmitidos em fluxo contínuo ao sistema 1000 usando a conexão RF do bloco de entrada 1130.
[0116] O sistema 1000 pode fornecer um sinal de saída a vários dispositivos de saída, incluindo um visor 1100, alto-falantes 1110 e outros dispositivos periféricos
1120. Os outros dispositivos periféricos 1120 incluem, em vários exemplos de modalidades, um ou mais de um DVR autônomo, um reprodutor de disco, um sistema estéreo, um sistema de iluminação e outros dispositivos que fornecem uma função com base na saída do sistema 1000. Em várias modalidades, os sinais de controle são comunicados entre o sistema 1000 e o visor 1100, alto-falantes 1110, ou outros dispositivos periféricos 1120 usando sinalização, tal como AV.Link, CEC, ou outros protocolos de comunicação que permitem o controle dispositivo a dispositivo sem intervenção do usuário. Os dispositivos de saída podem ser comunicativamente acoplados ao sistema 1000 por meio de conexões dedicadas através das respectivas interfaces 1070, 1080 e 1090. Alternativamente, os dispositivos de saída podem ser conectados ao sistema 1000 usando o canal de comunicação 1060 por meio da interface de comunicação 1050. O visor 1100 e os alto-falantes 1110 podem ser integrados em uma única unidade com os outros componentes do sistema 1000 em um dispositivo eletrônico, por exemplo, uma televisão. Em várias modalidades, a interface de exibição 1070 inclui uma unidade de exibição, por exemplo, um chip controlador de temporização (TCon).
[0117] O visor 1100 e o alto-falante 1110 podem, alternativamente, ser separados de um ou mais dos outros componentes, por exemplo, se a porção de RF de entrada 1130 for parte de um decodificador separado. Em várias modalidades em que os visores 1100 e alto-falantes 1110 são componentes externos, o sinal de saída pode ser fornecido através de conexões de saída dedicadas, incluindo, por exemplo, portas HDMI, portas USB, ou saídas COMP.
[0118] As modalidades podem ser realizadas por software de computador implementado pelo processador 1010 ou por hardware, ou por uma combinação de hardware e software. Como exemplo não limitante, as modalidades podem ser implementadas por um ou mais circuitos integrados. A memória 1020 pode ser de qualquer tipo adequado ao ambiente técnico e pode ser implementada usando qualquer tecnologia de armazenamento de dados apropriada, tais como dispositivos de memória óptica, dispositivos de memória magnética, dispositivos de memória baseada em semicondutores, memória fixa, e memória removível, como exemplos não limitantes. O processador 1010 pode ser de qualquer tipo adequado ao ambiente técnico, podendo abranger um ou mais microprocessadores, computadores de uso geral, computadores de propósito especial e processadores com base em arquitetura multi-core, como exemplos não limitantes.
[0119] A Figura 24 ilustra um método de codificação exemplificativo 1200 de acordo com um aspecto geral de pelo menos uma modalidade. Um bloco de um quadro do vídeo a ser codificado é acessado. Na etapa 1210, conforme descrito acima, o bloco é particionado em partições de bloco, em que pelo menos uma partição de bloco tem um tamanho igual a um número inteiro positivo diferente de uma potência de 2 em largura e/ou altura, em particular um múltiplo de 3 em largura e/ou altura. Na etapa 1220, um resíduo é gerado por predição das partições do bloco, em particular por intra- ou interpredição, e subtraindo a predição das partições do bloco. Na etapa 1230, o resíduo gerado é separado em pelo menos dois blocos residuais com um tamanho igual a uma potência de 2 em largura e altura. Na etapa 1240, os pelo menos dois blocos residuais são transformados por uma transformação de bloco bidimensional em coeficientes de transformação, os coeficientes de transformação são quantizados e codificados por entropia. O método acima pode se repetir até que todos os blocos no quadro tendo um tamanho igual a um múltiplo de 3 em largura e/ou altura tenham sido codificados.
[0120] O método de decodificação irá, em certa medida, realizar as operações na ordem oposta e fazer operações “inversas”, como mostrado na Figura 25, que ilustra um método de decodificação exemplificativo 1300 de acordo com um aspecto geral de pelo menos uma modalidade. Na etapa 1310, um fluxo de bits compreendendo coeficientes de transformação quantizados, bem como vetores de movimento e outros elementos de sintaxe são recebidos, por exemplo, através do bloco de entrada 1130 do sistema 1000 ilustrado na Figura 23. Os coeficientes de transformação quantizados são decodificados por entropia, dequantizados e inversamente transformados na etapa 1320 para obter blocos residuais com um tamanho igual a uma potência de 2 em largura e altura. Pelo menos dois blocos residuais são unidos na etapa 1330 para reconstruir um resíduo para uma partição de bloco tendo um tamanho igual a um número inteiro positivo diferente de uma potência de 2 em largura e/ou altura, em particular um múltiplo de 3 em largura e/ou altura.
Finalmente, por predição das partições de bloco e combinação dos resíduos com as partições de bloco preditas na etapa 1340, um bloco do quadro é reconstruído.
[0121] O acima apresenta um método de decodificação e codificação simplificado para fornecer uma compreensão básica de alguns aspectos das modalidades do objeto. Como tal, a etapa de codificação e decodificação não está limitada às subetapas descritas acima. Características, variantes e vantagens adicionais da presente divulgação se tornarão aparentes a partir da seguinte descrição detalhada de modalidades ilustrativas.
[0122] Várias implementações envolvem decodificação. “Decodificação”, como usado neste pedido, pode abranger todos ou parte dos processos realizados, por exemplo, em uma sequência codificada recebida, a fim de produzir uma saída final adequada para exibição. Em várias modalidades, tais processos incluem um ou mais dos processos tipicamente realizados por um decodificador, por exemplo, decodificação por entropia, quantização inversa, transformação inversa e decodificação diferencial. Em várias modalidades, tais processos também, ou alternativamente, incluem processos realizados por um decodificador de várias implementações descritas neste pedido, por exemplo, extrair um quadro de um quadro em mosaico (empacotado), determinar parâmetros para particionamento de Árvore Binária Assimétrica e, em seguida, determinar modo de divisão de quadro de acordo com os parâmetros determinados para ABT.
[0123] Como exemplos adicionais, em uma modalidade, “decodificação”
refere-se apenas à decodificação por entropia, em outra modalidade, “decodificação” refere-se apenas à decodificação diferencial, e em outra modalidade “decodificação” refere-se a uma combinação de decodificação por entropia e decodificação diferencial.
Se a frase “processo de decodificação” pretender se referir especificamente a um subconjunto de operações ou geralmente ao processo de decodificação mais amplo, será claro com base no contexto das descrições específicas que se acredita serem bem compreendidas pelos versados na técnica.
[0124] Várias implementações envolvem codificação. De forma análoga à discussão acima sobre “decodificação”, “codificação”, conforme usado neste pedido, pode abranger todos ou parte dos processos realizados, por exemplo, em uma sequência de vídeo de entrada, a fim de produzir um fluxo de bits codificado. Em várias modalidades, tais processos incluem um ou mais dos processos tipicamente realizados por um codificador, por exemplo, particionamento, codificação diferencial, transformação, quantização e codificação por entropia. Em várias modalidades, tais processos também, ou alternativamente, incluem processos realizados por um codificador de várias implementações descritas neste pedido.
[0125] Como exemplos adicionais, em uma modalidade, “codificação” refere- se apenas à codificação por entropia, em outra modalidade “codificação” se refere apenas à codificação diferencial, e em outra modalidade “codificação” se refere a uma combinação de codificação diferencial e codificação por entropia. Se a frase “processo de codificação” pretender se referir especificamente a um subconjunto de operações ou geralmente ao processo de codificação mais amplo, será claro com base no contexto das descrições específicas que se acredita serem bem compreendidas por aqueles versados na técnica.
[0126] Observe que os elementos de sintaxe, conforme usados neste documento, por exemplo, MaxABTsize e/ou MinABTsize, são termos descritivos.
Como tal, eles não impedem o uso de outros nomes de elementos de sintaxe. Outros termos, tais como TCH_LARGE_BLOCK ou TCH_SMALL_BLOCK, podem ser usados.
[0127] Quando a Figura é apresentada como um fluxograma, deve-se entender que ela também oferece um diagrama de blocos de um aparelho correspondente. Da mesma forma, quando uma Figura é apresentada como um diagrama de blocos, deve-se entender que ela também oferece um fluxograma de um método/processo correspondente.
[0128] Várias modalidades se referem à otimização de distorção de taxa. Em particular, durante o processo de codificação, o equilíbrio ou compensação entre a taxa e distorção é normalmente considerado, muitas vezes devido às restrições de complexidade computacional. A otimização de distorção de taxa é geralmente formulada como minimizando uma função de distorção de taxa, que é uma soma ponderada da taxa e da distorção. Existem diferentes abordagens para resolver o problema de otimização de distorção de taxa. Por exemplo, as abordagens podem ser com base em um extenso teste de todas as opções de codificação, incluindo todos os modos considerados ou valores de parâmetros de codificação, com uma avaliação completa de seu custo de codificação e distorção relacionada do sinal reconstruído após codificação e decodificação. Abordagens mais rápidas também podem ser utilizadas, para economizar complexidade de codificação, em particular com cálculo de uma distorção aproximada com base na predição ou um sinal residual de predição, não o reconstruído. A mistura dessas duas abordagens também pode ser usada, tal como usando uma distorção aproximada para apenas algumas das opções de codificação possíveis, e uma distorção completa para outras opções de codificação.
Outras abordagens avaliam apenas um subconjunto das opções de codificação possíveis. Mais geralmente, muitas abordagens empregam qualquer uma de uma variedade de técnicas para realizar a otimização, mas a otimização não é necessariamente uma avaliação completa tanto do custo de codificação quanto da distorção relacionada.
[0129] As implementações e aspectos aqui descritos podem ser implementados, por exemplo, em um método ou um processo, um aparelho, um programa de software, um fluxo de dados, ou um sinal. Mesmo se discutido apenas no contexto de uma única forma de implementação (por exemplo, discutido apenas como um método), a implementação dos recursos discutidos também pode ser implementada em outras formas (por exemplo, um aparelho ou programa). Um aparelho pode ser implementado, por exemplo, em hardware, software e firmware apropriados. Os métodos podem ser implementados, por exemplo, em um processador, que se refere a dispositivos de processamento em geral, incluindo, por exemplo, um computador, um microprocessador, um circuito integrado ou um dispositivo lógico programável. Os processadores também incluem dispositivos de comunicação, tais como, por exemplo, computadores, telefones celulares, assistentes digitais portáteis/pessoais (“PDAs”), e outros dispositivos que facilitam a comunicação de informações entre os usuários finais.
[0130] Referência a “1 modalidade” ou “uma modalidade” ou “1 implementação” ou “uma implementação”, bem como outras variações das mesmas, significa que um determinado recurso, estrutura, característica, e assim por diante, descrito em conexão com a modalidade é incluído em pelo menos uma modalidade.
Assim, as ocorrências da frase “em 1 modalidade” ou “em uma modalidade” ou “em 1 implementação” ou “em uma implementação”, bem como quaisquer outras variações, aparecendo em vários lugares ao longo deste documento não são necessariamente todas referentes à mesma modalidade.
[0131] Além disso, este documento pode se referir a “determinar” várias partes de informações. Determinar as informações pode incluir um ou mais de, por exemplo, estimar as informações, calcular as informações, prever as informações ou recuperar as informações da memória.
[0132] Além disso, este documento pode se referir a “acessar” várias partes de informações. O acesso às informações pode incluir um ou mais de, por exemplo, receber as informações, recuperar as informações (por exemplo, da memória), armazenar as informações, mover as informações, copiar as informações, calcular as informações, determinar as informações, prever as informações, ou estimar as informações.
[0133] Além disso, este documento pode se referir ao “recebimento” de várias partes de informações. Receber é, assim como “acessar”, um termo amplo. O recebimento das informações pode incluir um ou mais de, por exemplo, acessar as informações ou recuperar as informações (por exemplo, da memória). Além disso, “receber” está tipicamente envolvido, de uma forma ou de outra, durante operações, tais como, por exemplo, armazenar as informações, processar as informações, transmitir as informações, mover as informações, copiar as informações, apagar as informações, calcular as informações, determinar as informações, prever as informações, ou estimar as informações.
[0134] Deve ser apreciado que o uso de qualquer um dos seguintes “/”, “e/ou” e “pelo menos um de”, por exemplo, nos casos de “A/B”, “A e/ou B” e “pelo menos um de A e B”, destina-se a abranger a seleção da primeira opção listada (A) apenas, ou a seleção da segunda opção listada (B) apenas, ou a seleção de ambas as opções (A e B).
Como outro exemplo, nos casos de “A, B e/ou C” e “pelo menos um de A, B, e C”, tal frase pretende abranger a seleção da primeira opção listada (A) apenas , ou a seleção da segunda opção listada (B) apenas, ou a seleção da terceira opção listada (C) apenas, ou a seleção da primeira e da segunda opção listada (A e B) apenas, ou a seleção das primeira e terceira opções listadas (A e C) apenas, ou a seleção da segunda e terceira opções listadas (B e C) apenas, ou a seleção de todas as três opções (A e B e C). Isso pode ser estendido, como é claro para alguém com habilidade comum nas técnicas relacionadas, para tantos itens quantos forem listados.
[0135] Além disso, conforme usado neste documento, a palavra “sinal” se refere, entre outras coisas, a indicar algo a um decodificador correspondente. Por exemplo, em certas modalidades, o codificador sinaliza um determinado de uma pluralidade de parâmetros para ABT. Dessa forma, em uma modalidade, o mesmo parâmetro é utilizado tanto no lado do codificador quanto no lado do decodificador.
Assim, por exemplo, um codificador pode transmitir (sinalização explícita) um determinado parâmetro para o decodificador, de forma que o decodificador possa usar o mesmo parâmetro específico. Inversamente, se o decodificador já tiver o parâmetro específico, bem como outros, então a sinalização pode ser usada sem transmissão (sinalização implícita) para simplesmente permitir que o decodificador conheça e selecione o parâmetro específico. Ao evitar a transmissão de quaisquer funções reais, uma economia de bits é realizada em várias modalidades. É importante notar que a sinalização pode ser realizada de várias maneiras. Por exemplo, um ou mais elementos de sintaxe, indicadores, e assim por diante, são usados para sinalizar informações para um decodificador correspondente em várias modalidades. Enquanto o anterior se relaciona à forma verbal da palavra “sinal”, a palavra “sinal” também pode ser usada aqui como um substantivo.
[0136] Como será evidente para um versado na técnica, as implementações podem produzir uma variedade de sinais formatados para transportar informações que podem ser, por exemplo, armazenadas ou transmitidas. As informações podem incluir, por exemplo, instruções para a realização de um método, ou dados produzidos por uma das implementações descritas. Por exemplo, um sinal pode ser formatado para transportar o fluxo de bits de uma modalidade descrita. Esse sinal um pode ser formatado, por exemplo, como uma onda eletromagnética (por exemplo, usando uma porção do espectro de radiofrequência) ou como um sinal de banda de base. A formatação pode incluir, por exemplo, codificar um fluxo de dados e modular uma portadora com o fluxo de dados codificado. As informações que o sinal transporta podem ser, por exemplo, informações analógicas ou digitais. O sinal pode ser transmitido através de uma variedade de diferentes links com ou sem fio, como é conhecido. O sinal pode ser armazenado em um meio legível por processador.
[0137] Descrevemos uma série de modalidades. Essas modalidades fornecem, pelo menos, para as seguintes reivindicações generalizadas, incluindo todas as combinações, em várias categorias e tipos de reivindicações diferentes:  O Particionamento de Árvore Binária Assimétrica é restrito/parametrizado para melhorar a eficiência de compressão no decodificador e/ou codificador.
 O Particionamento de Árvore Binária Assimétrica é responsivo ao tamanho da Unidade de Codificação para processar no decodificador e/ou codificador.
 O Particionamento de Árvore Binária Assimétrica é responsivo ao limite de quadro no decodificador e/ou codificador.
 O Particionamento de Bloco prioriza o modo de separação que maximiza o tamanho interno de bloco para o quadro.
 O Particionamento de Bloco priorizar ABT sobre BT caso o limite de separação coincida com o limite de quadro.
 O Particionamento de Bloco Assimétrico é habilitado/desabilitado no decodificador e/ou codificador.
 A ativação ou desativação do Particionamento de Árvore Binária Assimétrica baseia-se em utilização média de bloco grande/pequeno em fatias já codificadas.
 A ativação ou desativação do Particionamento de Árvore Binária Assimétrica compreende definir um tamanho máximo e/ou mínimo de CU (em largura ou altura), assim determinando uma faixa para a qual o particionamento binário assimétrico é permitido,  A ativação ou desativação do Particionamento de Árvore Binária
Assimétrica é aplicada à fatia não-intra (isto é, fatias Inter P ou B),  Definir um tamanho máximo e/ou mínimo de CU (em largura ou altura), denominado MaxABTsize e/ou MinABTsize, responsivo à utilização média de bloco grande/pequeno em fatias já codificadas,  O tamanho máximo e/ou mínimo de CU em fatias já codificadas é calculado no codificador, codificado no codificador e transmitido ao decodificador/recebido pelo decodificador.
 O tamanho máximo e/ou mínimo de CU em fatias já codificadas é calculado no codificador e no decodificador.
 O tamanho máximo e/ou mínimo de CU em fatias já codificadas é calculado para uma determinada camada temporal.
 O tamanho máximo e/ou mínimo de CU em fatias já codificadas é calculado para uma determinada camada temporal com base em estatística (porcentagem de blocos com tamanho acima do tamanho máximo de CU e/ou abaixo de um tamanho mínimo de CU).
 Inserir na sintaxe de sinalização elementos que permitam ao decodificador identificar um tamanho máximo e/ou mínimo de CU.
 Selecionar, com base nesses elementos de sintaxe, os modos de separação a aplicar no decodificador.
 De acordo com outra modalidade, a separação de TU é adaptada para suportar ABT com apenas potência de dois tamanhos de transformação, em que - (1/3,1/3,1/3) particionamento de CU em Tus - Menor subTU como o primeiro subTU no particionamento - Maior subTU como o primeiro subTU no particionamento - Emulação TT com Tus dentro de um CU múltiplo de 3 - Caso Intra: menor subTU próximo a amostras de referência, que dependem da direção de intrapredição
- Inferir o particionamento de TU de acordo com o modo de codificação da Unidade de Codificação - Escolha otimizada de distorção de taxa entre vários arranjos de subTU, e sinalização associada - No caso de modos de Predição que impliquem a propagação/derivação espacial de parâmetros de predição de um bloco, proceder em uma base TU-a-TU  Um fluxo de bits ou sinal que inclui um ou mais dos elementos de sintaxe descritos, ou variações dos mesmos.
 Inserir na sintaxe de sinalização elementos que permitam ao decodificador adaptar os resíduos de forma correspondente à utilizada por um codificador.
 Criar e/ou transmitir e/ou receber e/ou decodificar um fluxo de bits ou sinal que inclua um ou mais dos elementos de sintaxe descritos, ou variações dos mesmos.
 Uma TV, set-top box, telefone celular, tablet ou outro dispositivo eletrônico que realize particionamento de imagem das imagens de acordo com qualquer uma das modalidades descritas.
 Uma TV, set-top box, telefone celular, tablet, ou outro dispositivo eletrônico que realize particionamento de imagem de acordo com qualquer uma das modalidades descritas, e que exibe (por exemplo, usando um visor, tela ou outro tipo de visor) uma imagem resultante.
 Uma TV, set-top box, telefone celular, tablet ou outro dispositivo eletrônico que sintonize (por exemplo, usando um sintonizador) um canal para receber um sinal incluindo uma imagem codificada, e realize particionamento de imagem de acordo com qualquer uma das modalidades descritas.
 Uma TV, set-top box, telefone celular, tablet ou outro dispositivo eletrônico que recebe (por exemplo, usando uma antena) um sinal pelo ar que inclui uma imagem codificada, e executa particionamento de imagem de acordo com qualquer uma das modalidades descritas.
[0138] Várias outras modalidades e reivindicações generalizadas, bem como particularizadas, também são suportadas e contempladas por meio desta divulgação.

Claims (24)

REIVINDICAÇÕES
1. Método compreendendo decodificar um quadro, CARACTERIZADO pelo fato de que o quadro é dividido em um ou mais blocos de amostras e em que um bloco de amostras é ainda particionado em pelo menos duas partições de bloco, a referida decodificação ainda compreendendo: - receber em um fluxo de bits coeficientes de transformação quantizados.
- decodificar por entropia, desquantizar e realizar transformação inversa dos coeficientes de transformação para obter um resíduo de partições de bloco; e - reconstruir um bloco de amostras com base em uma predição das partições de bloco e do resíduo de partições de bloco, em que pelo menos uma partição de bloco é obtida de um particionamento binário assimétrico usado como separação implícita para um bloco na borda do quadro.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que pelo menos uma partição de bloco tem um tamanho igual a um múltiplo de 3 em largura ou altura.
3. Método, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que realizar transformação inversa dos coeficientes de transformação para obter o resíduo da partição de bloco com um tamanho igual a um múltiplo de 3 em largura ou altura ainda compreende unir pelo menos dois blocos residuais com um tamanho igual a uma potência de 2 em largura e altura no resíduo de partição de bloco.
4. Método, de acordo com a reivindicação 3, CARACTERIZADO pelo fato de que o resíduo de partição de bloco com um tamanho igual a um múltiplo de 3 em largura ou altura é obtido por um de: - unir dois blocos residuais em que um dos blocos residuais tem duas vezes o tamanho do outro bloco residual; - unindo três blocos residuais de igual tamanho; - unir quatro blocos residuais.
5. Método, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que unir três blocos residuais de igual tamanho é apenas usado para uma partição de bloco intrapredita.
6. Método, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que unir a partição de bloco intrapredita depende da direção de intrapredição.
7. Dispositivo, CARACTERIZADO pelo fato de que compreende uma memória e um ou mais processadores configura dos para decodificar um quadro, o quadro sendo dividido em um ou mais blocos de amostras e um bloco de amostras sendo ainda particionado em pelo menos duas partições de bloco, os referidos um ou mais processadores sendo ainda configura dos para: - receber em um fluxo de bits coeficientes de transformação quantizados.
- decodificar por entropia, desquantizar e realizar transformação inversa dos coeficientes de transformação para obter um resíduo de partições de bloco; e - reconstruir um bloco de amostras com base em uma predição das partições de bloco e do resíduo de partições de bloco, em que pelo menos uma partição de bloco é obtida de um particionamento binário assimétrico usado como separação implícita para um bloco na borda do quadro.
8. Dispositivo, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que pelo menos uma partição de bloco tem um tamanho igual a um múltiplo de 3 em largura ou altura.
9. Dispositivo, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que o resíduo de partição de bloco com um tamanho igual a um múltiplo de 3 em largura ou altura é obtido unindo pelo menos dois blocos residuais com um tamanho igual a uma potência de 2 em largura e altura no resíduo de partição de bloco.
10. Dispositivo, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que o resíduo de partição de bloco com um tamanho igual a um múltiplo de 3 em largura ou altura é obtido por um de:
- unir dois blocos residuais em que um dos blocos residuais tem duas vezes o tamanho do outro bloco residual; - unir três blocos residuais de igual tamanho; - unir quatro blocos residuais.
11. Dispositivo, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que unir três blocos residuais de igual tamanho é apenas usado para uma partição de bloco intrapredita.
12. Dispositivo, de acordo com a reivindicação 11, CARACTERIZADO pelo fato de que unir a partição de bloco intrapredita depende da direção de intrapredição.
13. Método compreendendo codificar um quadro, CARACTERIZADO pelo fato de que o quadro é dividido em um ou mais blocos de amostras, a referida codificação ainda compreendendo: - particionar um bloco de amostras em pelo menos duas partições de bloco, em que pelo menos uma partição de bloco é obtida de um particionamento binário assimétrico usado como separação implícita para um bloco na borda do quadro; - obter um resíduo das partições de bloco com base em uma diferença entre uma predição das partições de bloco e as partições de bloco; e - transformar o resíduo das partições de bloco em coeficientes de transformação, quantizar os coeficientes de transformação, e codificar por entropia os coeficientes de transformação quantizados.
14. Método, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que pelo menos uma partição de bloco tem um tamanho igual a um múltiplo de 3 em largura ou altura.
15. Método, de acordo com a reivindicação 14, CARACTERIZADO pelo fato de que transformar o resíduo das partições de bloco em coeficientes de transformação ainda compreende separar o resíduo em pelo menos dois blocos residuais com um tamanho igual a uma potência de 2 em largura e altura.
16. Método, de acordo com a reivindicação 15, CARACTERIZADO pelo fato de que o resíduo da partição de bloco com um tamanho igual a um múltiplo de 3 em largura ou altura é separado em pelo menos dois blocos residuais de acordo com um de: - o resíduo da partição de bloco é separado em dois blocos residuais em que um dos blocos residuais tem duas vezes o tamanho do outro bloco residual; - o resíduo da partição de bloco é separado em dois ou três blocos residuais de igual tamanho; - o resíduo da partição de bloco é separado em quatro blocos residuais.
17. Método, de acordo com a reivindicação 16, CARACTERIZADO pelo fato de que separar a partição de bloco em três blocos residuais de igual tamanho é apenas usado para uma partição de bloco intrapredita.
18. Método, de acordo com a reivindicação 17, CARACTERIZADO pelo fato de que separar partições de bloco intrapreditas depende da direção de intrapredição.
19. Dispositivo compreendendo uma memória e um ou mais processadores configura dos para codificar um quadro, CARACTERIZADO pelo fato de que o quadro é dividido em um ou mais blocos de amostras, os referidos um ou mais processadores sendo ainda configura dos para: - particionar um bloco de amostras em pelo menos duas partições de bloco, em que pelo menos uma partição de bloco é obtida de um particionamento binário assimétrico usado como separação implícita para um bloco na borda do quadro; - obter um resíduo das partições de bloco com base em uma diferença entre uma predição das partições de bloco e as partições de bloco; e - transformar o resíduo das partições de bloco em coeficientes de transformação, quantizar os coeficientes de transformação, e codificar por entropia os coeficientes de transformação quantizados.
20. Dispositivo, de acordo com a reivindicação 19, CARACTERIZADO pelo fato de que pelo menos uma partição de bloco tem um tamanho igual a um múltiplo de 3 em largura ou altura.
21. Dispositivo, de acordo com a reivindicação 20, CARACTERIZADO pelo fato de que o resíduo das partições de bloco é obtido separando o resíduo das partições de bloco em pelo menos dois blocos residuais com um tamanho igual a uma potência de 2 em largura e altura.
22. Dispositivo, de acordo com a reivindicação 21, CARACTERIZADO pelo fato de que o resíduo da partição de bloco com um tamanho igual a um múltiplo de 3 em largura ou altura é separado em pelo menos dois blocos residuais de acordo com um de: - o resíduo da partição de bloco é separado em dois blocos residuais, em que um dos blocos residuais tem duas vezes o tamanho do outro bloco residual; - o resíduo da partição de bloco é separado em dois ou três blocos residuais de igual tamanho; - o resíduo da partição de bloco é separado em quatro blocos residuais.
23. Dispositivo, de acordo com a reivindicação 22, CARACTERIZADO pelo fato de que separar o resíduo da partição de bloco em três blocos residuais de igual tamanho é apenas usado para uma partição de bloco intrapredita.
24. Dispositivo, de acordo com a reivindicação 23, CARACTERIZADO pelo fato de que separar o resíduo de uma partição de bloco intrapredita depende da direção de intrapredição.
BR112020024082-6A 2018-06-18 2019-06-13 método e aparelho para codificar e decodificar vídeo com base em particionamento binário assimétrico de blocos de imagem BR112020024082A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP18305758.7 2018-06-18
EP18305758 2018-06-18
PCT/US2019/036929 WO2019245841A1 (en) 2018-06-18 2019-06-13 Method and apparatus for video encoding and decoding based on asymmetric binary partitioning of image blocks

Publications (1)

Publication Number Publication Date
BR112020024082A2 true BR112020024082A2 (pt) 2021-02-09

Family

ID=62791695

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112020024082-6A BR112020024082A2 (pt) 2018-06-18 2019-06-13 método e aparelho para codificar e decodificar vídeo com base em particionamento binário assimétrico de blocos de imagem

Country Status (6)

Country Link
US (1) US11956430B2 (pt)
EP (1) EP3808083A1 (pt)
KR (1) KR20210020915A (pt)
CN (1) CN112352427B (pt)
BR (1) BR112020024082A2 (pt)
WO (1) WO2019245841A1 (pt)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11983907B2 (en) * 2020-01-09 2024-05-14 Tencent America LLC Techniques and apparatus for explicit quad-tree and binary-tree partitioning for geometry coding
CN113286152B (zh) * 2020-02-20 2023-05-23 腾讯美国有限责任公司 视频解码方法、装置、计算机设备及存储介质
US11363285B2 (en) * 2020-02-20 2022-06-14 Tencent America LLC Block partitioning at picture boundaries
EP4193593A1 (en) * 2020-08-07 2023-06-14 InterDigital VC Holdings France, SAS Combining abt with vvc sub-block-based coding tools
EP4256784A2 (en) * 2020-12-03 2023-10-11 InterDigital CE Patent Holdings, SAS Intra prediction for asymmetric partition
WO2022223312A1 (en) * 2021-04-19 2022-10-27 Interdigital Vc Holdings France, Sas Vvc normative and encoder-side adaptations for abt

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8995778B2 (en) * 2009-12-01 2015-03-31 Humax Holdings Co., Ltd. Method and apparatus for encoding/decoding high resolution images
KR101484280B1 (ko) * 2009-12-08 2015-01-20 삼성전자주식회사 임의적인 파티션을 이용한 움직임 예측에 따른 비디오 부호화 방법 및 장치, 임의적인 파티션을 이용한 움직임 보상에 따른 비디오 복호화 방법 및 장치
US20130163664A1 (en) * 2011-12-22 2013-06-27 Qualcomm Incorporated Unified partition mode table for intra-mode coding
AU2012232972A1 (en) * 2012-09-28 2014-04-17 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the prediction units of a coding unit
US10244253B2 (en) * 2013-09-13 2019-03-26 Qualcomm Incorporated Video coding techniques using asymmetric motion partitioning
WO2015142075A1 (ko) * 2014-03-19 2015-09-24 삼성전자 주식회사 3d 영상에 관련된 블록의 파티션 경계에서 필터링 수행 방법
WO2016090568A1 (en) * 2014-12-10 2016-06-16 Mediatek Singapore Pte. Ltd. Binary tree block partitioning structure
US10212444B2 (en) * 2016-01-15 2019-02-19 Qualcomm Incorporated Multi-type-tree framework for video coding
US11146821B2 (en) * 2016-05-25 2021-10-12 Arris Enterprises Llc JVET coding block structure with asymmetrical partitioning
WO2017219342A1 (en) * 2016-06-24 2017-12-28 Mediatek Inc. Methods of signaling quantization parameter for quad-tree plus binary tree structure
KR101943058B1 (ko) * 2016-06-23 2019-01-29 에스케이텔레콤 주식회사(Sk Telecom Co., Ltd.) 영상 부호화/복호화 방법 및 장치
JP6995760B2 (ja) * 2016-08-26 2022-01-17 シャープ株式会社 画像復号装置
US10609423B2 (en) 2016-09-07 2020-03-31 Qualcomm Incorporated Tree-type coding for video coding
US20180109812A1 (en) * 2016-10-14 2018-04-19 Media Tek Inc. Block partitioning using tree structures
CN110249629A (zh) * 2017-01-31 2019-09-17 夏普株式会社 用于将图片分割成视频块以进行视频码处理的系统和方法
US20180367818A1 (en) * 2017-06-15 2018-12-20 Futurewei Technologies, Inc. Block Partition Structure in Video Compression
CN116527945A (zh) * 2017-07-17 2023-08-01 汉阳大学校产学协力团 影像编码/解码方法及装置
WO2019047763A1 (en) * 2017-09-08 2019-03-14 Mediatek Inc. METHODS AND APPARATUSES FOR PROCESSING IMAGES IN AN IMAGE OR VIDEO ENCODING SYSTEM
CN111492655A (zh) * 2017-12-14 2020-08-04 交互数字Vc控股公司 用于视频压缩的基于纹理的分区决定
WO2019219066A1 (zh) * 2018-05-16 2019-11-21 华为技术有限公司 一种编解码方法及装置
AU2019276189B2 (en) * 2018-05-30 2022-07-28 Huawei Technologies Co., Ltd. Multi-type tree depth extension for picture boundary handling
TWI725456B (zh) * 2018-06-21 2021-04-21 大陸商北京字節跳動網絡技術有限公司 交錯區塊的自動劃分
WO2020003183A1 (en) * 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Partitioning of zero unit
CN113824968A (zh) * 2020-06-18 2021-12-21 富士通株式会社 编码单元划分方法、图像编解码方法和装置
WO2022019613A1 (ko) * 2020-07-20 2022-01-27 한국전자통신연구원 기하학적 분할을 사용하는 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체

Also Published As

Publication number Publication date
KR20210020915A (ko) 2021-02-24
CN112352427B (zh) 2024-04-09
CN112352427A (zh) 2021-02-09
US11956430B2 (en) 2024-04-09
EP3808083A1 (en) 2021-04-21
WO2019245841A1 (en) 2019-12-26
US20210258576A1 (en) 2021-08-19

Similar Documents

Publication Publication Date Title
US11991373B2 (en) Method and device for picture encoding and decoding
BR112020024082A2 (pt) método e aparelho para codificar e decodificar vídeo com base em particionamento binário assimétrico de blocos de imagem
US11936868B2 (en) Quantization for video encoding or decoding based on the surface of a block
JP2022534999A (ja) 暗黙的多重変換選択の変換選択
WO2020102067A1 (en) Virtual pipeline for video encoding and decoding
WO2020005758A1 (en) Wavefront parallel processing of luma and chroma components
KR20220036982A (ko) 비디오 인코딩 및 디코딩을 위한 이차 변환
EP3987785A1 (en) Lossless mode for versatile video coding
BR112021004943A2 (pt) método e dispositivo para codificação e decodificação de imagens
US11909974B2 (en) Chroma quantization parameter adjustment in video encoding and decoding
KR20210058846A (ko) 인트라 변환 코딩 및 광각 인트라 예측의 조화
JP2021528893A (ja) 可変重みを使用する複数参照イントラ予測
KR20220123643A (ko) 삼각형 병합 모드에서의 서브-블록 병합 후보들
WO2020226944A1 (en) Chroma processing for video encoding and decoding
US20230336721A1 (en) Combining abt with vvc sub-block-based coding tools
BR112021007038A2 (pt) método e aparelho para codificação e decodificação de vídeo com sinalização de tipo de codificação ou tipo de árvore de codificação
EP3664450A1 (en) Method and device for picture encoding and decoding
WO2022223312A1 (en) Vvc normative and encoder-side adaptations for abt
EP4070547A1 (en) Scaling process for joint chroma coded blocks

Legal Events

Date Code Title Description
B350 Update of information on the portal [chapter 15.35 patent gazette]