BR112021000667A2 - Método e aparelho de processamento de vídeo em um sistema de codificação de vídeo para codificar ou decodificar imagens de vídeo com uma restrição de partição e meio legível por computador não transitório - Google Patents

Método e aparelho de processamento de vídeo em um sistema de codificação de vídeo para codificar ou decodificar imagens de vídeo com uma restrição de partição e meio legível por computador não transitório Download PDF

Info

Publication number
BR112021000667A2
BR112021000667A2 BR112021000667-2A BR112021000667A BR112021000667A2 BR 112021000667 A2 BR112021000667 A2 BR 112021000667A2 BR 112021000667 A BR112021000667 A BR 112021000667A BR 112021000667 A2 BR112021000667 A2 BR 112021000667A2
Authority
BR
Brazil
Prior art keywords
current block
division
block
allowed
partition
Prior art date
Application number
BR112021000667-2A
Other languages
English (en)
Other versions
BR112021000667A8 (pt
Inventor
Chia-Ming Tsai
Chih-Wei Hsu
Ching-Yeh Chen
Tzu-Der Chuang
Yu-Wen Huang
Original Assignee
Mediatek 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 Mediatek Inc. filed Critical Mediatek Inc.
Publication of BR112021000667A2 publication Critical patent/BR112021000667A2/pt
Publication of BR112021000667A8 publication Critical patent/BR112021000667A8/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/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/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/174Methods 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 slice, e.g. a line of blocks or a group of 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/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/186Methods 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 colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • 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)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

método e aparelho de processamento de vídeo em um sistema de codificação de vídeo para codificar ou decodificar imagens de vídeo com uma restrição de partição e meio legível por computador não transitório. métodos e aparelhos de processamento de vídeo em um sistema de codificação ou decodificação de vídeo para processar uma imagem de vídeo particionada em blocos com uma ou mais restrições de partição. o sistema de codificação ou decodificação de vídeo recebe dados de entrada de um bloco atual e verifica se um tipo de divisão predefinido tem permissão para particionar o bloco atual de acordo com a primeira e a segunda restrições. a primeira restrição restringe cada sub-bloco particionado do bloco atual para estar completamente contido em uma unidade de segmentação de instruções, e a segunda restrição restringe cada sub-bloco particionado do bloco atual para conter uma ou mais unidades de segmentação de instruções completas. as unidades de segmentação de instruções são unidades não sobrepostas na imagem de vídeo projetada para processamento de segmentação de instruções. o bloco atual não é particionado pelo tipo de divisão predefinido se qualquer sub-bloco particionado pelo tipo de divisão predefinido violar a primeira e a segunda restrições. o sistema de codificação ou decodificação de vídeo codifica ou decodifica o bloco atual.

Description

“MÉTODO E APARELHO DE PROCESSAMENTO DE VÍDEO EM UM SISTEMA DE CODIFICAÇÃO DE VÍDEO PARA CODIFICAR OU DECODIFICAR IMAGENS DE VÍDEO COM UMA RESTRIÇÃO DE PARTIÇÃO E MEIO LEGÍVEL POR COMPUTADOR NÃO TRANSITÓRIO” REFERÊNCIA CRUZADA A PEDIDOS RELACIONADOS
[0001] A presente invenção reivindica prioridade do Pedido de Patente Provisório US, N° de Série 62/698.114, depositado em 14 de julho de 2018, intitulado "Restrições de Unidade de Segmentação de instruções em BT e TT", Pedido de Patente Provisório US, N° de Série 62/698.173, depositado em 15 de julho de 2018, intitulado "Restrições de Unidade de Segmentação de instruções em Árvore Binária e Árvore Ternária", Pedido de Patente Provisório US, N° de Série 62/725.314, depositado em 31 de agosto de 2018, intitulado "Restrições de Unidade de Segmentação de instruções em Árvore Binária e Árvore Ternária", Pedido de Patente Provisório US, Nº de Série 62/727.052, depositado em 5 de setembro de 2018, intitulado "Restrições de Unidade de Segmentação de instruções em Árvore Binária e Árvore Ternária", Pedido de Patente Provisório US, Nº de Série 62/744.701, depositado em 12 de outubro de 2018, intitulado "Restrições de Unidade de Segmentação de instruções em Árvore Binária e Árvore Ternária", e Pedido de Patente Provisório US, N° de Série 62/754.714, depositado em 2 de novembro de 2018, intitulado "Restrições de Unidade de Segmentação de instruções em Árvore Binária e Árvore Ternária". Os Pedidos de Patente Provisório U.S. são incorporados por meio deste por referência na sua totalidade.
CAMPO DA INVENÇÃO
[0002] A presente invenção se refere a métodos de processamento de vídeo e aparelhos que codificam ou decodificam imagens de vídeo em um sistema de codificação de vídeo com uma restrição de partição. Em particular, a presente invenção refere-se a determinar a validade de um ou mais tipos de divisão para um bloco com base na restrição de partição e particionar o bloco por um tipo de divisão válido.
ANTECEDENTES E ESTADO DA TÉCNICA RELACIONADO
[0003] O Padrão de Codificação de Vídeo de Alta Eficiência (HEVC) é o padrão de codificação de vídeo mais recente desenvolvido pelo grupo da Equipe de Colaboração Conjunta em Codificação de Vídeo (JCT-VC) de especialistas em codificação de vídeo do Grupo de Estudo ITU-T. O padrão HEVC se baseia em uma estrutura de codificação baseada em bloco que divide cada imagem de vídeo em múltiplas Unidades de Árvore de Codificação quadradas não sobrepostas (CTUs), também chamadas de Unidades de Codificação Maiores (LCUs). Cada CTU individual em uma imagem de vídeo ou fatia é processada em uma ordem de varredura de raster. No perfil principal HEVC, os tamanhos máximo e mínimo de uma CTU são especificados por elementos de sintaxe sinalizados no Conjunto de Parâmetros de Sequência (SPS). Cada CTU é adicionalmente particionada recursivamente em uma ou mais Unidades de Codificação (CUs) não sobrepostas usando estrutura de divisão de quadtree (QT) a fim de adaptar várias características locais. Em cada profundidade de partição da estrutura de divisão de QT, um bloco NxN é uma única CU de folha ou dividido em quatro blocos menores com tamanho igual N/2xN/2. A CTU com as amostras de pixel MxM de tamanho é o nó raiz de uma árvore de codificação quadtree, e os quatro blocos M/2xM/2 são os nós quadtree filhos divididos do nó raiz. Cada um dos quatro blocos M/2xM/2 pode se tornar um nó pai particionado por outra divisão de QT para resultar em quatro nós filhos com tamanho adicionalmente reduzido pela metade em cada dimensão espacial. Se um nó de árvore de codificação não for mais dividido, ele é chamado de CU de folha. O tamanho de CU de folha é restrito a ser maior ou igual a um tamanho de CU permitido mínimo, que também é especificado no SPS. Um exemplo de uma estrutura de divisão de quadtree recursiva é ilustrado na Fig. 1, onde as linhas sólidas indicam limites de CU na CTU 10.
[0004] Uma vez que as CTUs são particionadas em CUs de folha, cada CU de folha está sujeito a divisão adicional em uma ou mais Unidades de Predição (PUs) de acordo com um tipo de divisão de PU para predição. Ao contrário da divisão de quadtree recursiva para CUs, cada CU de folha só pode ser dividida uma vez para formar várias PUs. A PU funciona como um bloco representativo básico para compartilhar informações de predição, pois o mesmo processo de predição é aplicado a todos os pixels na PU. As informações de predição são transmitidas ao decodificador com base em PU. Depois de obter dados residuais gerados pelo processo de predição com base no tipo de divisão de PU, os dados residuais pertencem a uma CU de folha é particionada em uma ou mais Unidades de Transformação (TUs) de acordo com outra estrutura de divisão de quadtree para transformar os dados residuais em coeficientes de transformação para representação de dados compacta. As linhas tracejadas na Fig. 1 indicam os limites da TU na CTU 100. A TU é um bloco representativo básico para a aplicação de transformação e quantização nos dados residuais ou coeficientes de transformação. Para cada TU,
uma matriz de transformação com o mesmo tamanho que a TU é aplicada aos dados residuais para gerar coeficientes de transformação, e esses coeficientes de transformação são quantizados e transmitidos ao decodificador em uma base de TU.
[0005] Os termos Bloco de Arvore de Codificação (CTB), Bloco de Codificação (CB), Bloco de Predição (PB) e Bloco de Transformação (TB) são definidos para especificar o arranjo de amostra de duas dimensões (2-D) de um componente de cor associado a CTU, CU, PU e TU, respectivamente. Por exemplo, uma CTU consiste em um CTB de luminância (luma), dois CTBs de crominância (croma), e seus elementos de sintaxe associados. Uma relação semelhante é válida para CU, PU e TU. No sistema HEVC, a mesma estrutura de divisão de quadtree é geralmente aplicada aos componentes luma e croma, a menos que um tamanho mínimo para o bloco croma seja alcançado.
[0006] A estrutura de divisão de árvore binária (BT) é uma estrutura alternativa à estrutura de divisão de quadtree que divide recursivamente um bloco em dois blocos menores. A Equipe de Exploração de Vídeo Conjunta (JVET) da ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11 está atualmente no processo de explorar o padrão de codificação de vídeo de próxima geração chamado Codificação de Vídeo Versátil (VVC). Algumas novas ferramentas de codificação promissoras foram adotadas no Modelo de Exploração Conjunta (JEM) para investigações futuras. Uma nova estrutura de divisão chamada estrutura QuadTree mais Estrutura Binária (QTBT) equilibra a eficiência de codificação e a complexidade de codificação da estrutura de divisão de quadtree e da estrutura de divisão de árvore binária. Uma estrutura QTBT exemplar é mostrada na
Fig. 2A, onde uma CTU é primeiramente particionada por uma estrutura quadtree, em seguida, uma estrutura de divisão de árvore binária. As CUs podem ser particionadas recursivamente por divisão de quadtree até que um tamanho de CU atual alcance um tamanho de nó de folha de quadtree permitido mínimo. Cada bloco de quadtree de folha pode ser particionado por divisão de árvore binária se o tamanho de bloco de quadtree de folha não for maior que um tamanho de nó raiz de árvore binária permitido máximo. A divisão de árvore binária pode ser aplicada recursivamente até que o tamanho, largura ou altura de CU atual atinja um tamanho, largura ou altura de nó de folha de árvore binária permitida mínima ou a profundidade de árvore binária alcance uma profundidade de árvore binária permitida máxima. Apenas a divisão simétrica horizontal e a divisão simétrica vertical são os dois tipos de divisão de árvore binária permitidos na divisão de QTBT. As CUs de folha resultantes da divisão de QTBT podem ser empregadas para predição e processamento de transformação sem qualquer particionamento adicional.
[0007] A Fig. 2A ilustra um exemplo de estrutura de particionamento de bloco de acordo com a estrutura de divisão de QTBT e a Fig. 2B ilustra um diagrama de árvore de codificação correspondente à estrutura de divisão de QTBT mostrada na Fig. 2A. As linhas sólidas nas Figs. 2A e 2B indicam divisão de quadtree enquanto as linhas tracejadas indicam divisão de árvore binária. Em cada nó de divisão (isto é, não folha) da estrutura de árvore binária, um sinalizador indica qual tipo de divisão é usado, 0 indica divisão simétrica horizontal e 1 indica divisão simétrica vertical. Para CTUs codificadas em fatias de tipo I, a representação de árvore de codificação de QTBT para CTBs croma pode ser diferente da representação de árvore de codificação de QTBT para um CTB luma correspondente. Para CTUs codificadas em fatias de tipo P e tipo B, a mesma representação de árvore de codificação de QTBT é aplicada a CTBs croma e CTB luma. Na estrutura de divisão de QTBT, o tamanho de nó de folha de árvore binária permitido mínimo, o tamanho de nó raiz de árvore binária permitido máximo, a largura e altura de nó de folha de árvore binária permitidas mínimas, e a profundidade e altura de árvore binária permitidas máximas são indicadas na sintaxe de alto nível, como no SPS.
[0008] A estrutura de divisão de Árvore de Múltiplos Tipos (MTT) estende o conceito da estrutura de árvore de dois níveis na estrutura de divisão de QTBT, permitindo a divisão de Árvore Binária (BT) e a divisão de Árvore Ternária (TT) no segundo nível da estrutura de divisão MTT. Uma CTU é, primeiro, particionada por divisão de quadtree, e nós de folha de quadtree são posteriormente particionados por uma estrutura de subárvore. A estrutura de subárvore pode conter a divisão de árvore binária e a divisão de árvore ternária. Por exemplo, cada nó de folha de quadtree pode ser ainda dividido por divisão de BT ou TT. Um bloco particionado por divisão de BT ou TT pode ser dividido posteriormente com outra divisão de BT ou TT até que uma profundidade máxima ou um tamanho mínimo seja alcançado. Um nó de folha de subárvore é uma Unidade de Codificação (CU) para predição e transformação e não será mais dividido. A Fig. 3 ilustra cinco tipos de divisão usados na estrutura de divisão de MTT, onde os tipos de divisão incluem tipo de divisão de quadtree 30, tipos de divisão de árvore binária 32 e 34 e tipos de divisão de árvore ternária 36 e 38. A divisão de árvore ternária de lado central vertical tipo 36 e a divisão de árvore ternária de lado central horizontal tipo 38 dividem um bloco em três blocos menores, todos tendo tamanhos reduzidos em uma dimensão espacial, embora mantendo o mesmo tamanho na outra dimensão espacial.
BREVE SUMÁRIO DA INVENÇÃO
[0009] Métodos e aparelhos de processamento de vídeo em um sistema de codificação de vídeo para codificar ou decodificar imagens de vídeo com uma restrição de partição compreendem receber dados de entrada associados a um bloco atual em uma imagem de vídeo atual, determinar um tamanho de unidade de segmentação de instruções de unidades de segmentação de instruções, determinar se um tipo de divisão predefinido é permitido para particionar o bloco atual em vários sub-blocos de acordo com a restrição de partição, particionar o bloco atual por um tipo de divisão permitido, e codificar ou decodificar o bloco atual de acordo com uma estrutura de particionamento de bloco do bloco atual. As unidades de segmentação de instruções são unidades não sobrepostas na imagem de vídeo atual projetadas para processamento de segmentação de instruções, e um exemplo do tamanho de unidade de segmentação de instruções é definido para um tamanho de Bloco de Transformação (TB) máximo. O tamanho de unidade de segmentação de instruções pode ser definido implicitamente com base em um perfil ou nível de acordo com um padrão de compressão de vídeo. Em um exemplo, o tamanho de unidade de segmentação de instruções é 64x64 para um componente de luminância (luma) ou 32x32 para componentes de crominância (croma) em um formato de cor 4:2:0. A primeira restrição restringe cada um dos sub-blocos particionados do bloco atual para estar completamente contido em uma unidade de segmentação de instruções, e a segunda restrição restringe cada um dos sub-blocos particionados do bloco atual para conter uma ou mais unidades de segmentação de instruções completas. O tipo de divisão predefinido é proibido para ser usado para dividir o bloco atual se qualquer sub-bloco particionado pelo tipo de divisão predefinido violar a primeira e a segunda restrições. O tipo de divisão predefinido pode ser selecionado de divisão de quadtree, divisão de árvore binária horizontal, divisão de árvore binária vertical, divisão de árvore ternária horizontal, e divisão de árvore ternária vertical. O bloco atual pode ser uma CTU, uma CU ou uma TU. Algumas modalidades dos métodos e aparelhos de processamento de vídeo consideram ainda uma restrição de nova visita, em que a restrição de nova visita proíbe uma nova visita de qualquer unidade de segmentação de instruções no bloco atual após deixar a unidade de segmentação de instruções ao processar os sub- blocos particionados do bloco atual pelo tipo de divisão predefinido. O tipo de divisão predefinido não tem permissão para particionar o bloco atual se a restrição de nova visita for violada.
[0010] Algumas modalidades dos métodos e aparelhos de processamento de vídeo permitem unidades de segmentação de instruções não quadradas e, em uma modalidade, vários tamanhos de unidade de segmentação de instruções permitidos das unidades de segmentação de instruções são definidos por uma área de unidade de segmentação de instruções. Por exemplo, a área de unidade de segmentação de instruções é 4096, então os tamanhos de unidade de segmentação de instruções permitidos são 64x64, 128x32 e 32x128. O uso das unidades de segmentação de instruções não quadradas é predefinido, derivado ou sinalizado em uma sequência, imagem, fatia, bloco, CTU ou nível de linha de CTU de acordo com várias modalidades.
[0011] Uma variação dos métodos e aparelhos de processamento de vídeo em um sistema de codificação de vídeo determina uma estrutura de partição de bloco para cada bloco de acordo com uma restrição de partição com base em dois limites. Os métodos de processamento de vídeo compreendem receber dados de entrada associados a um bloco atual em uma imagem de vídeo atual, determinar se um tipo de divisão predefinido é permitido para particionar o bloco atual em vários sub-blocos, comparar uma largura do bloco atual, uma altura do bloco atual, ou a largura e a altura do bloco atual com um ou ambos o limite W e limite H, particionar o bloco atual com um tipo de divisão permitido, e codificar ou decodificar o bloco atual de acordo com uma estrutura de particionamento de bloco do bloco atual. Os limites W e H são inteiros positivos e são predefinidos ou implicitamente definidos com base em um perfil ou nível de acordo com um padrão de compressão de vídeo. O tipo de divisão predefinido pode ser selecionado de divisão de árvore binária horizontal, divisão de árvore binária vertical, divisão de árvore ternária horizontal e divisão de árvore ternária vertical. Em uma modalidade, a divisão de árvore binária horizontal não é permitida se a largura do bloco atual for maior que W e a altura do bloco atual for menor ou igual a H, a divisão de árvore binária vertical não é permitida se a largura for menor ou igual a W e a altura for maior que H. Em uma modalidade, a divisão de árvore ternária horizontal não é permitida se a largura for maior do que W, e a divisão de árvore ternária vertical não é permitida se a altura for maior do que H. Em outra modalidade, a divisão de árvore ternária horizontal não é permitida se a largura for maior ou igual a W e a altura dividida por 4 for menor do que H, e a divisão de árvore ternária vertical não é permitida se a altura for maior que ou igual a H e a largura dividida por 4 for menor que W. Em outra modalidade, a divisão de árvore ternária horizontal não é permitida se a largura for maior do que W e a altura for maior do que H, mas a altura dividida por 4 for menor do que H, e a divisão de árvore ternária vertical não é permitida se a altura for maior do que H e a largura for maior do que W, mas a largura dividida por 4 for menor do que W. Em outra modalidade, a divisão de árvore ternária horizontal não é permitida se a largura for maior ou igual a W e a altura for maior que H, mas a altura dividida por 4 for menor que H, e a divisão de árvore ternária vertical não é permitida se a altura for maior ou igual a H e a largura for maior que W, mas a largura dividida por 4 for menor do que W. Em ainda outra modalidade, a divisão de árvore ternária horizontal não é permitida se a largura for maior do que W e a altura for maior do que H e a altura dividida por 4 não for um múltiplo de H, e a divisão de árvore ternária vertical não é permitida se a altura for maior do que H e a largura for maior do que W, mas a largura dividida por 4 não for um múltiplo de W.
[0012] Em algumas modalidades, uma unidade de segmentação de instruções é definida para ter uma largura igual a W e uma altura igual a H, e um tamanho de unidade de segmentação de instruções é um produto de W e H. Em uma modalidade, a divisão de árvore ternária não é permitida se um tamanho de bloco atual for duas vezes maior que o tamanho de unidade de segmentação de instruções. Em outra modalidade, quando um tamanho de bloco atual é duas vezes maior que o tamanho de unidade de segmentação de instruções, a divisão de árvore ternária não é permitida, a menos que todas as direções de divisão sejam as mesmas e um sub-bloco central do bloco atual seja particionado por divisão de árvore binária. Em outra modalidade, o tipo de divisão predefinido é permitido se um tamanho de bloco atual for quatro vezes maior que o tamanho de unidade de segmentação de instruções ou se o tamanho de bloco atual for menor do que o tamanho de unidade de segmentação de instruções, onde o tipo de divisão predefinido é selecionado da divisão de quadtree, árvore binária e árvore ternária.
[0013] Algumas modalidades dos métodos e aparelhos de processamento de vídeo também consideram uma restrição de nova visita, visto que o tipo de divisão predefinido não é permitido se a restrição de nova visita for violada. A restrição de nova visita proíbe a nova visita de qualquer unidade de segmentação de instruções no bloco atual após deixar a unidade de segmentação de instruções ao processar os sub-blocos particionados pelo tipo de divisão predefinido do bloco atual.
[0014] Aspectos da divulgação fornecem ainda um aparelho implementado em um sistema de codificação de vídeo ou um sistema de decodificação de vídeo, e o aparelho particiona um bloco atual em vários sub-blocos com uma restrição de partição. Uma modalidade do aparelho é implementada em um módulo de particionamento de bloco do sistema de codificação ou decodificação de vídeo para determinar se um ou mais tipos de divisão predefinidos são permitidos de acordo com a primeira e a segunda restrições. O tipo de divisão predefinido não tem permissão para dividir o bloco atual se qualquer sub-bloco particionado pelo tipo de divisão predefinido violar a primeira e a segunda restrições. Outra modalidade do aparelho determina se um ou mais tipos de divisão predefinidos são permitidos de acordo com dois limites.
[0015] Aspectos da divulgação fornecem ainda um meio legível por computador não transitório que armazena instruções de programa para fazer com que um circuito de processamento de um aparelho realize o processo de codificação de vídeo para codificar ou decodificar um bloco atual com uma restrição de partição. Outros aspectos e características da invenção se tornarão evidentes para os versados na técnica após a revisão das seguintes descrições de modalidades específicas.
BREVE DESCRIÇÃO DOS DESENHOS
[0016] Várias modalidades desta divulgação que são propostas como exemplos serão descritas em detalhes com referência às seguintes figuras, em que numerais semelhantes fazem referência a elementos semelhantes, e em que: a Fig. 1 ilustra uma árvore de codificação exemplar para dividir uma Unidade de Árvore de Codificação (CTU) em Unidades de Codificação (CUs) e dividir cada CU em uma ou mais Unidades de Transformação (TUs) de acordo com uma estrutura de divisão de quadtree.
[0017] A Fig. 2A ilustra uma estrutura de particionamento de bloco exemplar de acordo com uma estrutura de divisão QuadTree mais Árvore Binária (QTBT).
[0018] A Fig. 2B ilustra uma estrutura de árvore de codificação correspondente à estrutura de divisão de QTBT da Fig. 2A.
[0019] A Fig. 3 ilustra cinco tipos de divisão usados em um exemplo de estrutura de divisão de Árvore de Múltiplos Tipos (MTT).
[0020] A Fig. 4 ilustra algumas estruturas de particionamento de blocos exemplares de uma CTU que satisfazem a restrição de partição quando VPDUs quadradas são usadas para processar CUs em cada CTU de acordo com modalidades da presente invenção.
[0021] A Fig. 5 ilustra algumas estruturas de particionamento de bloco exemplares de uma CTU que viola a restrição de partição quando VPDUs quadradas são usadas para processar CUs em cada CTU de acordo com modalidades da presente invenção.
[0022] A Fig. 6A ilustra uma estrutura de particionamento de bloco exemplar de uma CTU que satisfaz a restrição de nova visita de acordo com modalidades da presente invenção.
[0023] A Fig. 6B ilustra uma estrutura de particionamento de bloco exemplar de uma CTU que viola a restrição de nova visita de acordo com modalidades da presente invenção.
[0024] A Fig. 7 ilustra algumas estruturas de particionamento de blocos exemplares de uma CTU que satisfazem a restrição de partição quando VPDUs quadradas e não quadradas são usadas para processar CUs em cada CTU de acordo com modalidades da presente invenção.
[0025] A Fig. 8 ilustra algumas estruturas de particionamento de bloco exemplares de uma CTU violando a restrição de partição quando VPDUs quadradas e não quadradas são usadas para processar CUs em cada CTU de acordo com modalidades da presente invenção.
[0026] A Fig. 9A ilustra um exemplo de permitir a divisão de árvore ternária vertical quando um tamanho de bloco atual é duas vezes o tamanho de VPDU de acordo com uma modalidade da presente invenção.
[0027] A Fig. 9B ilustra outro exemplo de permitir a divisão de árvore ternária vertical quando um tamanho de bloco atual é duas vezes o tamanho de uma VPDU de acordo com uma modalidade da presente invenção.
[0028] A Fig. 10 ilustra a predição de um bloco atual usando amostras preenchidas para substituir amostras vizinhas reconstruídas através do limite de unidade de segmentação de instruções, de acordo com uma modalidade.
[0029] A Fig. 11 ilustra uma modalidade de uso de amostras preenchidas para substituir as amostras dentro de uma VPDU atual, mas fora de um limite de imagem.
[0030] A Fig. 12A ilustra 33 modos de intra predição angular suportados no padrão HEVC.
[0031] A Fig. 12B ilustra um exemplo de 65 modos de intra predição angular.
[0032] A Fig. 13 é um fluxograma que ilustra uma modalidade do método de processamento de vídeo para codificar ou decodificar um bloco atual em uma imagem de vídeo atual com uma restrição de partição.
[0033] A Fig. 14 é um fluxograma que ilustra outra modalidade do método de processamento de vídeo para codificar ou decodificar um bloco atual em uma imagem de vídeo atual com uma restrição de partição.
[0034] A Fig. 15 ilustra um diagrama de blocos de sistema exemplar para um sistema de codificação de vídeo que incorpora o método de processamento de vídeo de acordo com modalidades da presente invenção.
[0035] A Fig. 16 ilustra um diagrama de blocos de sistema exemplar para um sistema de decodificação de vídeo que incorpora o método de processamento de vídeo de acordo com modalidades da presente invenção.
DESCRIÇÃO DETALHADA DA INVENÇÃO
[0036] Será prontamente entendido que os componentes da presente invenção, como geralmente descritos e ilustrados nas figuras aqui, podem ser dispostos e projetados em uma ampla variedade de configurações diferentes. Assim, a seguinte descrição mais detalhada das modalidades dos sistemas e métodos da presente invenção, conforme representado nas figuras, não se destina a limitar o escopo da invenção, como reivindicado, mas é meramente representativa de modalidades selecionadas da invenção.
[0037] A referência ao longo deste relatório descritivo a "uma modalidade", "algumas modalidades" ou linguagem semelhante significa que um determinado recurso, estrutura ou característica descrita em conexão com as modalidades pode ser incluída em pelo menos uma modalidade da presente invenção. Assim, as aparições das frases "em uma modalidade" ou "em algumas modalidades" em vários lugares ao longo deste relatório descritivo não são necessariamente todas se referindo à mesma modalidade, essas modalidades podem ser implementadas individualmente ou em conjunto com uma ou mais outras modalidades. Além disso, os recursos, estruturas ou características descritas podem ser combinadas de qualquer maneira adequada em uma ou mais modalidades. Um técnico no assunto relevante irá reconhecer, no entanto, que a invenção pode ser praticada sem um ou mais dos detalhes específicos, ou com outros métodos, componentes, etc. Em outros casos, estruturas ou operações bem conhecidas não são mostradas ou descritas em detalhes para evitar obscurecer aspectos da invenção.
[0038] Uma Unidade de Dados de Segmentação de instruções Virtual (VPDU) é definida como uma unidade básica para processamento de segmentação de instruções, e a VPDU também é chamada de unidade de segmentação de instruções na descrição a seguir. Ao dividir uma imagem de vídeo em várias VPDUs não sobrepostas para processamento de segmentação de instruções, VPDUs sucessivas podem ser processadas por vários estágios de segmentação de instruções ao mesmo tempo. Um VPDU é uma unidade quadrada, por exemplo, cada VPDU contém MxM pixels luma ou NxN pixels croma, ou uma VPDU é uma unidade não quadrada. A dimensão de uma VPDU pode ser definida por uma área, como 4096 pixels, ou um tamanho, como 64x64. Em decodificadores de hardware, cada VPDU é processada por um estágio de segmentação de instruções após outro estágio de segmentação de instruções até que cada VPDU seja processada por todos os estágios de segmentação de instruções de decodificação de vídeo. Diferentes estágios de segmentação de instruções no decodificador de hardware processam diferentes VDPUs simultaneamente.
Restringir o tamanho de uma VPDU para ficar dentro de um limite de tamanho é um problema de projeto crítico na implementação de hardware, pois o tamanho de VPDU é aproximadamente proporcional ao tamanho de buffer na maioria dos estágios da segmentação de instruções.
Uma modalidade do tamanho de VPDU é definida como igual ao tamanho de Bloco de Transformação (TB) máximo, que é 32x32 pixels luma ou 16x16 pixels croma para decodificadores de hardware HEVC.
No entanto, espera- se que o tamanho de TB máximo seja ampliado no padrão de codificação de vídeo de próxima geração, visto que expandir o tamanho de TB máximo melhora a eficiência geral de codificação.
Por exemplo, o tamanho de TB máximo para luma está se expandindo de 32x32 para 64x64, e o tamanho de TB máximo para croma está se expandindo de 16x16 para 32x32 em um formato de cor 4:2:0. O tamanho de VPDU do padrão de codificação de vídeo de próxima geração é, portanto, ampliado para 64x64 para luma ou 32x32 para croma quando o formato de cor é 4:2:0, que é quatro vezes maior do que o tamanho de VPDU exigido pelo padrão HEVC.
Em comparação com o padrão HEVC, que emprega apenas divisão de quadtree, o particionamento de CTUs com divisão de quadtree, árvore binária e árvore ternária obtém ganhos de codificação adicionais.
Quando uma CTU de 128x128 é particionada por divisão de árvore binária ou divisão de árvore ternária, o tamanho de VPDU necessário é aumentado para 128x128 pixels de luma ou 64x64 pixels de croma.
Em comparação com o padrão HEVC, o tamanho de VPDU agora é 16 vezes maior, o que aumenta drasticamente o tamanho de buffer necessário para cada estágio de segmentação de instruções no processamento de vídeo.
[0039] A fim de reduzir o tamanho de VPDU necessário no padrão de codificação de vídeo de próxima geração, algumas modalidades da presente invenção estabelecem uma restrição de partição para restringir um ou mais tipos de divisão predefinidos a serem aplicados a um bloco atual de acordo com uma relação entre o bloco atual e uma ou mais unidades de segmentação de instruções correspondentes. Algumas outras modalidades definem uma restrição de partição para restringir um ou mais tipos de divisão predefinidos a serem aplicados a um bloco atual de acordo com um ou ambos da largura e altura do bloco atual. O bloco atual pode ser uma CTU, uma CU ou uma TU. Uma imagem de vídeo a ser codificada ou decodificada é dividida em CTUs não sobrepostas e cada CTU contém uma ou mais unidades de segmentação de instruções para processamento de segmentação de instruções. Uma modalidade da unidade de segmentação de instruções tem um tamanho igual a um tamanho de bloco de transformação máximo. Em outra modalidade, o tamanho de unidade de segmentação de instruções é explicitamente sinalizado no nível de sequência, nível de imagem, nível de fatia ou nível de bloco. Em ainda outra modalidade, o tamanho de unidade de segmentação de instruções é definido implicitamente com base em um perfil ou nível de acordo com o padrão de compressão de vídeo correspondente. Primeira restrição: Cada Unidade de Segmentação de instruções, Contém um ou mais Sub-blocos Completos
[0040] Uma primeira restrição é uma modalidade da restrição de partição que restringe um ou mais tipos de divisão predefinidos a serem aplicados a um bloco atual de acordo com uma relação entre o bloco atual e uma ou mais unidades de segmentação de instruções correspondentes.
O bloco atual é uma CTU, uma CU ou uma TU, e o bloco atual pode ser ainda particionado, por exemplo, se o bloco atual for uma CU, a profundidade de partição da CU é menor do que uma profundidade de CU permitida máxima, da mesma forma, se o bloco atual for uma TU, a profundidade de partição da TU é menor que a profundidade permitida máxima de TU.
Em outro exemplo, o bloco atual é maior do que um tamanho de CU permitido mínimo se for uma CU ou maior do que um tamanho de TU permitido mínimo se for uma TU.
A primeira restrição restringe cada unidade de segmentação de instruções para conter partições de blocos de quadtree, árvore binária ou árvore ternária completas.
As partições de bloco são sub- blocos particionados de um bloco atual por divisão de quadtree, árvore binária ou árvore ternária, e a partição de bloco pode ser CUs ou TUs.
Em outras palavras, a primeira restrição restringe cada sub-bloco particionado de um bloco atual para estar completamente contido em uma unidade de segmentação de instruções.
Por exemplo, uma unidade de segmentação de instruções contém uma ou mais CUs após uma operação de divisão, e essas CUs devem estar completamente dentro da unidade de segmentação de instruções.
Durante a partição de subárvore, todas as amostras em um sub-bloco particionado de um bloco atual por divisão de árvore quádrupla, árvore binária ou árvore ternária com um tamanho menor ou igual a uma unidade de segmentação de instruções devem estar na mesma unidade de segmentação de instruções.
De acordo com a primeira restrição, qualquer divisão de quadtree, divisão de árvore binária e divisão de árvore ternária tem permissão para particionar um bloco atual quando o bloco atual é igual ou menor que uma unidade de segmentação de instruções e o bloco atual está dentro de uma unidade de segmentação de instruções, porque todos os sub-blocos particionados do bloco atual ainda estão incluídos na mesma unidade de segmentação de instruções. Em uma modalidade exemplar da primeira restrição, quando um tamanho de um bloco atual a ser particionado por divisão de quadtree, divisão de árvore binária ou divisão de árvore ternária é maior do que o tamanho de uma unidade de segmentação de instruções, um codificador de vídeo ou decodificador verifica se todas as amostras em cada sub-bloco particionado do bloco atual estão na mesma unidade de segmentação de instruções após a operação de partição de subárvore, e esta operação de partição de subárvore só é permitida quando todas as amostras em cada sub-bloco estão na mesma unidade de segmentação de instruções. A unidade de segmentação de instruções contém uma ou mais TUs completas após uma operação de divisão de acordo com outro exemplo da primeira restrição.
[0041] Ao cumprir a primeira restrição de conter CUs ou TUs completas em uma unidade de segmentação de instruções, os limites da unidade de segmentação de instruções também são limites de CU ou limites de TU. Em outras palavras, CUs ou TUs não podem cruzar o limite de unidade de segmentação de instruções e cada segmento do limite de unidade de segmentação de instruções também deve pertencer a um limite de CU ou limite de TU. O limite de unidade de segmentação de instruções deve se alinhar com os limites CU ou TU de acordo com a primeira restrição. Segunda restrição: Cada Sub-bloco Contém uma ou mais Unidades de Segmentação de instruções Completas
[0042] Uma segunda restrição é outra modalidade da restrição de partição que restringe um ou mais tipos de divisão predefinidos a serem aplicados a um bloco atual de acordo com uma relação entre o bloco atual e uma ou mais unidades de segmentação de instruções correspondentes. O bloco atual é uma CTU, uma CU ou uma TU que pode ser particionada adicionalmente. Por exemplo, se o bloco atual for uma CU, a profundidade de partição da CU é menor do que uma profundidade de CU permitida máxima ou o tamanho da CU é maior do que um tamanho de CU permitido mínimo, da mesma forma, se o bloco atual for uma TU, a profundidade da partição da TU é menor do que a profundidade de TU permitida máxima ou o tamanho da TU é maior do que o tamanho de TU permitido mínimo. A segunda restrição restringe cada partição de bloco de quadtree, árvore binária ou árvore ternária para conter unidades completas de segmentação de instruções. As partições de bloco são sub-blocos particionados de um bloco atual por divisão de quadtree, árvore binária ou árvore ternária, e uma partição de bloco pode ser uma CU ou TU. Por exemplo, quando uma CU contém uma ou mais unidades de segmentação de instruções após uma operação de partição de subárvore, essas unidades de segmentação de instruções estão completamente dentro da CU. A divisão de quadtree, divisão de árvore binária ou divisão de árvore ternária só é permitida para particionar um bloco atual quando cada um dos sub-blocos resultantes da operação de divisão ainda inclui uma ou mais unidades de segmentação de instruções completas. Em uma modalidade da segunda restrição, todas as amostras em uma unidade de segmentação de instruções são incluídas no mesmo sub-bloco particionado por divisão de quadtree, divisão de árvore binária ou divisão de árvore ternária com um tamanho maior ou igual à unidade de segmentação de instruções. A Restrição de Partição Emprega a Primeira e a Segunda Restrições
[0043] Para cada CU particionada de uma CTU por um tipo de divisão predefinido, uma da primeira e segunda restrições descritas anteriormente devem ser atendidas. Um tipo de divisão predefinido não tem permissão para particionar um bloco atual se qualquer sub-bloco particionado do bloco atual pelo tipo de divisão predefinido violar a primeira e a segunda restrições. Por exemplo, uma ou mais CUs estão completamente contidas em uma unidade de segmentação de instruções ou uma ou mais unidades de segmentação de instruções estão completamente contidas em uma CU, onde cada CU é particionada de uma CTU por divisão de quadtree, divisão de árvore binária ou divisão de árvore ternária
[0044] A Fig. 4 ilustra alguns exemplos de divisão de árvore binária ou divisão de árvore ternária válida sob a restrição da restrição de partição. Nesta modalidade, as VPDUs quadradas são usados para processar as CUs particionadas das CTUs 40, 42, 44, 46 e 48, como mostrado na Fig. 4. Cada CTU tem um tamanho de 128x128 e cada uma das VPDUs quadradas indicadas por linhas tracejadas tem um tamanho de 64x64. A CTU 40 não é particionada, portanto, contém quatro VPDUs completas, e ambas as CTUs 42 e 44 são particionadas por divisão de árvore binária em duas CUs, de modo que cada CU nas CTUs 42 e 44 contém duas VPDUs completas. As estruturas de particionamento de blocos dessas três CTUs
40, 42 e 44 satisfazem a restrição de partição, pois cada CU resultante contém uma ou mais VPDUs completas de acordo com a segunda restrição. Quatro VPDUs estão completamente contidas na CU resultante da CTU 40 e duas VPDUs estão completamente contidas nas CUs resultantes das CTUs 42 e 44. As CTUs 46 e 48 são primeiro particionadas por divisão de quadtree, a partição superior esquerda de CTU 46 é ainda particionada por divisão de árvore ternária vertical, e a partição superior esquerda de CTU 48 é ainda particionada por divisão de árvore ternária horizontal. As estruturas de particionamento de bloco dessas duas CTUs 46 e 48 também satisfazem a restrição de partição, pois cada VPDU contém uma ou mais CUs completas de acordo com a primeira restrição.
[0045] A Fig. 5 ilustra alguns exemplos de divisão de árvore binária ou divisão de árvore ternária inválida sob a restrição da restrição de partição. As mesmas VPDUs quadradas indicadas por linhas tracejadas, cada um com um tamanho de 64x64, são usadas para processar as CTUs com um tamanho de 128x128, como mostrado na Fig. 5. As CTUs 502 e 504 são particionadas por divisão de árvore ternária vertical e divisão de árvore ternária horizontal, respectivamente, e as CUs resultantes violam a restrição proposta, pois cada CU não contém uma ou mais VPDUs completas e cada VPDU não contém uma ou mais CUs completas. As CTUs 506 e 508 são primeiro particionadas por divisão de árvore binária seguida por outra divisão de árvore binária na mesma direção. A segunda divisão de árvore binária é inválida porque as CUs resultantes violam a restrição de partição. Cada CU na metade esquerda de CTU 506 ou cada CU na metade superior de CTU 508 não contém uma ou mais VPDUs quadradas completas, e cada VPDU na metade esquerda de CTU 506 ou cada VPDU na metade superior de CTU 508 não contém uma ou mais CUs completas. Uma ou mais CUs particionadas da CTU 506 ou 508 violam a primeira e a segunda restrições. No exemplo mostrado nas CTUs 510 e 512, essas duas CTUs são particionadas pela divisão de árvore binária seguida pela divisão de árvore ternária na mesma direção. A divisão de árvore ternária aplicada após a divisão de árvore binária é proibida porque as CUs resultantes violam a restrição de partição, cada uma das três CUs na metade esquerda da CTU 510 ou cada uma das três CUs na metade superior da CTU 512 não está completamente contida em uma unidade de segmentação de instruções; e cada uma dessas CUs não contém uma ou mais unidades de segmentação de instruções completas. As CTUs 514 e 516 são particionadas pela divisão de árvore binária seguida pela divisão de árvore ternária em uma direção diferente. Esta divisão de árvore ternária também é inválida, pois cada uma das CUs resultantes não contém uma ou mais VPDU completas e cada VPDU não contém uma ou mais CUs completas. A Restrição de Partição Emprega Restrição de Nova visita
[0046] Algumas modalidades da restrição de partição avaliam a validade de um tipo de divisão predefinido de acordo com uma restrição de nova visita, na qual uma ordem de processamento dos sub-blocos particionados de um bloco atual por um tipo de divisão predefinido não permiti sair de uma unidade de segmentação de instruções e visitar novamente a unidade de segmentação de instruções O tipo de divisão predefinido não tem permissão para particionar o bloco atual se a restrição de nova visita for violada. A restrição de nova visita é violada quando o processamento dos sub-blocos exige uma nova visita de uma unidade de segmentação de instruções após deixar a unidade de segmentação de instruções.
A Fig. 6A e a Fig. 6B ilustram duas estruturas de particionamento de bloco exemplares de uma CTU, onde uma satisfaz a restrição de nova visita enquanto outra viola a restrição de nova visita.
Na Fig. 6A e na Fig. 6B, cada bloco de 128x128 é particionado em quatro TUs quadradas, e cada tamanho de TU é 64x64. As linhas tracejadas na Fig. 6A e na Fig. 6B são limites de TU dentro da CTU correspondente, e as linhas sólidas dentro da CTU correspondente são limites de CU.
As unidades de segmentação de instruções são definidas para 64x64 e alinhadas com as TUs.
A CTU na Fig. 6A é particionada pela divisão de árvore ternária horizontal em três CUs, e a ordem de processamento das três CUs não requer nova visita a nenhuma unidade de segmentação de instruções.
Por exemplo, ao processar CUs em uma unidade de segmentação de instruções superior esquerda ou uma unidade de segmentação de instruções superior direita, os dados reconstruídos de CUs acima e à esquerda estão disponíveis, e visitar de novo a unidade de segmentação de instruções superior esquerda ou direita não é necessário após sair a unidade de segmentação de instruções superior esquerda ou superior direita.
A estrutura de particionamento de blocos mostrada na Fig. 6A satisfez, assim, a restrição de nova visita.
A CTU na Fig. 6B é particionada pela divisão de árvore ternária vertical em três CUs; no entanto, a ordem de processamento das três CUs requer uma nova visita às unidades de segmentação de instruções.
A estrutura de particionamento de blocos mostrada na Fig. 6B, portanto, viola a restrição de nova visita.
Restrição por Dois Limites W e H
[0047] Ao analisar a primeira, a segunda e as restrições de nova visita, bem como os exemplos acima de estruturas de particionamento de bloco válidas e inválidas, aplicar uma divisão específica para particionar um bloco é permitido ou proibido pode depender de uma largura de bloco, uma altura de bloco ou a largura e a altura de bloco. Por exemplo, no caso de selecionar um tamanho de unidade de segmentação de instruções para ser NxN, um exemplo de N é 64, a divisão de árvore ternária horizontal é proibida quando a largura de bloco é maior do que N, a divisão de árvore ternária vertical é proibida quando a altura de bloco é maior do que N, a divisão de árvore binária horizontal é proibida quando a largura de bloco é maior do que N e a altura de bloco é menor ou igual a N, e a divisão de árvore binária vertical é proibida quando a largura de bloco é menor ou igual a N e a altura de bloco é maior do que N. Para generalizar o conceito de VPDU conforme descrito anteriormente, dois limites W e H podem ser usados para representar uma largura e uma altura da VPDU, e um ou mais tipos de divisão predefinidos são determinados como válidos ou inválido ao comparar um ou ambos da largura e altura de bloco atual com um de ambos os limites.
[0048] As seguintes modalidades determinam se um tipo de divisão predefinido é válido ou inválido para particionar um bloco atual de acordo com um ou ambos os limites W e H. Os dois limites W e H são números inteiros positivos, que podem ser valores predefinidos, valores sinalizados transmitidos em sequência, imagem, fatia ou nível de bloco, valores derivados, ou igual a uma largura de bloco de transformação máxima e uma altura de bloco de transformação máxima, respectivamente. Por exemplo, W é predefinido como 32 ou 64 e H é predefinido como 32 ou 64. Um exemplo dos limites W e H é implicitamente derivado por um ou uma combinação do tamanho de CTU e tipo de fatia. A largura e altura de bloco de transformação máximas podem ser uma largura e altura de transformação de luma máximas ou uma largura e altura de transformação de croma máximas. Antes de particionar um bloco atual, um ou ambos da largura e altura de bloco são comparados aos limites correspondentes W ou/e H. Em uma primeira modalidade de restrição da divisão de Árvore Ternária (TT), se a largura de bloco de um bloco atual é maior do que W e a altura de bloco é maior do que H, a divisão de TT não é permitida para particionar o bloco atual. Em uma modalidade para restringir a divisão em árvore binária (BT), se uma largura de bloco de um bloco atual for maior que W e uma altura de bloco for menor ou igual a H, a divisão de BT horizontal não é permitida para particionar o bloco atual. Se a altura de bloco de um bloco atual for maior que H e a largura de bloco for menor ou igual a W, a divisão vertical BT não é permitida para particionar o bloco atual.
[0049] Em uma segunda modalidade de restrição da divisão de TT, a divisão de TT horizontal não tem permissão para particionar um bloco atual se uma largura de bloco do bloco atual for maior ou igual a W e uma altura de bloco dividida por 4 for menor que H. Da mesma forma, divisão de TT vertical não é permitida para particionar um bloco atual se uma divisão de largura de bloco por 4 for menor que W e uma altura de bloco for maior ou igual a H. Em uma terceira modalidade de restrição de divisão de TT, a divisão de TT horizontal não tem permissão para particionar um bloco atual se a largura de bloco for maior do que W, e a altura de bloco for maior do que H e a altura de bloco dividido por 4 for menor do que H. Da mesma forma, a divisão de TT vertical não é permitida para particionar um bloco atual se a largura de bloco for maior do que W e a largura de bloco dividida por 4 for menor do que W, e a altura de bloco for maior do que H. Em uma quarta modalidade de restrição da divisão de TT, se a largura de bloco de um bloco atual for maior ou igual a W, e a altura de bloco for maior do que H e a altura de bloco dividido por 4 for menor do que H, a divisão de TT horizontal não é permitida para particionar o bloco atual. Se uma largura de bloco for maior do que W e a largura de bloco dividido por 4 for menor do que W, e a altura de bloco for maior ou igual a H, a divisão de TT vertical não é permitida para particionar o bloco atual. Em uma quinta modalidade de restrição da divisão de TT, a divisão de TT horizontal não é permitida se uma largura de bloco de um bloco atual for maior do que W e a altura de bloco for maior do que H e a altura de bloco dividida por 4 não for um múltiplo de H. A divisão de TT vertical não é permitida se a largura de bloco de um bloco atual for maior do que W e a divisão da largura de bloco por 4 não for um múltiplo de W e a altura de bloco for maior do que H.
[0050] As modalidades acima podem ser aplicadas como uma restrição normativa, onde pelo menos uma sintaxe de partição é inferida de acordo com um resultado de comparação de largura e/ou altura e W e/ou H, e a sintaxe de partição não é sinalizada no fluxo de bits de vídeo. Por exemplo, de acordo com a primeira modalidade de restrição da divisão de TT, uma sintaxe de divisão de TT para um bloco atual não é sinalizada ou analisada se uma largura de bloco do bloco atual for maior que W e uma altura de bloco for maior que H, como a sintaxe de divisão de TT é inferida como não dividida.
De acordo com a modalidade de restrição da divisão de BT, uma divisão horizontal de BT ou direção de divisão de BT para um bloco atual não é sinalizada ou analisada se uma largura de bloco do bloco atual for maior que W e uma altura de bloco for igual ou menor que H.
A divisão de BT horizontal é inferida como não dividida ou a direção da divisão de BT é inferida como divisão vertical.
Uma divisão de BT vertical ou direção de divisão de BT para um bloco atual não é sinalizada ou analisada se uma altura de bloco do bloco atual for maior que H e a largura de bloco for igual ou menor que W.
A divisão de BT vertical é inferida como não dividida ou a direção da divisão de BT é inferida como divisão horizontal.
Em um exemplo de implementação da segunda modalidade de restrição da divisão de TT, uma sintaxe de divisão de TT horizontal para um bloco atual não é sinalizada ou analisada se uma largura de bloco do bloco atual for maior ou igual a W e uma altura de bloco dividida por 4 for menor que H.
A divisão de TT horizontal para o bloco atual é inferida como não dividida.
Uma sintaxe de divisão de TT vertical para um bloco atual não é sinalizada ou analisada se uma divisão de largura de bloco por 4 for menor que W e uma altura de bloco for maior ou igual a H.
A divisão de TT vertical para o bloco atual é inferida como não dividida.
Em um exemplo de implementação da terceira modalidade de restrição da divisão de TT, uma sintaxe de divisão de TT horizontal para um bloco atual não é sinalizada ou analisada se uma largura de bloco do bloco atual for maior que W, e uma altura de bloco for maior que H e a altura de bloco dividida por 4 for menor que H.
A sintaxe de divisão de TT horizontal é inferida como não dividida.
Uma sintaxe de divisão de TT vertical para um bloco atual não é sinalizada ou analisada se uma largura de bloco do bloco atual for maior que W e a largura de bloco dividida por 4 for menor que W e uma altura de bloco for maior que H.
A sintaxe de divisão de TT vertical é inferida como não dividida.
Para a quarta modalidade de restrição da divisão de TT, se uma largura de bloco de um bloco atual for maior ou igual a W, e a altura de bloco for maior do que H e a altura de bloco dividida por 4 for menor do que H, uma sintaxe de divisão de TT horizontal não é sinalizada nem analisada, pois é inferida como não dividida.
Se a largura de bloco de um bloco atual for maior do que W e a largura de bloco dividido por 4 for menor do que W, e a altura de bloco for maior ou igual a H, uma sintaxe de divisão de TT vertical não é sinalizada nem analisada conforme é inferida como não dividida.
Para a quinta modalidade de restrição da divisão de TT implementada por restrição normativa, se uma largura de bloco de um bloco atual for maior do que W e a altura de bloco for maior do que H, e a altura de bloco dividida por 4 não for um múltiplo de H, uma sintaxe de divisão de TT não é sinalizada nem analisada, pois é inferida como não dividida.
Da mesma forma, se uma largura de bloco de um bloco atual for maior que W e uma largura de bloco dividida por 4 não for um múltiplo de W, e uma altura de bloco for maior que H, uma sintaxe de divisão de TT vertical não é sinalizada nem analisada como é inferido como não dividida.
Exemplos de Tipo de Divisão Válido ou Inválido
[0051] Algumas modalidades de divisão de um bloco atual seguem uma lista de restrições de partição selecionadas a partir das seguintes restrições, em que um tipo de divisão é permitido ou não para particionar o bloco atual dependendo de um tamanho, largura ou altura do bloco atual, um tamanho dos sub-blocos resultantes ou a ordem de processamento dos sub-blocos resultantes. Uma unidade de segmentação de instruções é definida como 64x64 para um componente luma ou 32x32 para componentes croma para um formato de cor 4:2:0 nas seguintes restrições:
1. A divisão de TT não pode ser aplicada para particionar uma CTU 128x128.
2. A divisão de TT não pode ser aplicada para particionar um bloco 128xN ou bloco Nx128, onde N é um número inteiro positivo menor ou igual a 64.
3. A divisão de BT horizontal não pode ser aplicada para particionar um bloco 128xN. A largura de bloco 128xN é 128 e a altura de bloco é N, onde N é um número inteiro positivo menor ou igual a 64.
4. A divisão de BT vertical não pode ser aplicada para particionar um bloco Nx128. A largura de bloco Nx128 é N e a altura de bloco é 128, onde N é um número inteiro positivo menor ou igual a 64.
5. Em árvore de codificação separada, divisão de um bloco croma não é permitida se qualquer uma das CU de croma resultante for menor que PxQ. Um exemplo de PxQ é 4x4, o que significa que as CUs de croma 4x2, 2x4 e 2x2 não são permitidas.
6. Um sub-bloco resultante após o particionamento com um tamanho de bloco igual a 128x128, 128x64 ou 64x128 é permitido.
7. A divisão de BT e a divisão de TT não podem ser aplicadas a um bloco atual se a ordem de processamento de CU particionada resultante não puder atender a uma restrição z- scan em uma CTU. Por exemplo, a divisão vertical BT não tem permissão para particionar uma CTU 128x128 porque a ordem de codificação dos blocos MxN da CTU 128x128 não está em uma ordem z-scan. Unidade de Segmentação de instruções Não quadrada
[0052] Uma unidade de segmentação de instruções é uma unidade básica para processamento de segmentação de instruções e, a fim de suportar computação flexível, cada unidade de segmentação de instruções pode ser quadrada ou não quadrada de acordo com algumas modalidades. Todas as CUs dentro de uma unidade de segmentação de instruções são processados juntos sem serem inseridos por qualquer CU dentro de outra unidade de segmentação de instruções na ordem de processamento. Um tamanho ou área de uma unidade de segmentação de instruções é predefinida, sinalizada em uma sequência, imagem, fatia, bloco, CTU, nível de linha CTU ou derivada. Por exemplo, uma área de uma VPDU é predefinida como igual a 16384, 4096 ou 1024 pixels. Um exemplo de um tamanho de VPDU predefinido é definido como igual a um tamanho máximo de unidade de transformação, como 32x32 no padrão HEVC ou 64x64 no padrão VVC. Um exemplo de tamanho ou área de VPDU implicitamente definido é derivado com base em um perfil ou nível de um padrão de compressão de vídeo correspondente.
[0053] Semelhante às unidades de segmentação de instruções quadradas, a primeira e a segunda restrições podem ser usadas para restringir certos comportamentos de particionamento, e uma da primeira e segunda restrições devem ser satisfeitas durante o particionamento de bloco em cada profundidade de particionamento de subárvore.
Em outras palavras, a violação da primeira restrição e da segunda restrição em qualquer profundidade de particionamento da subárvore não é permitida.
Na primeira restrição, a divisão de quadtree, árvore binária ou árvore ternária é permitida para particionar um bloco atual quando o tamanho de bloco atual é igual ou menor que uma área ou tamanho de VPDU.
Na segunda restrição, a divisão de quadtree, árvore binária ou árvore ternária é permitida apenas quando todos os tamanhos ou áreas de sub-blocos são iguais a um tamanho de VPDU ou área de VPDU multiplicada por um número inteiro positivo após a partição de subárvore.
Outra modalidade da segunda restrição permite apenas a divisão de quadtree, árvore binária ou árvore ternária quando um tamanho ou área de um grupo de sub-blocos particionados do bloco atual são iguais ao tamanho de VPDU ou área de VPDU multiplicada por um número inteiro positivo após a partição de subárvore.
O grupo de sub-blocos inclui todos os blocos filhos que são processados em uma ordem sequencial e são processos juntos, e o tamanho ou área do grupo de sub-blocos é menor do que um bloco atual.
Em uma modalidade, se um tamanho ou área de um bloco atual é duas vezes maior que o tamanho de VPDU ou área de VPDU, este bloco atual pode ser particionado por divisão de quadtree ou divisão de árvore binária, mas não pode ser particionado por divisão de árvore ternária.
Por exemplo, um tamanho de CTU é 128x128 e uma área de VPDU é definida como 4096, então os tamanhos de VPDU permitidos são 64x64, 128x32 e 32x128, então um bloco atual com um tamanho 128x64 ou 64x128 não pode ser particionado usando divisão de árvore ternária. Se o tamanho ou área do bloco atual for quatro vezes maior que o tamanho de VPDU ou área de VPDU, qualquer divisão de quadtree, árvore binária e árvore ternária pode ser usada para particionar o bloco atual.
[0054] Em outra modalidade da segunda restrição, se um tamanho ou área de bloco atual for duas vezes o tamanho de VPDU ou área de VPDU, o bloco atual só pode ser particionado por divisão de quadtree ou divisão de árvore binária, mas não divisão de árvore ternária, e se o tamanho ou área do bloco atual é maior que duas vezes o tamanho de VPDU ou área de VPDU, todas as divisões de quadtree, divisão de árvore binária e divisão de árvore ternária podem ser usadas para particionar o bloco atual. De acordo com a primeira restrição, qualquer divisão de quadtree, divisão de árvore binária e divisão de árvore ternária pode ser usada para particionar um bloco atual se o tamanho de um bloco atual for menor que o tamanho de VPDU ou área de VPDU.
[0055] Outra modalidade da segunda restrição verifica se um tamanho ou área de bloco atual é duas vezes maior que um tamanho de VPDU ou área de VPDU, e se o tamanho ou área de bloco atual é duas vezes o tamanho ou área de VPDU, a divisão de árvore ternária não é permitida para particionar o bloco atual. A divisão de árvore ternária é permitida para particionar um bloco atual se o tamanho ou área do bloco atual for maior do que duas vezes o tamanho de VPDU ou área de VPDU. Nesta modalidade, a divisão de árvore ternária não é permitida para particionar um bloco atual se um tamanho ou área do bloco atual for menor do que o tamanho de VPDU ou área de VPDU.
[0056] A Fig. 7 ilustra alguns exemplos de estrutura de particionamento de bloco válida quando VPDUs não quadradas podem ser usadas para processar CUs em cada CTU. A área de VPDU é definida como 4096, portanto, os tamanhos de VPDU permitidos são 64x64, 128x32 e 32x128, e o tamanho de CTU é 128x128. A CTU 702 é particionada por divisão de quadtree, CTUs 704 e 706 são particionadas por divisão de árvore binária, e CTUs 708 e 710 são particionadas por divisão de árvore ternária. Cada CU nestas cinco CTUs 702, 704, 706, 708 e 710 é maior ou igual à área de VPDU de 4096 e cada CU contém uma ou mais VPDUs completas. As VPDUs quadradas são usadas para processar CUs em CTU 702 enquanto as VPDUs não quadradas são usadas para processar CUs em CTUs 708 e 710. As CTUs 704 e 706 podem ser processadas por VPDUs quadradas ou não quadradas. A partição central em CTU 708 e a partição central em CTU 710 particionada por divisão de árvore ternária podem ser processadas por VPDUs quadradas ou não quadradas. A CTUs 712 e 714 são primeiro particionadas por divisão de árvore binária horizontal e, em seguida, uma das partições é ainda dividida por divisão de árvore binária vertical enquanto outra partição é dividida por divisão de árvore binária horizontal. As estruturas de particionamento de bloco dessas duas CTUs são válidas porque as CUs resultantes das CTUs 712 e 714 são iguais ao tamanho de um tamanho de VPDU permitido, e cada CU contém uma VPDU completa. A CTU 716 é particionada por divisão de árvore binária horizontal e, em seguida, cada partição é dividida por outra divisão de árvore binária horizontal. Essa estrutura de particionamento de bloco é válida porque as CUs resultantes contêm exatamente uma VPDU completa com um tamanho igual a 128x32. A CTU 718 é primeiro particionada pela divisão de árvore ternária horizontal, e a partição central é posteriormente dividida pela divisão de árvore binária vertical. As CUs resultantes contêm uma VPDU 128x32 completa ou um VPDU 64x64 completa.
[0057] As estruturas de particionamento de bloco das CTUs 502, 504, 506 e 508, conforme mostrado na Fig. 5, são proibidas quando as CTUs são processadas por VPDUs quadradas, no entanto, essas estruturas de particionamento de bloco são permitidas se VPDUs não quadradas forem usadas. As estruturas de particionamento de bloco das CTUs 510, 512, 514 e 516 são proibidas, independentemente de as CTUs serem processadas por VPDUs quadradas ou não quadradas.
[0058] A Fig. 8 ilustra alguns outros exemplos de estruturas de particionamento de bloco inválido quando VPDUs não quadradas podem ser usadas para processar CUs em cada CTU. Os tamanhos de VPDU permitidos são iguais aos exemplos na Fig. 7, incluindo 64x64, 128x32 e 32x128, e os tamanhos de CTU de CTUs 802, 804, 806 e 803 são 128x128. A CTU 802 é particionada pela divisão de árvore binária horizontal e, em seguida, cada partição é particionada pela divisão de árvore ternária horizontal. A divisão de árvore ternária horizontal após a divisão de árvore binária horizontal não é permitida porque não há tamanho de VPDU permitido que possa conter uma ou mais CUs completas particionadas da divisão de árvore ternária horizontal. A CTU 804 é primeiro dividida pela divisão de árvore binária horizontal e, em seguida, cada partição é dividida pela divisão de árvore ternária vertical. A divisão de árvore ternária vertical após a divisão de árvore binária horizontal não é permitida porque a ordem de processamento das CUs resultantes viola a restrição de "nova visita da unidade de segmentação de instruções". A ordem de processamento das CUs particionadas de uma CTU deve garantir que uma nova visita a uma VPDU não seja permitida após deixar a VPDU, independentemente do uso de VPDUs quadradas ou não quadradas. Neste caso, mesmo se uma VPDU 32x128 contiver duas CUs completas, incluindo uma CU superior esquerda e uma CU inferior esquerda em CTU 804, o processo de decodificação da CU inferior esquerda pode precisar aguardar o processo de decodificação da CU superior esquerda. Por exemplo, se a CU inferior esquerda em CTU 804 é codificada no modo de intra predição, isso requer amostras reconstruídas vizinhas da CU superior esquerda, o que introduz latência adicional, uma vez que esses duas CUs estão na mesma VPDU. Em outro exemplo, CTU 806 é primeiro particionada por divisão de árvore ternária horizontal, e a partição central é ainda dividida por outra divisão de árvore ternária horizontal. As CUs resultantes violam a primeira restrição, pois nem todos as VPDUs contêm uma ou mais CUs completas, e as CUs resultantes também violam a segunda restrição, pois nem todas as CUs contêm uma ou mais VPDUs completas. A CTU 808 é particionada por divisão de árvore ternária horizontal seguida pela divisão da partição central usando divisão de árvore ternária vertical. A divisão de árvore ternária vertical é proibida porque as CUs resultantes da divisão de árvore ternária vertical não estão completamente contidas em VPDUs com qualquer tamanho permitido.
[0059] Em uma modalidade para determinar se a divisão de árvore ternária é permitida de acordo com a segunda restrição, se um tamanho ou área de bloco atual for duas vezes o tamanho de VPDU ou área de VPDU, a divisão de árvore ternária é permitida, a menos que todas as outras direções de divisão de árvore binárias ou ternárias são as mesmas e o sub-bloco central do bloco atual é particionado pela divisão de árvore binária. Dois exemplos desta modalidade são ilustrados na Fig. 9A e na Fig. 9B. Na Fig. 9A, um bloco atual é primeiro particionado por divisão de árvore ternária vertical e, em seguida, um sub-bloco central do bloco atual é particionado pela divisão de árvore binária vertical. A divisão de árvore ternária é ilustrada por linhas sólidas e a divisão de árvore binária é ilustrada por uma linha tracejada na Fig. 9A e na Fig. 9B. Na Fig. 9B, um bloco atual é particionado pela divisão de árvore ternária vertical em três sub-blocos de primeira camada, um sub-bloco de primeira camada central do bloco atual é ainda particionado pela divisão de árvore ternária vertical em três sub-blocos de segunda camada, então um sub-bloco de segunda camada central é novamente particionado por divisão de árvore binária vertical.
[0060] Em uma modalidade da segunda restrição, se um tamanho ou área de um bloco atual for duas vezes o tamanho ou área de VPDU, o bloco atual não pode ser dividido posteriormente. Em outra modalidade, se um tamanho ou área de um bloco atual é duas vezes o tamanho ou área de VPDU, e uma profundidade de divisão máxima padrão para divisão de árvore binária é N, a profundidade de divisão máxima para árvore binária do bloco atual é M, onde 0≤M<N. Por exemplo, se N = 3, então M é 0, 1 ou 2. Por exemplo, uma área de VPDU é 4096, e para um bloco atual com um tamanho de 128x64 ou
64x128, a profundidade máxima de divisão para divisão de árvore binária do bloco atual M é menor do que a profundidade de divisão máxima padrão para divisão de árvore binária N.
[0061] O uso de VPDU não quadrada pode ser predefinido, derivado ou sinalizado em uma sequência, imagem, fatia, bloco, CTU ou nível de linha CTU ou uma partição de subárvore. Em uma modalidade exemplar, um sinalizador é usado para decidir o uso de VPDU não quadrada em um bloco atual se o bloco atual for dividido posteriormente. Em outra modalidade, o uso de VPDU não quadrada é derivado por um tamanho ou área de bloco atual. Em ainda outra modalidade, o uso de VPDU não quadrada é derivado por uma proporção de bloco atual, onde a proporção de bloco atual é calculada dividindo uma largura de bloco por uma altura de bloco ou dividindo uma altura de bloco por uma largura de bloco. Em outra modalidade, o uso de VPDU não quadrada é derivado por uma profundidade de particionamento de subárvore atual. Amostras de Referência Fora da Unidade de Segmentação de instruções
[0062] Algumas modalidades empregam a restrição de partição da presente invenção para uma ferramenta de intra ou inter predição. Um método de preenchimento pode ser aplicado para gerar amostras preenchidas quando a predição de um bloco atual requer amostras vizinhas reconstruídas através de um limite de unidade de segmentação de instruções de acordo com uma modalidade. A Fig. 10 ilustra um exemplo de geração de amostras preenchidas quando amostras vizinhas reconstruídas através de um limite de VPDU são necessárias para o processamento de uma CU atual. Um limite direito e um limite inferior da CU 100 atual estão nos limites VPDU 106 e 108. Amostras vizinhas reconstruídas 102 e 104 necessárias para a predição da CU 100 atual são substituídas por amostras preenchidas durante o processo de predição. O método de preenchimento pode ser o mesmo que o método de preenchimento usado para gerar amostras preenchidas para substituir as amostras de referência em CTU ou limites de imagem. O método de preenchimento é aplicado na direção vertical ou horizontal, ou é aplicado nas direções vertical e horizontal. Em uma modalidade alternativa, quando amostras vizinhas reconstruídas através de um limite de unidade de segmentação de instruções são necessárias para intra ou inter predição de um bloco atual, essas amostras vizinhas reconstruídas são tratadas como indisponíveis. A intra predição refere-se a uma intra predição angular, predição de modelo linear ou método de predição de modelo linear usando amostras vizinhas superior esquerda ou inferior direita entre componentes de cor diferentes ou predição combinada usando intra e inter predição. Amostras de Unidade de Segmentação de instruções Fora do Limite de Imagem
[0063] Para unidades de segmentação de instruções que cruzam o limite de imagem, as amostras fora do limite de imagem são preenchidas como na CTU ou nos limites de imagem. A Fig. 11 ilustra um exemplo de substituição de amostras fora do limite de imagem com amostras preenchidas para uma VPDU através do limite de imagem. Uma CU 112 atual está além de um limite de imagem 116 e as amostras 114 fora do limite de imagem 116 são substituídas por amostras preenchidas. As amostras preenchidas podem ser geradas por preenchimento na direção vertical ou horizontal ou nas direções vertical e horizontal. Tamanho de TT Máximo e Tamanho de BT Máximo
[0064] Um tamanho de TT máximo (max_TT_size) pode ser definido para restringir a aplicação da divisão de árvore ternária a qualquer CU com um tamanho maior do que este tamanho de TT máximo. O tamanho de TT máximo é definido como MxN e pode ser um valor predefinido, um valor sinalizado transmitido em sequência, imagem, fatia ou nível de bloco, um valor derivado ou igual a um tamanho de bloco de transformação máximo. Um exemplo do tamanho máximo de TT é derivado implicitamente de um tamanho de CTU ou tipo de fatia. O tamanho de bloco de transformação máximo pode ser um tamanho de transformação de luma máximo ou um tamanho de transformação de croma máximo para blocos luma ou blocos croma, respectivamente. Por exemplo, o tamanho de TT máximo é definido como igual a 64x64, e se uma CU atual for maior que 64x64, por exemplo, o tamanho da CU atual é 128x128, 128x64 ou 64x128, a CU atual não pode ser particionada por divisão de árvore ternária horizontal ou divisão de árvore ternária vertical.
[0065] Um tamanho de BT máximo (max_BT_size) pode ser definido para restringir a aplicação de divisão de árvore binária, incluindo divisão de BT simétrica, divisão de BT assimétrica, divisão de BT horizontal e divisão de BT vertical, a qualquer CU maior do que este tamanho de BT máximo. O tamanho de BT máximo é um bloco MxN, onde MxN é um valor predefinido, como 64x64, um valor sinalizado transmitido em sequência, imagem, fatia ou nível de bloco, um valor derivado ou um tamanho de bloco de transformação máximo. O tamanho de BT máximo pode ser derivado dependendo de um ou de uma combinação do tamanho de CTU e tipo de fatia. O tamanho de bloco de transformação máximo é um tamanho de transformação de luma máximo para blocos luma ou um tamanho máximo de transformação croma para blocos croma. Um exemplo do tamanho de BT máximo é igual a 64x64, se uma CU atual for maior que 64x64, por exemplo, se a CU atual for 128x128, 128x64 ou 64x128, a CU atual não pode ser particionada por qualquer divisão de BT.
[0066] Alternativamente, um tamanho de BTT máximo (max_BTT_size) é definido para restringir a aplicação de divisão de BT e divisão de TT para particionar qualquer bloco maior que max_BTT_size. A divisão de BT incluindo a divisão de BT simétrica e a divisão de BT assimétrica e a divisão de TT não podem ser aplicadas para CUs maiores que o tamanho de BTT máximo. O max_BTT_size é MxN, onde MxN é um valor predefinido, um valor sinalizado transmitido em sequência, imagem, fatia ou nível de bloco, um valor derivado ou igual ao tamanho de bloco de transformação máximo. O tamanho de bloco de transformação máximo por ser um tamanho de transformação de luma máximo para blocos luma ou um tamanho máximo de transformação croma para blocos croma. Um exemplo do tamanho de BTT máximo é derivado de acordo com um ou uma combinação do tamanho de CTU e tipo de fatia. Uma CU atual com um tamanho maior que o tamanho de BTT máximo não pode ser dividida por divisão de BT horizontal, divisão de BT vertical, divisão de TT horizontal ou divisão de TT vertical. Profundidade de Particionamento de Subárvore Permitida Máxima
[0067] Em algumas modalidades de particionamento de subárvore, a divisão de árvore ternária é permitida para dividir um bloco atual quando a profundidade de subárvore atual é igual ou menor que a profundidade de particionamento de subárvore permitida máxima menos um limite N. O limite N é implicitamente indicado e inferido no lado de decodificador, e um indicador para selecionar o tipo de divisão de TT está ausente quando a profundidade de subárvore atual é maior do que a profundidade de particionamento de subárvore permitida máxima menos N. Por exemplo, uma profundidade de particionamento de subárvore atual é S, e a profundidade de particionamento de subárvore permitida máxima é denotada como M, a divisão de TT é permitida para particionar um bloco atual quando S ≤ (M - N), onde M> N ≥
0. Além disso, se a profundidade de partição de subárvore atual for maior que (M - N), o indicador para selecionar a divisão de árvore ternária está ausente. O limite N para blocos em uma fatia atual em outra modalidade é determinado de forma adaptativa de acordo com o tipo de fatia ou componente de cor da fatia atual, ou ID de camada temporal da fatia atual. O limite N é determinado implicitamente e inferido nos lados do codificador e do decodificador, e um indicador para selecionar o tipo de divisão de árvore ternária está ausente quando a profundidade da partição de subárvore atual é maior do que a profundidade de particionamento de subárvore permitida máxima menos N. Por exemplo, o limite é N1 para blocos em uma fatia Intra e N2 para blocos em uma fatia Inter. Suponha que a profundidade da partição de subárvore atual seja indicada como S e a profundidade permitida máxima da partição de subárvore seja indicada como M. Se uma fatia atual é uma fatia Intra, a divisão de árvore ternária é permitida para particionar um bloco atual na fatia atual quando S ≤ (M - N1), e um indicador para selecionar o tipo de divisão de árvore ternária está ausente quando S > (M - N1). Da mesma forma, se uma fatia atual é uma fatia Inter, a divisão de árvore ternária é permitida para particionar um bloco atual na fatia atual quando S ≤ (M - N2), e um indicador para selecionar o tipo de divisão de árvore ternária está ausente uma vez S > (M - N2). Profundidade de Árvore Múltipla
[0068] Algumas modalidades definem uma profundidade de árvore múltipla (MTDepth) para contar a profundidade de partição de divisão de árvore binária e divisão de árvore ternária. Em uma modalidade de definir um MTDepth de dois sub-blocos particionados por divisão de árvore binária, o MTDepth dos sub-blocos é o MTDepth de seu bloco pai mais 1; no entanto, o MTDepth de um primeiro e terceiro sub-blocos particionados pela divisão de árvore ternária é o MTDepth de seu bloco pai mais 2, enquanto o MTDepth de um segundo sub- bloco particionado pela divisão de árvore ternária é o MTDepth de seu bloco pai mais 1. O segundo sub-bloco particionado pela divisão de árvore ternária é a partição central com um tamanho maior do que o tamanho de cada partição lateral. Em outra modalidade, o MTDepth é contado da mesma maneira para a divisão de árvore binária que a modalidade anterior, mas ao contar o MTDepth pela divisão de árvore ternária, o MTDepth de todos os três sub-blocos divididos de um bloco pai por divisão de árvore ternária é o MTDepth do bloco pai mais 1. Em ainda outra modalidade, o MTDepth é incrementado em 1 após cada divisão de árvore binária, enquanto o MTDepth é incrementado em 2 após cada divisão de árvore ternária. O MTDepth do primeiro, segundo e terceiro sub-blocos particionados pela divisão de árvore ternária é o MTDepth de seu bloco pai mais 2.
[0069] O MTDepth pode ser usado como um critério para selecionar o modelo de contexto na codificação do tipo de partição de CU ou direção de particionamento. Em uma modalidade, a profundidade de uma CU atual é definida por uma soma de uma profundidade de quadtree ponderada (QTDepth x m) e uma profundidade de árvores múltiplas ponderada (MTDepth x n). A seleção do modelo de contexto é baseada nas relações entre a profundidade das CUs atuais, à esquerda e acima. Por exemplo, o índice de modelo de contexto para uma CU atual é 2 se as profundidades das CUs esquerda e acima forem ambas maiores do que a profundidade da CU atual; e o índice de modelo de contexto é 1 se apenas a profundidade das CUs à esquerda ou acima for maior do que a profundidade da CU atual; caso contrário, o índice de modelo de contexto da CU atual é 0. Um exemplo do fator de ponderação m é 1 e o fator de ponderação n também é 1, e outro exemplo do fator de ponderação m é 2 e o fator de ponderação n é 1. Em outra modalidade, o índice de modelo de contexto selecionado de uma CU atual é (QTDepth x m + MTDepth x n).
[0070] O MTDepth pode ser usado para indicar se uma CU atual é mais dividida ou não. Em uma modalidade, se uma profundidade de divisão de CU permitida máxima pela divisão de BT e TT for definida como k, um bloco de corrente não será mais dividido se o MTDepth do bloco de corrente for maior do que a profundidade de divisão de CU permitida máxima k. Em outra modalidade, o bloco atual não é mais dividido se o MTDepth do bloco atual for maior ou igual à profundidade de divisão de CU permitida máxima k.
[0071] Uma modalidade de profundidade de árvore múltipla (MTDepth) é empregada para determinar se um parâmetro de quantização delta (QP) é sinalizado para um nó dividido. Por exemplo, um delta QP para um nó dividido é sinalizado condicionalmente em um fluxo de bits de vídeo dependendo da profundidade de quadtree (quadTreeDepth) e da profundidade de árvore múltipla (MTDepth) do nó dividido. Uma profundidade máxima de sinalização delta QP (diff_cu_qp_delta_depth) é predefinida, derivada ou sinalizada em um nível de fatia, nível de imagem, nível de bloco e/ou nível de sequência para restringir a profundidade máxima para sinalizar um delta QP. Em um caso quando o delta QP está habilitado, para uma CU de folha com uma profundidade menor ou igual à profundidade máxima da profundidade de sinalização QP, e a CU de folha tem pelo menos um coeficiente diferente de zero ou pelo menos uma paleta de escape, um delta QP é sinalizado. Para um nó dividido (por exemplo, CU de não folha) com uma profundidade igual à profundidade máxima de sinalização delta QP, no máximo um delta QP é sinalizado neste nó dividido. Se uma das folhas CU tem pelo menos um coeficiente diferente de zero ou pelo menos uma paleta de escape, um delta QP é sinalizado. O delta QP sinalizado é compartilhado por todas as CUs folha dentro do nó dividido. O delta QP pode ser sinalizado após um primeiro sinalizador de bloco codificado (cbf) quando o primeiro cbf é igual a um primeiro valor ou após um primeiro sinalizador de paleta de escape quando o primeiro sinalizador de paleta de escape é igual a um segundo valor, onde o primeiro valor indica que a CU tem pelo menos um coeficiente diferente de zero, e o segundo valor indica que a CU tem pelo menos uma paleta de escape.
Por exemplo, IsCuQpDeltaCoded é definido (ou seja, IsCuQpDeltaCoded = 0) ao codificar ou decodificar uma CU com um valor QP recentemente sinalizado para a CU.
Os pseudocódigos a seguir demonstram várias modalidades de sinalização condicional de um delta QP, dependendo de quadTreeDepth e MTDepth. if ( cu_qp_delta_enabled_flag && quadTreeDepth + (MTDepth>>1) <= diff_cu_qp_delta_depth) { IsCuQpDeltaCoded = 0 CuQpDeltaVal = 0 }
if ( cu_qp_delta_enabled_flag && quadTreeDepth + ((MTDepth+1)>>1) <= diff_cu_qp_delta_depth) { IsCuQpDeltaCoded = 0 CuQpDeltaVal = 0 }
if ( cu_qp_delta_enabled_flag && quadTreeDepth + ((MTDepth+K)>>N) <= diff_cu_qp_delta_depth) { IsCuQpDeltaCoded = 0 CuQpDeltaVal = 0 } onde K e N são números inteiros predefinidos, alguns exemplos são K = 2 e N = 1, K = 0 e N = 0 e K = 1 e N = 1. if ( cu_qp_delta_enabled_flag &&
( (L*quadTreeDepth + MTDepth) <= diff_cu_qp_delta_depth) { IsCuQpDeltaCoded = 0 CuQpDeltaVal = 0 } onde L é um número inteiro predefinido, por exemplo, L = 2 ou L = 1.
[0072] A sintaxe de sinalização de um delta QP (CuQpDeltaVal) em um nível de unidade de transformação (TU) pode ser semelhante à sintaxe usada no padrão HEVC e mostrada a seguir. if ( cu_qp_delta_enabled_flag && !IsCuQpDeltaCoded ) { cu_qp_delta_abs if( cu_qp_delta_abs ) cu_qp_delta_sign_flag } onde um delta QP (CuQpDeltaVal) é derivado com base em um valor absoluto (cu_qp_delta_abs) e um sinalizador (cu_qp_delta_sign_flag), e o valor QP final é reconstruído de acordo com um QP de referência e o delta QP (CuQpDeltaVal). Quando o sinalizador não está presente, infere-se que é igual a 0, e quando o valor absoluto está presente, as variáveis IsCuQpDeltaCoded e CuQpDeltaVal são derivadas da seguinte forma: IsCuQpDeltaCoded = 1 CuQpDeltaVal = cu_qp_delta_abs * ( 1 − 2 * cu_qp_delta_sign_flag )
[0073] Em uma modalidade, uma profundidade de sinalização delta QP máxima (diff_cu_qp_delta_depth) é sinalizada separadamente para os componentes luma e croma quando a estrutura de divisão CU é determinada separadamente para os componentes luma e croma. Em outra modalidade, mesmo quando a estrutura de divisão CU é determinada separadamente para os componentes luma e croma, uma profundidade de sinalização delta QP máxima é compartilhada pelos componentes luma e croma. Em ainda outra modalidade, quando a estrutura de divisão CU é determinada separadamente para os componentes luma e croma, uma profundidade de sinalização delta QP máxima para os componentes croma é definida como um valor dependendo daquele do componente luma. Por exemplo, a profundidade de sinalização delta QP máxima para os componentes de croma é a profundidade de sinalização delta QP máxima para o componente luma menos um valor inteiro, como 1 ou 2. Uma modalidade do MTDepth pode ser usada para derivar uma área de um nó dividido. Por exemplo, a área de um nó dividido (cbArea) é calculada como: cbArea = (área de CU máx) >> (OT Depth X m + MTDepth X n). onde m e n são fatores ponderados para a profundidade de quadtree e profundidade de árvores múltiplas, por exemplo, m é 1 e n é 1, ou m é 2 e n é 1.
[0074] Algumas das seguintes modalidades exemplares assumem que um delta QP é sinalizado condicionalmente de acordo com a área de um nó dividido (cbArea) e a divisão de árvore ternária é usada. Um delta QP é sinalizado para todos os três nós divididos particionados por divisão de árvore ternária de acordo com uma modalidade. Em outra modalidade, apenas um delta QP é sinalizado para o segundo nó dividido particionado pela divisão de árvore ternária, que é a partição central, e não há nenhum novo delta QP codificado para o primeiro e terceiro nós divididos. O QP usado no primeiro nó dividido pode ser o último QP, o QP usado no segundo nó dividido é derivado usando o delta QP sinalizado, e este QP derivado também é usado no terceiro nó dividido. Em ainda outra modalidade, três partições de árvore ternária podem ter seu próprio delta QP, isto é, no máximo três QPs delta podem ser sinalizados para os três nós divididos particionados por divisão de árvore ternária. Restrição de Partição de Sub-bloco Afim
[0075] Uma modalidade da presente invenção restringe ainda um tamanho de sub-bloco de um bloco codificado afim. Uma CU é dividida em vários sub-blocos quando é codificada em um modo afim convencional. Se o tamanho do sub-bloco é 4x4, o tamanho de bloco croma correspondente é 2x2, o que é indesejável. Uma modalidade fixa o tamanho do sub-bloco de um bloco codificado afinado em 8x8 ou maior do que 8x8 para garantir que os sub-blocos croma sejam maiores ou iguais a 4x4. Seis MPMs e Sessenta e quatro Modos Restantes
[0076] O padrão HEVC suporta 35 modos de intra predição, incluindo 33 modos angulares, modo DC e modo Planar. Um intra preditor de um bloco atual é derivado de amostras de referência vizinhas de acordo com um modo de intra predição selecionado a partir dos 35 modos. Se um modo angular for selecionado, o valor de cada amostra em um bloco atual é previsto extrapolando as amostras das amostras de referência de acordo com a direção de predição do modo angular selecionado. O valor de cada amostra no bloco atual é calculado assumindo uma superfície de amplitude com um gradiente suave horizontal e vertical derivado das amostras de limites do bloco vizinho se o modo Planar for selecionado.
O valor de cada amostra do bloco atual é uma média das amostras de referência se o modo DC for selecionado. O modo de intra predição selecionado é sinalizado explicitamente ou inferido de um modo previamente decodificado de um bloco vizinho superior ou esquerdo do bloco atual. Os modos de intra predição dos blocos vizinhos acima e à esquerda estão incluídos em um conjunto de três modos mais prováveis (MPMs). Um primeiro sinalizador MPM é sinalizado para indicar se o modo selecionado é idêntico a um dos três MPMs, em caso afirmativo, outro sinalizador é enviado para indicar qual dos três MPMs está selecionado; se o primeiro sinalizador MPM for falso, o modo selecionado é explicitamente sinalizado usando uma palavra-código de comprimento fixo de 5 bits. Os 33 modos angulares usados no padrão HEVC são mostrados na Fig. 12A, onde H representa a direção de modo Horizontal e V representa a direção de modo Vertical. Espera-se que o número de modos de intra predição no padrão de codificação de vídeo de próxima geração se expanda para 67 modos, incluindo DC, Planar e 65 modos angulares, como mostrado na Fig. 12B. Cada um dos modos angulares pode ser representado pelo modo H + k ou modo V + k, onde k = 0, + - 1, + -2, .. + - 16. O modo H-16 e o modo V-16 são o mesmo modo, pois este modo se refere à direção de predição de um canto superior esquerdo ao centro do bloco atual. A Fig. 12B ilustra os 65 modos angulares de intra predição com 32 modos angulares adicionais entre os modos angulares HEVC 33 na Fig. 12A.
[0077] Uma modalidade seleciona 6 modos de intra predição como MPMs e 64 modos restantes, em que os 6 MPMs incluem 3 modos selecionados a partir dos 67 modos de intra predição do padrão de codificação de vídeo de próxima geração, e 3 modos de adição. Os 64 modos restantes podem ser codificados usando codificação de comprimento fixo de 6 bits. Um exemplo de modo de adição é um modo angular, como um modo angular amplo. O modo angular amplo pode ser selecionado a partir de modos fora de 45 graus e 225 graus, por exemplo, o modo angular amplo é um modo intra abaixo do modo H + 16 ou um modo intra direito ao modo V + 16 na Fig. 12B. Em outro exemplo, um modo adicional é um modo próximo ao modo Vertical, Horizontal ou Diagonal. O modo adicional pode ser derivado reduzindo a diferença angular entre o modo próximo ao modo Vertical, Horizontal ou Diagonal. Em outro exemplo, um modo de adição é uma variação do modo Planar, por exemplo, o modo de adição é derivado usando um pixel de posição inferior direita diferente daquele usado no modo Planar. Diferentes modos Planar com diferentes pixels de posição inferior direita podem ser adicionados aos MPMs. Outro exemplo de um modo de adição é um modo combinado que combina dois ou mais modos originais, por exemplo, modo Vertical mais modo Planar, modo Horizontal mais modo Planar, modo Vertical mais modo DC ou modo Horizontal mais modo DC. Fluxogramas Exemplificativos
[0078] A Fig. 13 é um fluxograma que ilustra uma modalidade exemplar do método de processamento de vídeo implementado em um sistema de codificação ou decodificação de vídeo. Uma imagem é primeiro particionada em vários blocos não sobrepostos, como Unidade de Árvore de Codificação (CTUs), e cada bloco é ainda particionado em um ou mais blocos folha não sobrepostos, como Unidade de Codificação (CUs) de folha, por uma estrutura de particionamento recursivo.
O sistema de codificação ou decodificação de vídeo nesta modalidade exemplar processa um bloco atual em uma imagem de vídeo atual, recebendo primeiro os dados de entrada associados ao bloco atual na Etapa S1302. Um tamanho de unidade de segmentação de instruções de unidades de segmentação de instruções é determinado para decidir a validade de um ou mais tipos de divisão, onde as unidades de segmentação de instruções são definidas como unidades não sobrepostas na imagem de vídeo atual projetada para processamento de segmentação de instruções.
Um tipo de divisão predefinido é selecionado para particionar o bloco atual em vários sub-blocos na Etapa S1304, e a Etapa S1306 e a Etapa 1308 verificam se este tipo de divisão predefinido é válido ou inválido para particionar o bloco atual.
A etapa S1306 verifica se cada um dos sub-blocos particionados pelo tipo de divisão predefinido satisfaz uma da primeira e segunda restrições.
A primeira restrição restringe cada um dos sub-blocos particionados do bloco atual para estar completamente contido em uma ou mais unidades de segmentação de instruções, e a segunda restrição restringe cada um dos sub-blocos particionados do bloco atual para conter uma ou mais unidades de segmentação de instruções completas.
Se qualquer sub-bloco viola a primeira e a segunda restrições, este tipo de divisão predefinido é definido como um tipo de divisão inválido na Etapa S1312, se todos os sub-blocos satisfizerem pelo menos uma da primeira e segunda restrições, a Etapa S1308 verifica ainda se os sub-blocos satisfazem uma restrição de nova visita, em que a restrição de nova visita proíbe a nova visita de qualquer unidade de segmentação de instruções no bloco atual após deixar a unidade de segmentação de instruções ao processar os sub-blocos do bloco atual. Se os sub-blocos satisfazem a restrição de nova visita na Etapa 1308, a Etapa S1310 define o tipo de divisão predefinido como um tipo de divisão válido; caso contrário, a Etapa S1312 define o tipo de divisão predefinido como um tipo de divisão inválido. Na Etapa S1314, o sistema de codificação ou decodificação de vídeo verifica se a validade de outro tipo de divisão para particionar o bloco atual precisa ser verificada, por exemplo, o codificador ou decodificador de vídeo primeiro verifica se a divisão de árvore binária horizontal é válida, e então o codificador ou decodificador de vídeo verifica ainda a validade de um ou mais de divisão de árvore binária vertical, divisão de árvore ternária horizontal e divisão de árvore ternária vertical. Se houver outro tipo de divisão predefinido que precisa ser verificado, o fluxograma repete as etapas de S1304 a S1314. Se nenhum tipo de divisão precisar ser verificado, o bloco atual é particionado de forma adaptativa usando um dos tipos de divisão válidos em sub-blocos ou o bloco atual não é particionado na Etapa S1316. O sistema de codificação ou decodificação de vídeo verifica se algum sub-bloco no bloco atual é dividido posteriormente na Etapa S1318, define o sub-bloco como um bloco atual na Etapa S1320 se este sub- bloco é dividido posteriormente e repete o processo da Etapa S1304 até a Etapa S1316. Se não houver mais sub-bloco a ser dividido, o bloco atual é codificado ou decodificado de acordo com uma estrutura de particionamento de bloco do bloco atual na Etapa S1322.
[0079] A Fig. 14 é um fluxograma que ilustra outra modalidade exemplar do método de processamento de vídeo que pode ser implementado em um sistema de codificação ou decodificação de vídeo. O sistema de codificação ou decodificação de vídeo recebe dados de entrada de um bloco atual em uma imagem de vídeo atual na Etapa S1402. Dois limites inteiros W e H são determinados para decidir qual tipo de divisão é válido. Um tipo de divisão predefinido para particionar o bloco atual em sub-blocos é selecionado na Etapa S1404, e a validade deste tipo de divisão predefinido para particionar o bloco atual é determinada comparando a largura, altura ou a largura e a altura do bloco atual com um ou ambos os limites W e H na Etapa S1406. O sistema de codificação ou decodificação de vídeo particiona de forma adaptativa o bloco atual em vários sub-blocos usando um tipo de divisão permitido na Etapa S1408. A etapa S1410 verifica se há algum sub-bloco no bloco atual a ser particionado posteriormente, a etapa S1412 define o sub- bloco como um bloco atual se ele for particionado posteriormente, e o bloco atual é processado pela etapa S1404 até a etapa S1410. Se não houver mais sub-bloco a ser dividido, o bloco atual é codificado ou decodificado de acordo com uma estrutura de particionamento de bloco do bloco atual na Etapa S1414. Diagrama de Blocos de Sistema Exemplar
[0080] A Fig. 15 ilustra um diagrama de blocos de sistema exemplar para um codificador de vídeo 1500 implementando várias modalidades de particionamento de um bloco atual com uma restrição de partição. Um Módulo de Particionamento de Estrutura de Bloco 1510 recebe dados de entrada de imagens de vídeo e determina uma estrutura de particionamento de bloco para cada bloco na imagem de vídeo a ser codificada.
Uma imagem de vídeo atual é primeiro dividida em blocos não sobrepostos e cada bloco é ainda dividido por uma estrutura de particionamento recursiva em blocos de folha no Módulo de Particionamento de Estrutura de Bloco 1510, por exemplo, o módulo de Particionamento de Estrutura de Bloco particiona adaptativamente cada uma das CTUs na imagem de vídeo atual em CUs de folha para processamento de predição.
De acordo com várias modalidades da presente invenção, o Módulo de Particionamento de Estrutura de Bloco 1510 recebe dados de entrada associados a um bloco atual na imagem de vídeo atual e verifica se um ou mais tipos de divisão predefinidos são permitidos para particionar o bloco atual.
O bloco atual pode ser uma CTU atual, uma divisão CU da CTU atual ou uma TU.
Em algumas modalidades, um tipo de divisão predefinido é permitido se cada divisão de sub-bloco do bloco atual satisfizer pelo menos uma da primeira e segunda restrições, em que a primeira restrição restringe cada sub-bloco a ser completamente contido em uma unidade de segmentação de instruções e a segunda restrição restringe cada sub-bloco para conter uma ou mais unidades de segmentação de instruções completas.
As unidades de segmentação de instruções são unidades não sobrepostas na imagem de vídeo atual projetadas para processamento de segmentação de instruções e um tamanho de unidade de segmentação de instruções é predefinido ou implicitamente definido com base em um perfil ou nível de acordo com um padrão de compressão de vídeo.
Por exemplo, o tamanho de unidade de segmentação de instruções é definido como um tamanho de Bloco de Transformação (TB) máximo.
O Módulo de Particionamento de Estrutura de Bloco 1510 particiona de forma adaptativa o bloco atual usando um tipo de divisão permitido.
O tipo de divisão predefinido não tem permissão para dividir o bloco atual se qualquer sub-bloco particionado pelo tipo de divisão predefinido violar a primeira e a segunda restrições.
Algumas outras modalidades do Módulo de Particionamento de Estrutura de Bloco 1510 verificam se um tipo de divisão predefinido é permitido para particionar o bloco atual, comparando uma largura, uma altura ou ambas a largura e altura do bloco atual com um ou ambos os limites W e limite H.
Um exemplo do limite W é 64 e um exemplo do limite H também é 64. Se houver dois ou mais tipos de divisão permitidos que podem ser usados para particionar o bloco atual, uma modalidade do Módulo de Particionamento de Estrutura de Bloco 1510 testa sistematicamente os tipos de divisão permitidos e seleciona o tipo de divisão de acordo com os resultados de Otimização de Distorção de Taxa (RDO). A informação corresponde ao tipo de divisão selecionado para o bloco atual, tal como a estrutura de particionamento do bloco pode ser sinalizada no fluxo de bits de vídeo para os decodificadores decodificarem o bloco atual.
Cada bloco de folha na imagem de vídeo atual é previsto por Intra predição no Módulo de Intra Predição 1512 ou Inter predição no Módulo de Inter Predição 1514 para remover redundância espacial ou redundância temporal.
O Módulo de Intra Predição 1512 fornece intra preditores para o bloco de folha atual com base em dados de vídeo reconstruídos da imagem atual.
O Módulo de Inter Predição 1514 realiza Estimativa de Movimento (ME) e Compensação de Movimento (MC) para fornecer preditores para o bloco de folha atual com base em dados de vídeo de outra imagem ou imagens de vídeo.
Um Comutador 1516 seleciona o Módulo de Intra Predição 1512 ou o Módulo de Inter Predição
1514 para fornecer o preditor ao Adicionador 1518 para formar erros de predição, também chamados de resíduos. Os resíduos do bloco folha atual são posteriormente processados pelo Módulo de Transformação (T) 1520 seguido pelo Módulo de Quantização (Q) 1522. O sinal residual transformado e quantizado é então codificado pelo codificador de entropia 1534 para formar um fluxo de bits de vídeo. O fluxo de bits de vídeo é então compactado com informações secundárias. O sinal residual transformado e quantizado do bloco folha atual é processado pelo Módulo de Quantização Inversa (IQ) 1524 e Módulo de Transformação Inversa (IT) 1526 para recuperar os resíduos de predição. Como mostrado na Fig. 15, os resíduos são recuperados adicionando de volta ao preditor selecionado no Módulo de Reconstrução (REC) 1528 para produzir dados de vídeo reconstruídos. Os dados de vídeo reconstruídos podem ser armazenados no Buffer de Imagem de Referência (Ref. de Imagem Buffer) 1532 e usado pelo Module de Inter Predição 1514 para a predição de outras imagens. Os dados de vídeo reconstruídos do REC 1528 podem estar sujeitos a várias deficiências devido ao processamento de codificação, consequentemente, o Filtro de Processamento em Loop 1530 é aplicado aos dados de vídeo reconstruídos antes de armazenar no Buffer de Imagem de Referência 1532 para melhorar adicionalmente a qualidade de imagem.
[0081] Um decodificador de vídeo 1600 correspondente para decodificar o fluxo de bits de vídeo gerado pelo codificador de vídeo 1500 da Fig. 15 é mostrado na Fig. 16. A entrada para o decodificador de vídeo 1600 é decodificada pelo decodificador de entropia 1610 para analisar e recuperar o sinal residual transformado e quantizado e outras informações de sistema.
Um Módulo de Particionamento de Estrutura de Bloco 1612 determina uma estrutura de particionamento de bloco de cada bloco em cada imagem de vídeo de acordo com várias modalidades da presente invenção.
Em algumas modalidades, um bloco atual não é particionado por um tipo de divisão predefinido se qualquer sub-bloco particionado pelo tipo de divisão predefinido violar a primeira e a segunda restrições.
A primeira restrição restringe cada um dos sub-blocos particionados do bloco atual pelo tipo de divisão predefinido para estar completamente contido em uma unidade de segmentação de instruções e a segunda restrição restringe cada um dos sub-blocos para conter uma ou mais unidades de segmentação de instruções completas.
As unidades de segmentação de instruções são unidades não sobrepostas na imagem de vídeo atual projetadas para processamento de segmentação de instruções, e o tamanho das unidades de segmentação de instruções é predefinido ou determinado implicitamente.
Em algumas outras modalidades do Módulo de Particionamento de Estrutura de Bloco 1612, o bloco atual não é particionado por um tipo de divisão predefinido de acordo com um resultado de comparação entre uma largura, uma altura ou ambas a largura e altura do bloco atual e um ou ambos os limites W e limite H.
O bloco atual pode ser uma CTU, uma CU particionada da CTU, ou uma TU.
O processo de decodificação do Decodificador 1600 é semelhante ao loop de reconstrução no Codificador 1500, exceto que o Decodificador 1600 requer apenas predição de compensação de movimento no Módulo de Inter Predição 1616. Cada bloco de folha é decodificado por qualquer Módulo de Intra Predição 1614 ou Módulo de Inter Predição 1616, e um Comutador 1618 seleciona um Intra preditor ou Inter preditor de acordo com a informação de modo decodificada. O sinal residual transformado e quantizado associado a cada bloco de folha é recuperado pelo Módulo de Quantização Inversa (IQ) 1622 e Módulo de Transformação Inversa (IT) 1624. O sinal residual recuperado é reconstruído adicionando de volta o preditor no REC 1620 para produzir o vídeo reconstruído. O vídeo reconstruído é posteriormente processado pelo Filtro de Processamento em Loop (Filtro) 1626 para gerar o vídeo decodificado final. Se uma imagem de vídeo decodificada atualmente é uma imagem de referência, o vídeo reconstruído da imagem de vídeo decodificada atualmente também é armazenado no Buffer de Imagem de Referência 1628 para imagens posteriores na ordem de decodificação.
[0082] Vários componentes do Codificador de Vídeo 1500 e do Decodificador de Vídeo 1600 na Fig. 15 e na Fig. 16 podem ser implementados por componentes de hardware, um ou mais processadores configurados para executar instruções de programa armazenadas em uma memória ou uma combinação de hardware e processador. Por exemplo, um processador executa instruções de programa para controlar o recebimento de dados de entrada associados a uma imagem de vídeo atual. O processador está equipado com um ou vários núcleos de processamento. Em alguns exemplos, o processador executa instruções de programa para executar funções em alguns componentes do Codificador 1500 e do Decodificador 1600, e a memória eletricamente acoplada ao processador é usada para armazenar as instruções do programa, informações correspondentes aos dados reconstruídos e/ou intermediários dados durante o processo de codificação ou decodificação. A memória em algumas modalidades inclui um meio legível por computador não transitório, como um semicondutor ou memória de estado sólido, uma memória de acesso aleatório (RAM), uma memória somente leitura (ROM), um disco rígido, um disco óptico ou outro meio de armazenamento adequado. A memória também pode ser uma combinação de dois ou mais dos meios legíveis por computador não transitórios listados acima. Conforme mostrado nas Figs. 15 e 16, o Codificador 1500 e o Decodificador 1600 podem ser implementados no mesmo dispositivo eletrônico, de modo que vários componentes funcionais do Codificador 1500 e do Decodificador 1600 podem ser compartilhados ou reutilizados se implementados no mesmo dispositivo eletrônico. Qualquer uma das modalidades da presente invenção pode ser implementada em um Módulo de Particionamento de Estrutura de Bloco 1510 do Codificador 1500 e/ou um Módulo de Particionamento de Estrutura de Bloco 1612 do Decodificador 1600. Alternativamente, qualquer uma das modalidades pode ser implementada como um circuito acoplado ao Módulo de Particionamento de Estrutura de Bloco 1510 do Codificador 1500 e/ou ao Módulo de Particionamento de Estrutura de Bloco 1612 do Decodificador 1600, de modo a fornecer as informações necessárias para o decodificador de entropia 1610 ou o Módulo de Particionamento de Estrutura de Bloco 1612.
[0083] O método de processamento de vídeo proposto com uma ou mais restrições de partição pode ser aplicado como uma restrição normativa para codificadores e decodificadores ou pode ser aplicado como uma restrição não normativa de codificador. Para um exemplo de restrição normativa, se um determinado tipo de divisão ou particionamento não for permitido, uma sintaxe de partição determinando se deve selecionar ou dividir não é sinalizada e inferida como um valor fixo ou derivado. Para um exemplo da restrição não normativa de codificador, se um determinado tipo de divisão ou particionamento não for permitido, uma sintaxe de partição ainda é sinalizada para um decodificador correspondente, mas o valor da sintaxe de partição é um valor fixo ou derivado.
[0084] As modalidades dos métodos de processamento de vídeo com uma ou mais restrições de partição podem ser implementadas em um circuito integrado em um chip de compressão de vídeo ou código de programa integrado ao software de compressão de vídeo para realizar o processamento descrito acima. Por exemplo, a determinação de uma estrutura de particionamento de bloco para o bloco atual pode ser realizada em códigos de programa a serem executados em um processador de computador, um Processador de Sinal Digital (DSP), um microprocessador ou Matriz de Portas Programáveis em Campo (FPGA). Estes processadores podem ser configurados para realizar tarefas particulares de acordo com a invenção, executando código de software legível por máquina ou código de firmware que define os métodos particulares incorporados pela invenção.
[0085] A invenção pode ser concretizada em outras formas específicas sem se afastar de seu espírito ou características essenciais. Os exemplos descritos devem ser consideradas em todos os aspectos apenas como ilustrativas e não restritivas. O escopo da invenção é, portanto, indicado pelas reivindicações anexas e não pela descrição anterior. Todas as mudanças que se enquadram no significado e no intervalo de equivalência das reivindicações devem ser adotadas dentro de seu escopo.

Claims (24)

REIVINDICAÇÕES
1. Método de processamento de vídeo em um sistema de codificação de vídeo para codificar ou decodificar imagens de vídeo com uma restrição de partição, o método caracterizado pelo fato de que compreende: receber dados de entrada associados a um bloco atual em uma imagem de vídeo atual; determinar um tamanho de unidade de segmentação de instruções de unidades de segmentação de instruções, em que as unidades de segmentação de instruções são unidades não sobrepostas na imagem de vídeo atual projetada para processamento de segmentação de instruções; determinar se um tipo de divisão predefinido tem permissão para particionar o bloco atual em vários sub-blocos de acordo com a restrição de partição, em que a restrição de partição compreende uma primeira restrição e uma segunda restrição, a primeira restrição restringe cada um dos sub- blocos particionados do bloco atual para ser completamente contido em uma unidade de segmentação de instruções, a segunda restrição restringe cada um dos sub-blocos particionados do bloco atual para conter uma ou mais unidades de segmentação de instruções completas, e o tipo de divisão predefinido não tem permissão para particionar o bloco atual, se qualquer sub-bloco particionado pelo tipo de divisão predefinido viola a primeira e a segunda restrições; particionar o bloco atual usando um tipo de divisão permitido; e codificar ou decodificar o bloco atual de acordo com uma estrutura de particionamento de bloco do bloco atual.
2. Método, de acordo com a reivindicação 1,
caracterizado pelo fato de que tipo de divisão predefinido é selecionado de divisão de quadtree, divisão de árvore binária horizontal, divisão de árvore binária vertical, divisão de árvore ternária horizontal, e divisão de árvore ternária vertical.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o bloco atual é uma Unidade de Árvore de Codificação (CTU), uma Unidade de Codificação (CU) ou uma Unidade de Transformação (TU).
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o tamanho de unidade de segmentação de instruções é definido como um tamanho de Bloco de Transformação (TB) máximo.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o tamanho de unidade de segmentação de instruções é implicitamente definido com base em um perfil ou nível de acordo com um padrão de compressão de vídeo.
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o tamanho de unidade de segmentação de instruções é definido como 64x64 para um componente de luminância (luma) ou 32x32 para componentes de crominância (croma) em um formato de cor 4:2:0.
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que determinar se um tipo de divisão predefinido é permitido ao considerar uma restrição de nova visita, e o tipo de divisão predefinido não é permitido se a restrição de nova visita for violada, em que a restrição de nova visita proíbe uma nova visitar a qualquer unidade de segmentação de instruções no bloco atual depois de deixar a unidade de segmentação de instruções ao processar os sub-blocos particionados do bloco atual.
8. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o tamanho de unidade de segmentação de instruções compreende vários tamanhos de unidade de segmentação de instruções permitidos quando unidades de segmentação de instruções não quadradas são permitidas.
9. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que as unidades de segmentação de instruções são unidades de segmentação de instruções quadradas ou unidades de segmentação de instruções não quadradas, e o uso de unidade de segmentação de instruções não quadrada é predefinido, derivado ou sinalizado em uma sequência, imagem, fatia, bloco, Unidade de Árvore de Codificação (CTU), ou nível de linha de CTU.
10. Método de processamento de vídeo em um sistema de codificação de vídeo para codificar ou decodificar imagens de vídeo com uma restrição de partição, o método caracterizado pelo fato de que compreende: receber dados de entrada associados a um bloco atual em uma imagem de vídeo atual; determinar dois limites W e H, em que ambos os dois limites W e H são números inteiros positivos; determinar se um tipo de divisão predefinido é permitido para particionar o bloco atual em vários sub-blocos de acordo com uma restrição de partição, em que a restrição de partição corresponde a um resultado de comparação de uma largura do bloco atual, uma altura do bloco atual, ou ambos a largura e altura do bloco atual com um ou ambos os limites W e H;
particionar o bloco atual com um tipo de divisão permitido, em que o tipo de divisão predefinido não é usado para particionar o bloco atual se o resultado de comparação indicar que o tipo de divisão predefinido não é permitido; e codificar ou decodificar o bloco atual de acordo com uma estrutura de particionamento de bloco do bloco atual.
11. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que os dois limites W e H são predefinidos ou implicitamente definidos com base em um perfil ou nível de acordo com um padrão de compressão de vídeo.
12. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que a divisão de árvore binária horizontal não é permitida se a largura do bloco atual for maior do que o limite W e a altura do bloco atual for menor ou igual ao limite H, e divisão de árvore binária vertical não é permitida se a largura do bloco atual for menor ou igual ao limite W e a altura do bloco atual for maior do que o limite H.
13. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que a divisão de árvore ternária horizontal não é permitida se a largura ou altura do bloco atual for maior do que o limite W, e a divisão de árvore ternária vertical não é permitida se a largura ou altura do bloco atual for maior do que o limite H.
14. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que a divisão de árvore ternária horizontal não é permitida se a largura do bloco atual for maior ou igual ao limite W e a altura da divisão do bloco atual por 4 for menor do que o limite H, e a divisão de árvore ternária vertical não é permitida se a altura do bloco atual for maior ou igual ao limite H e a largura do bloco atual dividida por 4 for menor do que o limite W.
15. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que a divisão de árvore ternária horizontal não é permitida se a largura do bloco atual for maior do que o limite W e a altura do bloco atual for maior do que o limite H mas a altura dividida por 4 for menor do que o limite H, e a divisão de árvore ternária vertical não é permitida se a altura do bloco atual for maior do que o limite H e a largura do bloco atual for maior do que o limite W mas a largura dividida por 4 for menor que o limite W.
16. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que a divisão de árvore ternária horizontal não é permitida se a largura do bloco atual for maior ou igual ao limite W e a altura do bloco atual for maior do que o limite H mas a altura dividida por 4 for menor que o limite H, e a divisão de árvore ternária vertical não é permitida se a altura do bloco atual for maior ou igual ao limite H e a largura do bloco atual for maior que o limite W mas a largura dividida por 4 for menor do que o limite W.
17. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que a divisão de árvore ternária horizontal não é permitida se a largura do bloco atual for maior do que o limite W e a altura do bloco atual for maior do que o limite H e a altura dividida por 4 não for um múltiplo do limite H, e divisão de árvore ternária vertical não é permitida se a altura do bloco atual for maior do que o limite H e a largura do bloco atual for maior do que o limite W mas a largura dividida por 4 não for um múltiplo do limite W.
18. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que pelo menos uma sintaxe de partição é inferida de acordo com o resultado de comparação, e a sintaxe de partição não é sinalizada em um fluxo de bits de vídeo.
19. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que uma unidade de segmentação de instruções é definida para ter uma largura igual ao limite W e uma altura igual ao limite H, um tamanho de unidade de segmentação de instruções é um produto dos limites W e H, o tipo de divisão predefinido é divisão de árvore ternária, e o tipo de divisão predefinido não é permitido se um tamanho de bloco atual for duas vezes maior que o tamanho de unidade de segmentação de instruções.
20. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que uma unidade de segmentação de instruções é definida para ter uma largura igual ao limite W e uma altura igual ao limite H, um tamanho de unidade de segmentação de instruções é um produto dos limites W e H, um tamanho do bloco atual é duas vezes maior que o tamanho de unidade de segmentação de instruções, e a divisão de árvore ternária não é permitida, a menos que todas as direções de divisão adicionais sejam as mesmas e um sub-bloco central do bloco atual seja particionado pela divisão de árvore binária.
21. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que uma unidade de segmentação de instruções é definida para ter uma largura igual ao limite W e uma altura igual ao limite H, um tamanho de unidade de segmentação de instruções é um produto dos limites W e H, e o tipo de divisão predefinido é permitido se o tamanho de bloco atual for quatro vezes maior que o tamanho de unidade de segmentação de instruções ou se o tamanho do bloco atual for menor que o tamanho de unidade de segmentação de instruções, em que o tipo de divisão predefinido é selecionado de quadtree, divisão de árvore binária, e divisão de árvore ternária.
22. Método, de acordo com a reivindicação 10, caracterizado pelo fato de que uma unidade de segmentação de instruções é definida para ter uma largura igual ao limite W e uma altura igual ao limite H, determinar se um tipo de divisão predefinido é permitido para particionar o bloco atual considerando uma restrição de nova visita, e o tipo de divisão predefinido não é permitido se a restrição de nova visita for violada, em que a restrição de nova visita proíbe a nova visita de qualquer unidade de segmentação de instruções no bloco atual após deixar a unidade de segmentação de instruções ao processar os sub-blocos particionados do bloco atual.
23. Aparelho de processamento de vídeo em um sistema de codificação de vídeo para codificar ou decodificar imagens de vídeo com uma restrição de partição, o aparelho caracterizado pelo fato de que compreende um ou mais circuitos eletrônicos configurados para: receber dados de entrada associados a um bloco atual em uma imagem de vídeo atual; determinar um tamanho de unidade de segmentação de instruções de unidades de segmentação de instruções, em que as unidades de segmentação de instruções são unidades não sobrepostas na imagem de vídeo atual projetada para processamento de segmentação de instruções; determinar se um tipo de divisão predefinido tem permissão para particionar o bloco atual em vários sub-blocos de acordo com a restrição de partição, em que a restrição de partição compreende uma primeira restrição e uma segunda restrição, a primeira restrição restringe cada um dos sub- blocos particionados do bloco atual para ser completamente contido em uma unidade de segmentação de instruções, a segunda restrição restringe cada um dos sub-blocos particionados do bloco atual para conter uma ou mais unidades de segmentação de instruções completas, e o tipo de divisão predefinido não tem permissão para particionar o bloco atual, se qualquer sub-bloco particionado pelo tipo de divisão predefinido viola a primeira e a segunda restrições; particionar o bloco atual usando um tipo de divisão permitido; e codificar ou decodificar o bloco atual de acordo com uma estrutura de particionamento de bloco do bloco atual.
24. Meio legível por computador não transitório, caracterizado pelo fato de que armazena conjunto de instruções, que faz com que um circuito de processamento de um aparelho realize o método de processamento de vídeo em um sistema de codificação de vídeo para codificar ou decodificar imagens de vídeo com uma restrição de partição, e o método compreende: receber dados de entrada associados a um bloco atual em uma imagem de vídeo atual; determinar um tamanho de unidade de segmentação de instruções de unidades de segmentação de instruções, em que as unidades de segmentação de instruções são unidades não sobrepostas na imagem de vídeo atual projetada para processamento de segmentação de instruções; determinar se um tipo de divisão predefinido tem permissão para particionar o bloco atual em vários sub-blocos de acordo com a restrição de partição, em que a restrição de partição compreende uma primeira restrição e uma segunda restrição, a primeira restrição restringe cada um dos sub- blocos particionados do bloco atual para ser completamente contido em uma unidade de segmentação de instruções, a segunda restrição restringe cada um dos sub-blocos particionados do bloco atual para conter uma ou mais unidades de segmentação de instruções completas, e o tipo de divisão predefinido não tem permissão para particionar o bloco atual, se qualquer sub-bloco particionado pelo tipo de divisão predefinido viola a primeira e a segunda restrições; particionar o bloco atual usando um tipo de divisão permitido; e codificar ou decodificar o bloco atual de acordo com uma estrutura de particionamento de bloco do bloco atual.
BR112021000667A 2018-07-14 2019-07-12 Método e aparelho de processamento de vídeo em um sistema de codificação de vídeo para codificar ou decodificar imagens de vídeo com uma restrição de partição e meio legível por computador não transitório BR112021000667A8 (pt)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
US201862698114P 2018-07-14 2018-07-14
US62/698,114 2018-07-14
US201862698173P 2018-07-15 2018-07-15
US62/698,173 2018-07-15
US201862725314P 2018-08-31 2018-08-31
US62/725,314 2018-08-31
US201862727052P 2018-09-05 2018-09-05
US62/727,052 2018-09-05
US201862744701P 2018-10-12 2018-10-12
US62/744,701 2018-10-12
US201862754714P 2018-11-02 2018-11-02
US62/754,714 2018-11-02
PCT/CN2019/095855 WO2020015592A1 (en) 2018-07-14 2019-07-12 Methods and apparatuses of processing video pictures with partition constraints in a video coding system

Publications (2)

Publication Number Publication Date
BR112021000667A2 true BR112021000667A2 (pt) 2021-04-13
BR112021000667A8 BR112021000667A8 (pt) 2023-02-07

Family

ID=69164260

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021000667A BR112021000667A8 (pt) 2018-07-14 2019-07-12 Método e aparelho de processamento de vídeo em um sistema de codificação de vídeo para codificar ou decodificar imagens de vídeo com uma restrição de partição e meio legível por computador não transitório

Country Status (6)

Country Link
US (1) US20210329233A1 (pt)
EP (1) EP3818701A4 (pt)
CN (2) CN112385220B (pt)
BR (1) BR112021000667A8 (pt)
TW (1) TWI708502B (pt)
WO (1) WO2020015592A1 (pt)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX2021002487A (es) * 2018-09-03 2021-07-16 Huawei Tech Co Ltd Un codificador de video, un decodificador de video y métodos correspondientes.
CN113016180A (zh) * 2018-11-12 2021-06-22 交互数字Vc控股公司 用于视频编码和解码的虚拟管线
US20200252608A1 (en) * 2019-02-05 2020-08-06 Qualcomm Incorporated Sub-partition intra prediction
WO2020164480A1 (en) * 2019-02-11 2020-08-20 Beijing Bytedance Network Technology Co., Ltd. Condition dependent video block partition
US11677969B2 (en) * 2019-03-22 2023-06-13 Tencent America LLC Method and apparatus for video coding
CN114208191B (zh) 2019-08-06 2024-01-12 北京字节跳动网络技术有限公司 基于颜色格式的视频区域分割
MX2022002188A (es) 2019-09-02 2022-03-11 Beijing Bytedance Network Tech Co Ltd Determinacion de modo de codificacion basada en formato de color.
WO2021047542A1 (en) * 2019-09-09 2021-03-18 Beijing Bytedance Network Technology Co., Ltd. Recursive splitting of video coding blocks
CN114424565A (zh) 2019-09-21 2022-04-29 北京字节跳动网络技术有限公司 基于色度帧内模式的尺寸限制
CN113286152B (zh) * 2020-02-20 2023-05-23 腾讯美国有限责任公司 视频解码方法、装置、计算机设备及存储介质
WO2021086237A2 (en) 2020-04-01 2021-05-06 Huawei Technologies Co., Ltd. Method and apparatus of sample fetching and padding for downsampling filtering for cross-component linear model prediction
US20210314567A1 (en) * 2020-04-04 2021-10-07 Qualcomm Incorporated Block partitioning for image and video coding
CN115462085A (zh) 2020-04-05 2022-12-09 字节跳动有限公司 视频编解码中滤波的高级控制
KR20230004797A (ko) 2020-05-01 2023-01-06 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 파티션 신택스를 위한 엔트로피 코딩
WO2023236775A1 (en) * 2022-06-06 2023-12-14 Mediatek Inc. Adaptive coding image and video data
WO2024124255A1 (en) * 2022-12-09 2024-06-13 Google Llc Multi-tree recursive partitioning schemes for image and video compression

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4688279B2 (ja) * 2000-11-21 2011-05-25 富士通株式会社 動画像の空間解像度自動設定方法及び装置
CN103796032A (zh) * 2012-10-31 2014-05-14 朱洪波 逐行或逐列帧内预测
WO2017008263A1 (en) * 2015-07-15 2017-01-19 Mediatek Singapore Pte. Ltd. Conditional binary tree block partitioning structure
WO2017088093A1 (en) * 2015-11-23 2017-06-01 Mediatek Singapore Pte. Ltd. On the smallest allowed block size in video coding
WO2017088170A1 (en) * 2015-11-27 2017-06-01 Mediatek Inc. Entropy coding the binary tree block partitioning structure
US10230961B2 (en) * 2016-06-03 2019-03-12 Mediatek Inc. Method and apparatus for template-based intra prediction in image and video coding
US10609423B2 (en) * 2016-09-07 2020-03-31 Qualcomm Incorporated Tree-type coding for video coding
US10779004B2 (en) * 2016-10-12 2020-09-15 Mediatek Inc. Methods and apparatuses of constrained multi-type-tree block partition for video coding
US20180109812A1 (en) * 2016-10-14 2018-04-19 Media Tek Inc. Block partitioning using tree structures

Also Published As

Publication number Publication date
BR112021000667A8 (pt) 2023-02-07
CN112385220A (zh) 2021-02-19
CN112385220B (zh) 2022-12-09
WO2020015592A1 (en) 2020-01-23
TWI708502B (zh) 2020-10-21
TW202007157A (zh) 2020-02-01
EP3818701A1 (en) 2021-05-12
CN115379213A (zh) 2022-11-22
EP3818701A4 (en) 2022-07-20
US20210329233A1 (en) 2021-10-21

Similar Documents

Publication Publication Date Title
BR112021000667A2 (pt) Método e aparelho de processamento de vídeo em um sistema de codificação de vídeo para codificar ou decodificar imagens de vídeo com uma restrição de partição e meio legível por computador não transitório
US11425373B2 (en) Intra-prediction mode-based image processing method and device therefor
CN110999297B (zh) 在图像或视频编码系统中处理图像的方法和装置
AU2016203628B2 (en) Method, apparatus and system for encoding and decoding video data
US20180242024A1 (en) Methods and Apparatuses of Candidate Set Determination for Quad-tree Plus Binary-tree Splitting Blocks
TWI720584B (zh) 視訊處理系統中色度量化參數導出的方法以及裝置
EP3758377A1 (en) Method and apparatus of video data processing with restricted block size in video coding
US10893267B2 (en) Method for processing image on basis of intra-prediction mode and apparatus therefor
EP3522538A1 (en) Image processing method and apparatus therefor
BR112016027428B1 (pt) Inicialização de paleta de preditor em codificação de vídeo com base em paleta
KR102586674B1 (ko) 경계 강제 파티션에 대한 개선
US20240187623A1 (en) Video Coding Using Intra Sub-Partition Coding Mode
US11985314B2 (en) Methods and apparatuses of processing video data of out-of-bounds nodes
BR112021004326A2 (pt) método e dispositivo de codificação/decodificação de imagem
BR112021010422A2 (pt) Método de codificação de imagem baseado em transformada secundária e dispositivo para o mesmo

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: HFI INNOVATION INC. (TW)