BR112021000318A2 - Particionamento de bloco de fronteira em codificação de vídeo - Google Patents

Particionamento de bloco de fronteira em codificação de vídeo Download PDF

Info

Publication number
BR112021000318A2
BR112021000318A2 BR112021000318-5A BR112021000318A BR112021000318A2 BR 112021000318 A2 BR112021000318 A2 BR 112021000318A2 BR 112021000318 A BR112021000318 A BR 112021000318A BR 112021000318 A2 BR112021000318 A2 BR 112021000318A2
Authority
BR
Brazil
Prior art keywords
partitioning
block
video
forced
image
Prior art date
Application number
BR112021000318-5A
Other languages
English (en)
Inventor
Han Gao
Jianle Chen
Semih ESENLIK
Zhijie ZHAO
Anand Meher KOTRA
Original Assignee
Huawei Technologies Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Publication of BR112021000318A2 publication Critical patent/BR112021000318A2/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/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/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/136Incoming video signal characteristics or properties
    • 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/167Position within a video image, e.g. region of interest [ROI]
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

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

Abstract

“particionamento de bloco de fronteira em codificação de vídeo. um método de particionamento compreende determinar se um bloco atual de uma imagem é um bloco limite e se o tamanho do bloco atual é maior que um tamanho mínimo de nó folha de quadtree permitido; e se o bloco atual for o bloco limite e o tamanho do bloco atual não for maior que o tamanho mínimo de nó folha de quadtree (minqtsize) permitido, aplicar particionamento de árvore binária (bt) forçado ao bloco atual. um método compreende fazer uma determinação que um bloco atual de uma imagem é um bloco limite e que um tamanho do bloco atual é menor que ou igual a um tamanho mínimo de nó folha de quadtree (qt) (minqtsize) permitido; e aplicar, em resposta à determinação, particionamento de árvore binária (bt) forçado ao bloco atual.

Description

“PARTICIONAMENTO DE BLOCO DE FRONTEIRA EM CODIFICAÇÃO DE VÍDEO” REFERÊNCIA CRUZADA PARA PEDIDOS RELACIONADOS
[0001] Este pedido reivindica prioridade ao pedido de patente provisório dos Estados Unidos número 62/697,274 depositado em 12 de julho de 2018 por Futurewei Technologies, Inc. e intitulado "A Video Encoder, A Video Decoder and Corresponding Methods" e ao pedido de patente provisório dos Estados Unidos número 62/818,996 depositado em 15 de março de 2019 por Futurewei Technologies, Inc. e intitulado “Boundary Block Partitioning in Video Coding,” os quais são incorporados por referência.
CAMPO TÉCNICO
[0002] As modalidades do presente pedido geralmente se referem ao campo da codificação de vídeo e, mais particularmente, à divisão e particionamento de unidade de codificação.
FUNDAMENTOS
[0003] A quantidade de dados de vídeo necessária para representar até mesmo um vídeo relativamente curto pode ser substancial, o que pode resultar em dificuldades quando os dados devem ser transmitidos ou de outra forma comunicados através de uma rede de comunicações com capacidade de largura de banda limitada. Assim, os dados de vídeo são geralmente comprimidos antes de serem comunicados pelas redes de telecomunicações dos dias modernos. O tamanho de um vídeo também pode ser um problema quando o vídeo é armazenado em um dispositivo de armazenamento porque os recursos de memória podem ser limitados. Dispositivos de compressão de vídeo costumam usar software e/ou hardware na fonte para codificar os dados de vídeo antes da transmissão ou armazenamento, diminuindo assim a quantidade de dados necessária para representar imagens de vídeo digital. Os dados comprimidos são então recebidos no destino por um dispositivo de descompressão de vídeo que decodifica os dados de vídeo. Com recursos de rede limitados e demandas cada vez maiores de maior qualidade de vídeo, técnicas de compressão e descompressão aprimoradas que melhoram a taxa de compressão com pouco ou nenhum sacrifício na qualidade da imagem são desejáveis.
SUMÁRIO
[0004] As modalidades do presente pedido (ou da presente revelação) fornecem aparelhos e métodos para codificação e decodificação.
[0005] Um primeiro aspecto refere-se a um método de particionamento que compreende determinar se um bloco atual de uma imagem é um bloco de fronteira e se o tamanho do bloco atual é maior que um tamanho de nó folha de árvore quaternária mínimo permitido; e se o bloco atual for o bloco de fronteira e o tamanho do bloco atual não for maior que o tamanho de nó folha de árvore quaternária mínimo (MinQTSize) permitido, aplicar o particionamento de árvore binária (BT) forçado ao bloco atual.
[0006] Em uma primeira forma de implementação do método de acordo com o primeiro aspecto como tal, o particionamento de árvore binária forçado é um particionamento binário forçado horizontal recursivo no caso de o bloco atual estar localizado em uma fronteira inferior da imagem ou um particionamento de fronteira forçado vertical recursivo no caso de o bloco atual estar localizado em uma fronteira direita da imagem.
[0007] Em uma segunda forma de implementação do método de acordo com o primeiro aspecto como tal ou qualquer forma de implementação anterior do primeiro aspecto, o particionamento de árvore binária forçado é continuado até que um bloco de nó folha esteja dentro da imagem.
[0008] Em uma terceira forma de implementação do método de acordo com o primeiro aspecto como tal ou qualquer forma de implementação anterior do primeiro aspecto, o particionamento binário forçado compreende particionar recursivamente o bloco atual por um particionamento de fronteira forçado horizontal até uma subpartição do bloco atual estar localizada na fronteira inferior da imagem; e particionar recursivamente a subpartição por um particionamento de fronteira forçado vertical até que um nó folha esteja inteiramente localizado na fronteira direita da imagem.
[0009] Em uma quarta forma de implementação do método de acordo com o primeiro aspecto como tal ou qualquer forma de implementação anterior do primeiro aspecto, o particionamento de BT forçado compreende particionar recursivamente o bloco atual por um particionamento de fronteira forçado vertical até uma subpartição do bloco atual estar localizada na fronteira inferior; e particionar recursivamente a subpartição por um particionamento de fronteira forçado horizontal até que um nó folha esteja inteiramente localizado na fronteira direita.
[0010] Em uma quinta forma de implementação do método de acordo com o primeiro aspecto como tal ou qualquer forma de implementação anterior do primeiro aspecto, o método compreende adicionalmente aplicar o tamanho de nó folha de árvore quaternária mínimo permitido para controlar um particionamento de um bloco de não fronteira.
[0011] Em uma sexta forma de implementação do método de acordo com o primeiro aspecto como tal ou qualquer forma de implementação anterior do primeiro aspecto, o bloco de fronteira é um bloco que não está completamente dentro da imagem e não está completamente fora da imagem.
[0012] Um segundo aspecto se refere a um método de decodificação para decodificar um bloco particionando-se o bloco de acordo com o primeiro aspecto como tal ou qualquer forma de implementação anterior do primeiro aspecto.
[0013] Em uma primeira forma de implementação do método de acordo com o segundo aspecto como tal, o método compreende adicionalmente receber o tamanho de nó folha de árvore quaternária mínimo permitido por meio de um conjunto de parâmetros de sequência (SPS).
[0014] Um terceiro aspecto refere-se a um método de codificação para codificar um bloco particionando-se o bloco de acordo com o primeiro aspecto como tal ou qualquer forma de implementação anterior do primeiro aspecto.
[0015] Em uma primeira forma de implementação do método de acordo com o terceiro aspecto como tal, o método compreende adicionalmente transmitir o tamanho de nó folha de árvore quaternária mínimo permitido por meio de um conjunto de parâmetros de sequência (SPS).
[0016] Um quarto aspecto se refere a um dispositivo de decodificação que compreende circuitos lógicos configurados para decodificar um bloco particionando-se o bloco de acordo com o método de particionamento do primeiro aspecto como tal ou qualquer forma de implementação precedente do primeiro aspecto.
[0017] Em uma primeira forma de implementação do dispositivo de decodificação de acordo com o quarto aspecto como tal, os circuitos lógicos são adicionalmente configurados para receber o tamanho de nó folha de árvore quaternária mínimo permitido por meio de um conjunto de parâmetros de sequência (SPS).
[0018] Um quinto aspecto se refere a um dispositivo de codificação que compreende circuitos lógicos configurados para codificar um bloco particionando-se o bloco de acordo com o método de particionamento do primeiro aspecto como tal ou qualquer forma de implementação anterior do primeiro aspecto.
[0019] Em uma primeira forma de implementação do dispositivo de decodificação de acordo com o quinto aspecto como tal, os circuitos lógicos são adicionalmente configurados para transmitir o tamanho de nó folha de árvore quaternária mínimo permitido através de um conjunto de parâmetros de sequência (SPS).
[0020] Um sexto aspecto se refere a uma mídia de armazenamento não transitória para armazenar instruções que, quando executadas por um processador, fazem com que um processador execute qualquer um do primeiro, segundo ou terceiro aspecto como tal ou qualquer forma de implementação anterior do primeiro, segundo, ou terceiro aspecto.
[0021] Um sétimo aspecto se refere a um método que compreende fazer uma determinação de que um bloco atual de uma imagem é um bloco de fronteira e que um tamanho do bloco atual é menor que ou igual a um tamanho de nó folha de árvore quaternária (QT) mínimo (MinQTSize) permitido; e aplicar, em resposta à determinação, particionamento de árvore binária (BT) forçado ao bloco atual.
[0022] Em uma primeira forma de implementação do método de acordo com o sétimo aspecto como tal, o bloco atual está localizado em uma fronteira inferior da imagem, e em que o particionamento de BT forçado é um particionamento de BT forçado horizontal recursivo.
[0023] Em uma segunda forma de implementação do método de acordo com o sétimo aspecto como tal ou qualquer forma de implementação anterior do sétimo aspecto, o bloco atual está localizado em uma fronteira direita da imagem, e em que o particionamento de BT forçado é um particionamento de BT forçado vertical recursivo.
[0024] Em uma terceira forma de implementação do método de acordo com o sétimo aspecto como tal ou qualquer forma de implementação anterior do sétimo aspecto, o particionamento de BT forçado compreende particionar recursivamente o bloco atual por um particionamento de fronteira forçado horizontal até uma subpartição do bloco atual estar localizada na fronteira inferior; e particionar recursivamente a subpartição por um particionamento de fronteira forçado vertical até que um nó folha esteja inteiramente localizado na fronteira direita.
[0025] Em uma quarta forma de implementação do método de acordo com o sétimo aspecto como tal ou qualquer forma de implementação anterior do sétimo aspecto, o particionamento de BT forçado compreende particionar recursivamente o bloco atual por um particionamento de fronteira forçado vertical até uma subpartição do bloco atual estar localizada na fronteira inferior; e particionar recursivamente a subpartição por um particionamento de fronteira forçado horizontal até que um nó folha esteja inteiramente localizado na fronteira direita.
[0026] Em uma quinta forma de implementação do método de acordo com o sétimo aspecto como tal ou qualquer forma de implementação anterior do sétimo aspecto, o método compreende adicionalmente a aplicação de MinQTSize para controlar o particionamento de um bloco de não fronteira.
[0027] Em uma sexta forma de implementação do método de acordo com o sétimo aspecto como tal ou qualquer forma de implementação anterior do sétimo aspecto, o método compreende adicionalmente receber MinQTSize por meio de um conjunto de parâmetros de sequência (SPS).
[0028] Em uma sétima forma de implementação do método de acordo com o sétimo aspecto como tal ou qualquer forma de implementação anterior do sétimo aspecto, o método compreende adicionalmente transmitir MinQTSize através de um conjunto de parâmetros de sequência (SPS).
[0029] Um oitavo aspecto refere-se a um aparelho que compreende uma memória; e um processador acoplado à memória e configurado para determinar se um bloco atual de uma imagem é um bloco de fronteira, determinar, quando o bloco atual é um bloco de fronteira, se um tamanho do bloco atual é maior que um tamanho de nó folha de árvore quaternária (QT) mínimo (MinQTSize) permitido, e aplicar, quando o tamanho do bloco atual não for maior que MinQTSize, particionamento de árvore binária (BT) forçado para o bloco atual.
[0030] Em uma primeira forma de implementação do aparelho de acordo com o oitavo aspecto como tal, o particionamento de BT forçado é um particionamento de BT forçado horizontal recursivo quando o bloco atual está localizado em uma fronteira inferior da imagem ou um particionamento de BT forçado vertical recursivo quando o bloco atual está localizado em uma fronteira direita da imagem.
[0031] Em uma segunda forma de implementação do aparelho de acordo com o oitavo aspecto como tal ou qualquer forma de implementação anterior do oitavo aspecto, o particionamento de BT forçado compreende particionar recursivamente o bloco atual por um particionamento de fronteira forçado horizontal até uma subpartição do bloco atual estar localizada na fronteira inferior; e particionar recursivamente a subpartição por um particionamento de fronteira forçado vertical até que um nó folha esteja inteiramente localizado na fronteira direita.
[0032] Em uma terceira forma de implementação do aparelho de acordo com o oitavo aspecto como tal ou qualquer forma de implementação anterior do oitavo aspecto, o particionamento de BT forçado compreende particionar recursivamente o bloco atual por um particionamento de fronteira forçado vertical até uma subpartição do bloco atual estar localizada na fronteira inferior; e particionar recursivamente a subpartição por um particionamento de fronteira forçado horizontal até que um nó folha esteja inteiramente localizado na fronteira direita.
[0033] Em uma quarta forma de implementação do aparelho de acordo com o oitavo aspecto como tal ou qualquer forma de implementação anterior do oitavo aspecto, o processador é adicionalmente configurado para aplicar MinQTSize para controlar o particionamento de um bloco de não fronteira.
[0034] Em uma quinta forma de implementação do aparelho de acordo com o oitavo aspecto como tal ou qualquer forma de implementação anterior do oitavo aspecto, o aparelho compreende adicionalmente um receptor acoplado ao processador e configurado para receber MinQTSize através de um conjunto de parâmetros de sequência (SPS).
[0035] Em uma sexta forma de implementação do aparelho de acordo com o oitavo aspecto como tal ou qualquer forma de implementação anterior do oitavo aspecto, o aparelho compreende adicionalmente um transmissor acoplado ao processador e configurado para transmitir MinQTSize através de um conjunto de parâmetros de sequência (SPS).
[0036] Um nono aspecto refere-se a um produto de programa de computador que compreende instruções executáveis por computador armazenadas em uma mídia não transitória que, quando executadas por um processador, fazem com que um aparelho determine se um bloco atual de uma imagem é um bloco de fronteira; determinar, quando o bloco atual é um bloco de fronteira, se um tamanho do bloco atual é maior que um tamanho de nó folha de árvore quaternária (QT) mínimo (MinQTSize) permitido; e aplicar, quando o tamanho do bloco atual 0 não for maior que MinQTSize, particionamento de árvore binária (BT) forçado para o bloco atual.
[0037] Em uma primeira forma de implementação do aparelho de acordo com o oitavo aspecto como tal, o particionamento de BT forçado é um particionamento de BT forçado horizontal recursivo quando o bloco atual está localizado em uma fronteira inferior da imagem ou um particionamento de BT forçado vertical recursivo quando o bloco atual está localizado em uma fronteira direita da imagem.
[0038] Em uma segunda forma de implementação do aparelho de acordo com o nono aspecto como tal ou qualquer forma de implementação anterior do nono aspecto, o particionamento de BT forçado compreende particionar recursivamente o bloco atual por um particionamento de fronteira forçado horizontal até uma subpartição do bloco atual estar localizada na fronteira inferior; e particionar recursivamente a subpartição por um particionamento de fronteira forçado vertical até que um nó folha esteja inteiramente localizado na fronteira direita.
[0039] Em uma terceira forma de implementação do aparelho de acordo com o nono aspecto como tal ou qualquer forma de implementação anterior do nono aspecto, o particionamento de BT forçado compreende particionar recursivamente o bloco atual por um particionamento de fronteira forçado vertical até uma subpartição do bloco atual estar localizada na fronteira inferior; e particionar recursivamente a subpartição por um particionamento de fronteira forçado horizontal até que um nó folha esteja inteiramente localizado na fronteira direita.
[0040] Em uma quarta forma de implementação do aparelho de acordo com o nono aspecto como tal ou qualquer forma de implementação anterior do nono aspecto, as instruções adicionalmente fazem o aparelho aplicar MinQTSize para controlar o particionamento de um bloco de não fronteira.
[0041] Em uma quinta forma de implementação do aparelho de acordo com o nono aspecto como tal ou qualquer forma de implementação anterior do nono aspecto, as instruções adicionalmente fazem com que o aparelho receba MinQTSize através de um conjunto de parâmetros de sequência (SPS).
[0042] Em uma sexta forma de implementação do aparelho de acordo com o nono aspecto como tal ou qualquer forma de implementação anterior do nono aspecto, as instruções adicionalmente fazem com que o aparelho transmita MinQTSize através de um conjunto de parâmetros de sequência (SPS).
[0043] Para fins de clareza, qualquer uma das modalidades aqui reveladas pode ser combinada com qualquer uma ou mais das outras modalidades para criar uma nova modalidade dentro do escopo da presente revelação.
[0044] Estes e outros recursos serão mais claramente compreendidos a partir da seguinte descrição detalhada, tomada em conjunto com os desenhos e reivindicações anexos.
BREVE DESCRIÇÃO DOS DESENHOS
[0045] Para uma compreensão mais completa desta revelação, é feita agora referência à seguinte breve descrição, tomada em conexão com os desenhos anexos e a descrição detalhada, em que numerais de referência semelhantes representam partes semelhantes.
[0046] A Figura 1A é um diagrama de blocos que ilustra um sistema de codificação de exemplo que pode implementar modalidades da revelação.
[0047] A Figura 1B é um diagrama de blocos que ilustra outro sistema de codificação de exemplo que pode implementar modalidades da revelação.
[0048] A Figura 2 é um diagrama de blocos que ilustra um codificador de vídeo de exemplo que pode implementar modalidades da revelação.
[0049] A Figura 3 é um diagrama de blocos que ilustra um exemplo de um decodificador de vídeo que pode implementar modalidades da revelação.
[0050] A Figura 4 é um diagrama esquemático de um dispositivo de rede de acordo com uma modalidade da revelação.
[0051] A Figura 5 é um diagrama de blocos simplificado de um aparelho que pode ser usado como um ou ambos o dispositivo de origem 12 e o dispositivo de destino 14 da Figura 1A de acordo com uma modalidade exemplar.
[0052] As Figuras 6 AF mostram diferentes modos de divisão de CU em VVC.
[0053] A Figura 7A mostra uma partição de QT forçada de fronteira inferior HD (1920x1080) (128x128).
[0054] A Figura 7B mostra uma partição de BT forçada de fronteira inferior HD (1920x1080) (128x128) de acordo com uma modalidade da revelação.
[0055] A Figura 8 mostra um exemplo de definição de fronteira.
[0056] A Figura 9A mostra um exemplo de uma partição de QTBT forçada de caso de canto de acordo com uma modalidade da revelação.
[0057] A Figura 9B mostra um exemplo de uma partição de QTBT forçada para um bloco localizado em um canto de acordo com uma modalidade da revelação.
[0058] A Figura 10 mostra uma modalidade de uma definição de fronteira.
DESCRIÇÃO DETALHADA
[0059] Deve ser entendido desde o início que, embora uma implementação ilustrativa de uma ou mais modalidades seja fornecida abaixo, os sistemas e/ou métodos revelados podem ser implementados usando qualquer número de técnicas, sejam atualmente conhecidas ou existentes. A revelação não deve de forma alguma ser limitada às implementações ilustrativas, desenhos e técnicas ilustradas abaixo, incluindo os projetos e implementações exemplares ilustrados e descritos neste documento, mas pode ser modificada dentro do escopo das reivindicações anexas, juntamente com seu escopo completo de equivalentes.
[0060] A Figura 1A é um diagrama de blocos que ilustra um sistema de codificação de exemplo 10, por exemplo, um sistema de codificação de vídeo 10, que pode implementar modalidades da revelação. O sistema de codificação 10 pode utilizar técnicas de predição, por exemplo, técnicas de predição bidirecional. Como mostrado na Figura 1A, o sistema de codificação 10 inclui um dispositivo de origem 12 que fornece dados de vídeo codificados para serem decodificados posteriormente por um dispositivo de destino 14. Em particular, o dispositivo de origem 12 pode fornecer os dados de vídeo para o dispositivo de destino 14 por meio de uma mídia legível por computador 16. O dispositivo de origem 12 e o dispositivo de destino 14 podem compreender ou ser qualquer um de uma ampla gama de dispositivos, incluindo computadores desktop, notebooks (isto é, laptops), tablets, decodificadores (set top box), aparelhos de telefone, tais como - telefones "inteligentes" chamados, os chamados pads "inteligentes", televisores, câmeras, dispositivos de exibição, reprodutores de mídia digital, consoles de videogame, dispositivo de transmissão contínua (“streaming”) de vídeo ou semelhantes. Em alguns casos, o dispositivo de origem 12 e o dispositivo de destino 14 podem ser equipados para comunicação sem fio.
[0061] O dispositivo de destino 14 pode receber os dados de vídeo codificados para serem decodificados através da mídia legível por computador
16. A mídia legível por computador 16 pode compreender qualquer tipo de mídia ou dispositivo capaz de mover os dados de vídeo codificados do dispositivo de origem 12 para o dispositivo de destino 14. Em um exemplo, a mídia legível por computador 16 pode compreender uma mídia de comunicação para permitir que o dispositivo de origem 12 transmita dados de vídeo codificados diretamente para o dispositivo de destino 14 em tempo real. Os dados de vídeo codificados podem ser modulados de acordo com um padrão de comunicação, como um protocolo de comunicação sem fio, e transmitidos para o dispositivo de destino
14. A mídia de comunicação pode compreender qualquer mídia de comunicação sem fio ou com fio, como um espectro de radiofrequência (RF) ou uma ou mais linhas de transmissão físicas. A mídia de comunicação pode fazer parte de uma rede baseada em pacotes, como uma rede de área local, uma rede de área ampla ou uma rede global, como a Internet. A mídia de comunicação pode incluir roteadores, comutadores, estações base ou qualquer outro equipamento que pode ser útil para facilitar a comunicação do dispositivo de origem 12 para o dispositivo de destino 14.
[0062] Em alguns exemplos, os dados codificados podem ser enviados a partir de uma interface de saída 22 para um dispositivo de armazenamento. Da mesma forma, os dados codificados podem ser acessados a partir do dispositivo de armazenamento por uma interface de entrada 28. O dispositivo de armazenamento pode incluir qualquer um de uma variedade de mídias de armazenamento de dados distribuídas ou acessadas localmente, como um disco rígido, discos Blu-ray, discos de vídeo digital (DVD)s, memórias somente de leitura de disco compacto (CD-ROMs), memória flash, memória volátil ou não volátil ou qualquer outra mídia de armazenamento digital adequada para armazenar dados de vídeo codificados. Em outro exemplo, o dispositivo de armazenamento pode corresponder a um servidor de arquivos ou outro dispositivo de armazenamento intermediário que pode armazenar o vídeo codificado gerado pelo dispositivo de origem 12. O dispositivo de destino 14 pode acessar dados de vídeo armazenados a partir do dispositivo de armazenamento via transmissão contínua ou descarregamento. O servidor de arquivos pode ser qualquer tipo de servidor capaz de armazenar dados de vídeo codificados e transmitir esses dados de vídeo codificados para o dispositivo de destino 14. Os servidores de arquivos de exemplo incluem um servidor web (por exemplo, para um site), um servidor de protocolo de transferência de arquivos (FTP), dispositivos de armazenamento anexado à rede (NAS) ou uma unidade de disco local. O dispositivo de destino 14 pode acessar os dados de vídeo codificados por meio de qualquer conexão de dados padrão, incluindo uma conexão com a Internet. Isso pode incluir um canal sem fio (por exemplo, uma conexão Wi-Fi), uma conexão com fio (por exemplo, linha de assinante digital (DSL), modem a cabo, etc.) ou uma combinação de ambos que seja adequada para acessar dados de vídeo codificados armazenados em um servidor de arquivos. A transmissão de dados de vídeo codificados do dispositivo de armazenamento pode ser uma transmissão de contínua, uma transmissão de descarregamento, ou uma combinação das mesmas.
[0063] As técnicas desta revelação não são necessariamente limitadas a aplicações ou configurações sem fio. As técnicas podem ser aplicadas à codificação de vídeo no suporte de qualquer uma de uma variedade de aplicações multimídia, como difusões de televisão aérea, transmissões de televisão a cabo, transmissões de televisão por satélite, transmissões contínuas de vídeo de Internet, como transmissão contínua adaptativa dinâmica sobre HTTP (DASH), vídeo digital que é codificado em uma mídia de armazenamento de dados, decodificação de vídeo digital armazenado em uma mídia de armazenamento de dados ou outras aplicações. Em alguns exemplos, o sistema de codificação 10 pode ser configurado para suportar transmissão de vídeo unilateral ou bidirecional para suportar aplicações como transmissão contínua de vídeo, reprodução de vídeo, difusão de vídeo e/ou telefonia de vídeo.
[0064] No exemplo da Figura 1A, o dispositivo de origem 12 inclui uma fonte de vídeo 18, um codificador de vídeo 20 e a interface de saída 22. O dispositivo de destino 14 inclui a interface de entrada 28, um decodificador de vídeo 30 e um dispositivo de exibição 32. De acordo com esta revelação, o codificador de vídeo 20 do dispositivo de origem 12 e/ou o decodificador de vídeo 30 do dispositivo de destino 14 podem ser configurados para aplicar as técnicas de predição, por exemplo, predição bidirecional. Em outros exemplos, o dispositivo de origem 12 e o dispositivo de destino 14 podem incluir outros componentes ou arranjos. Por exemplo, o dispositivo de origem 12 pode receber dados de vídeo de uma fonte de vídeo externa, como uma câmera externa. Da mesma forma, o dispositivo de destino 14 pode interagir com um dispositivo de exibição externo, em vez de incluir um dispositivo de exibição integrado.
[0065] O sistema de codificação ilustrado 10 da Figura 1A é apenas um exemplo. Técnicas de predição, por exemplo, predição bidirecional, podem ser realizadas por qualquer dispositivo de codificação e/ou decodificação de vídeo digital. Embora as técnicas desta revelação geralmente sejam realizadas por um dispositivo de codificação de vídeo, as técnicas também podem ser realizadas por um codificador/decodificador de vídeo, normalmente referido como um "CODEC". Além disso, as técnicas desta revelação também podem ser realizadas por um pré-processador de vídeo. O codificador de vídeo e/ou o decodificador pode ser uma unidade de processamento gráfico (GPU) ou um dispositivo semelhante.
[0066] O dispositivo de origem 12 e o dispositivo de destino 14 são meramente exemplos de tais dispositivos de codificação em que o dispositivo de origem 12 gera dados de vídeo codificados para transmissão para o dispositivo de destino 14. Em alguns exemplos, o dispositivo de origem 12 e o dispositivo de destino 14 podem operar de uma maneira substancialmente simétrica, de modo que cada um dos dispositivos de origem 12 e de destino 14 inclua componentes de codificação e decodificação de vídeo. Portanto, o sistema de codificação 10 pode suportar transmissão de vídeo unilateral ou bidirecional entre dispositivos de vídeo 12, 14, por exemplo, para transmissão contínua de vídeo, reprodução de vídeo, difusão de vídeo ou telefonia de vídeo.
[0067] A fonte de vídeo 18 do dispositivo de origem 12 pode incluir um dispositivo de captura de vídeo, como uma câmera de vídeo, um arquivo de vídeo contendo vídeo capturado anteriormente e/ou uma interface de alimentação de vídeo para receber vídeo de um provedor de conteúdo de vídeo. Como outra alternativa, a fonte de vídeo 18 pode gerar dados baseados em gráficos de computador como o vídeo de origem ou uma combinação de vídeo ao vivo, vídeo arquivado e vídeo gerado por computador.
[0068] Em alguns casos, quando a fonte de vídeo 18 é uma câmera de vídeo, o dispositivo de origem 12 e o dispositivo de destino 14 podem formar os chamados telefones com câmera ou telefones com vídeo. Conforme mencionado acima, no entanto, as técnicas descritas nesta revelação podem ser aplicáveis à codificação de vídeo em geral e podem ser aplicadas a aplicações sem fio e/ou com fio. Em cada caso, o vídeo capturado, pré-capturado ou gerado por computador pode ser codificado pelo codificador de vídeo 20. As informações de vídeo codificadas podem então ser enviadas pela interface de saída 22 para a mídia legível por computador 16.
[0069] A mídia legível por computador 16 pode incluir mídia transitória, como uma difusão sem fio ou transmissão de rede com fio, ou a mídia legível por computador 16 pode incluir mídia de armazenamento não transitória, como um disco rígido, unidade flash, disco compacto, disco de vídeo digital, disco Blu-ray ou outra mídia legível por computador. Em alguns exemplos, um servidor de rede (não mostrado) pode receber dados de vídeo codificados do dispositivo de origem 12 e fornecer os dados de vídeo codificados ao dispositivo de destino 14, por exemplo, por meio de transmissão de rede. Da mesma forma, um dispositivo de computação de uma instalação de produção de mídia, como uma instalação de estampagem de disco, pode receber dados de vídeo codificados do dispositivo de origem 12 e produzir um disco contendo os dados de vídeo codificados. Portanto, a mídia legível por computador 16 pode ser entendida como incluindo uma ou mais mídias legíveis por computador de várias formas, em vários exemplos.
[0070] A interface de entrada 28 do dispositivo de destino 14 recebe informação a partir da mídia legível por computador 16. As informações da mídia legível por computador 16 podem incluir informações de sintaxe definidas pelo codificador de vídeo 20, que também são usadas pelo decodificador de vídeo
30, que incluem elementos de sintaxe que descrevem características e/ou processamento de blocos e outras unidades codificadas, por exemplo, grupo de imagens (GOPs). O dispositivo de exibição 32 exibe os dados de vídeo decodificados para um usuário e pode compreender qualquer um de uma variedade de dispositivos de exibição, como um tubo de raios catódicos (CRT), um visor de cristal líquido (LCD), um visor de plasma, um visor de diodo emissor de luz orgânico (OLED) ou outro tipo de dispositivo de exibição.
[0071] O codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com um padrão de codificação de vídeo, como o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento, e pode estar em conformidade com o Modelo de Teste HEVC (HM). Alternativamente, o codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com outros padrões proprietários ou da indústria, como o padrão H.264 do Setor de Padronização de Telecomunicações da União Internacional de Telecomunicações (ITU-T), alternativamente referido como Grupo de Especialistas de Imagem em Movimento (MPEG)-4, Parte 10, Codificação de Vídeo Avançada (AVC), H.265/HEVC, o padrão de projeto de Codificação de Vídeo Versátil (VVC) atualmente em desenvolvimento pela ITU- T e MPEG, ou extensões de tais padrões. As técnicas desta revelação, no entanto, não estão limitadas a qualquer padrão de codificação particular. Outros exemplos de padrões de codificação de vídeo incluem MPEG-2 e ITU-T H.263. Embora não mostrado na Figura 1A, em alguns aspectos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser integrados cada um com um codificador e decodificador de áudio e podem incluir unidades multiplexador- demultiplexador (MUX-DEMUX) apropriadas ou outro hardware e software para lidar com a codificação de áudio e vídeo em um fluxo de dados comum ou fluxos de dados separados. Se aplicável, as unidades MUX-DEMUX podem estar em conformidade com o protocolo de multiplexador ITU-T H.223 ou outros protocolos, como o protocolo de datagrama de usuário (UDP).
[0072] O codificador de vídeo 20 e o decodificador de vídeo 30, cada um, pode ser implementado como qualquer um de uma variedade de circuitos de codificadores ou decodificadores adequados, ou em circuitos lógicos gerais ou circuitos codificadores, como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de portas programáveis em campo (FPGAs), lógica discreta, unidades de processamento gráfico (GPU), processadores (por exemplo, programáveis, por exemplo, software programável), software, hardware, firmware ou qualquer combinação dos mesmos. Quando as técnicas são implementadas parcialmente em software, um dispositivo pode armazenar instruções para o software em uma mídia legível por computador não transitória adequada e executar as instruções em hardware usando um ou mais processadores para executar as técnicas desta revelação. Cada um do codificador de vídeo 20 e do decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, qualquer um dos quais pode ser integrado como parte de um codificador/decodificador combinado (CODEC) em um respectivo dispositivo. Um dispositivo incluindo o codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode compreender um circuito integrado, um microprocessador e/ou um dispositivo de comunicação sem fio, como um telefone celular.
[0073] A Figura 1B é um diagrama ilustrativo de um exemplo de sistema de codificação de vídeo 40 incluindo o codificador de vídeo 20 da Figura 2 e/ou o decodificador de vídeo 30 da Figura 3 de acordo com uma modalidade exemplar. O sistema de codificação de vídeo 40 pode implementar técnicas do presente pedido. Na implementação ilustrada, o sistema de codificação de vídeo 40 pode incluir dispositivo(s) de geração de imagem 41, codificador de vídeo 20, decodificador de vídeo 30 (e/ou um codificador de vídeo implementado via circuitos lógicos 47 da(s) unidade(s) de processamento 46), uma antena 42, um ou mais processador(es) 43, uma ou mais memórias ou armazenamento(s) de memória 44 e/ou um dispositivo de exibição 45. Como ilustrado, dispositivo(s) de geração de imagem 41, antena 42, unidade(s) de processamento 46, circuitos lógicos 47, codificador de vídeo 20, decodificador de vídeo 30, processador(es) 43, armazenamento(s) de memória 44 e/ou dispositivo de exibição 45 podem ser capazes de se comunicar um com o outro. Conforme discutido, embora a Figura 1B mostre tanto o codificador de vídeo 20 quanto o decodificador de vídeo 30, o sistema de codificação de vídeo 40 pode incluir apenas o codificador de vídeo 20 ou apenas o decodificador de vídeo 30 em vários exemplos.
[0074] Como mostrado, em alguns exemplos, o sistema de codificação de vídeo 40 pode incluir a antena 42. A antena 42 pode ser configurada para transmitir ou receber um fluxo de bits codificado de dados de vídeo, por exemplo. Além disso, em alguns exemplos, o sistema de codificação de vídeo 40 pode incluir o dispositivo de exibição 45.
[0075] O dispositivo de exibição 45 pode ser configurado para apresentar dados de vídeo. Como mostrado, em alguns exemplos, os circuitos lógicos 47 podem ser implementados através da(s) unidade(s) de processamento 46. A(s) unidade(s) de processamento 46 pode incluir lógica de circuito integrado de aplicação específica (ASIC), processador(es) gráfico(s), processador(es) de propósito geral ou semelhantes. O sistema de codificação de vídeo 40 também pode incluir processador(es) opcional(is) 43, que pode incluir de forma semelhante lógica de circuito integrado de aplicação específica (ASIC), processador(es) gráfico(s), processador(es) de propósito geral, ou semelhantes. Em alguns exemplos, os circuitos lógicos 47 podem ser implementados via hardware, hardware dedicado de codificação de vídeo ou semelhantes, e o(s) processador(es) 43 pode ser implementado por software de propósito geral, sistemas operacionais ou semelhantes. Além disso, o(s) armazenamento(s) de memória 44 pode ser qualquer tipo de memória, como memória volátil (por exemplo, Memória de Acesso Aleatório Estática (SRAM), Memória de Acesso Aleatório Dinâmica (DRAM), etc.) ou memória não volátil (por exemplo, memória flash, etc.) e assim por diante. Em um exemplo não limitativo, o(s) armazenamento(s) de memória 44 pode ser implementado pela memória cache. Em alguns exemplos, os circuitos lógicos 47 podem acessar armazenamento(s) de memória 44 (para implementação de um buffer de imagem, por exemplo). Em outros exemplos, os circuitos lógicos 47 e/ou a(s) unidade(s) de processamento 46 podem incluir armazenamentos de memória (por exemplo, cache ou semelhantes) para a implementação de um buffer de imagem ou semelhantes.
[0076] A unidade de processamento gráfico pode incluir codificador de vídeo 20 implementado por meio de circuitos lógicos 47 para incorporar os vários módulos, conforme discutido em relação à Figura 2 e/ou qualquer outro sistema ou subsistema codificador aqui descrito. Os circuitos lógicos 47 podem ser configurados para executar as várias operações aqui discutidas. O decodificador de vídeo 30 pode ser implementado de uma maneira semelhante à implementada por meio dos circuitos lógicos 47 para incorporar os vários módulos, conforme discutido em relação ao decodificador 30 da Figura 3 e/ou qualquer outro sistema ou subsistema de decodificador aqui descrito. Em alguns exemplos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser implementados por meio de circuitos lógicos e podem incluir um buffer de imagem (por exemplo, via unidade(s) de processamento 46 ou armazenamento(s) de memória 44) e uma unidade de processamento gráfico (GPU) (por exemplo, via unidade(s) de processamento 46). A unidade de processamento gráfico pode ser acoplada comunicativamente ao buffer de imagem. A unidade de processamento gráfico pode incluir decodificador de vídeo 30 conforme implementado por meio de circuitos lógicos 47 para incorporar os vários módulos conforme discutido em relação à Figura 3 e/ou qualquer outro sistema ou subsistema de decodificador aqui descrito.
[0077] Em alguns exemplos, a antena 42 do sistema de codificação de vídeo 40 pode ser configurada para receber um fluxo de bits codificado de dados de vídeo. Conforme discutido, o fluxo de bits codificado pode incluir dados, indicadores, valores de índice, dados de seleção de modo ou semelhantes associados à codificação de um quadro de vídeo, como aqui discutido, como dados associados à partição de codificação (por exemplo, coeficientes de transformada ou coeficientes de transformada quantizados, indicadores opcionais (conforme discutido) e/ou dados que definem a partição de codificação). O sistema de codificação de vídeo 40 também pode incluir decodificador de vídeo 30 acoplado à antena 42 e configurado para decodificar o fluxo de bits codificado. O dispositivo de exibição 45 configurado para apresentar quadros de vídeo.
[0078] A Figura 2 é um diagrama de blocos que ilustra um exemplo do codificador de vídeo 20 que pode implementar as técnicas do presente pedido. O codificador de vídeo 20 pode realizar a codificação intra e codificação inter de blocos de vídeo dentro de fatias de vídeo. A codificação intra depende da predição espacial para reduzir ou remover a redundância espacial em um vídeo em um determinado quadro de vídeo ou imagem. A codificação inter depende da predição temporal para reduzir ou remover a redundância temporal no vídeo em quadros ou imagens adjacentes de uma sequência de vídeo. Modo intra (modo I) pode se referir a qualquer um dos vários modos de codificação com base espacial. Modos inter, tais como predição unidirecional (modo P) ou predição bidirecional (modo B), podem se referir a qualquer um dos vários modos de codificação com base temporal.
[0079] Conforme mostrado na Figura 2, o codificador de vídeo 20 recebe um bloco de vídeo atual dentro de um quadro de vídeo a ser codificado. No exemplo da Figura 2, o codificador de vídeo 20 inclui uma unidade de seleção de modo 40, uma memória de quadro de referência 64, um somador 50, uma unidade de processamento de transformada 52, uma unidade de quantização 54 e uma unidade de codificação de entropia 56. A unidade de seleção de modo 40 inclui uma unidade de compensação de movimento 44, uma unidade de estimativa de movimento 42, uma unidade de predição intra 46 e uma unidade de partição 48. Para reconstrução de bloco de vídeo, o codificador de vídeo 20 também inclui uma unidade de quantização inversa 58, uma unidade de transformada inversa 60 e um somador 62. Um filtro de desbloqueio (não mostrado na Figura 2) também pode ser incluído para filtrar as fronteiras de bloco para remover artefatos de bloqueio a partir de um vídeo reconstruído. Se desejado (por exemplo, ativado ou implementado), o filtro de desbloqueio filtra a saída do somador 62. Filtros adicionais (em loop ou pós-loop) também podem ser usados além do filtro de desbloqueio. Esses filtros não são mostrados por questões de brevidade, mas, se desejado, podem filtrar, por exemplo, a saída do somador 50 (como um filtro in-loop).
[0080] Durante o processo de codificação, o codificador de vídeo 20 recebe um quadro de vídeo ou fatia a ser codificada. O quadro ou fatia pode ser dividido em vários blocos de vídeo. A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 realizam codificação preditiva inter do bloco de vídeo recebido em relação a um ou mais blocos em um ou mais quadros de referência para fornecer predição temporal. A unidade de predição intra 46 pode, alternativamente, realizar a codificação preditiva intra do bloco de vídeo recebido em relação a um ou mais blocos vizinhos no mesmo quadro ou fatia que o bloco a ser codificado para fornecer predição espacial. O codificador de vídeo 20 pode realizar várias passagens de codificação, por exemplo, para selecionar um modo de codificação apropriado para cada bloco de dados de vídeo.
[0081] Além disso, a unidade de partição 48 pode particionar blocos de dados de vídeo em sub-blocos ou partições com base em uma avaliação de esquemas de particionamento anteriores em passagens ou em passos de codificação anteriores. Por exemplo, a unidade de partição 48 pode inicialmente particionar um quadro ou fatia em maiores unidades de codificação (LCUs) e particionar cada uma das LCUs em subunidades de codificação (sub-CUs) com base em uma análise de distorção de taxa (por exemplo, taxa otimização de distorção). A unidade de seleção de modo 40 pode adicionalmente produzir uma estrutura de dados de árvore quaternária indicativa ou indicando um particionamento de uma LCU em sub-CUs. CUs de nó folha da de árvore quaternária podem incluir uma ou mais unidades de predição (PUs) e uma ou mais unidades de transformada (TUs).
[0082] A presente revelação usa o termo "bloco" para se referir a qualquer uma de uma CU, PU ou TU, por exemplo, no contexto de HEVC ou VVC, ou estruturas de dados semelhantes no contexto de outros padrões (por exemplo, macroblocos e seus sub-blocos em H.264/AVC). Uma CU inclui, por exemplo, um nó de codificação, PUs e TUs associadas ao nó de codificação. Um tamanho da CU corresponde a um tamanho do nó de codificação e é, por exemplo, de forma quadrada. O tamanho da CU pode variar de 8 × 8 pixels até o tamanho do bloco de árvores com um máximo de 64 × 64 pixels ou mais, por exemplo, 128x128 pixels. Cada CU pode conter uma ou mais PUs e uma ou mais TUs. Os dados de sintaxe associados a uma CU podem descrever, por exemplo, o particionamento da CU em uma ou mais PUs. Os modos de particionamento podem diferir entre se a CU é codificada no modo de salto ou direto, no modo de predição intra codificado, ou no modo de predição inter codificado. As PUs podem ser particionadas para terem formato não quadrado. Os dados de sintaxe associados a uma CU também podem descrever, por exemplo, o particionamento da CU em uma ou mais TUs de acordo com uma árvore quaternária. Em uma modalidade, uma CU, PU ou TU pode ser quadrada ou não quadrada (por exemplo, retangular) na forma.
[0083] A unidade de seleção de modo 40 pode selecionar um dos modos de codificação, intra ou inter, por exemplo, com base em resultados de erro e fornecer o bloco codificado intra ou codificado inter resultante para o somador 50 para gerar dados de bloco residual e para o somador 62 para reconstruir o bloco codificado para uso como um quadro de referência. A unidade de seleção de modo 40 também fornece elementos de sintaxe, como vetores de movimento, indicadores de modo intra, informações de partição e/ou outras informações de sintaxe, para a unidade de codificação de entropia 56.
[0084] A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 podem ser altamente integradas, mas são ilustradas separadamente para fins conceituais. A estimativa de movimento, realizada pela unidade de estimativa de movimento 42, é o processo de geração de vetores de movimento, que estimam o movimento para blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de uma PU de um bloco de vídeo dentro de um quadro de vídeo atual ou imagem em relação a um bloco preditivo dentro de um quadro de referência (ou outra unidade codificada) em relação ao bloco atual sendo codificado dentro do quadro atual (ou outra unidade codificada). Um bloco preditivo é um bloco que se encontra próximo ao bloco a ser codificado em termos de diferença de pixel, que pode ser determinada por uma soma da diferença absoluta (SAD), uma soma da diferença quadrada (SSD) ou outras métricas de diferença. Em alguns exemplos, o codificador de vídeo 20 pode calcular valores para posições de pixel subinteiro de imagens de referência armazenadas na memória de quadro de referência 64. Por exemplo, o codificador de vídeo 20 pode interpolar valores de posições de um quarto de pixel, posições de um oitavo de pixel, ou outras posições de pixel fracionário da imagem de referência. Portanto, a unidade de estimativa de movimento 42 pode realizar uma busca de movimento em relação às posições de pixel completo e posições de pixel fracionário e produzir um vetor de movimento com precisão de pixel fracionário.
[0085] A unidade de estimativa de movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia codificada inter, comparando a posição da PU com a posição de um bloco preditivo de uma imagem de referência. A imagem de referência pode ser selecionada a partir de uma primeira lista de imagens de referência (Lista 0), ou uma segunda lista de imagens de referência (Lista 1), cada uma das quais identifica uma ou mais imagens de referência armazenadas na memória de quadro de referência 64. A unidade de estimativa de movimento 42 envia o vetor de movimento calculado para a unidade de codificação de entropia 56 e a unidade de compensação de movimento 44.
[0086] A compensação de movimento, realizada pela unidade de compensação de movimento 44, pode envolver buscar ou gerar o bloco preditivo com base no vetor de movimento determinado pela unidade de estimativa de movimento 42. Mais uma vez, a unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 podem ser funcionalmente integradas, em alguns exemplos. Ao receber o vetor de movimento para a PU do bloco de vídeo atual, a unidade de compensação de movimento 44 pode localizar o bloco preditivo para o qual o vetor de movimento aponta em uma das listas de imagens de referência. O somador 50 forma um bloco de vídeo residual subtraindo os valores de pixel do bloco preditivo a partir dos valores de pixel do bloco de vídeo atual sendo codificado, formando valores de diferença de pixel como discutido abaixo. Em geral, a unidade de estimativa de movimento 42 realiza estimativa de movimento em relação aos componentes de luma, e a unidade de compensação de movimento 44 usa vetores de movimento calculados com base nos componentes de luma para ambos os componentes de croma e componentes de luma. A unidade de seleção de modo 40 também pode gerar elementos de sintaxe associados com os blocos de vídeo e a fatia de vídeo para uso pelo decodificador de vídeo 30 na decodificação dos blocos de vídeo da fatia de vídeo.
[0087] A unidade de predição intra 46 pode prever intra um bloco atual como uma alternativa para a predição inter realizada pela unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44, como descrito acima. Em particular, a unidade de predição intra 46 pode determinar um modo de predição intra para usar para codificar um bloco atual. Em alguns exemplos, a unidade de predição intra 46 pode codificar um bloco atual usando vários modos de predição intra, por exemplo, durante passagens ou passos de codificação separadas e a unidade de predição intra 46 (ou a unidade de seleção de modo 40, em alguns exemplos) pode selecionar um modo de predição intra apropriado para usar a partir dos modos testados.
[0088] Por exemplo, a unidade de predição intra 46 pode calcular valores de taxa de distorção usando uma análise de taxa de distorção para os vários modos de predição intra testados e selecionar o modo de predição intra com as melhores características de taxa de distorção entre os modos testados. A análise de taxa de distorção geralmente determina uma quantidade de distorção (ou erro) entre um bloco codificado e um bloco original não codificado que foi codificado para produzir o bloco codificado, bem como uma taxa de bits (isto é, um número de bits) usado para produzir o bloco codificado. A unidade de predição intra 46 pode calcular as razões das distorções e taxas para os vários blocos codificados para determinar qual modo de predição intra exibe o melhor valor de distorção de taxa para o bloco.
[0089] Além disso, a unidade de predição intra 46 pode ser configurada para codificar blocos de profundidade de um mapa de profundidade usando um modo de modelagem de profundidade (DMM). A unidade de seleção de modo 40 pode determinar se um modo de DMM disponível produz melhores resultados de codificação do que um modo de predição intra e os outros modos de DMM, por exemplo, usando otimização de taxa de distorção (RDO). Os dados para uma imagem de textura correspondente a um mapa de profundidade podem ser armazenados na memória de quadro de referência 64. A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 também podem ser configuradas para prever blocos de profundidade de um mapa de profundidade.
[0090] Depois de selecionar um modo de predição intra para um bloco (por exemplo, um modo de predição intra convencional ou um dos modos de DMM), a unidade de predição intra 46 pode fornecer informações indicativas do modo de predição intra selecionado para o bloco para a unidade de codificação de entropia 56. A unidade de codificação de entropia 56 pode codificar as informações que indicam o modo de predição intra selecionado. O codificador de vídeo 20 pode incluir no fluxo de bits transmitido dados de configuração, que podem incluir uma pluralidade de tabelas de índice de modo de predição intra e uma pluralidade de tabelas de índice de modo de predição intra modificadas (também referidas como tabelas de mapeamento de palavra de código), definições de contextos de codificação para vários blocos e indicações de um modo de predição intra mais provável, uma tabela de índice de modo de predição intra e uma tabela de índice de modo de predição intra modificada para usar para cada um dos contextos.
[0091] O codificador de vídeo 20 forma um bloco de vídeo residual subtraindo os dados de predição da unidade de seleção de modo 40 do bloco de vídeo original sendo codificado. O somador 50 representa o componente ou componentes que realizam esta operação de subtração.
[0092] A unidade de processamento de transformada 52 aplica uma transformada, como uma transformada de cosseno discreta (DCT) ou uma transformada conceitualmente semelhante, ao bloco residual, produzindo um bloco de vídeo que compreende valores de coeficiente de transformada residual. A unidade de processamento de transformada 52 pode realizar outras transformadas que são conceitualmente semelhantes a DCT. Transformadas de pequena onda, transformadas inteiras, transformadas de sub-banda ou outros tipos de transformadas também podem ser usados.
[0093] A unidade de processamento de transformada 52 aplica a transformada ao bloco residual, produzindo um bloco de coeficientes de transformada residual. A transformada pode converter as informações residuais de um domínio de valor de pixel para um domínio de transformada, como um domínio de frequência. A unidade de processamento de transformada 52 pode enviar os coeficientes de transformada resultantes para a unidade de quantização 54. A unidade de quantização 54 quantifica os coeficientes de transformada para reduzir adicionalmente a taxa de bits. O processo de quantização pode reduzir a profundidade de bits associada a alguns ou todos os coeficientes. O grau de quantização pode ser modificado ajustando um parâmetro de quantização. Em alguns exemplos, a unidade de quantização 54 pode então realizar uma varredura da matriz incluindo os coeficientes de transformada quantizados. Alternativamente, a unidade de codificação de entropia 56 pode realizar a varredura.
[0094] Após a quantização, a unidade de codificação de entropia 56 codifica os coeficientes de transformada quantizados. Por exemplo, a unidade de codificação de entropia 56 pode realizar codificação de comprimento variável de contexto adaptativo (CAVLC), codificação aritmética binária de contexto adaptativo (CABAC), codificação aritmética binária de contexto adaptativo baseada em sintaxe (SBAC), codificação de entropia de particionamento de intervalo de probabilidade (PIPE), ou outra técnica de codificação de entropia. No caso de codificação de entropia baseada em contexto, o contexto pode ser baseado em blocos vizinhos. Seguindo a codificação de entropia pela unidade de codificação de entropia 56, o fluxo de bits codificado pode ser transmitido para outro dispositivo (por exemplo, decodificador de vídeo 30) ou arquivado para posterior transmissão ou recuperação.
[0095] A unidade de quantização inversa 58 e a unidade de transformada inversa 60 aplicam quantização inversa e transformada inversa, respectivamente, para reconstruir o bloco residual no domínio de pixel, por exemplo, para uso posterior como um bloco de referência. A unidade de compensação de movimento 44 pode determinar um bloco de predição (também referido como bloco preditivo), por exemplo, um bloco de predição de movimento compensado com base em um vetor de movimento e em um bloco de referência correspondente, por exemplo, derivado de um quadro de referência de um dos quadros da memória de quadro de referência 64. A unidade de compensação de movimento 44 também pode aplicar um ou mais filtros de interpolação para calcular valores de pixel subinteiros de um bloco de referência para uso em estimativa ou compensação de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de predição (com compensação de movimento) produzido pela unidade de compensação de movimento 44 para produzir um bloco de vídeo reconstruído para armazenamento na memória de quadro de referência 64. O bloco de vídeo reconstruído pode ser usado pela unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 como um bloco de referência para codificar um bloco em um quadro de vídeo subsequente.
[0096] Outras variações estruturais do codificador de vídeo 20 podem ser usadas para codificar o fluxo de vídeo. Por exemplo, um codificador de vídeo não baseado em transformada 20 pode quantizar o sinal residual diretamente sem a unidade de processamento de transformada 52 para certos blocos ou quadros. Em outra implementação, um codificador 20 pode ter a unidade de quantização 54 e a unidade de quantização inversa 58 combinadas em uma única unidade.
[0097] A Figura 3 é um diagrama de blocos que ilustra um exemplo do decodificador de vídeo 30 que pode implementar as técnicas deste presente pedido. No exemplo da Figura 3, o decodificador de vídeo 30 inclui uma unidade de decodificação de entropia 70, uma unidade de compensação de movimento 72, uma unidade de predição intra 74, uma unidade de quantização inversa 76, uma unidade de transformada inversa 78, uma memória de quadro de referência 82 e um somador 80. O decodificador de vídeo 30 pode, em alguns exemplos, realizar uma passagem ou percurso de decodificação geralmente recíproco para a passagem ou percurso de codificação descrito em relação ao codificador de vídeo 20 na Figura 2. A unidade de compensação de movimento 72 pode gerar dados de predição com base em vetores de movimento recebidos da unidade de decodificação de entropia 70, enquanto a unidade de predição intra 74 pode gerar dados de predição com base em indicadores de modo de predição intra recebidos da unidade de decodificação de entropia 70.
[0098] Durante o processo de decodificação, o decodificador de vídeo 30 recebe um fluxo de bits de vídeo codificado que representa blocos de vídeo de uma fatia de vídeo codificada e elementos de sintaxe associados gerados a partir do codificador de vídeo 20. A unidade de decodificação de entropia 70 do decodificador de vídeo 30 decodifica por entropia o fluxo de bits para gerar coeficientes quantizados, vetores de movimento ou indicadores de modo de predição intra, e outros elementos de sintaxe. A unidade de decodificação de entropia 70 encaminha os vetores de movimento e outros elementos de sintaxe para a unidade de compensação de movimento 72. O decodificador de vídeo 30 pode receber os elementos de sintaxe no nível de fatia de vídeo e/ou nível de bloco de vídeo.
[0099] Quando a fatia de vídeo é codificada como uma fatia codificada intra (I), a unidade de predição intra 74 pode gerar dados de predição para um bloco de vídeo da fatia de vídeo atual com base em um modo de predição intra sinalizado e dados a partir de blocos decodificados anteriores do quadro ou imagem atual. Quando o quadro de vídeo é codificado como uma fatia codificada inter (isto é, B, P ou GPB), a unidade de compensação de movimento 72 produz blocos preditivos para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe recebidos da unidade de decodificação de entropia 70. Os blocos preditivos podem ser produzidos a partir de uma das imagens de referência dentro de uma das listas de imagens de referência. O decodificador de vídeo 30 pode construir as listas de quadros de referência, Lista 0 e Lista 1, usando técnicas de construção padrão com base em imagens de referência armazenadas na memória de quadro de referência 82.
[0100] A unidade de compensação de movimento 72 determina as informações de predição para um bloco de vídeo da fatia de vídeo atual, analisando os vetores de movimento e outros elementos de sintaxe e usa as informações de predição para produzir os blocos de predição para o bloco de vídeo atual sendo decodificado. Por exemplo, a unidade de compensação de movimento 72 usa alguns dos elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, predição intra ou inter) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de predição inter (por exemplo, fatia B, fatia P ou fatia GPB), informações de construção para uma ou mais das listas de imagens de referência para a fatia, vetores de movimento para cada bloco de vídeo codificado inter da fatia, status de predição inter para cada bloco de vídeo codificado inter da fatia e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual.
[0101] A unidade de compensação de movimento 72 também pode realizar interpolação com base em filtros de interpolação. A unidade de compensação de movimento 72 pode usar filtros de interpolação como usados pelo codificador de vídeo 20 durante a codificação dos blocos de vídeo para calcular valores interpolados para pixels subinteiros de blocos de referência. Neste caso, a unidade de compensação de movimento 72 pode determinar os filtros de interpolação usados pelo codificador de vídeo 20 a partir dos elementos de sintaxe recebidos e usar os filtros de interpolação para produzir blocos preditivos.
[0102] Dados para uma imagem de textura correspondente a um mapa de profundidade podem ser armazenados na memória de quadro de referência 82. A unidade de compensação de movimento 72 também pode ser configurada para prever blocos de profundidade de um mapa de profundidade.
[0103] Voltando à Figura 1A, o sistema de codificação de vídeo 10 é adequado para implementar várias técnicas de codificação ou compressão de vídeo. Algumas técnicas de compressão de vídeo, como predição inter, predição intra e filtros loop, demonstraram ser eficazes. Portanto, as técnicas de compressão de vídeo foram adotadas em vários padrões de codificação de vídeo, como H.264/AVC e H.265/HEVC.
[0104] Várias ferramentas de codificação, como predição de vetor de movimento adaptativo (AMVP) e modo de mesclagem (MERGE), podem ser usadas para prever vetores de movimento (MVs) e aumentar a eficiência de predição inter e, portanto, a eficiência geral de compressão de vídeo.
[0105] Os MVs observados acima podem ser utilizados na bipredição. Em uma operação de bipredição, dois blocos de predição são formados. Um bloco de predição é formado usando um MV da lista0 (referido aqui como MV0). Outro bloco de predição é formado usando um MV da lista1 (referido neste documento como MV1). Os dois blocos de predição são então combinados (por exemplo, média) a fim de formar um único sinal de predição (por exemplo, um bloco de predição ou um bloco de predição).
[0106] Outras variações do decodificador de vídeo 30 podem ser usadas para decodificar o fluxo de bits comprimido. Por exemplo, o decodificador 30 pode produzir o fluxo de vídeo de saída sem a unidade de filtragem loop. Por exemplo, um decodificador não baseado em transformada 30 pode quantificar inversamente o sinal residual diretamente sem a unidade de processamento de transformada inversa 78 para certos blocos ou quadros. Em outra implementação, o decodificador de vídeo 30 pode ter a unidade de quantização inversa 76 e a unidade de processamento de transformada inversa 78 combinadas em uma única unidade.
[0107] A Figura 4 é um diagrama esquemático de um dispositivo de rede 400 (por exemplo, um dispositivo de codificação) de acordo com uma modalidade da revelação. O dispositivo de rede 400 é adequado para implementar as modalidades reveladas conforme descrito neste documento. Em uma modalidade, o dispositivo de rede 400 pode ser um decodificador, como o decodificador de vídeo 30 das Figuras 1A e 3 ou um codificador, como o codificador de vídeo 20 das Figuras 1A e 2. Em uma modalidade, o dispositivo de rede 400 pode ser um ou mais componentes do decodificador de vídeo 30 das Figuras 1A e 3 ou o codificador de vídeo 20 das Figuras 1A e 2 conforme descrito acima.
[0108] O dispositivo de rede 400 compreende portas de entrada 410 e unidades receptoras (Rx) 420 para receber dados; um processador, unidade lógica ou unidade de processamento central (CPU) 430 para processar os dados; unidades transmissoras (Tx) 440 e portas de saída 450 para transmitir os dados; e uma memória 460 para armazenar os dados. O dispositivo de rede 400 também pode compreender componentes ótico-para-elétrico (OE) e componentes elétrico-para-ótico (EO) acoplados às portas de entrada 410, unidades receptoras 420, unidades transmissoras 440 e portas de saída 450 para saída ou entrada de sinais óticos ou elétricos.
[0109] O processador 430 pode ser implementado por hardware e software. O processador 430 pode ser implementado como um ou mais chips de CPU, núcleos (por exemplo, como um processador de múltiplos núcleos), FPGAs, ASICs e DSPs. O processador 430 está em comunicação com as portas de entrada 410, unidades receptoras 420, unidades transmissoras 440, portas de saída 450 e memória 460. O processador 430 compreende um módulo de codificação 470. O módulo de codificação 470 implementa as modalidades reveladas descritas acima. Por exemplo, o módulo de codificação 470 implementa, processa, prepara ou fornece as várias operações de codificação. A inclusão do módulo de codificação 470, portanto, fornece uma melhoria substancial para a funcionalidade do dispositivo de rede 400 e efetua uma transformação do dispositivo de rede 400 para um estado diferente. Alternativamente, o módulo de codificação 470 é implementado como instruções armazenadas na memória 460 e executadas pelo processador 430.
[0110] A memória 460 compreende um ou mais discos, unidades de fita e unidades de estado sólido e pode ser usada como um dispositivo de armazenamento de dados de sobrefluxo, para armazenar programas quando tais programas são selecionados para execução e para armazenar instruções e dados que são lidos durante a execução do programa. A memória 460 pode ser volátil e/ou não volátil e pode ser memória somente de leitura (ROM), memória de acesso aleatório (RAM), memória de conteúdo endereçável ternária (TCAM) e/ou memória de acesso aleatório estática (SRAM).
[0111] A Figura 5 é um diagrama de blocos simplificado de um aparelho 500 que pode ser usado como um ou ambos o dispositivo de origem 12 e o dispositivo de destino 14 na Figura 1A de acordo com uma modalidade exemplar. O aparelho 500 pode implementar técnicas do presente pedido. O aparelho 500 pode estar na forma de um sistema de computação incluindo vários dispositivos de computação ou na forma de um único dispositivo de computação, por exemplo, um telefone móvel, um computador tablet, um computador portátil, um computador portátil, um computador desktop e semelhantes.
[0112] Um processador 502 no aparelho 500 pode ser uma unidade de processamento central. Alternativamente, o processador 502 pode ser qualquer outro tipo de dispositivo ou múltiplos dispositivos capazes de manipular ou processar informações agora existentes ou desenvolvidas posteriormente. Embora as implementações reveladas possam ser praticadas com um único processador, como mostrado, por exemplo, o processador 502, vantagens em velocidade e eficiência podem ser alcançadas usando mais de um processador.
[0113] Uma memória 504 no aparelho 500 pode ser um dispositivo de memória somente de leitura (ROM) ou um dispositivo de memória de acesso aleatório (RAM) em uma implementação. Qualquer outro tipo adequado de dispositivo de armazenamento pode ser usado como a memória 504. A memória 504 pode incluir código e dados 506 que são acessados pelo processador 502 usando um barramento 512. A memória 504 pode incluir adicionalmente um sistema operacional 508 e programas de aplicação 510, e os programas de aplicação 510 incluem pelo menos um programa que permite ao processador 502 executar os métodos descritos neste documento. Por exemplo, os programas de aplicação 510 podem incluir aplicações de 1 a N, que incluem adicionalmente uma aplicação de codificação de vídeo que executa os métodos descritos neste documento. O aparelho 500 também pode incluir memória adicional na forma de um armazenamento secundário 514, que pode, por exemplo, ser um cartão de memória usado com um dispositivo de computação móvel. Como as sessões de comunicação de vídeo podem conter uma quantidade significativa de informações, elas podem ser armazenadas no todo ou em parte no armazenamento secundário 514 e carregadas na memória 504 conforme necessário para processamento.
[0114] O aparelho 500 também pode incluir um ou mais dispositivos de saída, como um visor 518. O visor 518 pode ser, em um exemplo, um visor sensível ao toque que combina um visor com um elemento sensível ao toque que é operável para detectar entradas de toque. O visor 518 pode ser acoplada ao processador 502 através do barramento 512. Outros dispositivos de saída que permitem a um usuário programar ou de outra forma usar o aparelho 500 podem ser fornecidos em adição ou como uma alternativa ao visor 518. Quando o dispositivo de saída é ou inclui um visor, o visor pode ser implementado de várias maneiras, incluindo por um visor de cristal líquido (LCD), um visor de tubo de raios catódicos (CRT), um visor de plasma ou visor de diodo emissor de luz (LED), como um visor de LED orgânico (OLED).
[0115] O aparelho 500 também pode incluir ou estar em comunicação com um dispositivo de detecção de imagem 520, por exemplo, uma câmera ou qualquer outro dispositivo de detecção de imagem 520 agora existente ou desenvolvido posteriormente que pode detectar uma imagem, tal como a imagem de um usuário que opera o aparelho 500. O dispositivo de detecção de imagem 520 pode ser posicionado de modo que seja direcionado ao usuário que opera o aparelho 500. Em um exemplo, a posição e o eixo ótico do dispositivo de detecção de imagem 520 podem ser configurados de modo que o campo de visão inclui uma área que é diretamente adjacente ao visor 518 e do qual o visor 518 é visível.
[0116] O aparelho 500 também pode incluir ou estar em comunicação com um dispositivo de detecção de som 522, por exemplo, um microfone ou qualquer outro dispositivo de detecção de som agora existente ou desenvolvido posteriormente que pode detectar sons perto do aparelho 500. O dispositivo de detecção 522 pode ser posicionado de modo que seja direcionado para o usuário que opera o aparelho 500 e pode ser configurado para receber sons, por exemplo, fala ou outras elocuções feitas pelo usuário enquanto o usuário opera o aparelho 500.
[0117] Embora a Figura 5 represente o processador 502 e a memória 504 do aparelho 500 como sendo integrados em uma única unidade, outras configurações podem ser utilizadas. As operações do processador 502 podem ser distribuídas em várias máquinas (cada máquina tendo um ou mais dos processadores) que podem ser acopladas diretamente ou através de uma rede de área local ou outra rede. A memória 504 pode ser distribuída por várias máquinas, como uma memória baseada em rede ou memória em várias máquinas que executam as operações do aparelho 500. Embora representado aqui como um único barramento, o barramento 512 do aparelho 500 pode ser composto de vários barramentos. Além disso, o armazenamento secundário 514 pode ser diretamente acoplado a outros componentes do aparelho 500 ou pode ser acessado através de uma rede e pode compreender uma única unidade integrada, como um cartão de memória, ou várias unidades, como vários cartões de memória. O aparelho 500 pode, assim, ser implementado em uma ampla variedade de configurações.
[0118] O padrão de próxima geração de Codificação de Vídeo Versátil (VVC) é o mais recente projeto de vídeo conjunto do Grupo de Especialistas de Codificação de Vídeo (VCEG) do Setor de Padronização de Telecomunicação de União de Telecomunicações Internacional (ITU-T) e das organizações de padronização do Grupo de Especialistas de Imagem em Movimento (MPEG) da Organização Internacional de Padronização/Comissão Eletrotécnica Internacional (ISO/IEC), trabalhando juntas em uma parceria conhecida como Equipe de Exploração de Vídeo Conjunta (JVET). Na VVC, uma estrutura de segmentação de árvore (binária/ternária/quaternária) multitipo (BT/TT/QT ou árvore binária/árvore ternária/árvore quaternária) deve substituir, ou pode substituir, o conceito de tipos de unidades de partição múltipla, ou seja, remove a separação dos conceitos de CU, PU e TU, exceto conforme necessário para CUs que têm um tamanho muito grande para o comprimento de transformada máximo e oferece mais flexibilidade para formatos de partição de CU. [JVET- J1002].
[0119] As Figuras 6A-F ilustram, como exemplo, os modos de partição atualmente usados em VTM. A Figura 6A mostra um bloco não dividido (sem divisão), a Figura 6Bb mostra particionamento quaternário ou árvore quaternária (QT), a Figura 6C mostra um particionamento horizontal binário ou árvore binária (BT), a Figura 6D mostra um particionamento vertical binário ou árvore binária (BT), a Figura 6E mostra um particionamento horizontal ternário ou árvore ternária (TT) e a Figura 6F mostra um particionamento vertical ternário ou árvore ternária (TT) de um bloco, como uma CU ou CTU. As modalidades podem ser configuradas para implementar os modos de partição conforme mostrado nas Figuras 6A a 6F.
[0120] Em modalidades, os seguintes parâmetros podem ser definidos e especificados por elementos de sintaxe de conjunto de parâmetros de sequência (SPS) para o esquema de árvore de codificação BT/TT/QT: Tamanho de CTU: o tamanho de nó raiz de uma árvore quaternária MinQTSize: o tamanho de nó folha de árvore quaternária mínimo permitido MaxBTTSize: o tamanho de nó raiz de árvore binária e ternária máximo permitido MaxBTTDepth: a profundidade de árvore binária e ternária máxima permitida, e MinBTTSize: o tamanho de nó folha de árvore binária e ternária mínimo permitido
[0121] Em outras modalidades, o parâmetro de tamanho de nó folha de árvore quaternária mínimo permitido MinQTSize também pode estar compreendido em outros cabeçalhos ou conjuntos, por exemplo, o cabeçalho de fatia (SH) ou conjunto de parâmetros de imagem (PPS).
[0122] No padrão HEVC, as unidades de árvore de codificação (CTU) ou unidades de codificação (CU), que estão localizadas nas fronteiras de fatia/imagem serão forçadas a dividir usando de árvore quaternária (QT) até a amostra inferior direita do nó folha estar localizada dentro da fronteira de fatia/imagem. A partição ou particionamento de QT forçado não precisa ser sinalizado no fluxo de bits porque o codificador e o decodificador, por exemplo, o codificador de vídeo 20 e o decodificador de vídeo 30, sabem quando aplicar QT forçada. O objetivo da partição forçada é tornar a fronteira de CTU/CU possível pelo codificador de vídeo 20/decodificador de vídeo 30.
[0123] Publicação de patente internacional número WO 2016/090568 revela uma estrutura QTBT (árvore quaternária mais árvore binária), e também em VTM 1.0, o processo de particionamento forçado de CTU/CU de fronteira é herdado a partir de HEVC. Isso significa que a CTU/CU localizada na fronteira de quadro é forçada a particionar por uma estrutura de árvore quaternária (QT) sem considerar a otimização de distorção de taxa (RD) até que todo a CU atual esteja dentro da fronteira de imagem. Essas partições forçadas não são sinalizadas no fluxo de bits.
[0124] A Figura 7A mostra um exemplo de partição forçada para uma CTU de fronteira inferior de alta definição (HD) (1920x1080 pixels) (128x128) particionada por QT forçada. Na Figura 7, a imagem HD tem ou é 1920x1080 pixels, e a CTU tem ou é 128x128 pixels.
[0125] Em SubCE2 (tratamento de fronteira de imagem) de CE1 (particionamento) na reunião de San Diego (04.2018) [JVET-J1021, 15 testes foram propostos para tratamento de fronteira de imagem usando BT, TT ou ABT (BT assimétrica). Em JVET-K0280 e JVET-K0376, por exemplo, a fronteira é definida como mostrado na Figura 8. A Figura 8 mostra as bordas de uma imagem por linhas pontilhadas e áreas de casos de fronteira em linhas retas, ou seja, um caso de fronteira inferior, um caso de fronteira de canto e um caso de fronteira direita. Uma fronteira inferior pode ser particionada por BT forçada horizontal ou QT forçada, uma fronteira direita pode ser particionada por BT forçada vertical ou QT forçada e um caso de canto só pode ser dividido por QT forçada, em que a decisão de usar qualquer um do particionamento de BT ou QT forçado é baseado em um critério de otimização de distorção de taxa e é sinalizado no fluxo de bits. O particionamento forçado significa que o bloco deve ser particionado, por exemplo, o particionamento forçado é aplicado a blocos de fronteira que não podem ser codificados usando "sem divisão", como mostrado na Figura 6A.
[0126] Se a divisão de QT forçada for usada em um particionamento de fronteira forçado, a restrição de particionamento de MinQTSize é ignorada. Por exemplo, na Figura 9A, se o MinQTSize for sinalizado como 32 no SPS, para combinar a fronteira de com um método de QT forçado, uma QT dividida para um tamanho de bloco 8x8 seria necessária, o que ignora a restrição de MinQTSize sendo 32.
[0127] De acordo com as modalidades da revelação, se a QT forçada é usada para particionamento de fronteira de imagem, a divisão de QT forçada obedece, por exemplo, não ignora, uma restrição de divisão como sinalizado, por exemplo, em um SPS. Se a divisão forçada adicional for necessária, apenas a BT forçada é usada, que em combinação também pode ser referida como QTBT forçada. Em modalidades da revelação, por exemplo, a restrição de partição MinQTSize é considerada para o particionamento de QT forçado nas fronteiras de imagem e nenhuma sinalização adicional para o particionamento de BT forçado é necessária. As modalidades também permitem harmonizar o particionamento para blocos normais (não fronteira) e blocos de fronteira. Por exemplo, em soluções convencionais, dois parâmetros “MinQTSize” são necessários, um para particionamento de bloco normal e outro para particionamento de bloco de fronteira. As modalidades exigem apenas um parâmetro "MinQTSize" comum para ambos, particionamento de bloco normal e bloco de fronteira, que pode ser definido de forma flexível entre o codificador e o decodificador, por exemplo, sinalizando um parâmetro "MinQTSize". Além disso, as modalidades requerem menos partições do que, por exemplo, QT forçada.
[0128] Soluções para caso de fronteira inferior e caso de fronteira direita
[0129] No caso de fronteira inferior e direita, se o tamanho do bloco for maior que MinQTSize, então o modo de partição para o particionamento de fronteira de imagem pode ser selecionado entre particionamento de BT forçado e particionamento de QT forçado, por exemplo, baseado em RDO. Caso contrário (ou seja, se o tamanho do bloco for igual ou menor que MinQTSize), apenas o particionamento de BT forçado é usado para o particionamento de fronteira de imagem, mais especificamente, BT horizontal forçada é usada para uma fronteira inferior respectivamente para um bloco de fronteira localizado na fronteira inferior de uma imagem, e BT forçada vertical é usada para uma fronteira direita, respectivamente, para um bloco de fronteira localizado na fronteira direita de uma imagem.
[0130] O particionamento de BT forçado pode compreender particionar recursivamente o bloco atual por um particionamento de fronteira forçado horizontal até que uma subpartição do bloco atual esteja localizada na fronteira inferior da imagem e particionar recursivamente a subpartição por um particionamento de fronteira forçado vertical até que um nó folha esteja inteiramente localizado na fronteira direita da imagem. Alternativamente, o particionamento de BT forçado pode compreender particionar recursivamente o bloco atual por um particionamento de fronteira forçado vertical até que uma subpartição do bloco atual esteja localizada na fronteira inferior e particionar recursivamente a subpartição por um particionamento de fronteira forçado horizontal até um nó folha estar inteiramente localizado na fronteira direita. MinQTSize também pode ser aplicado para controlar o particionamento de um bloco de não fronteira.
[0131] Por exemplo, no caso mostrado na Figura 7A, se o MinQTSize for, ou estiver limitado a, 32, enquanto o tamanho de um bloco retangular (não quadrado) de altura ou largura de 8 amostras for necessário para corresponder à fronteira de imagem, o particionamento de BT forçado será usado para particionar o bloco localizado na fronteira 32x32. As partições de BT podem ser posteriormente particionadas usando o particionamento de BT forçado do mesmo tipo, por exemplo, no caso de particionamento de BT vertical forçado ter sido aplicado, apenas o particionamento de BT vertical forçado é aplicado e, no caso de particionamento de BT horizontal forçado ter sido aplicado, apenas particionamento de BT horizontal forçado é aplicado. O porcionamento de BT forçado é continuado até que o nó folha esteja inteiramente dentro da imagem.
[0132] A Figura 7B mostra um particionamento exemplar de uma CTU de fronteira inferior com um tamanho de 128x128 amostras de acordo com uma modalidade da invenção. A CTU de fronteira inferior, que forma um bloco raiz ou nó raiz de uma árvore de particionamento, é particionada em partições menores, por exemplo, blocos menores de tamanho quadrado ou retangular. Essas partições ou blocos menores podem ser adicionalmente particionados em partições ou blocos ainda menores. Na Figura 7B, a CTU é primeiramente dividida em árvore quádrupla em quatro blocos quadrados 710, 720, 730 e 740, cada um com um tamanho de amostras de 64x64. Destes blocos, os blocos 710 e 720 são novamente blocos de fronteira inferior, enquanto os blocos 730 e 740 estão fora da imagem (respectivamente estão localizados fora da imagem) e não são processados.
[0133] O bloco 710 é adicionalmente particionado usando o particionamento de árvore quádrupla em quatro blocos quadrados 750, 760, 770 e 780, cada um com um tamanho de 32x32 amostras. Os blocos 750 e 760 estão localizados dentro da imagem, enquanto os blocos 770 e 780 novamente formam os blocos de fronteira inferior. Como o tamanho do bloco 770 não é maior que MinQTSize, que é por exemplo 32, o particionamento binário forçado horizontal recursivo é aplicado ao bloco 770 até que um nó folha esteja inteiramente dentro ou localizado inteiramente dentro da imagem, por exemplo, até um bloco de nó folha 772, um bloco retangular não quadrado com amostras de 32x16 estar dentro da imagem (após um particionamento binário horizontal), ou bloco de nó folha 774, um bloco retangular não quadrado localizado na fronteira inferior da imagem e tendo amostras de 32x8 estar dentro da imagem (após dois particionamentos binários horizontais). O mesmo se aplica ao bloco 780.
[0134] As modalidades da revelação permitem harmonizar o particionamento para blocos normais localizados completamente dentro da imagem e o particionamento dos blocos de fronteira. Os blocos de fronteira são blocos que não estão completamente dentro da imagem e nem completamente fora da imagem. Em outras palavras, os blocos de fronteira são blocos que compreendem uma parte que está localizada dentro da imagem e uma parte que está localizada fora da imagem. Além disso, as modalidades da revelação permitem reduzir a sinalização, pois o particionamento de BT forçado em MinQTSize ou abaixo dele não precisa ser sinalizado.
[0135] Soluções para caso de canto
[0136] No caso de canto, algumas abordagens permitem apenas uma divisão de QT forçada, que também ignora a restrição de MinQTSize. As modalidades da revelação fornecem duas soluções para o caso de canto.
[0137] Solução 1:
[0138] O caso de canto é considerado um caso de fronteira inferior ou um caso de fronteira direita. A Figura 10 mostra uma modalidade de uma definição de fronteira. A Figura 10 mostra as bordas de uma imagem por linhas pontilhadas e áreas de casos de fronteira em linhas retas. Conforme mostrado, o caso de canto é definido como um caso de fronteira inferior. Assim, a solução é a mesma descrita para o caso da fronteira inferior e o caso da fronteira direita acima. Em outras palavras, primeiro um particionamento horizontal é aplicado (conforme descrito para o caso de fronteira inferior) até que os blocos ou partições estejam inteiramente dentro da imagem (na direção vertical) e, em seguida, um particionamento vertical é aplicado (conforme descrito para o caso de fronteira direita) até que os nós de folha estejam inteiramente dentro da imagem (na direção horizontal).
[0139] Solução 2:
[0140] A definição dos casos de fronteira ainda é mantida como está. Se o QT forçado for restringido por MinQTSize (tamanho do bloco atual igual ou menor que MinQTSize), use BT forçado horizontal para corresponder à fronteira inferior, quando a fronteira inferior corresponder, use BT forçado vertical para corresponder à fronteira direita.
[0141] Por exemplo, na Figura 9A, que mostra uma modalidade de uma QTBT forçada para um bloco localizado em um canto de uma imagem, se MinQTSize for, ou for limitado como, 32 para a partição de QT forçada de caso de canto, outra partição de BT será usada após a partição do Bloco de 32x32 até que a partição forçada seja encerrada.
[0142] A Figura 9B mostra mais detalhes de um particionamento exemplar de uma CTU de fronteira em ou dentro de um canto de uma imagem de acordo com uma modalidade da invenção, em que a CTU tem um tamanho de 128x128 amostras. A CTU é primeiro particionada por árvore quaternária em quatro blocos quadrados, cada um com um tamanho de 64x64 amostras. Destes blocos, apenas o bloco superior esquerdo 910 é um bloco de fronteira, enquanto os outros três estão localizados fora (totalmente fora) da imagem e não são processados posteriormente. O bloco 910 é adicionalmente particionado usando particionamento de árvore quaternária em quatro blocos quadrados 920, 930, 940 e 950, cada um com um tamanho de amostras de 32x32. O bloco 920 está localizado dentro da imagem, enquanto os blocos 930, 940 e 950 novamente formam blocos de fronteira. Como o tamanho desses blocos 930, 940 e 950 não é maior que MinQTSize, que é 32, o particionamento binário forçado é aplicado aos blocos 930, 940 e 950.
[0143] O bloco 930 está localizado em uma fronteira direita e particionado usando particionamento binário forçado vertical recursivo até que um nó folha esteja dentro da imagem, por exemplo, bloco 932 localizado na fronteira direita da imagem (aqui após dois particionamentos binários verticais).
[0144] O bloco 940 está localizado em uma fronteira inferior e particionado usando particionamento binário forçado horizontal recursivo até que um nó folha esteja dentro da imagem, por exemplo, bloco 942 localizado na fronteira direita da imagem (aqui após dois particionamentos binários horizontais).
[0145] O bloco 950 está localizado em uma fronteira de canto e é particionado usando primeiro particionamento binário forçado horizontal recursivo até uma subpartição ou bloco, aqui bloco 952, estar localizado em uma fronteira inferior da imagem (aqui após dois particionamentos binários horizontais) e, em seguida, particionamento recursivo da subpartição por um particionamento de fronteira forçado vertical até que um nó folha ou bloco, por exemplo, bloco 954, esteja localizado na fronteira direita da imagem (aqui após dois particionamentos binários verticais), ou respectivamente, até um nó folha estar localizado dentro da imagem.
[0146] As abordagens acima podem ser aplicadas tanto para decodificação quanto para codificação. Para decodificação, MinQTSize pode ser recebido por meio de um SPS. Para codificação, MinQTSize pode ser transmitido por meio de um SPS. As modalidades podem usar definições de fronteira como mostrado na Figura 8 ou Figura 10, ou outras definições de fronteira.
[0147] Outras modalidades da presente revelação são fornecidas a seguir. Deve ser notado que a numeração usada na seção seguinte não precisa necessariamente estar de acordo com a numeração usada nas seções anteriores. Modalidade 1: Um método de particionamento compreendendo:
determinar se o bloco atual de uma imagem é um bloco de fronteira; se o bloco atual é um bloco de fronteira, determinar se o tamanho do bloco atual é maior que um tamanho de nó folha de árvore quaternária mínimo permitido; se o tamanho do bloco atual não for maior que o tamanho de nó folha de árvore quaternária mínimo permitido, aplicar o particionamento de árvore binária forçado ao bloco atual.
Modalidade 2: O método de particionamento da modalidade 1, em que o particionamento de árvore binária forçado é um particionamento binário forçado horizontal recursivo no caso de o bloco atual estar localizado em uma fronteira inferior da imagem, ou é um particionamento de fronteira forçado vertical recursivo no caso de o bloco atual estar localizado em uma fronteira direita da imagem.
Modalidade 3: O método de particionamento da modalidade 1 ou 2, em que o particionamento binário forçado compreende particionar recursivamente o bloco atual por um particionamento de fronteira forçado horizontal até que uma subpartição do bloco atual esteja localizada diretamente na fronteira inferior da imagem, e particionar recursivamente a subpartição por um particionamento de fronteira forçado vertical até que um nó folha esteja inteiramente localizado diretamente na fronteira direita da imagem, ou vice- versa.
Modalidade 4: O método de particionamento de qualquer uma das modalidades 1 a 3, em que o tamanho de nó folha de árvore quaternária mínimo permitido é um tamanho de nó folha de árvore quaternária mínimo permitido também aplicado para controlar o particionamento de um bloco de não fronteira.
Modalidade 5: Um método de decodificação para decodificar um bloco particionando-se o bloco de acordo com o método de porcionamento de qualquer uma das modalidades 1 a 4. Modalidade 6: O método de decodificação da modalidade 5, em que o tamanho de nó folha de árvore quaternária mínimo permitido é recebido através de um SPS.
Modalidade 7: Um método de codificação para codificar um bloco particionando-se o bloco de acordo com o método de porcionamento de qualquer uma das modalidades 1 a 4.
Modalidade 8: O método de codificação da modalidade 7, em que o tamanho de nó folha de árvore quaternária mínimo permitido é transmitido através de um SPS. Modalidade 9: Um dispositivo de decodificação, compreendendo circuitos lógicos configurados para realizar qualquer um dos métodos da modalidade 5 ou 6. Modalidade 10: Um dispositivo de codificação, compreendendo circuitos lógicos configurados para realizar qualquer um dos métodos da modalidade 7 ou 8. Modalidade 11: Uma mídia de armazenamento não transitória para armazenar instruções quando executadas por um processador fazem com que o processador realize qualquer um dos métodos de acordo com as modalidades 1 a 8.
[0148] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação dos mesmos. Se implementadas em software, as funções podem ser armazenadas ou transmitidas como uma ou mais instruções ou código em uma mídia legível por computador e executadas por uma unidade de processamento baseada em hardware. A mídia legível por computador pode incluir mídia de armazenamento legível por computador, que corresponde a uma mídia tangível, como mídia de armazenamento de dados ou mídia de comunicação, incluindo qualquer mídia que facilite a transferência de um programa de computador de um lugar para outro, por exemplo, de acordo com um protocolo de comunicação. Desta maneira, a mídia legível por computador geralmente pode corresponder a (1) mídia de armazenamento legível por computador tangível que não é transitória ou (2) uma mídia de comunicação, como um sinal ou onda portadora. A mídia de armazenamento de dados pode ser qualquer mídia disponível que pode ser acessada por um ou mais computadores ou um ou mais processadores para recuperar instruções, código ou estruturas de dados para implementação das técnicas descritas nesta revelação. Um produto de programa de computador pode incluir uma mídia legível por computador.
[0149] A título de exemplo e não de limitação, tais mídias de armazenamento legíveis por computador podem compreender RAM, ROM, memória somente de leitura programável apagável eletricamente (EEPROM),
CD-ROM ou outro armazenamento de disco ótico, armazenamento de disco magnético, outro dispositivos de armazenamento magnético, memória flash ou qualquer outra mídia que possa ser usada para armazenar o código de programa desejado na forma de instruções ou estruturas de dados e que pode ser acessada por um computador. Além disso, qualquer conexão é apropriadamente denominada mídia legível por computador. Por exemplo, se as instruções são transmitidas de um site, servidor ou outra fonte remota usando um cabo coaxial, cabo de fibra ótica, par trançado, linha de assinante digital (DSL) ou tecnologias sem fio, como infravermelho, rádio e micro-ondas, então o cabo coaxial, cabo de fibra ótica, par trançado, DSL ou tecnologias sem fio, como infravermelho, rádio e micro-ondas, estão incluídos na definição de mídia. Deve ser entendido, no entanto, que as mídias de armazenamento legíveis por computador e as mídias de armazenamento de dados não incluem conexões, ondas portadoras, sinais ou outras mídias transitórias, mas são direcionados para mídias de armazenamento tangíveis não transitórias. Disco (disk) e disco (disc), conforme usado aqui, inclui disco compacto (CD), disco laser, disco ótico, disco versátil digital (DVD), disquete e disco Blu-ray, onde os discos geralmente reproduzem dados magneticamente, enquanto os discos reproduzem dados oticamente com lasers. As combinações dos itens acima também devem ser incluídas no escopo da mídia legível por computador.
[0150] As instruções podem ser executadas por um ou mais processadores, como um ou mais processadores de sinal digital (DSPs), microprocessadores de propósito geral, circuitos integrados de aplicação específica (ASICs), arranjos lógicos programáveis em campo (FPGAs) ou outro equivalente integrado ou circuitos lógicos discretos. Por conseguinte, o termo "processador", conforme usado neste documento, pode se referir a qualquer uma das estruturas anteriores ou qualquer outra estrutura adequada para a implementação das técnicas descritas neste documento. Além disso, em alguns aspectos, a funcionalidade aqui descrita pode ser fornecida em módulos de hardware e/ou software dedicados configurados para codificação e decodificação, ou incorporados em um codec combinado. Além disso, as técnicas podem ser totalmente implementadas em um ou mais circuitos ou elementos lógicos.
[0151] As técnicas desta revelação podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um headset sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chips). Vários componentes, módulos ou unidades são descritos nesta revelação para enfatizar os aspectos funcionais dos dispositivos configurados para executar as técnicas reveladas, mas não necessariamente requerem a realização por diferentes unidades de hardware. Em vez disso, conforme descrito acima, várias unidades podem ser combinadas em uma unidade de hardware de codec ou fornecidas por uma coleção de unidades de hardware interoperativas, incluindo um ou mais processadores, conforme descrito acima, em conjunto com software e/ou firmware adequados.
[0152] Um aparelho compreende um elemento de memória; e um elemento processador acoplado ao elemento de memória e configurado para determinar se um bloco atual de uma imagem é um bloco de fronteira, determinar, quando o bloco atual é um bloco de fronteira, se um tamanho do bloco atual é maior que um tamanho de nó folha de árvore quaternária (QT) mínimo (MinQTSize) permitido e aplicar, quando o tamanho do bloco atual não é maior que MinQTSize, particionamento de árvore binária (BT) forçado para o bloco atual.
[0153] Embora várias modalidades tenham sido fornecidas na presente revelação, deve ser entendido que os sistemas e métodos revelados podem ser incorporados em muitas outras formas específicas sem se afastar do espírito ou escopo da presente revelação. Os presentes exemplos devem ser considerados ilustrativos e não restritivos, e a intenção não deve ser limitada aos detalhes aqui fornecidos. Por exemplo, os vários elementos ou componentes podem ser combinados ou integrados em outro sistema ou certos recursos podem ser omitidos ou não implementados.
[0154] Além disso, técnicas, sistemas, subsistemas e métodos descritos e ilustrados nas várias modalidades como discretos ou separados podem ser combinados ou integrados com outros sistemas, módulos, técnicas ou métodos sem se afastar do escopo da presente revelação. Outros itens mostrados ou discutidos como acoplados ou diretamente acoplados ou comunicando-se uns com os outros podem ser indiretamente acoplados ou se comunicar através de alguma interface, dispositivo ou componente intermediário, seja eletricamente, mecanicamente ou de outra forma. Outros exemplos de mudanças, substituições e alterações são verificáveis por um versado na técnica e podem ser feitos sem se afastar do espírito e do escopo revelados neste documento.
DEFINIÇÕES DE ACRÔNIMOS E GLOSSÁRIO HEVC - Codificação de vídeo de alta eficiência VVC - Codificação de Vídeo Versátil VTM - Modelo de Teste VVC JEM - Modelo de Exploração Conjunta CTU - Unidade de Árvore de Codificação CU - Unidade de Codificação BT - Árvore Binária TT - Árvore Ternária QT - Árvore Quádrupla ou Árvore Quaternária ABT - BT Assimétrica MTT - Árvore Multitipo AMP - Partição Assimétrica SH - Cabeçalho de Fatia SPS - Conjunto de Parâmetros de Sequência PPS - Conjunto de Parâmetros de Imagem CE - Experiência de Núcleo SubCE - Experimento de Subnúcleo (parte de um Experimento de Núcleo)

Claims (15)

REIVINDICAÇÕES
1. Método de particionamento, CARACTERIZADO pelo fato de que compreende: determinar se um bloco atual de uma imagem é um bloco de fronteira e se o tamanho do bloco atual é maior que um tamanho de nó folha de árvore quaternária mínimo permitido; e se o bloco atual for o bloco de fronteira e o tamanho do bloco atual não for maior que o tamanho de nó folha de árvore quaternária mínimo (MinQTSize) permitido, aplicar particionamento de árvore binária (BT) forçado ao bloco atual.
2. Método de particionamento, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o particionamento de árvore binária forçado é um particionamento binário forçado horizontal recursivo no caso de o bloco atual estar localizado em uma fronteira inferior da imagem ou um particionamento de fronteira forçado vertical recursivo no caso de o bloco atual estar localizado em uma fronteira direita da imagem.
3. Método de particionamento, de acordo com a reivindicação 1 ou 2, CARACTERIZADO pelo fato de que o particionamento de árvore binária forçado é continuado até que um bloco de nó folha esteja dentro da imagem.
4. Método de particionamento, de acordo com qualquer uma das reivindicações 1 a 3, CARACTERIZADO pelo fato de que o particionamento binário forçado compreende: particionar recursivamente o bloco atual por um particionamento de fronteira forçado horizontal até que uma subpartição do bloco atual esteja localizada na fronteira inferior da imagem; e particionar recursivamente a subpartição por um particionamento de fronteira forçado vertical até que um nó folha esteja inteiramente localizado na fronteira direita da imagem.
5. Método de particionamento, de acordo com qualquer uma das reivindicações 1 a 3, CARACTERIZADO pelo fato de que o particionamento de BT forçado compreende: particionar recursivamente o bloco atual por um particionamento de fronteira forçado vertical até que uma subpartição do bloco atual esteja localizada na fronteira inferior; e particionar recursivamente a subpartição por um particionamento de fronteira forçado horizontal até que um nó folha esteja inteiramente localizado na fronteira direita.
6. Método de particionamento, de acordo com qualquer uma das reivindicações 1 a 5, CARACTERIZADO pelo fato de que compreende adicionalmente aplicar o tamanho de nó folha de árvore quaternária mínimo permitido para controlar um particionamento de um bloco de não fronteira.
7. Método de particionamento, de acordo com qualquer uma das reivindicações 1 a 6, CARACTERIZADO pelo fato de que o bloco de fronteira é um bloco que não está completamente dentro da imagem e não está completamente fora da imagem.
8. Método de decodificação, CARACTERIZADO pelo fato de que é para decodificar um bloco particionando-se o bloco de acordo com o método de particionamento conforme definido em qualquer uma das reivindicações 1 a 7.
9. Método de decodificação, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que compreende adicionalmente receber o tamanho de nó folha de árvore quaternária mínimo permitido por meio de um conjunto de parâmetros de sequência (SPS).
10. Método de codificação, CARACTERIZADO pelo fato de que é para codificar um bloco particionando-se o bloco de acordo com o método de particionamento conforme definido em qualquer uma das reivindicações 1 a 7.
11. Método de codificação, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que compreende adicionalmente transmitir o tamanho de nó folha de árvore quaternária mínimo permitido por meio de um conjunto de parâmetros de sequência (SPS).
12. Dispositivo de decodificação, CARACTERIZADO pelo fato de que compreende circuitos lógicos configurados para decodificar um bloco particionando-se o bloco de acordo com o método de particionamento conforme definido em qualquer uma das reivindicações 1 a 7.
13. Dispositivo de decodificação, de acordo com a reivindicação 12, CARACTERIZADO pelo fato de que os circuitos lógicos são adicionalmente configurados para receber o tamanho de nó folha de árvore quaternária mínimo permitido por meio de um conjunto de parâmetros de sequência (SPS).
14. Dispositivo de codificação, CARACTERIZADO pelo fato de que compreende circuitos lógicos configurados para codificar um bloco particionando-se o bloco de acordo com o método de particionamento conforme definido em qualquer uma das reivindicações 1 a 7.
15. Mídia de armazenamento não transitória, CARACTERIZADA pelo fato de que é para armazenar instruções que quando executadas por um processador fazem com que um processador realize qualquer um dos métodos conforme definidos em qualquer uma das reivindicações 1 a 11.
BR112021000318-5A 2018-07-12 2019-06-27 Particionamento de bloco de fronteira em codificação de vídeo BR112021000318A2 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862697274P 2018-07-12 2018-07-12
US62/697,274 2018-07-12
US201962818996P 2019-03-15 2019-03-15
US62/818,996 2019-03-15
PCT/CN2019/093396 WO2020011024A1 (en) 2018-07-12 2019-06-27 Boundary block partitioning in video coding

Publications (1)

Publication Number Publication Date
BR112021000318A2 true BR112021000318A2 (pt) 2021-04-06

Family

ID=69143220

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021000318-5A BR112021000318A2 (pt) 2018-07-12 2019-06-27 Particionamento de bloco de fronteira em codificação de vídeo

Country Status (14)

Country Link
US (3) US11425375B2 (pt)
EP (1) EP3804321A4 (pt)
JP (2) JP7193610B2 (pt)
KR (2) KR20230031976A (pt)
CN (2) CN112806007A (pt)
AU (2) AU2019302396B2 (pt)
BR (1) BR112021000318A2 (pt)
CA (1) CA3105674A1 (pt)
CL (1) CL2021000075A1 (pt)
IL (1) IL280108A (pt)
MX (1) MX2021000394A (pt)
NZ (1) NZ772299A (pt)
PH (1) PH12021550060A1 (pt)
WO (1) WO2020011024A1 (pt)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3804321A4 (en) * 2018-07-12 2021-08-04 Huawei Technologies Co., Ltd. PARTITIONING LIMIT BLOCKS IN VIDEO CODING

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8761245B2 (en) * 2010-12-21 2014-06-24 Intel Corporation Content adaptive motion compensation filtering for high efficiency video coding
US20120189052A1 (en) * 2011-01-24 2012-07-26 Qualcomm Incorporated Signaling quantization parameter changes for coded units in high efficiency video coding (hevc)
US9467701B2 (en) * 2012-04-05 2016-10-11 Qualcomm Incorporated Coded block flag coding
US20140254661A1 (en) 2013-03-08 2014-09-11 Samsung Electronics Co., Ltd. Method and apparatus for applying secondary transforms on enhancement-layer residuals
US10375411B2 (en) * 2013-03-15 2019-08-06 Qualcomm Incorporated Predictor for depth map intra coding
WO2016090568A1 (en) * 2014-12-10 2016-06-16 Mediatek Singapore Pte. Ltd. Binary tree block partitioning structure
US20180139453A1 (en) * 2015-03-13 2018-05-17 Lg Electronics Inc. Method of processing video signal and device for same
WO2017008263A1 (en) 2015-07-15 2017-01-19 Mediatek Singapore Pte. Ltd. Conditional binary tree block partitioning structure
US10212444B2 (en) 2016-01-15 2019-02-19 Qualcomm Incorporated Multi-type-tree framework for video coding
MX2021012481A (es) * 2016-03-16 2022-05-30 Hfi Innovation Inc Metodo y aparato de procesamiento de datos de video con tama?o restringido de bloque en codificacion de video.
MX2018014493A (es) * 2016-05-25 2019-08-12 Arris Entpr Llc Particionamiento binario, ternario, cuaternario para jvet.
CN107566848B (zh) 2016-06-30 2020-04-14 华为技术有限公司 编解码的方法及装置
KR102437742B1 (ko) * 2016-08-21 2022-08-29 엘지전자 주식회사 영상 부호화/복호화 방법 및 이를 위한 장치
US20200045322A1 (en) 2016-10-04 2020-02-06 Mediatek Inc. Method and apparatus for intra chroma coding in image and video coding
CN117156143A (zh) * 2016-10-10 2023-12-01 三星电子株式会社 对画面轮廓线的编码单元进行编码或解码的方法和装置
JP2018085660A (ja) * 2016-11-25 2018-05-31 キヤノン株式会社 画像符号化装置
EP3383043A1 (en) * 2017-03-27 2018-10-03 Thomson Licensing Methods and apparatus for picture encoding and decoding
CN208078737U (zh) * 2017-10-24 2018-11-09 佛山市顺德区美的电热电器制造有限公司 电磁感应式无线供电系统及其负载突变保护电路和分离式烹饪器具
CN117812258A (zh) * 2018-07-02 2024-04-02 Lg电子株式会社 图像解码设备、图像编码设备和发送设备
EP3804321A4 (en) * 2018-07-12 2021-08-04 Huawei Technologies Co., Ltd. PARTITIONING LIMIT BLOCKS IN VIDEO CODING

Also Published As

Publication number Publication date
NZ772299A (en) 2022-12-23
US11750810B2 (en) 2023-09-05
EP3804321A1 (en) 2021-04-14
US20230019654A1 (en) 2023-01-19
CN113225564B (zh) 2022-11-11
AU2023202658A1 (en) 2023-05-18
EP3804321A4 (en) 2021-08-04
KR20210024092A (ko) 2021-03-04
WO2020011024A1 (en) 2020-01-16
AU2023202658B2 (en) 2024-03-14
CA3105674A1 (en) 2020-01-16
JP2023024525A (ja) 2023-02-16
PH12021550060A1 (en) 2021-09-27
CN112806007A (zh) 2021-05-14
MX2021000394A (es) 2021-05-12
JP7503120B2 (ja) 2024-06-19
US20210136372A1 (en) 2021-05-06
JP2021524707A (ja) 2021-09-13
US20240031571A1 (en) 2024-01-25
IL280108A (en) 2021-03-01
JP7193610B2 (ja) 2022-12-20
CL2021000075A1 (es) 2021-05-28
CN113225564A (zh) 2021-08-06
US11425375B2 (en) 2022-08-23
KR102502604B1 (ko) 2023-02-21
AU2019302396B2 (en) 2023-02-02
KR20230031976A (ko) 2023-03-07
AU2019302396A1 (en) 2021-03-04

Similar Documents

Publication Publication Date Title
ES2938068T3 (es) Codificador de video, decodificador de video y métodos de codificación y decodificación correspondientes
BR112020026618A2 (pt) Projetos de sintaxe de alto nível para codificação de nuvem de pontos
BR112019019423A2 (pt) propagação de modo de intrapredição
KR20230169407A (ko) 인트라 예측 방법 및 디바이스
BR112014019444B1 (pt) Restrição de unidades de predição em fatias b para interpredição unidirecional
BR112013032110B1 (pt) Método e equipamento para codificar um vetor de movimento em um processo de codificação de vídeo, método e equipamento para decodificar um vetor de movimento em um processo de codificação de vídeo e memória legível por computador
BR112014015056B1 (pt) Realizando predição de vetor de movimento para codificação de vídeo
BR112013018816B1 (pt) Realização de predição de vetor de movimento para codificação de vídeo
BR112014012939B1 (pt) Método e codificador de vídeo para realizar processos de desvio adaptativo de amostra (sao) em um processo de codificação de vídeo, método e decodificador de video para realizar processos de desvio adaptativo de amostra em um processo de decodificação de vídeo e memória legível por computador
BR112021004800A2 (pt) aparelho e método para refinamento de vetor de movimento de lado de decodificador condicional em condificação de vídeo
BR112016008229B1 (pt) Sistemas e métodos para derivação rps intercamada com base em dependência de previsão de referência de subcamada
BR112020026992A2 (pt) Método de predição de vetor de movimento e aparelho relacionado
BR112021003999A2 (pt) relação entre elementos de restrição de partição
BR112021004124A2 (pt) método de decodificação de vídeo e decodificador de vídeo
BR112021013444A2 (pt) Método, aparelho e sistema de predição de imagem, dispositivo, e mídia de armazernamento
BR112021000225A2 (pt) Sinalização de modo intra luma
US20240031571A1 (en) Boundary block partitioning in video coding
BR112016008240B1 (pt) Sistemas e métodos para definir separadamente dependências para previsão de camada intermediária com base em subcamada
BR112020016913A2 (pt) Transformação de variação espacial dependente de posição para codificação de vídeo
BR112020026048A2 (pt) processamento de modo de refinamento em codificação e decodificação de vídeo
BR112020019831A2 (pt) Método de codificar uma imagem, método para intrapredição de um bloco de codificação corrente de uma imagem, codificador, decodificador, e produto de computador
BR112021003946A2 (pt) codificador de vídeo, decodificador de vídeo e métodos correspondentes
RU2786746C2 (ru) Разделение граничных блоков при кодировании видео
BR112021009686A2 (pt) Método e dispositivo de intrapredição
BR112017020632B1 (pt) Métodos e dispositivo para processar dados de vídeo e memória legível por computador