[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

BR122023005531B1 - Fluxo de bits codificado, dispositivo para armazenar um fluxo de bits, método para armazenar um fluxo de bits, dispositivo para transmitir um fluxo de bits, método para transmitir um fluxo de bits e sistema para processar um fluxo de bits - Google Patents

Fluxo de bits codificado, dispositivo para armazenar um fluxo de bits, método para armazenar um fluxo de bits, dispositivo para transmitir um fluxo de bits, método para transmitir um fluxo de bits e sistema para processar um fluxo de bits Download PDF

Info

Publication number
BR122023005531B1
BR122023005531B1 BR122023005531-4A BR122023005531A BR122023005531B1 BR 122023005531 B1 BR122023005531 B1 BR 122023005531B1 BR 122023005531 A BR122023005531 A BR 122023005531A BR 122023005531 B1 BR122023005531 B1 BR 122023005531B1
Authority
BR
Brazil
Prior art keywords
picture
compliance window
parameter
pps
image
Prior art date
Application number
BR122023005531-4A
Other languages
English (en)
Inventor
Jianle Chen
Fnu HENDRY
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 BR122023005531B1 publication Critical patent/BR122023005531B1/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

Um método de decodificação inclui receber um primeiro conjunto de parâmetros de imagem e um segundo conjunto de parâmetros de imagem, cada um se referindo ao mesmo conjunto de parâmetros de sequência, em que quando o primeiro conjunto de parâmetros de imagem e o segundo conjunto de parâmetros de imagem têm os mesmos valores de largura de imagem e altura de imagem, o primeiro conjunto de parâmetros de imagem e o segundo conjunto de parâmetros de imagem têm os mesmos valores de uma janela de conformidade; e aplicar a janela de conformidade a uma imagem atual correspondente ao primeiro conjunto de parâmetros de imagem ou ao segundo conjunto de parâmetros de imagem.

Description

REFERÊNCIA CRUZADA A PEDIDOS RELACIONADOS
[001] Este pedido de patente reivindica o benefício do Pedido de Patente Provisório dos EUA No. 62/871,493 depositado em 8 de julho de 2019, por Jianle Chen, et al., e intitulado "Tratamento de Múltiplos Tamanhos de Imagem e Janelas de Conformidade para Reamostragem de Imagem de Referência em Codificação de Vídeo" ("Handling of Multiple Picture Size and Conformance Windows for Reference Picture Resampling in Video Coding"), que é incorporado neste documento por referência em sua totalidade.
CAMPO TÉCNICO
[002] Em geral, esta divulgação descreve técnicas para suportar múltiplos tamanhos de imagem e janelas de conformidade em codificação de vídeo. Mais especificamente, esta divulgação garante que os conjuntos de parâmetros de imagem que têm o mesmo tamanho de imagem também têm a mesma janela de conformidade.
ANTECEDENTES
[003] 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 em fluxo contínuo ou de outra forma comunicados através de uma rede de comunicações com capacidade de largura de banda limitada. Assim, 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 recursos de memória podem ser limitados. Dispositivos de compressão de vídeo muitas vezes usam software e / ou hardware na origem 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 melhoradas que melhoram razão de compressão com pouco ou nenhum sacrifício em qualidade de imagem são desejáveis.
SUMÁRIO
[004] Um primeiro aspecto se refere a um método de decodificação de um fluxo de bits de vídeo codificado implementado por um decodificador de vídeo. O método inclui receber, pelo decodificador de vídeo, um primeiro conjunto de parâmetros de imagem e um segundo conjunto de parâmetros de imagem, cada um se referindo ao mesmo conjunto de parâmetros de sequência, em que quando o primeiro conjunto de parâmetros de imagem e o segundo conjunto de parâmetros de imagem têm os mesmos valores de largura de imagem e altura de imagem, o primeiro conjunto de parâmetros de imagem e o segundo conjunto de parâmetros de imagem têm os mesmos valores de uma janela de conformidade; e aplicar, pelo decodificador de vídeo, a janela de conformidade a uma imagem atual correspondente ao primeiro conjunto de parâmetros de imagem ou ao segundo conjunto de parâmetros de imagem.
[005] O método fornece técnicas que restringem conjuntos de parâmetros de imagem que têm o mesmo tamanho de imagem para também terem o mesmo tamanho de janela de conformidade (por exemplo, tamanho de janela de recorte). Por manter a janela de conformidade com o mesmo tamanho para conjuntos de parâmetros de imagem com o mesmo tamanho de imagem, processamento excessivamente complexo pode ser evitado quando reamostragem de imagem de referência (RPR) está habilitada. Assim, uso do processador, memória e / ou recursos de rede pode ser reduzido tanto no codificador quanto no decodificador. Assim, o codificador / decodificador (também conhecido como “codec”) em codificação de vídeo é aprimorado em relação aos codecs atuais. Na prática, o processo de codificação de vídeo aprimorado oferece ao usuário uma melhor experiência de usuário quando vídeos são enviados, recebidos e / ou visualizados.
[006] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece que a janela de conformidade compreende um desvio à esquerda de janela de conformidade, um desvio à direita de janela de conformidade, um desvio de topo de janela de conformidade e um desvio de fundo de janela de conformidade.
[007] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece decodificação da imagem atual correspondente ao primeiro conjunto de parâmetros de imagem ou ao segundo conjunto de parâmetros de imagem usando interpredição após a janela de conformidade ter sido aplicada, em que a interpredição é baseada em uma imagem de referência reamostrada.
[008] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece reamostragem de uma imagem de referência associada à imagem atual correspondente ao primeiro conjunto de parâmetros de imagem ou ao segundo conjunto de parâmetros de imagem usando reamostragem de imagem de referência (RPS).
[009] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece que a reamostragem da imagem de referência muda uma resolução da imagem de referência usada para interprever a imagem atual correspondente ao primeiro conjunto de parâmetros de imagem ou ao segundo conjunto de parâmetros de imagem.
[0010] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece que a largura de imagem e altura de imagem são medidas em amostras de luma.
[0011] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece determinar se fluxo óptico de bidireção (BDOF) está habilitado para decodificar a imagem com base na largura de imagem, na altura de imagem e na janela de conformidade da imagem atual e uma imagem de referência para a imagem atual.
[0012] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece determinar se refinamento de vetor de movimento de lado de decodificador (DMVR) está habilitado para decodificar a imagem com base na largura de imagem, na altura de imagem e na janela de conformidade da imagem atual e uma imagem de referência para a imagem atual.
[0013] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece exibir em uma exibição de um dispositivo eletrônico uma imagem gerada usando o bloco atual.
[0014] Um segundo aspecto se refere a um método de codificação de um fluxo de bits de vídeo implementado por um codificador de vídeo. O método inclui gerar, pelo codificador de vídeo, um primeiro conjunto de parâmetros de imagem e um segundo conjunto de parâmetros de imagem, cada um se referindo ao mesmo conjunto de parâmetros de sequência, em que quando o primeiro conjunto de parâmetros de imagem e o segundo conjunto de parâmetros de imagem têm os mesmos valores de largura de imagem e altura de imagem, o primeiro conjunto de parâmetros de imagem e o segundo conjunto de parâmetros de imagem têm os mesmos valores de uma janela de conformidade; codificar, pelo codificador de vídeo, o primeiro conjunto de parâmetros de imagem e o segundo conjunto de parâmetros de imagem em um fluxo de bits de vídeo; e armazenar, pelo codificador de vídeo, o fluxo de bits de vídeo para transmissão em direção a um decodificador de vídeo.
[0015] O método fornece técnicas que restringem conjuntos de parâmetros de imagem que têm o mesmo tamanho de imagem para também terem o mesmo tamanho de janela de conformidade (por exemplo, tamanho de janela de recorte). Por manter a janela de conformidade com o mesmo tamanho para conjuntos de parâmetros de imagem com o mesmo tamanho de imagem, processamento excessivamente complexo pode ser evitado quando reamostragem de imagem de referência (RPR) está habilitada. Assim, uso do processador, memória e / ou recursos de rede pode ser reduzido tanto no codificador quanto no decodificador. Assim, o codificador / decodificador (também conhecido como “codec”) em codificação de vídeo é aprimorado em relação aos codecs atuais. Na prática, o processo de codificação de vídeo aprimorado oferece ao usuário uma melhor experiência de usuário quando vídeos são enviados, recebidos e / ou visualizados.
[0016] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece que a janela de conformidade compreende um desvio à esquerda de janela de conformidade, um desvio à direita de janela de conformidade, um desvio de topo de janela de conformidade e um desvio de fundo de janela de conformidade.
[0017] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece que a largura de imagem e altura de imagem são medidas em amostras de luma.
[0018] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece transmitir o fluxo de bits de vídeo contendo o primeiro conjunto de parâmetros de imagem e o segundo conjunto de parâmetros de imagem em direção ao decodificador de vídeo.
[0019] Um terceiro aspecto se refere a um dispositivo de decodificação. O dispositivo de decodificação inclui um receptor configurado para receber um fluxo de bits de vídeo codificado; uma memória acoplada ao receptor, a memória armazenando instruções; e um processador acoplado à memória, o processador configurado para executar as instruções para fazer o dispositivo de decodificação: receber um primeiro conjunto de parâmetros de imagem e um segundo conjunto de parâmetros de imagem, cada um se referindo ao mesmo conjunto de parâmetros de sequência, em que quando o primeiro conjunto de parâmetros de imagem e o segundo conjunto de parâmetros de imagem têm os mesmos valores de largura de imagem e altura de imagem, o primeiro conjunto de parâmetros de imagem e o segundo conjunto de parâmetros de imagem têm os mesmos valores de uma janela de conformidade; e aplicar a janela de conformidade a uma imagem atual correspondente ao primeiro conjunto de parâmetros de imagem ou ao segundo conjunto de parâmetros de imagem.
[0020] o dispositivo de decodificação fornece técnicas que restringem conjuntos de parâmetros de imagem que têm o mesmo tamanho de imagem para também terem o mesmo tamanho de janela de conformidade (por exemplo, tamanho de janela de recorte). Por manter a janela de conformidade com o mesmo tamanho para conjuntos de parâmetros de imagem com o mesmo tamanho de imagem, processamento excessivamente complexo pode ser evitado quando reamostragem de imagem de referência (RPR) está habilitada. Assim, uso do processador, memória e / ou recursos de rede pode ser reduzido tanto no codificador quanto no decodificador. Assim, o codificador / decodificador (também conhecido como “codec”) em codificação de vídeo é aprimorado em relação aos codecs atuais. Na prática, o processo de codificação de vídeo aprimorado oferece ao usuário uma melhor experiência de usuário quando vídeos são enviados, recebidos e / ou visualizados.
[0021] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece a janela de conformidade compreende um desvio à esquerda de janela de conformidade, um desvio à direita de janela de conformidade, um desvio de topo de janela de conformidade e um desvio de fundo de janela de conformidade.
[0022] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece decodificação da imagem atual correspondente ao primeiro conjunto de parâmetros de imagem ou ao segundo conjunto de parâmetros de imagem usando interpredição após a janela de conformidade ter sido aplicada, em que a interpredição é baseada em uma imagem de referência reamostrada.
[0023] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece uma exibição configurada para exibir uma imagem gerada com base na imagem atual.
[0024] Um quarto aspecto se refere a um dispositivo de codificação. O dispositivo de codificação inclui uma memória contendo instruções; um processador acoplado à memória, o processador configurado para implementar as instruções para fazer o dispositivo de codificação: gerar um primeiro conjunto de parâmetros de imagem e um segundo conjunto de parâmetros de imagem, cada um se referindo ao mesmo conjunto de parâmetros de sequência, em que quando o primeiro conjunto de parâmetros de imagem e o segundo conjunto de parâmetros de imagem têm os mesmos valores de largura de imagem e altura de imagem, o primeiro conjunto de parâmetros de imagem e o segundo conjunto de parâmetros de imagem têm os mesmos valores de uma janela de conformidade; e codificar o primeiro conjunto de parâmetros de imagem e o segundo conjunto de parâmetros de imagem em um fluxo de bits de vídeo; e um transmissor acoplado ao processador, o transmissor configurado para transmitir o fluxo de bits de vídeo contendo o primeiro conjunto de parâmetros de imagem e o segundo conjunto de parâmetros de imagem em direção a um decodificador de vídeo.
[0025] O dispositivo de codificação fornece técnicas que restringem conjuntos de parâmetros de imagem que têm o mesmo tamanho de imagem para também terem o mesmo tamanho de janela de conformidade (por exemplo, tamanho de janela de recorte). Por manter a janela de conformidade com o mesmo tamanho para conjuntos de parâmetros de imagem com o mesmo tamanho de imagem, processamento excessivamente complexo pode ser evitado quando reamostragem de imagem de referência (RPR) está habilitada. Assim, uso do processador, memória e / ou recursos de rede pode ser reduzido tanto no codificador quanto no decodificador. Assim, o codificador / decodificador (também conhecido como “codec”) em codificação de vídeo é aprimorado em relação aos codecs atuais. Na prática, o processo de codificação de vídeo aprimorado oferece ao usuário uma melhor experiência de usuário quando vídeos são enviados, recebidos e / ou visualizados.
[0026] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece a janela de conformidade compreende um desvio à esquerda de janela de conformidade, um desvio à direita de janela de conformidade, um desvio de topo de janela de conformidade e um desvio de fundo de janela de conformidade.
[0027] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece a largura de imagem e altura de imagem são medidas em amostras de luma.
[0028] Um quinto aspecto se refere a um aparelho de codificação. O aparelho de codificação inclui um receptor configurado para receber uma imagem para codificar ou para receber um fluxo de bits para decodificar; um transmissor acoplado ao receptor, o transmissor configurado para transmitir o fluxo de bits para um decodificador ou para transmitir uma imagem decodificada para uma exibição; uma memória acoplada a pelo menos um do receptor ou transmissor, a memória configurada para armazenar instruções; e um processador acoplado à memória, o processador configurado para executar as instruções armazenadas na memória para realizar qualquer um dos métodos divulgados neste documento.
[0029] O aparelho de codificação fornece técnicas que restringem conjuntos de parâmetros de imagem que têm o mesmo tamanho de imagem para também terem o mesmo tamanho de janela de conformidade (por exemplo, tamanho de janela de recorte). Por manter a janela de conformidade com o mesmo tamanho para conjuntos de parâmetros de imagem com o mesmo tamanho de imagem, processamento excessivamente complexo pode ser evitado quando reamostragem de imagem de referência (RPR) está habilitada. Assim, uso do processador, memória e / ou recursos de rede pode ser reduzido tanto no codificador quanto no decodificador. Assim, o codificador / decodificador (também conhecido como “codec”) em codificação de vídeo é aprimorado em relação aos codecs atuais. Na prática, o processo de codificação de vídeo aprimorado oferece ao usuário uma melhor experiência de usuário quando vídeos são enviados, recebidos e / ou visualizados.
[0030] Opcionalmente, em qualquer um dos aspectos anteriores, outra implementação do aspecto fornece uma exibição configurada para exibir uma imagem.
[0031] Um sexto aspecto está relacionado a um sistema. O sistema inclui um codificador; e um decodificador em comunicação com o codificador, em que o codificador ou o decodificador inclui o dispositivo de decodificação, o dispositivo de codificação ou o aparelho de codificação divulgado neste documento.
[0032] O sistema fornece técnicas que restringem conjuntos de parâmetros de imagem que têm o mesmo tamanho de imagem para também terem o mesmo tamanho de janela de conformidade (por exemplo, tamanho de janela de recorte). Por manter a janela de conformidade com o mesmo tamanho para conjuntos de parâmetros de imagem com o mesmo tamanho de imagem, processamento excessivamente complexo pode ser evitado quando reamostragem de imagem de referência (RPR) está habilitada. Assim, uso do processador, memória e / ou recursos de rede pode ser reduzido tanto no codificador quanto no decodificador. Assim, o codificador / decodificador (também conhecido como “codec”) em codificação de vídeo é aprimorado em relação aos codecs atuais. Na prática, o processo de codificação de vídeo aprimorado oferece ao usuário uma melhor experiência de usuário quando vídeos são enviados, recebidos e / ou visualizados.
[0033] Um sétimo aspecto se refere a um meio para codificação. O meio para codificação inclui meio de recepção configurado para receber uma imagem para codificar ou para receber um fluxo de bits para decodificar; meio de transmissão acoplado ao meio de recepção, o meio de transmissão configurado para transmitir o fluxo de bits para um meio de decodificação ou para transmitir uma imagem decodificada para um meio de exibição; meio de armazenamento acoplado a pelo menos um do meio de recepção ou meio de transmissão, o meio de armazenamento configurado para armazenar instruções; e meio de processamento acoplado ao meio de armazenamento, o meio de processamento configurado para executar as instruções armazenadas nos meio de armazenamento para realizar qualquer um dos métodos divulgados neste documento.
[0034] O meio para codificação fornece técnicas que restringem conjuntos de parâmetros de imagem que têm o mesmo tamanho de imagem para também terem o mesmo tamanho de janela de conformidade (por exemplo, tamanho de janela de recorte). Por manter a janela de conformidade com o mesmo tamanho para conjuntos de parâmetros de imagem com o mesmo tamanho de imagem, processamento excessivamente complexo pode ser evitado quando reamostragem de imagem de referência (RPR) está habilitada. Assim, uso do processador, memória e / ou recursos de rede pode ser reduzido tanto no codificador quanto no decodificador. Assim, o codificador / decodificador (também conhecido como “codec”) em codificação de vídeo é aprimorado em relação aos codecs atuais. Na prática, o processo de codificação de vídeo aprimorado oferece ao usuário uma melhor experiência de usuário quando vídeos são enviados, recebidos e / ou visualizados.
[0035] Para fins de clareza, qualquer uma das modalidades anteriores pode ser combinada com qualquer uma ou mais das outras modalidades anteriores para criar uma nova modalidade dentro do escopo da presente divulgação.
[0036] 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
[0037] Para uma compreensão mais completa desta divulgação, é feita referência agora à 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.
[0038] A Figura 1 é um fluxograma de um método de exemplo de codificação de um sinal de vídeo.
[0039] A Figura 2 é um diagrama esquemático de um sistema de codificação e decodificação (codec) de exemplo para codificação de vídeo.
[0040] A Figura 3 é um diagrama esquemático ilustrando um codificador de vídeo de exemplo.
[0041] A Figura 4 é um diagrama esquemático ilustrando um decodificador de vídeo de exemplo.
[0042] A Figura 5 é uma sequência de vídeo codificada que descreve a relação entre uma imagem de ponto de acesso intra-aleatório (IRAP) em relação às imagens dianteiras e imagens traseiras em uma ordem de decodificação e uma ordem de apresentação.
[0043] A Figura 6 ilustra um exemplo de codificaçãomulticamada para escalabilidade espacial.
[0044] A Figura 7 é um diagrama esquemáticoilustrando um exemplo de interpredição unidirecional.
[0045] A Figura 8 é um diagrama esquemáticoilustrando um exemplo de interpredição bidirecional.
[0046] A Figura 9 ilustra um fluxo de bits devídeo.
[0047] A Figura 10 ilustra uma técnica departicionamento para uma imagem.
[0048] A Figura 11 é uma modalidade de um método de decodificação de um fluxo de bits de vídeo codificado.
[0049] A Figura 12 é uma modalidade de um método de codificação de um fluxo de bits de vídeo codificado.
[0050] A Figura 13 é um diagrama esquemático de um dispositivo de codificação de vídeo.
[0051] A Figura 14 é um diagrama esquemático de uma modalidade de um meio para codificação.
DESCRIÇÃO DETALHADA
[0052] 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 divulgados podem ser implementados usando qualquer número de técnicas, mesmo atualmente conhecidas ou existentes. A divulgação não deve, de forma alguma, ser limitada às implementações, desenhos e técnicas ilustrativos ilustrados 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.
[0053] Os termos a seguir são definidos como segue, a menos que usados em um contexto contrário neste documento. Especificamente, as seguintes definições se destinam a fornecer clareza adicional à presente divulgação. No entanto, os termos podem ser descritos de forma diferente em contextos diferentes. Consequentemente, as seguintes definições devem ser consideradas como um suplemento e não devem ser consideradas como limitantes de quaisquer outras definições de descrições fornecidas para tais termos neste documento.
[0054] Um fluxo de bits é uma sequência de bits incluindo dados de vídeo que são comprimidos para transmissão entre um codificador e um decodificador. Um codificador é um dispositivo configurado para empregar processos de codificação para comprimir dados de vídeo em um fluxo de bits. Um decodificador é um dispositivo configurado para empregar processos de decodificação para reconstruir dados de vídeo de um fluxo de bits para exibição. Uma imagem é um arranjo de amostras de luma e / ou um arranjo de amostras de croma que criam um quadro ou um campo do mesmo. Uma imagem que está sendo codificada ou decodificada pode ser referida como uma imagem atual para maior clareza de discussão.
[0055] Uma imagem de referência é uma imagem que contém amostras de referência que podem ser usadas ao codificar outras imagens por referência de acordo com a interpredição e / ou predição intercamada. Uma lista de imagens de referência é uma lista de imagens de referência usada para interpredição e / ou predição intercamada. Alguns sistemas de codificação de vídeo utilizam duas listas de imagens de referência, que podem ser indicadas como lista de imagens de referência um e lista de imagens de referência zero. Uma estrutura de lista de imagens de referência é uma estrutura de sintaxe endereçável que contém várias listas de imagens de referência. A interpredição é um mecanismo de codificação de amostras de uma imagem atual por referência a amostras indicadas em uma imagem de referência que é diferente da imagem atual em que a imagem de referência e a imagem atual estão na mesma camada. Uma entrada de estrutura de lista de imagens de referência é um local endereçável em uma estrutura de lista de imagens de referência que indica uma imagem de referência associada a uma lista de imagens de referência.
[0056] Um cabeçalho de fatia é uma parte de uma fatia codificada contendo elementos de dados pertencentes a todos os dados de vídeo dentro de uma peça representada na fatia. Um conjunto de parâmetros de imagem (PPS) é um conjunto de parâmetros que contém dados relacionados a uma imagem inteira. Mais especificamente, o PPS é uma estrutura de sintaxe contendo elementos de sintaxe que se aplicam a zero ou mais imagens codificadas inteiras conforme determinado por um elemento de sintaxe encontrado em cada cabeçalho de imagem. Um conjunto de parâmetros de sequência (SPS) é um conjunto de parâmetros que contém dados relacionados a uma sequência de imagens. Uma unidade de acesso (AU) é um conjunto de uma ou mais imagens codificadas associadas ao mesmo tempo de exibição (por exemplo, a mesma contagem de ordem de imagem) para saída a partir de um armazenamento temporário de imagens decodificadas (DPB) (por exemplo, para exibição a um usuário). Uma sequência de vídeo decodificada é uma sequência de imagens que foram reconstruídas por um decodificador em preparação para exibição a um usuário.
[0057] Uma janela de recorte de conformidade (ou simplesmente janela de conformidade) se refere a uma janela de amostras de uma imagem em uma saída de sequência de vídeo codificada de um processo de codificação. Um fluxo de bits pode fornecer parâmetros de recorte de janela de conformidade para indicar a região de saída da imagem codificada. A largura de imagem é a largura de imagem medida em amostras de luma. A altura de imagem é a altura de imagem medida em amostras de luma. Uns desvios de janela de conformidade (por exemplo, conf_win_left_offset, conf_win_right_offset, conf_win_top_offset e conf_win_bottom_offset) especificam as amostras das imagens que referenciam o PPS que são emitidas a partir do processo de decodificação, em termos de uma região retangular especificada em coordenadas de imagem para saída.
[0058] O Refinamento de Vetor de Movimento de Lado de Decodificador (DMVR) é um processo, algoritmo ou ferramenta de codificação usado para refinar o movimento ou vetores de movimento para um bloco predito. O DMVR permite que um vetor de movimento seja encontrado com base em dois vetores de movimento encontrados para bipredição usando um processo de correspondência de modelo bilateral. Em DMVR, uma combinação ponderada de unidades de codificação de predição geradas com cada um dos dois vetores de movimento pode ser encontrada e os dois vetores de movimento podem ser refinados substituindo-os por novos vetores de movimento que melhor apontam para a unidade de codificação de predição combinada. Fluxo óptico de bidireção (BDOF) é um processo, algoritmo ou ferramenta de codificação usado para refinar o movimento ou vetores de movimento para um bloco predito. BDOF permite que vetores de movimento sejam encontrados para unidades de subcodificação com base no gradiente da diferença entre as duas imagens de referência.
[0059] Reamostragem de imagem de referência (RPR) é a capacidade de alterar a resolução espacial de imagens codificadas no meio de um fluxo de bits sem a necessidade de intracodificação da imagem na localização de mudança de resolução. Conforme usado neste documento, a resolução descreve o número de pixels em um arquivo de vídeo. Ou seja, a resolução é a largura e a altura da imagem projetada, medidas em pixels. Por exemplo, um vídeo pode ter uma resolução de 1280 (pixels horizontais) x 720 (pixels verticais). Geralmente é escrito simplesmente como 1280 x 720 ou abreviado para 720p.
[0060] Refinamento de vetor de movimento de lado de decodificador (DMVR) é um processo, algoritmo ou ferramenta de codificação usado para refinar o movimento ou vetores de movimento para um bloco predito. Fluxo óptico de bidireção (BDOF), também conhecido como fluxo óptico bidirecional (BIO), é um processo, algoritmo ou ferramenta de codificação usado para refinar o movimento ou vetores de movimento para um bloco predito. O recurso de reamostragem de imagem de referência (RPR) é a capacidade de alterar a resolução espacial de imagens codificadas no meio de um fluxo de bits sem a necessidade de intracodificação da imagem na localização de mudança de resolução.
[0061] Os seguintes acrônimos são usados neste documento, bloco de árvore de codificação (CTB), unidades de árvore de codificação (CTU), unidades de codificação (CU), sequência de vídeo decodificada (CVS), equipe conjunta de especialistas de vídeo (JVET), conjunto de peças restritas de movimento (MCTS), unidade de transferência máxima (MTU), camada de abstração de rede (NAL), contagem de ordem de imagem (POC), carga útil de sequência de byte bruta (RBSP), conjunto de parâmetros de sequência (SPS), codificação de vídeo versátil (VVC) e rascunho de trabalho (WD).
[0062] A Figura 1 é um fluxograma de um método operacional de exemplo 100 de codificação de um sinal de vídeo. Especificamente, um sinal de vídeo é codificado em um codificador. O processo de codificação comprime o sinal de vídeo, empregando vários mecanismos para reduzir o tamanho de arquivo de vídeo. Um tamanho de arquivo menor permite que o arquivo de vídeo comprimido seja transmitido em direção a um usuário, enquanto reduz a sobrecarga de largura de banda associada. O decodificador então decodifica o arquivo de vídeo comprimido para reconstruir o sinal de vídeo original para exibição a um usuário final. O processo de decodificação geralmente reflete o processo de codificação para permitir que o decodificador reconstrua consistentemente o sinal de vídeo.
[0063] No passo 101, o sinal de vídeo é inserido no codificador. Por exemplo, o sinal de vídeo pode ser um arquivo de vídeo não comprimido armazenado na memória. Como outro exemplo, o arquivo de vídeo pode ser capturado por um dispositivo de captura de vídeo, como uma câmera de vídeo, e codificado para suportar a streaming ao vivo do vídeo. O arquivo de vídeo pode incluir tanto um componente de áudio quanto um componente de vídeo. O componente de vídeo contém uma série de quadros de imagem que, quando vistos em sequência, dão a impressão visual de movimento. Os quadros contêm pixels que são expressos em termos de luz, neste documento referidos como componentes de luma (ou amostras de luma), e cor, que são referidos como componentes de croma (ou amostras de cor). Em alguns exemplos, os quadros também podem conter valores de profundidade para suportar a visualização tridimensional.
[0064] No passo 103, o vídeo é particionado em blocos. O particionamento inclui subdividir os pixels em cada quadro em blocos quadrados e / ou retangulares para compressão. Por exemplo, na Codificação de Vídeo de Alta Eficiência (HEVC) (também conhecida como H.265 e MPEG-H Parte 2), o quadro pode primeiro ser dividido em unidades de árvore de codificação (CTUs), que são blocos de um tamanho predefinido (por exemplo, sessenta e quatro pixels por sessenta e quatro pixels). As CTUs contêm ambas amostras de luma e croma. Árvores de codificação podem ser empregadas para dividir as CTUs em blocos e, em seguida, subdividir recursivamente os blocos até que sejam obtidas configurações que suportem codificação adicional. Por exemplo, componentes de luma de um quadro podem ser subdivididos até que os blocos individuais contenham valores de iluminação relativamente homogêneos. Além disso, componentes de croma de um quadro podem ser subdivididos até que os blocos individuais contenham valores de cor relativamente homogêneos. Consequentemente, mecanismos de particionamento variam dependendo do conteúdo dos quadros de vídeo.
[0065] No passo 105, vários mecanismos de compressão são empregados para comprimir os blocos de imagem particionados no passo 103. Por exemplo, interpredição e / ou intrapredição podem ser empregadas. A interpredição é projetada para tirar vantagem do fato de que os objetos em uma cena comum tendem a aparecer em quadros sucessivos. Consequentemente, um bloco que representa um objeto em um quadro de referência não precisa ser repetidamente descrito em quadros adjacentes. Especificamente, um objeto, como uma mesa, pode permanecer em uma posição constante em vários quadros. Portanto, a mesa é descrita uma vez e os quadros adjacentes podem se referir ao quadro de referência. Mecanismos de correspondência de padrão podem ser empregados para combinar objetos em múltiplos quadros. Além disso, os objetos em movimento podem ser representados em múltiplos quadros, por exemplo, devido ao movimento de objeto ou movimento de câmera. Como um exemplo particular, um vídeo pode mostrar um automóvel que se move pela tela ao longo de múltiplos quadros. Vetores de movimento podem ser empregados para descrever tal movimento. Um vetor de movimento é um vetor bidimensional que fornece um desvio a partir das coordenadas de um objeto em um quadro para as coordenadas do objeto em um quadro de referência. Como tal, interpredição pode codificar um bloco de imagem em um quadro atual como um conjunto de vetores de movimento indicando um desvio a partir de um bloco correspondente em um quadro de referência.
[0066] Intrapredição codifica blocos em um quadro comum. Intrapredição aproveita o fato de que os componentes de luma e croma tendem a se agrupar em um quadro. Por exemplo, uma mancha verde em uma parte de uma árvore tende a ser posicionada adjacente a manchas verdes semelhantes. Intrapredição emprega vários modos de predição direcional (por exemplo, trinta e três em HEVC), um modo planar e um modo de corrente contínua (DC). Os modos direcionais indicam que um bloco atual é semelhante / igual a amostras de um bloco vizinho em uma direção correspondente. O modo planar indica que uma série de blocos ao longo de uma linha / coluna (por exemplo, um plano) pode ser interpolada com base em blocos vizinhos nas bordas da linha. O modo planar, na verdade, indica uma transição suave de luz / cor em uma linha / coluna, empregando uma inclinação relativamente constante na mudança de valores. O modo DC é empregado para suavização de contorno e indica que um bloco é semelhante / igual a um valor médio associado a amostras de todos os blocos vizinhos associados às direções angulares dos modos de predição direcional. Consequentemente, blocos de intrapredição podem representar blocos de imagem como vários valores de modo de predição relacional em vez dos valores reais. Além disso, blocos de interpredição podem representar blocos de imagem como valores de vetor de movimento em vez dos valores reais. Em ambos os casos, os blocos de predição podem não representar exatamente os blocos de imagem em alguns casos. Quaisquer diferenças são armazenadas em blocos residuais. Transformadas podem ser aplicadas aos blocos residuais para comprimir adicionalmente o arquivo.
[0067] No passo 107, várias técnicas de filtragem podem ser aplicadas. Em HEVC, os filtros são aplicados de acordo com um esquema de filtragem em malha. A predição baseada em bloco discutida acima pode resultar na criação de imagens em blocos no decodificador. Além disso, o esquema de predição baseado em bloco pode codificar um bloco e, em seguida, reconstruir o bloco codificado para uso posterior como um bloco de referência. O esquema de filtragem em malha aplica iterativamente filtros de supressão de ruído, filtros de deblocagem, filtros de malha adaptativos e filtros de desvio adaptativo de amostra (SAO) aos blocos / quadros. Esses filtros atenuam esses artefatos de blocagem para que o arquivo codificado possa ser reconstruído com precisão. Além disso, esses filtros atenuam artefatos nos blocos de referência reconstruídos, de modo que os artefatos são menos propensos a criar artefatos adicionais em blocos subsequentes que são codificados com base nos blocos de referência reconstruídos.
[0068] Uma vez que o sinal de vídeo foi particionado, comprimido e filtrado, os dados resultantes são codificados em um fluxo de bits no passo 109. O fluxo de bits inclui os dados discutidos acima, bem como quaisquer dados de sinalização desejados para suportar a reconstrução adequada do sinal de vídeo no decodificador. Por exemplo, tais dados podem incluir dados de partição, dados de predição, blocos residuais e várias bandeiras que fornecem instruções de codificação para o decodificador. O fluxo de bits pode ser armazenado na memória para transmissão em direção a um decodificador mediante solicitação. O fluxo de bits também pode ser difundido e / ou multidifundido em direção a uma pluralidade de decodificadores. A criação do fluxo de bits é um processo iterativo. Consequentemente, passos 101, 103, 105, 107 e 109 podem ocorrer continuamente e / ou simultaneamente ao longo de muitos quadros e blocos. A ordem mostrada na Figura 1 é apresentada para clareza e facilidade de discussão e não tem a intenção de limitar o processo de codificação de vídeo a uma ordem particular.
[0069] O decodificador recebe o fluxo de bits e começa o processo de decodificação no passo 111. Especificamente, o decodificador emprega um esquema de decodificação de entropia para converter o fluxo de bits em dados de sintaxe e vídeo correspondentes. O decodificador emprega os dados de sintaxe a partir do fluxo de bits para determinar as partições para quadros no passo 111. O particionamento deve corresponder aos resultados do particionamento de bloco no passo 103. Codificação / decodificação de entropia conforme empregada no passo 111 é agora descrita. O codificador faz muitas escolhas durante o processo de compressão, como selecionar esquemas de particionamento de bloco de várias opções possíveis com base no posicionamento espacial de valores na (s) imagem (ns) de entrada. Sinalizar as escolhas exatas pode empregar um grande número de binários. Conforme usado neste documento, um binário é um valor binário que é tratado como uma variável (por exemplo, um valor de bit que pode variar dependendo do contexto). A codificação de entropia permite que o codificador descarte quaisquer opções que sejam claramente inviáveis para um caso particular, deixando um conjunto de opções permitidas. Cada opção permitida recebe uma palavra de código. O comprimento das palavras de código é baseado no número de opções permitidas (por exemplo, um binário para duas opções, dois binários para três a quatro opções, etc.). O codificador então codifica a palavra de código para a opção selecionada. Este esquema reduz o tamanho das palavras de código, pois as palavras de código são tão grandes quanto desejado para indicar exclusivamente uma seleção de um pequeno subconjunto de opções permitidas, em oposição a indicar exclusivamente a seleção de um conjunto potencialmente grande de todas as opções possíveis. O decodificador então decodifica a seleção por determinar o conjunto de opções permitidas de maneira semelhante ao codificador. Por determinar o conjunto de opções permitidas, o decodificador pode ler a palavra de código e determinar a seleção feita pelo codificador.
[0070] No passo 113, o decodificador realiza decodificação de bloco. Especificamente, o decodificador emprega transformadas reversas para gerar blocos residuais. Em seguida, o decodificador emprega os blocos residuais e blocos de predição correspondentes para reconstruir os blocos de imagem de acordo com o particionamento. Os blocos de predição podem incluir blocos de intrapredição e blocos de interpredição conforme gerados no codificador no passo 105. Os blocos de imagem reconstruídos são então posicionados em quadros de um sinal de vídeo reconstruído de acordo com os dados de particionamento determinados no passo 111. Sintaxe para o passo 113 também pode ser sinalizada no fluxo de bits por meio de codificação de entropia, conforme discutido acima.
[0071] No passo 115, filtragem é realizada nos quadros do sinal de vídeo reconstruído de uma maneira semelhante ao passo 107 no codificador. Por exemplo, filtros de supressão de ruído, filtros de deblocagem, filtros de malha adaptativos e filtros de SAO podem ser aplicados aos quadros para remover artefatos de blocagem. Uma vez que os quadros são filtrados, o sinal de vídeo pode ser emitido para uma exibição no passo 117 para visualização por um usuário final.
[0072] A Figura 2 é um diagrama esquemático de um sistema de codificação e decodificação (codec) 200 de exemplo para codificação de vídeo. Especificamente, o sistema de codec 200 fornece funcionalidade para suportar a implementação do método operacional 100. O sistema de codec 200 é generalizado para representar os componentes empregados em um codificador e um decodificador. O sistema de codec 200 recebe e particiona um sinal de vídeo conforme discutido em relação aos passos 101 e 103 no método operacional 100, o que resulta em um sinal de vídeo particionado 201. O sistema de codec 200 então comprime o sinal de vídeo particionado 201 em um fluxo de bits codificado quando age como um codificador, conforme discutido em relação aos passos 105, 107 e 109 no método 100. Quando atua como um decodificador, o sistema de codec 200 gera um sinal de vídeo de saída a partir do fluxo de bits, conforme discutido em relação aos passos 111, 113, 115 e 117 no método operacional 100. O sistema de codec 200 inclui um componente de controle de codificador geral 211, um componente de escalamento de transformada e quantização 213, um componente de estimativa intraimagem 215, um componente de predição intraimagem 217, um componente de compensação de movimento 219, um componente de estimativa de movimento 221, um componente de escalamento e transformada inversa 229, um componente de análise de controle de filtro 227, e componente de filtros em malha 225, um componente de armazenamento temporário de imagens decodificadas 223 e um componente de formatação de cabeçalho e codificação aritmética binária adaptativa ao contexto (CABAC) 231. Tais componentes são acoplados como mostrado. Na Figura 2, linhas pretas indicam o movimento dos dados a serem codificados / decodificados, enquanto linhas tracejadas indicam o movimento dos dados de controle que controlam a operação de outros componentes. Os componentes do sistema de codec 200 podem estar todos presentes no codificador. O decodificador pode incluir um subconjunto dos componentes do sistema de codec 200. Por exemplo, o decodificador pode incluir o componente de predição intraimagem 217, o componente de compensação de movimento 219, o componente de escalamento e transformada inversa 229, o componente de filtros em malha 225, e o componente de armazenamento temporário de imagens decodificadas 223. Esses componentes são agora descritos.
[0073] O sinal de vídeo particionado 201 é uma sequência de vídeo capturada que foi particionada em blocos de pixels por uma árvore de codificação. Uma árvore de codificação emprega vários modos de divisão para subdividir um bloco de pixels em blocos menores de pixels. Esses blocos podem então ser subdivididos em blocos menores. Os blocos podem ser referidos como nós na árvore de codificação. Nós pais maiores são divididos em nós filhos menores. O número de vezes que um nó é subdividido é referido como a profundidade do nó / árvore de codificação. Os blocos divididos podem ser incluídos em unidades de codificação (CUs) em alguns casos. Por exemplo, uma CU pode ser uma subparte de uma CTU que contém um bloco de luma, bloco (s) de croma de diferença vermelha (Cr) e bloco (s) de croma de diferença azul (Cb) junto com as instruções de sintaxe correspondentes para a CU. Os modos de divisão podem incluir uma árvore binária (BT), árvore tripla (TT) e uma árvore quádrupla (QT) empregadas para particionar um nó em dois, três ou quatro nós filhos, respectivamente, de formas variadas dependendo dos modos de divisão empregados. O sinal de vídeo particionado 201 é encaminhado para o componente de controle de codificador geral 211, o componente de escalamento de transformada e quantização 213, o componente de estimativa intraimagem 215, o componente de análise de controle de filtro 227 e o componente de estimativa de movimento 221 para compressão.
[0074] O componente de controle de codificador geral 211 é configurado para tomar decisões relacionadas à codificação das imagens da sequência de vídeo no fluxo de bits de acordo com as restrições de aplicação. Por exemplo, o componente de controle de codificador geral 211 gerencia a otimização do tamanho de taxa de bits / fluxo de bits versus qualidade de reconstrução. Essas decisões podem ser feitas com base no espaço de armazenamento / disponibilidade de largura de banda e solicitações de resolução de imagem. O componente de controle de codificador geral 211 também gerencia utilização de armazenamento temporário à luz da velocidade de transmissão para atenuar problemas de execução em excesso e subexecução de armazenamento temporário. Para gerenciar esses problemas, o componente de controle de codificador geral 211 gerencia o particionamento, a predição e a filtragem pelos outros componentes. Por exemplo, o componente de controle de codificador geral 211 pode aumentar dinamicamente a complexidade da compressão para aumentar a resolução e aumentar o uso de largura de banda ou diminuir a complexidade da compressão para diminuir a resolução e o uso de largura de banda. Portanto, o componente de controle de codificador geral 211 controla os outros componentes do sistema de codec 200 para equilibrar a qualidade de reconstrução de sinal de vídeo com questões de taxa de bits. O componente de controle de codificador geral 211 cria dados de controle, que controlam a operação dos outros componentes. Os dados de controle também são encaminhados para o componente de formatação de cabeçalho e CABAC 231 para serem codificados no fluxo de bits para sinalizar parâmetros para decodificação no decodificador.
[0075] O sinal de vídeo particionado 201 também é enviado para o componente de estimativa de movimento 221 e o componente de compensação de movimento 219 para interpredição. Um quadro ou fatia do sinal de vídeo particionado 201 pode ser dividido em múltiplos blocos de vídeo. O componente de estimativa de movimento 221 e o componente de compensação de movimento 219 realizam codificação interpreditiva 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. O sistema de codec 200 pode realizar múltiplas passagens de codificação, por exemplo, para selecionar um modo de codificação apropriado para cada bloco de dados de vídeo.
[0076] O componente de estimativa de movimento 221 e o componente de compensação de movimento 219 podem ser altamente integrados, mas são ilustrados separadamente para fins conceituais. A estimativa de movimento, realizada pelo componente de estimativa de movimento 221, é 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 um objeto codificado em relação a um bloco preditivo. Um bloco preditivo é um bloco que se encontra próximo ao bloco a ser codificado, em termos de diferença de pixels. Um bloco preditivo também pode ser referido como um bloco de referência. Essa diferença de pixel pode ser determinada pela soma da diferença absoluta (SAD), soma de diferença quadrada (SSD) ou outras métricas de diferença. HEVC emprega vários objetos codificados, incluindo uma CTU, blocos de árvore de codificação (CTBs) e CUs. Por exemplo, uma CTU pode ser dividida em CTBs, que podem então ser divididas em CBs para inclusão em CUs. Uma CU pode ser codificada como uma unidade de predição (PU) contendo dados de predição e / ou uma unidade de transformada (TU) contendo dados residuais transformados para a CU. O componente de estimativa de movimento 221 gera vetores de movimento, PUs e TUs usando uma análise de distorção de taxa como parte de um processo de otimização de distorção de taxa. Por exemplo, o componente de estimativa de movimento 221 pode determinar múltiplos blocos de referência, múltiplos vetores de movimento, etc. para um bloco / quadro atual e pode selecionar os blocos de referência, vetores de movimento, etc. tendo as melhores características de distorção de taxa. As melhores características de distorção de taxa equilibram tanto a qualidade da reconstrução de vídeo (por exemplo, quantidade de perda de dados por compressão) quanto eficiência de codificação (por exemplo, tamanho da codificação final).
[0077] Em alguns exemplos, o sistema de codec 200 pode calcular valores para posições de pixel subinteiras de imagens de referência armazenadas no componente de armazenamento temporário de imagens decodificadas 223. Por exemplo, o sistema de codec de vídeo 200 pode interpolar valores de posições de um quarto de pixel, posições de um oitavo pixel, ou outras posições de pixel fracionárias da imagem de referência. Portanto, o componente de estimativa de movimento 221 pode realizar uma pesquisa de movimento em relação às posições de pixel completas e posições de pixel fracionárias e emitir um vetor de movimento com precisão de pixel fracionária. O componente de estimativa de movimento 221 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia intercodificada comparando a posição da PU com a posição de um bloco preditivo de uma imagem de referência. O componente de estimativa de movimento 221 emite o vetor de movimento calculado como dados de movimento para o componente de formatação de cabeçalho e CABAC 231 para codificação e movimento para o componente de compensação de movimento 219.
[0078] Compensação de movimento, realizada pelo componente de compensação de movimento 219, pode envolverbuscar ou gerar o bloco preditivo com base no vetor demovimento det erminado pelo componente de estimativa demovimento 221 . Novamente, o componente de estimativa demovimento 221 e o componente de compen sação de movimento219 podem ser funcionalmente integrados, em alguns exemplos. Ao receber o vetor de movimento para a PU do bloco de vídeo atual, o componente de compensação de movimento 219 pode localizar o bloco preditivo para o qual o vetor de movimento aponta. Um bloco de vídeo residual é então formado subtraindo 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. Em geral, o componente de estimativa de movimento 221 realiza estimativa de movimento em relação aos componentes de luma e o componente de compensação de movimento 219 usa vetores de movimento calculados com base nos componentes de luma para ambos os componentes de croma e componentes de luma. O bloco preditivo e o bloco residual são encaminhados para o componente de escalamento de transformada e quantização 213.
[0079] O sinal de vídeo particionado 201 também é enviado para o componente de estimativa intraimagem 215 e o componente de predição intraimagem 217. Tal como acontece com o componente de estimativa de movimento 221 e o componente de compensação de movimento 219, o componente de estimativa intraimagem 215 e o componente de predição intraimagem 217 podem ser altamente integrados, mas são ilustrados separadamente para fins conceituais. O componente de estimativa intraimagem 215 e o componente de predição intraimagem 217 intrapreveem um bloco atual em relação aos blocos em um quadro atual, como uma alternativa para a interpredição realizada pelo componente de estimativa de movimento 221 e componente de compensação de movimento 219 entre quadros, como descrito acima. Em particular, o componente de estimativa intraimagem 215 determina um modo de intrapredição para usar para codificar um bloco atual. Em alguns exemplos, o componente de estimativa intraimagem 215 seleciona um modo de intrapredição apropriado para codificar um bloco atual a partir de vários modos de intrapredição testados. Os modos de intrapredição selecionados são, então, encaminhados para o componente de formatação de cabeçalho e CABAC 231 para codificação.
[0080] Por exemplo, o componente de estimativa intraimagem 215 calcula valores de distorção de taxa usando uma análise de distorção de taxa para os vários modos de intrapredição testados e seleciona o modo de intrapredição tendo as melhores características de distorção de taxa entre os modos testados. A análise de distorção de taxa geralmente determina uma quantidade de distorção (ou erro) entre um bloco codificado e um bloco não codificado original que foi codificado para produzir o bloco codificado, bem como uma taxa de bits (por exemplo, um número de bits) usado para produzir o bloco codificado. O componente de estimativa intraimagem 215 calcula as razões a partir das distorções e taxas para os vários blocos codificados para determinar qual modo de intrapredição exibe o melhor valor de distorção de taxa para o bloco. Além disso, o componente de estimativa intraimagem 215 pode ser configurado para codificar blocos de profundidade de um mapa de profundidade usando um modo de modelagem de profundidade (DMM) com base na otimização de distorção de taxa (RDO).
[0081] O componente de predição intraimagem 217 pode gerar um bloco residual do bloco preditivo com base nos modos de intrapredição selecionados determinados pelo componente de estimativa intraimagem 215 quando implementado em um codificador ou ler o bloco residual do fluxo de bits quando implementado em um decodificador. O bloco residual inclui a diferença nos valores entre o bloco preditivo e o bloco original, representada como uma matriz. O bloco residual é então encaminhado para o componente de escalamento de transformada e quantização 213. O componente de estimativa intraimagem 215 e o componente de predição intraimagem 217 podem operar tanto nos componentes de luma quanto de croma.
[0082] O componente de escalamento de transformada e quantização 213 é configurado para comprimir adicionalmente o bloco residual. O componente de escalamento de transformada e quantização 213 aplica uma transformada, tal como uma transformada discreta de cosseno (DCT), uma transformada discreta de seno (DST) ou uma transformada conceitualmente semelhante, ao bloco residual, produzindo um bloco de vídeo compreendendo valores de coeficiente de transformada residuais. Transformadas de ondeleta, transformadas inteiras, transformadas de subbanda ou outros tipos de transformadas também podem ser usadas. A transformada pode converter as informações residuais de um domínio de valor de pixel em um domínio de transformada, como um domínio da frequência. O componente de escalamento de transformada e quantização 213 também é configurado para escalar as informações residuais transformadas, por exemplo, com base na frequência. Tal escalamento envolve aplicação de um fator de escala às informações residuais de forma que diferentes informações de frequência sejam quantizadas em diferentes granularidades, o que pode afetar a qualidade visual final do vídeo reconstruído. O componente de escalamento de transformada e quantização 213 também é configurado para quantizar 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, o componente de escalamento de transformada e quantização 213 pode, então, realizar uma varredura da matriz incluindo os coeficientes de transformada quantizados. Os coeficientes de transformada quantizados são encaminhados para o componente de formatação de cabeçalho e CABAC 231 para ser codificado no fluxo de bits.
[0083] O componente de escalamento e transformada inversa 229 aplica uma operação reversa do componente de escalamento de transformada e quantização 213 para dar suporte à estimativa de movimento. O componente de escalamento e transformada inversa 229 aplica escalamento, transformação e / ou quantização inversa para reconstruir o bloco residual no domínio do pixel, por exemplo, para uso posterior como um bloco de referência que pode se tornar um bloco preditivo para outro bloco atual. O componente de estimativa de movimento 221 e / ou o componente de compensação de movimento 219 podem calcular um bloco de referência adicionando o bloco residual de volta a um bloco preditivo correspondente para uso na estimativa de movimento de um bloco / quadro posterior. Filtros são aplicados aos blocos de referência reconstruídos para atenuar artefatos criados durante o escalamento, quantização e transformada. De outra forma, tais artefatos podem causar predição imprecisa (e criar artefatos adicionais) quando os blocos subsequentes são preditos.
[0084] O componente de análise de controle de filtro 227 e o componente de filtros em malha 225 aplicam os filtros aos blocos residuais e / ou aos blocos de imagem reconstruídos. Por exemplo, o bloco residual transformado do componente de escalamento e transformada inversa 229 pode ser combinado com um bloco de predição correspondente do componente de predição intraimagem 217 e / ou componente de compensação de movimento 219 para reconstruir o bloco de imagem original. Os filtros podem então ser aplicados ao bloco de imagem reconstruído. Em alguns exemplos, os filtros podem, em vez disso, ser aplicados aos blocos residuais. Tal como acontece com outros componentes na Figura 2, o componente de análise de controle de filtro 227 e o componente de filtros em malha 225 são altamente integrados e podem ser implementados juntos, mas são representados separadamente para fins conceituais. Filtros aplicados aos blocos de referência reconstruídos são aplicados a regiões espaciais particulares e incluem vários parâmetros para ajustar como esses filtros são aplicados. O componente de análise de controle de filtro 227 analisa os blocos de referência reconstruídos para determinar onde tais filtros devem ser aplicados e define os parâmetros correspondentes. Tais dados são encaminhados para o componente de formatação de cabeçalho e CABAC 231 como dados de controle de filtro para codificação. O componente de filtros em malha 225 aplica tais filtros com base nos dados de controle de filtro. Os filtros podem incluir um filtro de deblocagem, um filtro de supressão de ruído, um filtro de SAO e um filtro de malha adaptativo. Esses filtros podem ser aplicados no domínio espacial / pixel (por exemplo, em um bloco de pixel reconstruído) ou no domínio da frequência, dependendo do exemplo.
[0085] Quando operando como um codificador, o bloco de imagem reconstruído filtrado, bloco residual e / ou bloco de predição são armazenados no componente de armazenamento temporário de imagens decodificadas 223 para uso posterior na estimativa de movimento como discutido acima. Quando operando como um decodificador, o componente de armazenamento temporário de imagens decodificadas 223 armazena e encaminha os blocos reconstruídos e filtrados em direção a uma exibição como parte de um sinal de vídeo de saída. O componente de armazenamento temporário de imagens decodificadas 223 pode ser qualquer dispositivo de memória capaz de armazenar blocos de predição, blocos residuais e / ou blocos de imagem reconstruídos.
[0086] O componente de formatação de cabeçalho e CABAC 231 recebe os dados a partir dos vários componentes do sistema de codec 200 e codifica esses dados em um fluxo de bits codificado para transmissão em direção a um decodificador. Especificamente, o componente de formatação de cabeçalho e CABAC 231 gera vários cabeçalhos para codificar dados de controle, como dados de controle gerais e dados de controle de filtro. Além disso, dados de predição, incluindo dados intrapredição e de movimento, bem como dados residuais na forma de dados de coeficientes de transformada quantizados, são todos codificados no fluxo de bits. O fluxo de bits final inclui todas as informações desejadas pelo decodificador para reconstruir o sinal de vídeo particionado original 201. Essas informações também podem incluir tabelas de índice de modo de intrapredição (também referidas como tabelas de mapeamento de palavra de código), definições de contextos de codificação para vários blocos, indicações de modos de intrapredição mais prováveis, uma indicação de informações de partição, etc. Tais dados podem ser codificados empregando codificação de entropia. Por exemplo, as informações podem ser codificadas empregando codificação de comprimento variável adaptativa ao contexto (CAVLC), CABAC, codificação aritmética binária adaptativa ao contexto baseada em sintaxe (SBAC), codificação de entropia de particionamento de intervalo de probabilidade (PIPE) ou outra técnica de codificação de entropia. Após a codificação de entropia, o fluxo de bits codificado pode ser transmitido para outro dispositivo (por exemplo, um decodificador de vídeo) ou arquivado para transmissão ou recuperação posterior.
[0087] A Figura 3 é um diagrama de blocos ilustrando um codificador de vídeo de exemplo 300. O codificador de vídeo 300 pode ser empregado para implementar as funções de codificação do sistema de codec 200 e / ou implementar os passos 101, 103, 105, 107 e / ou 109 do método operacional 100. Codificador 300 particiona um sinal de vídeo de entrada, resultando em um sinal de vídeo particionado 301, que é substancialmente semelhante ao sinal de vídeo particionado 201. O sinal de vídeo particionado 301 é então comprimido e codificado em um fluxo de bits por componentes do codificador 300.
[0088] Especificamente, o sinal de vídeo particionado 301 é encaminhado para um componente de predição intraimagem 317 para intrapredição. O componente de predição intraimagem 317 pode ser substancialmente semelhante ao componente de estimativa intraimagem 215 e componente de predição intraimagem 217. O sinal de vídeo particionado 301 também é encaminhado para um componente de compensação de movimento 321 para interpredição com base em blocos de referência em um componente de armazenamento temporário de imagens decodificadas 323. O componente de compensação de movimento 321 pode ser substancialmente semelhante ao componente de estimativa de movimento 221 e componente de compensação de movimento 219. Os blocos de predição e os blocos residuais do componente de predição intraimagem 317 e o componente de compensação de movimento 321 são encaminhados para um componente de transformada e quantização 313 para transformada e quantização dos blocos residuais. O componente de transformada e quantização 313 pode ser substancialmente semelhante ao componente de escalamento de transformada e quantização 213. Os blocos residuais transformados e quantizados e os blocos de predição correspondentes (juntamente com os dados de controle associados) são encaminhados para um componente de codificação de entropia 331 para codificação em um fluxo de bits. O componente de codificação de entropia 331 pode ser substancialmente semelhante ao componente de formatação de cabeçalho e CABAC 231.
[0089] Os blocos residuais transformados e quantizados e / ou os blocos de predição correspondentes também são encaminhados a partir do componente de transformada e quantização 313 para um componente de transformada inversa e quantização 329 para reconstrução em blocos de referência para uso pelo componente de compensação de movimento 321. O componente de transformada inversa e quantização 329 pode ser substancialmente semelhante ao componente de escalamento e transformada inversa 229. Filtros em malha em um componente de filtros em malha 325 também são aplicados aos blocos residuais e / ou blocos de referência reconstruídos, dependendo do exemplo. O componente de filtros em malha 325 pode ser substancialmente semelhante ao componente de análise de controle de filtro 227 e o componente de filtros em malha 225. O componente de filtros em malha 325 pode incluir vários filtros, conforme discutido em relação ao componente de filtros em malha 225. Os blocos filtrados são então armazenados em um componente de armazenamento temporário de imagens decodificadas 323 para uso como blocos de referência pelo componente de compensação de movimento 321. O componente de armazenamento temporário de imagens decodificadas 323 pode ser substancialmente semelhante ao componente de armazenamento temporário de imagens decodificadas 223.
[0090] A Figura 4 é um diagrama de blocos ilustrando um decodificador de vídeo de exemplo 400. O decodificador de vídeo 400 pode ser empregado para implementar as funções de decodificação do sistema de codec 200 e / ou implementar os passos 111, 113, 115 e / ou 117 do método operacional 100. O decodificador 400 recebe um fluxo de bits, por exemplo, de um codificador 300, e gera um sinal de vídeo de saída reconstruído com base no fluxo de bits para exibição a um usuário final.
[0091] O fluxo de bits é recebido por um componente de decodificação de entropia 433. O componente de decodificação de entropia 433 é configurado para implementar um esquema de decodificação de entropia, como CAVLC, CABAC, SBAC, codificação PIPE ou outras técnicas de codificação de entropia. Por exemplo, o componente de decodificação de entropia 433 pode empregar informações de cabeçalho para fornecer um contexto para interpretar dados adicionais codificados como palavras de código no fluxo de bits. As informações decodificadas incluem quaisquer informações desejadas para decodificar o sinal de vídeo, como dados de controle gerais, dados de controle de filtro, informações de partição, dados de movimento, dados de predição e coeficientes de transformada quantizados de blocos residuais. Os coeficientes de transformada quantizados são encaminhados para um componente de transformada inversa e quantização 429 para reconstrução em blocos residuais. O componente de transformada inversa e quantização 429 pode ser semelhante ao componente de transformada inversa e quantização 329.
[0092] Os blocos residuais reconstruídos e / ou blocos de predição são encaminhados para o componente de predição intraimagem 417 para reconstrução em blocos de imagem com base em operações de intrapredição. O componente de predição intraimagem 417 pode ser semelhante ao componente de estimativa intraimagem 215 e um componente de predição intraimagem 217. Especificamente, o componente de predição intraimagem 417 emprega modos de predição para localizar um bloco de referência no quadro e aplica um bloco residual para o resultado para reconstruir blocos de imagem intrapreditos. Os blocos de imagem intrapreditos reconstruídos e / ou os blocos residuais e os dados de interpredição correspondentes são encaminhados para um componente de armazenamento temporário de imagens decodificadas 423 por meio de um componente de filtros em malha 425, que pode ser substancialmente semelhante ao componente de armazenamento temporário de imagens decodificadas 223 e o componente de filtros em malha 225, respectivamente. O componente de filtros em malha 425 filtra os blocos de imagem reconstruídos, blocos residuais e / ou blocos de predição, e tais informações são armazenadas no componente de armazenamento temporário de imagens decodificadas 423. Os blocos de imagem reconstruídos a partir do componente de armazenamento temporário de imagens decodificadas 423 são encaminhados para um componente de compensação de movimento 421 para interpredição. O componente de compensação de movimento 421 pode ser substancialmente semelhante ao componente de estimativa de movimento 221 e / ou componente de compensação de movimento 219. Especificamente, o componente de compensação de movimento 421 emprega vetores de movimento de um bloco de referência para gerar um bloco de predição e aplica um bloco residual ao resultado para reconstruir um bloco de imagem. Os blocos reconstruídos resultantes também podem ser encaminhados através do componente de filtros em malha 425 para o componente de armazenamento temporário de imagens decodificadas 423. O componente de armazenamento temporário de imagens decodificadas 423 continua a armazenar blocos de imagem reconstruídos adicionais, que podem ser reconstruídos em quadros por meio das informações de partição. Esses quadros também podem ser colocados em uma sequência. A sequência é emitida em direção a uma exibição como um sinal de vídeo de saída reconstruído.
[0093] Mantendo o acima em mente, técnicas de compressão de vídeo realizam predição espacial (intraimagem) e / ou predição temporal (interimagem) para reduzir ou remover redundância inerente em sequências de vídeo. Para codificação de vídeo baseada em bloco, uma fatia de vídeo (ou seja, uma imagem de vídeo ou uma parte de uma imagem de vídeo) pode ser particionada em blocos de vídeo, que também podem ser referidos como blocos de árvore, blocos de árvore de codificação (CTBs), unidades de árvore de codificação (CTUs), unidades de codificação (CUs) e / ou nós de codificação. Os blocos de vídeo em uma fatia intracodificada (I) de uma imagem são codificados usando predição espacial com respeito a amostras de referência em blocos vizinhos na mesma imagem. Os blocos de vídeo em uma fatia intercodificada (P ou B) de uma imagem podem usar predição espacial com respeito a amostras de referência em blocos vizinhos na mesma imagem ou predição temporal com respeito a amostras de referência em outras imagens de referência. As imagens podem ser chamadas de quadros e as imagens de referência podem ser chamadas de quadros de referência.
[0094] Predição espacial ou temporal resulta em um bloco preditivo para um bloco a ser codificado. Dados residuais representam diferenças de pixel entre o bloco original a ser codificado e o bloco preditivo. Um bloco intercodificado é codificado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência formando o bloco preditivo e os dados residuais indicando a diferença entre o bloco codificado e o bloco preditivo. Um bloco intracodificado é codificado de acordo com um modo de intracodificação e os dados residuais. Para compressão adicional, os dados residuais podem ser transformados a partir do domínio de pixel para um domínio de transformada, resultando em coeficientes de transformada residuais, que então podem ser quantizados. Os coeficientes de transformada quantizados, inicialmente dispostos em um arranjo bidimensional, podem ser varridos a fim de produzir um vetor unidimensional de coeficientes de transformada e a codificação de entropia pode ser aplicada para obter ainda mais compressão.
[0095] Compressão de imagem e vídeo experimentou um rápido crescimento, levando a vários padrões de codificação. Esses padrões de codificação de vídeo incluem ITU-T H.261, Organização Internacional para Padronização / Comissão Eletrotécnica Internacional (ISO / IEC) MPEG-1 Parte 2, ITU-T H.262 ou ISO / IEC MPEG-2 Parte 2, ITU-T H.263, ISO / IEC MPEG-4 Parte 2, Codificação de Vídeo Avançada (AVC), também conhecida como ITU-T H.264 ou ISO / IEC MPEG-4 Parte 10, e Codificação de Vídeo de Alta Eficiência (HEVC), também conhecida como ITU-T H.265 ou MPEG-H Parte 2. AVC inclui extensões como Codificação de Vídeo Escalável (SVC), Codificação de Vídeo Multivista (MVC) e Codificação de Vídeo Multivista Mais Profundidade (MVC + D) e AVC 3D (3D- AVC). HEVC inclui extensões como HEVC escalável (SHVC), HEVC multivista (MV-HEVC) e HEVC 3D (3D-HEVC).
[0096] Há também um novo padrão de codificação de vídeo, denominado Codificação de Vídeo Versátil (VVC), sendo desenvolvido pela equipe conjunta de especialistas de vídeo (JVET) da ITU-T e ISO / IEC. Embora o padrão VVC tenha vários rascunhos de trabalho, um Rascunho de Trabalho (WD) de VVC em particular, nomeadamente, B. Bross, J. Chen e S. Liu, "Codificação de Vídeo Versátil (Rascunho 5)" ("Versatile Video Coding (Draft 5))", JVET-N1001-v3, 13a Reunião JVET, 27 de março de 2019 (VVC Rascunho 5) é referenciado neste documento. Cada uma das referências neste parágrafo e no parágrafo anterior são incorporadas por referência, em sua totalidade.
[0097] A descrição das técnicas divulgadas neste documento é baseada no padrão de codificação de vídeo em desenvolvimento Codificação de Vídeo Versátil (VVC) pela equipe conjunta de especialistas de vídeo (JVET) da ITU-T e ISO / IEC. No entanto, as técnicas também se aplicam a outras especificações de codec de vídeo.
[0098] A Figura 5 é uma representação 500 de uma relação entre uma imagem de ponto de acesso intra-aleatório (IRAP) 502 em relação às imagens dianteiras 504 e imagens traseiras 506 em uma ordem de decodificação 508 e uma ordem de apresentação 510. Em uma modalidade, a imagem de IRAP 502 é referida como uma imagem de acesso aleatório limpo (CRA) ou como uma imagem de atualização de decodificador instantânea (IDR) com imagem decodificável de acesso aleatório (RADL). Em HEVC, imagens de IDR, imagens de CRA e imagens de Acesso de Enlace Quebrado (BLA) são todas consideradas imagens de IRAP 502. Para VVC, durante a 12 a reunião do JVET em outubro de 2018, foi acordado ter as imagens de IDR e CRA como imagens de IRAP. Em uma modalidade, as imagens de Acesso de Enlace Quebrado (BLA) e Atualização de Decodificador Gradual (GDR) também podem ser consideradas imagens de IRAP. O processo de decodificação para uma sequência de vídeo codificada sempre começa em um IRAP.
[0099] Como mostrado na Figura 5, as imagens dianteiras 504 (por exemplo, as imagens 2 e 3) seguem a imagem de IRAP 502 na ordem de decodificação 508, mas precedem a imagem de IRAP 502 na ordem de apresentação 510. A imagem traseira 506 segue a imagem de IRAP 502 em ambas a ordem de decodificação 508 e a ordem de apresentação 510. Embora duas imagens dianteiras 504 e uma imagem traseira 506 sejam representadas na Figura 5, os versados na técnica apreciarão que mais ou menos imagens dianteiras 504 e / ou imagens traseiras 506 podem estar presentes na ordem de decodificação 508 e na ordem de apresentação 510 em aplicações práticas.
[00100] As imagens dianteiras 504 na Figura 5 foram divididas em dois tipos, nomeadamente dianteira pulada de acesso aleatório (RASL) e RADL. Quando decodificação começa com a imagem de IRAP 502 (por exemplo, imagem 1), a imagem de RADL (por exemplo, imagem 3) pode ser decodificada adequadamente; no entanto, a imagem de RASL (por exemplo, a imagem 2) não pode ser decodificada adequadamente. Assim, a imagem de RASL é descartada. À luz da distinção entre imagens de RADL e RASL, o tipo de imagem dianteira 504 associada à imagem de IRAP 502 deve ser identificado como RADL ou RASL para codificação eficiente e adequada. Em HEVC, quando imagens de RASL e RADL estão presentes, é restrito que para imagens de RASL e RADL que estão associadas à mesma imagem de IRAP 502, as imagens de RASL devem preceder as imagens de RADL na ordem de apresentação 510.
[00101] Uma imagem de IRAP 502 fornece as duas funcionalidades / benefícios importantes a seguir. Em primeiro lugar, a presença de uma imagem de IRAP 502 indica que o processo de decodificação pode começar a partir dessa imagem. Esta funcionalidade permite um recurso de acesso aleatório no qual o processo de decodificação começa naquela posição no fluxo de bits, não necessariamente no início do fluxo de bits, desde que uma imagem de IRAP 502 esteja presente nessa posição. Em segundo lugar, a presença de uma imagem de IRAP 502 atualiza o processo de decodificação de modo que uma imagem codificada começando na imagem de IRAP 502, excluindo imagens de RASL, seja codificada sem qualquer referência às imagens anteriores. Ter uma imagem de IRAP 502 presente no fluxo de bits, consequentemente, interromperia qualquer erro que possa acontecer durante a decodificação de imagens codificadas antes da imagem de IRAP 502 para se propagar para a imagem de IRAP 502 e aquelas imagens que seguem a imagem de IRAP 502 na ordem de decodificação 508.
[00102] Embora imagens de IRAP 502 forneçam funcionalidades importantes, elas prejudicam a eficiência da compressão. A presença de uma imagem de IRAP 502 causa um aumento repentino na taxa de bits. Essa penalidade para a eficiência de compressão deve-se a dois motivos. Em primeiro lugar, como uma imagem de IRAP 502 é uma imagem intrapredita, a própria imagem exigiria relativamente mais bits para representar quando comparada com outras imagens (por exemplo, imagens dianteiras 504, imagens traseiras 506) que são imagens interpreditas. Em segundo lugar, porque a presença de uma imagem de IRAP 502 quebra a predição temporal (isso ocorre porque o decodificador iria atualizar o processo de decodificação, no qual uma das ações do processo de decodificação para isso é remover as imagens de referência anteriores no armazenamento temporário de imagens decodificadas (DPB)), a imagem de IRAP 502 faz com que a codificação de imagens que seguem a imagem de IRAP 502 na ordem de decodificação 508 seja menos eficiente (isto é, precisa de mais bits para representar) porque têm menos imagens de referência para sua codificação de interpredição.
[00103] Entre os tipos de imagem que são considerados imagens de IRAP 502, a imagem de IDR em HEVC possui sinalização e derivação diferentes quando comparada a outros tipos de imagem. Algumas das diferenças são as seguintes.
[00104] Para sinalização e derivação de um valor de contagem de ordem de imagem (POC) de uma imagem de IDR, a parte de bit mais significativo (MSB) da POC não é derivada da imagem chave anterior, mas simplesmente definida como igual a 0.
[00105] Para informações de sinalização necessárias para gerenciamento de imagem de referência, o cabeçalho de fatia de uma imagem de IDR não contém informações necessárias para serem sinalizadas para auxiliar gerenciamento de imagem de referência. Para outros tipos de imagem (ou seja, CRA, Traseira, acesso de subcamada temporal (TSA), etc.), informações como o conjunto de imagens de referência (RPS) descrito abaixo ou outras formas de informações similares (por exemplo, listas de imagens de referência) são necessárias para o processo de marcação de imagens de referência (ou seja, o processo para determinar o status de imagens de referência no armazenamento temporário de imagens decodificadas (DPB), usadas para referência ou não usadas para referência). No entanto, para a imagem de IDR, tais informações não precisam ser sinalizadas porque a presença de IDR indica que o processo de decodificação deve simplesmente marcar todas as imagens de referência no DPB como não usadas para referência.
[00106] Além do conceito de imagens de IRAP, também existem imagens dianteiras que, se presentes, estão associadas a uma imagem de IRAP. As imagens dianteiras são as imagens que seguem sua imagem de IRAP associada na ordem de decodificação, mas precedem a imagem de IRAP na ordem de saída. Dependendo da configuração de codificação e da estrutura de referência de imagem, as imagens dianteiras são posteriormente identificadas em dois tipos. O primeiro tipo são as imagens dianteiras que podem não ser decodificadas corretamente se o processo de decodificação começar na imagem de IRAP associada. Isso pode acontecer porque essas imagens dianteiras são codificadas com referência às imagens que precedem a imagem de IRAP em ordem de decodificação. Essas imagens dianteiras são chamadas de dianteira pulada de acesso aleatório (RASL). O segundo tipo são as imagens dianteiras que devem ser decodificadas corretamente, mesmo se o processo de decodificação começar em sua imagem de IRAP associada. Isso é possível porque essas imagens dianteiras são codificadas sem referência direta ou indireta às imagens que precedem a imagem de IRAP na ordem de decodificação. Essas imagens dianteiras são chamadas de dianteiras decodificáveis de acesso aleatório (RADL). Em HEVC, quando imagens de RASL e RADL estão presentes, é restrito que para imagens de RASL e RADL associadas à mesma imagem de IRAP, as imagens de RASL devem preceder as imagens de RADL na ordem de saída.
[00107] Em HEVC e VVC, imagens de IRAP 502 e imagens dianteiras 504 podem, cada uma, estar contidas em uma única unidade de camada de abstração de rede (NAL). Um conjunto de unidades de NAL pode ser referido como uma unidade de acesso. Imagens de IRAP 502 e imagens dianteiras 504 recebem diferentes tipos de unidade de NAL para que possam ser facilmente identificadas por aplicações de nível de sistema. Por exemplo, um divisor de vídeo precisa entender tipos de imagem codificados sem ter que entender muitos detalhes do elemento de sintaxe no fluxo de bits codificado, particularmente para identificar imagens de IRAP 502 a partir de imagens não IRAP e para identificar imagens dianteiras 504, incluindo determinação de imagens de RASL e RADL, a partir das imagens traseiras 506. Imagens traseiras 506 são aquelas imagens que estão associadas a uma imagem de IRAP 502 e seguem a imagem de IRAP 502 na ordem de apresentação 510. Uma imagem pode seguir a imagem de IRAP 502 particular na ordem de decodificação 508 e preceder qualquer outra imagem de IRAP 502 na ordem de decodificação 508. Para isso, dar às imagens de IRAP 502 e imagens dianteiras 504 seu próprio tipo de unidade de NAL ajuda em tais aplicações.
[00108] Para HEVC, tipos de unidade de NAL para imagens de IRAP incluem o seguinte:BLA com imagem dianteira (BLA_W_LP): unidade de NAL de uma imagem de Acesso de Enlace Quebrado (BLA) que pode ser seguida por uma ou mais imagens dianteiras em ordem de decodificação;BLA com RADL (BLA_W_RADL): unidade de NAL de uma imagem de BLA que pode ser seguida por uma ou mais imagens de RADL, mas nenhuma imagem de RASL na ordem de decodificação;BLA sem imagem dianteira (BLA_N_LP): unidade de NAL de uma imagem de BLA que não é seguida pela imagem dianteira na ordem de decodificação;IDR com RADL (IDR_W_RADL): unidade de NAL de uma imagem de IDR que pode ser seguida por uma ou mais imagens de RADL, mas nenhuma imagem de RASL na ordem de decodificação;IDR sem imagem dianteira (IDR_N_LP): unidade de NAL de uma imagem de IDR que não é seguida pela imagem dianteira na ordem de decodificação;CRA: unidade de NAL de uma imagem de acesso aleatório limpo (CRA) que pode ser seguida por imagens dianteiras (ou seja, imagens de RASL ou imagens de RADL ou ambas);RADL: unidade de NAL de uma imagem de RADL; RASL: unidade de NAL de uma imagem de RASL.
[00109] Para VVC, o tipo de unidade de NAL para imagens de IRAP 502 e imagens dianteiras 504 são os seguintes:IDR com RADL (IDR_W_RADL): unidade de NAL de uma imagem de IDR que pode ser seguida por uma ou mais imagens de RADL, mas nenhuma imagem de RASL na ordem de decodificação;IDR sem imagem dianteira (IDR_N_LP): unidade de NAL de uma imagem de IDR que não é seguida pela imagem dianteira na ordem de decodificação;CRA: unidade de NAL de uma imagem de acesso aleatório limpo (CRA) que pode ser seguida por imagens dianteiras (ou seja, imagens de RASL ou imagens de RADL ou ambas);RADL: unidade de NAL de uma imagem de RADL;RASL: unidade de NAL de uma imagem de RASL.
[00110] O recurso de reamostragem de imagem de referência (RPR) é a capacidade de alterar a resolução espacial de imagens codificadas no meio de um fluxo de bits sem a necessidade de intracodificação da imagem na localização de mudança de resolução. Para permitir isso, uma imagem precisa ser capaz de se referir a, para fins de interpredição, uma ou mais imagens de referência para quais a resolução espacial é diferente daquela da imagem atual. Consequentemente, reamostragem de tal imagem de referência, ou parte dela, é necessária para codificação e decodificação da imagem atual. Daí o nome RPR. Esse recurso também pode ser referido como mudança de resolução adaptativa (ARC) ou outros nomes. Existem casos de uso ou cenários de aplicação que se beneficiariam do recurso de RPR, incluindo o seguinte.
[00111] Adaptação de taxa em videotelefonia e videoconferência. Isso é para adaptar o vídeo codificado às mudanças de condições de rede. Quando condições de rede pioram e a largura de banda disponível fica menor, o codificador pode se adaptar a ela por codificar imagens de resolução menor.
[00112] Mudança de alto-falante ativo em videoconferência com vários participantes. Para videoconferência com vários participantes, é comum que o tamanho de vídeo do alto-falante ativo seja maior ou mais largo do que o tamanho de vídeo do restante dos participantes da conferência. Quando o alto-falante ativo muda, a resolução de imagem para cada participante também pode precisar ser ajustada. A necessidade de ter recursos de ARC torna-se mais importante quando uma mudança no alto- falante ativo ocorre com frequência.
[00113] Início rápido em streaming. Para uma aplicação de streaming, é comum que a aplicação armazene em armazenamento temporário até um determinado comprimento de imagem decodificada antes de começar a exibir as imagens. Iniciar o fluxo de bits com uma resolução menor permitiria que a aplicação tivesse imagens suficientes no armazenamento temporário para começar a exibir mais rápido.
[00114] Comutação de fluxo adaptativa em streaming. A especificação de Streaming Adaptiva Dinâmica sobre HTTP (DASH) inclui um recurso denominado @mediaStreamStructureId. Esse recurso permite comutar entre diferentes representações em pontos de acesso aleatório de grupo aberto de imagem (GOP) com imagens dianteiras não decodificáveis, por exemplo, imagens de CRA com imagens de RASL associadas em HEVC. Quando duas representações diferentes do mesmo vídeo têm taxas de bits diferentes, mas a mesma resolução espacial enquanto têm o mesmo valor de @mediaStreamStructureId, comutação entre as duas representações em uma imagem de CRA com imagens de RASL associadas pode ser realizada, e as imagens de RASL associadas às imagens de CRA em comutação podem ser decodificadas com qualidade aceitável, permitindo comutação contínua. Com ARC, o recurso @mediaStreamStructureId também pode ser usado para comutar entre as representações de DASH com diferentes resoluções espaciais.
[00115] Vários métodos facilitam as técnicas básicas para suportar RPR / ARC, como sinalização de listas de resoluções de imagem, algumas restrições de reamostragem de imagens de referência no DPB, etc.
[00116] Um componente da técnica necessária para suportar RPR é um método para sinalizar resoluções de imagem que podem estar presentes no fluxo de bits. Isso é tratado em alguns exemplos por mudar a sinalização atual de uma resolução de imagem com uma lista de resoluções de imagem no SPS como mostrado abaixo.
[00117] num_pic_size_in_luma_samples_minus1 mais 1 especifica o número de tamanhos de imagem (largura e altura) em unidade de amostras de luma que podem estar presentes na sequência de vídeo codificada.
[00118] pic_width_in_luma_samples [ i ] especifica a i-ésima largura das imagens decodificadas em unidade de amostras de luma que podem estar presentes na sequência de vídeo codificada. pic_width_in_luma_samples [ i ] não deve ser igual a 0 e deve ser um múltiplo inteiro de MinCbSizeY.
[00119] pic_height_in_luma_samples [ i ] especifica a i-ésima altura de imagens decodificadas em unidade de amostras de luma que podem estar presentes na sequência de vídeo codificada. pic_height_in_luma_samples [ i ] não deve ser igual a 0 e deve ser um múltiplo inteiro de MinCbSizeY.
[00120] Durante a 15a reunião do JVET, outra variante do tamanho de imagem de sinalização e janelas de conformidade para suportar RPR foi discutida. A sinalização é a seguinte.
[00121] - Sinaliza o tamanho de imagem máximo (ou seja, largura de imagem e altura de imagem) em SPS.
[00122] - Sinaliza tamanho de imagem no conjunto de parâmetros de imagem (PPS).
[00123] - Move a sinalização atual de janelas de conformidade de SPS para PPS. As informações de janela de conformidade são usadas para recortar as imagens reconstruídas / decodificadas no processo de preparação da imagem para saída. O tamanho de imagem recortado é o tamanho de imagem depois que a imagem foi recortada usando sua janela de conformidade associada.
[00124] A sinalização do tamanho de imagem e das janelas de conformidade é a seguinte.
[00125] max_width_in_luma_samples especifica que éum requisito de conformidade de fluxo de bits que pic_width_in_luma_samples para qualquer imagem para qual este SPS esteja ativo seja menor ou igual amax_width_in_luma_samples.
[00126] max_height_in_luma_samples especifica que é um requisito de conformidade de fluxo de bits que pic_height_in_luma_samples para qualquer imagem para qual este SPS esteja ativo seja menor ou igual a max_height_in_luma_samples.
[00127] pic_width_in_luma_samples especifica a largura de cada imagem decodificada referenciando o PPS em unidade de amostras de luma. pic_width_in_luma_samples não deve ser igual a 0 e deve ser um múltiplo inteiro de MinCbSizeY.
[00128] pic_height_in_luma_samples especifica a altura de cada imagem decodificada referenciando o PPS em unidade de amostras de luma. pic_height_in_luma_samples não deve ser igual a 0 e deve ser um múltiplo inteiro de MinCbSizeY.
[00129] É um requisito de conformidade de fluxo de bits que todas as seguintes condições sejam satisfeitas para cada imagem de referência ativa cuja largura e altura são reference_pic_width_in_luma_samples ereference_pic_height_in_luma_samples:- 2 * pic_width_in_luma_samples >=reference_pic_width_in_luma_samples- 2 * pic_height_in_luma_samples >=reference_pic_height_in_luma_samples- pic_width_in_luma_samples <= 8 *reference_pic_width_in_luma_samples- pic_height_in_luma_samples <= 8 *reference_pic_height_in_luma_samples.
[00130] As variáveis PicWidthInCtbsY,PicHeightInCtbsY, PicSizeInCtbsY, PicWidthInMinCbsY, PicHeightInMinCbsY, PicSizeInMinCbsY, PicSizeInSamplesY, PicWidthInSamplesC e PicHeightInSamplesC são derivadas da seguinte forma:PicWidthInCtbsY = Ceil (pic_width_in_luma_samples -r CtbSizeY) (1)PicHeightInCtbsY = Ceil (pic_height_in_luma_samples -r CtbSizeY) (2)PicSizeInCtbsY = PicWidthInCtbsY * PicHeightInCtbsY (3)PicWidthInMinCbsY = pic_width_in_luma_samples /MinCbSizeY (4)PicHeightInMinCbsY = pic_height_in_luma_samples /MinCbSizeY (5)PicSizeInMinCbsY = PicWidthInMinCbsY *PicHeightInMinCbsY (6)PicSizeInSamplesY = pic_width_in_luma_samples * pic_height_in_luma_samples (7)PicWidthInSamplesC = pic_width_in_luma_samples /SubWidthC (8)PicHeightInSamplesC = pic_height_in_luma_samples /SubHeightC (9).
[00131] conformance_window_flag igual a 1 indica que os parâmetros de desvio de janela de recorte de conformidade seguem próximos no PPS.conformance_window_flag igual a 0 indica que os parâmetros de desvio de janela de recorte de conformidade não estão presentes.
[00132] conf_win_left_offset, conf_win_right_offset, conf_win_top_offset e conf_win_bottom_offset especificam as amostras das imagens que referenciam o PPS que são emitidas a partir do processo de decodificação, em termos de uma região retangular especificada em coordenadas de imagem para saída. Quando conformance_window_flag é igual a 0, os valores de conf_win_left_offset, conf_win_right_offset, conf_win_top_offset e conf_win_bottom_offset são inferidos como iguais a 0.
[00133] A janela de recorte de conformidade contém as amostras de luma com coordenadas de imagem horizontais a partir de SubWidthC * conf_win_left_offset para pic_width_in_luma_samples - (SubWidthC * conf_win_right_offset + 1) e coordenadas de imagem verticais a partir de SubHeightC * conf_win_top_offset para pic_height_in_luma_samples - (SubHeightC * conf_win_ bottom_offset + 1), inclusive.
[00134] O valor de SubWidthC * (conf_win_left_offset+ conf_win_right_offset) deve ser menor que pic_width_in_luma_samples, e o valor de SubHeightC * (conf_win_top_offset + conf_win_bottom_offset) deve ser menor que pic_height_in_luma_samples.
[00135] As variáveis PicOutputWidthL e PicOutputHeightL são derivadas da seguinte forma:PicOutputWidthL = pic_width_in_luma_samples - SubWidthC * (conf_win_right_offset + conf_win_left_offset) (10)PicOutputHeightL = pic_height_in_pic_size_units - SubHeightC * (conf_win_bottom_offset + conf_win_top_offset) (11).
[00136] Quando ChromaArrayType não é igual a 0, as amostras especificadas correspondentes dos dois arranjos de croma são as amostras tendo coordenadas de imagem (x / SubWidthC, y / SubHeightC), em que (x, y) são as coordenadas de imagem das amostras de luma especificadas.
[00137] NOTA - os parâmetros de desvio de janela de recorte de conformidade são aplicados apenas na saída. Todos os processos de decodificação internos são aplicados ao tamanho de imagem não recortado.
[00138] A sinalização do tamanho de imagem e da janela de conformidade no PPS apresenta os seguintes problemas.
[00139] — Porque múltiplos PPSs podem estar presentes em uma sequência de vídeo codificada (CVS), é possível que dois PPSs possam conter a mesma sinalização de tamanho de imagem, mas diferentes sinalizações de janelas de conformidade. Isso resultará na situação em que duas imagens, se referindo a um PPS diferente, têm o mesmo tamanho de imagem, mas tamanhos de recorte diferentes.
[00140] - Para suportar RPR, várias ferramentas de codificação foram sugeridas para serem desligadas para codificação de um bloco quando a imagem atual e a imagem de referência do bloco têm tamanhos de imagem diferentes. No entanto, como agora é possível que o tamanho de recorte também seja diferente, mesmo quando as duas imagens têm o mesmo tamanho, é necessário ter uma verificação adicional com base no tamanho de recorte.
[00141] São divulgadas neste documento técnicas que restringem conjuntos de parâmetros de imagem que têm o mesmo tamanho de imagem para também terem o mesmo tamanho de janela de conformidade (por exemplo, tamanho de janela de recorte). Por manter a janela de conformidade com o mesmo tamanho para conjuntos de parâmetros de imagem com o mesmo tamanho de imagem, processamento excessivamente complexo pode ser evitado quando reamostragem de imagem de referência (RPR) está habilitada. Assim, uso do processador, memória e / ou recursos de rede pode ser reduzido tanto no codificador quanto no decodificador. Assim, o codificador / decodificador (também conhecido como “codec”) em codificação de vídeo é aprimorado em relação aos codecs atuais. Na prática, o processo de codificação de vídeo aprimorado oferece ao usuário uma melhor experiência de usuário quando vídeos são enviados, recebidos e / ou visualizados.
[00142] Escalabilidade em codificação de vídeo geralmente é suportada pelo uso de técnicas de codificação multicamada. Um fluxo de bits multicamada compreende uma camada de base (BL) e uma ou mais camadas de aprimoramento (ELs). Um exemplo de escalabilidade inclui escalabilidade espacial, escalabilidade de qualidade / sinal-ruído (SNR), escalabilidade multivista, etc. Quando uma técnica de codificação multicamada é usada, uma imagem ou uma parte dela pode ser codificada (1) sem usar uma imagem de referência, ou seja, usando intrapredição; (2) fazendo referência a imagens de referência que estão na mesma camada, ou seja, usando interpredição; ou (3) fazendo referência a imagens de referência que estão em outra (s) camada (s), ou seja, usando predição intercamada. Uma imagem de referência usada para predição intercamada da imagem atual é referida como uma imagem de referência intercamada (ILRP).
[00143] A Figura 6 é um diagrama esquemático ilustrando um exemplo de predição baseada na camada 600, por exemplo, conforme realizado para determinar MVs no passo de compressão de bloco 105, passo de decodificação de bloco 113, componente de estimativa de movimento 221, componente de compensação de movimento 219, componente de compensação de movimento 321 e / ou componente de compensação de movimento 421. Predição baseada na camada 600 é compatível com interpredição unidirecional e / ou interpredição bidirecional, mas também é realizada entre imagens nas camadas diferentes.
[00144] Predição baseada na camada 600 é aplicadaentre imagens 611, 612, 613 e 614 e imagens 615, 616, 617 e 618 nas camadas diferentes. No exemplo mostrado, imagens 611, 612, 613 e 614 fazem parte da camada N + 1 632 e imagens 615, 616, 617 e 618 fazem parte da camada N 631. Uma camada, como a camada N 631 e / ou a camada N + 1 632 é um grupo de imagens que estão todas associadas a um valor semelhante de uma característica, como tamanho, qualidade, resolução, razão sinal para ruído, capacidade, etc. No exemplo mostrado, a camada N + 1 632 está associada a um tamanho de imagem maior do que a camada N 631. Consequentemente, as imagens 611, 612, 613 e 614 na camada N + 1 632 têm um tamanho de imagem maior (por exemplo, altura e largura maiores e, portanto, mais amostras) do que as imagens 615, 616, 617 e 618 na camada N 631 neste exemplo. No entanto, essas imagens podem ser separadas entre a camada N + 1 632 e a camada N 631 por outras características. Embora apenas duas camadas, camada N + 1 632 e camada N 631, sejam mostradas, um conjunto de imagens pode ser separado em qualquer número de camadas com base nas características associadas. A camada N + 1 632 e a camada N 631 também podem ser denotadas por um ID de camada. Um ID de camada é um item de dados associado a uma imagem e indica que a imagem faz parte de uma camada indicada. Consequentemente, cada imagem 611-618 pode ser associada a um ID de camada correspondente para indicar qual camada N + 1 632 ou camada N 631 inclui a imagem correspondente.
[00145] Imagens 611-618 nas camadas diferentes 631632 são configuradas para serem exibidas como alternativa. Como tal, as imagens 611-618 nas camadas diferentes 631-632 podem compartilhar o mesmo identificador temporal (ID) e podem ser incluídas na mesma AU. Conforme usado neste documento, uma AU é um conjunto de uma ou mais imagens codificadas associadas ao mesmo tempo de exibição para saída a partir de um DPB. Por exemplo, um decodificador pode decodificar e exibir a imagem 615 em um tempo de exibição atual se uma imagem menor for desejada ou o decodificador pode decodificar e exibir imagem 611 no tempo de exibição atual se uma imagem maior for desejada. Como tal, imagens 611-614 na camada N + 1 632 superior contêm substancialmente os mesmos dados de imagem que imagens correspondentes 615-618 na camada N 631 inferior (não obstante a diferença em tamanho de imagem). Especificamente, imagem 611 contém substancialmente os mesmos dados de imagem que a imagem 615, a imagem 612 contém substancialmente os mesmos dados de imagem que a imagem 616, etc.
[00146] Imagens 611-618 podem ser codificadas por referência a outras imagens 611-618 na mesma camada N 631 ou N + 1 632. Codificar uma imagem em referência a outra imagem na mesma camada resulta em interpredição 623, que é interpredição unidirecional e / ou interpredição bidirecional compatível. Interpredição 623 é representada por setas de linha sólida. Por exemplo, imagem 613 pode ser codificada empregando interpredição 623 usando uma ou duas de imagens 611, 612, e / ou 614 na camada N + 1 632 como uma referência, em que uma imagem é referenciada para interpredição unidirecional e / ou duas imagens são referência para interpredição bidirecional. Além disso, imagem 617 pode ser codificada empregando interpredição 623 usando uma ou duas de imagens 615, 616 e / ou 618 na camada N 631 como uma referência, em que uma imagem é referenciada para interpredição unidirecional e / ou duas imagens são referência para interpredição bidirecional. Quando uma imagem é usada como uma referência para outra imagem na mesma camada ao realizar interpredição 623, a imagem pode ser referida como uma imagem de referência. Por exemplo, a imagem 612 pode ser uma imagem de referência usada para codificar a imagem 613 de acordo com interpredição 623. Interpredição 623 também pode ser referida como predição intracamada em um contexto multicamada. Como tal, interpredição 623 é um mecanismo de codificação de amostras de uma imagem atual por referência a amostras indicadas em uma imagem de referência que é diferente a partir da imagem atual onde a imagem de referência e a imagem atual estão na mesma camada.
[00147] Imagens 611-618 também podem ser codificadas por referência a outras imagens 611-618 nas camadas diferentes. Este processo é conhecido como predição intercamada 621, e é representado por setas tracejadas. Predição intercamada 621 é um mecanismo de codificação de amostras de uma imagem atual por referência a amostras indicadas em uma imagem de referência onde a imagem atual e a imagem de referência estão nas camadas diferentes e, portanto, têm IDs de camada diferentes. Por exemplo, uma imagem em uma camada N 631 inferior pode ser usada como uma imagem de referência para codificar uma imagem correspondente em uma camada N + 1 632 superior. Como um exemplo específico, imagem 611 pode ser codificada por referência à imagem 615 de acordo com predição intercamada 621. Nesse caso, a imagem 615 é usada como uma imagem de referência intercamada. Uma imagem de referência intercamada é uma imagem de referência usada para predição intercamada 621. Na maioria dos casos, predição intercamada 621 é restringida de modo que uma imagem atual, como a imagem 611, só pode usar imagem (ns) de referência intercamada que está incluída na mesma AU e que está em uma camada inferior, como a imagem 615. Quando múltiplas camadas (por exemplo, mais de duas) estão disponíveis, predição intercamada 621 pode codificar / decodificar uma imagem atual com base em múltipla(s) imagem (ns) de referência intercamada em níveis inferiores do que a imagem atual.
[00148] Um codificador de vídeo pode empregar predição baseada na camada 600 para codificar imagens 611618 através de muitas combinações e / ou permutações diferentes de interpredição 623 e predição intercamada 621. Por exemplo, a imagem 615 pode ser codificada de acordo com intrapredição. Imagens 616-618 podem então ser codificadas de acordo com interpredição 623 usando imagem 615 como uma imagem de referência. Além disso, imagem 611 pode ser codificada de acordo com predição intercamada 621 usando imagem 615 como uma imagem de referência intercamada. Imagens 612-614 podem então ser codificadas de acordo com interpredição 623 usando imagem 611 como uma imagem de referência. Como tal, uma imagem de referência pode servir tanto como uma imagem de referência de camada única quanto uma imagem de referência intercamada para diferentes mecanismos de codificação. Por codificar imagens de camada N + 1 632 superior com base em imagens de camada N 631 inferior, a camada N + 1 632 superior pode evitar o emprego de intrapredição, que tem uma eficiência de codificação muito menor do que interpredição 623 e predição intercamada 621. Como tal, uma baixa eficiência de codificação de intrapredição pode ser limitada às imagens de menor / mais inferior qualidade e, portanto, limitada a codificação da menor quantidade de dados de vídeo. As imagens usadas como imagens de referência e / ou imagens de referência intercamada podem ser indicadas em entradas de lista (s) de imagens de referência contida em uma estrutura de lista de imagens de referência.
[00149] Famílias de codificação de vídeo H.26x anteriores forneciam suporte para escalabilidade em perfil (s) separado do perfil (s) para codificação de camada única. Codificação de vídeo escalável (SVC) é a extensão escalável do AVC / H.264 que fornece suporte para escalabilidades espacial, temporal e de qualidade. Para SVC, uma bandeira é sinalizada em cada macrobloco (MB) em imagens de EL para indicar se o EL MB é predito usando o bloco colocalizado a partir de uma camada inferior. A predição a partir do bloco colocalizado pode incluir textura, vetores de movimento e / ou modos de codificação. Implementações de SVC não podem reusar diretamente implementações de H.264 / AVC não modificadas em seu projeto. A sintaxe de macrobloco SVC EL e processo de decodificação diferem da sintaxe H.264 / AVC e do processo de decodificação.
[00150] HEVC escalável (SHVC) é a extensão do padrão HEVC / H.265 que fornece suporte para escalabilidades espacial e de qualidade, HEVC multivista (MV-HEVC) é a extensão do HEVC / H.265 que fornece suporte para escalabilidade multivista, e HEVC 3D (3D-HEVC) é a extensão do HEVC / H.264 que fornece suporte para codificação de vídeo tridimensional (3D) que é mais avançada e mais eficiente do que MV-HEVC. Observe que a escalabilidade temporal é incluída como parte integrante do codec HEVC de camada única. O projeto da extensão multicamada de HEVC emprega a ideia de que as imagens decodificadas usadas para predição intercamada vêm apenas da mesma unidade de acesso (AU) e são tratadas como imagens de referência de longo prazo (LTRPs), e são referência índices atribuídos na (s) lista (s) de imagens de referência junto com outras imagens de referência temporal na camada atual. Predição intercamada (PLI) é alcançada no nível de unidade de predição (PU) por definir o valor do índice de referência para referir-se à imagem (ns) de referência intercamada na lista (s) de imagens de referência.
[00151] Notavelmente, ambos recursos de reamostragem de imagem de referência e escalabilidade espacial exigem reamostragem de uma imagem de referência ou parte dela. Reamostragem de imagem de referência pode ser realizada no nível de imagem ou no nível de bloco de codificação. No entanto, quando o RPR é referido como um recurso de codificação, é um recurso para codificação de camada única. Mesmo assim, é possível, ou mesmo preferível, do ponto de vista de projeto de codec, usar o mesmo filtro de reamostragem para tanto o recurso de RPR de codificação de camada única quanto o recurso de escalabilidade espacial para codificação multicamada.
[00152] A Figura 7 é um diagrama esquemático ilustrando um exemplo de interpredição unidirecional 700. A interpredição unidirecional 700 pode ser empregada para determinar vetores de movimento para blocos codificados e / ou decodificados criados ao particionar uma imagem.
[00153] Interpredição unidirecional 700 emprega um quadro de referência 730 com um bloco de referência 731 para prever um bloco atual 711 em um quadro atual 710. O quadro de referência 730 pode ser posicionado temporariamente após o quadro atual 710 como mostrado (por exemplo, como um quadro de referência subsequente), mas também pode ser temporariamente posicionado antes do quadro atual 710 (por exemplo, como um quadro de referência anterior) em alguns exemplos. O quadro atual 710 é um quadro / imagem de exemplo sendo codificado / decodificado em um tempo particular. O quadro atual 710 contém um objeto no bloco atual 711 que corresponde a um objeto no bloco de referência 731 do quadro de referência 730. O quadro de referência 730 é um quadro que é empregado como uma referência para codificar um quadro atual 710, e um bloco de referência 731 é um bloco no quadro de referência 730 que contém um objeto também contido no bloco atual 711 do quadro atual 710.
[00154] O bloco atual 711 é qualquer unidade de codificação que está sendo codificada / decodificada em um ponto especificado no processo de codificação. O bloco atual 711 pode ser um bloco particionado inteiro, ou pode ser um sub-bloco ao empregar o modo de interpredição afim. O quadro atual 710 está separado do quadro de referência 730 por alguma distância temporal (TD) 733. A TD 733 indica uma quantidade de tempo entre o quadro atual 710 e o quadro de referência 730 em uma sequência de vídeo e pode ser medida em unidades de quadros. As informações de predição para o bloco atual 711 podem referenciar o quadro de referência 730 e / ou o bloco de referência 731 por um índice de referência indicando a direção e a distância temporal entre os quadros. Ao longo do período de tempo representado pela TD 733, o objeto no bloco atual 711 se move de uma posição no quadro atual 710 para outra posição no quadro de referência 730 (por exemplo, a posição do bloco de referência 731). Por exemplo, o objeto pode se mover ao longo de uma trajetória de movimento 713, que é uma direção de movimento de um objeto ao longo do tempo. Um vetor de movimento 735 descreve a direção e magnitude do movimento do objeto ao longo da trajetória de movimento 713 sobre a TD 733. Consequentemente, um vetor de movimento codificado 735, um bloco de referência 731 e um resíduo incluindo a diferença entre o bloco atual 711 e o bloco de referência 731 fornecem informações suficientes para reconstruir um bloco atual 711 e posicionar o bloco atual 711 no quadro atual 710.
[00155] A Figura 8 é um diagrama esquemático ilustrando um exemplo de interpredição bidirecional 800. A interpredição bidirecional 800 pode ser empregada para determinar vetores de movimento para blocos codificados e / ou decodificados criados ao particionar uma imagem.
[00156] A interpredição bidirecional 800 é semelhante à interpredição unidirecional 700, mas emprega um par de quadros de referência para prever um bloco atual 811 em um quadro atual 810. Portanto, o quadro atual 810 e o bloco atual 811 são substancialmente similares ao quadro atual 710 e ao bloco atual 711, respectivamente. O quadro atual 810 está temporariamente posicionado entre um quadro de referência anterior 820, que ocorre antes do quadro atual 810 na sequência de vídeo, e um quadro de referência subsequente 830, que ocorre após o quadro atual 810 na sequência de vídeo. O quadro de referência anterior 820 e o quadro de referência subsequente 830 são de outra forma substancialmente semelhantes ao quadro de referência 730.
[00157] O bloco atual 811 é correspondido a um bloco de referência anterior 821 no quadro de referência anterior 820 e a um bloco de referência subsequente 831 no quadro de referência subsequente 830. Tal correspondência indica que, ao longo da sequência de vídeo, um objeto se move de uma posição no bloco de referência anterior 821 para uma posição no bloco de referência subsequente 831 ao longo de uma trajetória de movimento 813 e através do bloco atual 811. O quadro atual 810 é separado do quadro de referência anterior 820 por alguma distância temporal anterior (TD0) 823 e separado do quadro de referência subsequente 830 por alguma distância temporal subsequente (TD1) 833. A TD0 823 indica uma quantidade de tempo entre o quadro de referência anterior 820 e o quadro atual 810 na sequência de vídeo em unidades de quadros. A TD1 833 indica uma quantidade de tempo entre o quadro atual 810 e o quadro de referência subsequente 830 na sequência de vídeo em unidades de quadro. Portanto, o objeto se move do bloco de referência anterior 821 para o bloco atual 811 ao longo da trajetória de movimento 813 ao longo de um período de tempo indicado por TD0 823. O objeto também se move do bloco atual 811 para o bloco de referência subsequente 831 ao longo da trajetória de movimento 813 ao longo de um período de tempo indicado por TD1 833. As informações de predição para o bloco atual 811 podem referenciar o quadro de referência anterior 820 e / ou o bloco de referência anterior 821 e o quadro de referência subsequente 830 e / ou bloco de referência subsequente 831 por um par de índices de referência indicando a direção e distância temporal entre os quadros.
[00158] Um vetor de movimento anterior (MV0) 825descreve a direção e magnitude do movimento de objeto ao longo da trajetória de movimento 813 sobre a TD0 823 (por exemplo, entre o quadro de referência anterior 820 e o quadro atual 810). Um vetor de movimento subsequente (MV1) 835 descreve a direção e magnitude do movimento de objeto ao longo da trajetória de movimento 813 sobre a TD1 833 (por exemplo, entre o quadro atual 810 e o quadro de referência subsequente 830). Como tal, na interpredição bidirecional 800, o bloco atual 811 pode ser codificado e reconstruído empregando o bloco de referência anterior 821 e / ou o bloco de referência subsequente 831, MV0 825 e MV1 835.
[00159] Em uma modalidade, interpredição e / ou interpredição bidirecional podem ser realizadas em uma base amostra por amostra (por exemplo, pixel por pixel) em vez de em uma base bloco por bloco. Ou seja, um vetor de movimento apontando para cada amostra no bloco de referência anterior 821 e / ou o bloco de referência subsequente 831 pode ser determinado para cada amostra no bloco atual 811. Em tais modalidades, o vetor de movimento 825 e o vetor de movimento 835 representados na Figura 8 representam uma pluralidade de vetores de movimento correspondentes à pluralidade de amostras no bloco atual 811, no bloco de referência anterior 821 e no bloco de referência subsequente 831.
[00160] Tanto no modo de mesclagem quanto no modo de predição de vetor de movimento avançada (AMVP), uma lista de candidatos é gerada adicionando vetores de movimento candidatos a uma lista de candidatos em uma ordem definida por um padrão de determinação de lista de candidatos. Tais vetores de movimento candidatos podem incluir vetores de movimento de acordo com interpredição unidirecional 700, interpredição bidirecional 800 ou combinações das mesmas. Especificamente, vetores de movimento são gerados para blocos vizinhos quando tais blocos são codificados. Esses vetores de movimento são adicionados a uma lista de candidatos para o bloco atual e o vetor de movimento para o bloco atual é selecionado na lista de candidatos. O vetor de movimento pode então ser sinalizado como o índice do vetor de movimento selecionado na lista de candidatos. O decodificador pode construir a lista de candidatos usando o mesmo processo do codificador, e pode determinar o vetor de movimento selecionado da lista de candidatos com base no índice sinalizado. Portanto, os vetores de movimento candidatos incluem vetores de movimento gerados de acordo com a interpredição unidirecional 700 e / ou a interpredição bidirecional 800, dependendo de qual abordagem é usada quando tais blocos vizinhos são codificados.
[00161] A Figura 9 ilustra um fluxo de bits de vídeo 900. Conforme usado neste documento, o fluxo de bits de vídeo 900 também pode ser referido como um fluxo de bits de vídeo codificado, um fluxo de bits ou variações dos mesmos. Como mostrado na Figura 9, o fluxo de bits 900 compreende um conjunto de parâmetros de sequência (SPS) 902, um conjunto de parâmetros de imagem (PPS) 904, um cabeçalho de fatia 906 e dados de imagem 908.
[00162] O SPS 902 contém dados que são comuns a todas as imagens em uma sequência de imagens (SOP). Em contraste, o PPS 904 contém dados que são comuns à imagem inteira. O cabeçalho de fatia 906 contém informações sobre a fatia atual, como, por exemplo, o tipo de fatia, qual das imagens de referência será usada e assim por diante. O SPS 902 e o PPS 904 podem ser genericamente referidos como um conjunto de parâmetros. O SPS 902, o PPS 904 e o cabeçalho de fatia 906 são tipos de unidades de Camada de Abstração de Rede (NAL). Uma unidade de NAL é uma estrutura de sintaxe que contém uma indicação do tipo de dados a seguir (por exemplo, dados de vídeo codificados). Unidades de NAL são classificadas nas camadas de codificação de vídeo (VCL) e unidades não VCL NAL. As unidades de VCL NAL contêm os dados que representam os valores das amostras nas imagens de vídeo, e as unidades não VCL NAL contêm quaisquer informações adicionais associadas, como conjuntos de parâmetros (dados de cabeçalho importantes que podem ser aplicados a um grande número de unidades de VCL NAL) e informações de aprimoramento suplementares (informações de temporização e outros dados suplementares que podem melhorar usabilidade do sinal de vídeo decodificado, mas não são necessários para decodificar os valores das amostras nas imagens de vídeo). Os versados na técnica apreciarão que o fluxo de bits 900 pode conter outros parâmetros e informações em aplicações práticas.
[00163] Os dados de imagem 908 da Figura 9 compreendem dados associados às imagens ou vídeo sendo codificados ou decodificados. Os dados de imagem 908 podem ser simplesmente referidos como carga útil ou dados sendo transportados no fluxo de bits 900. Em uma modalidade, os dados de imagem 908 compreendem a CVS 914 (ou CLVS) contendo uma pluralidade de imagens 910. A CVS 914 é uma sequência de vídeo codificada para cada sequência de vídeo de camada codificada (CLVS) no fluxo de bits de vídeo 900. Notavelmente, a CVS e a CLVS são as mesmas quando o fluxo de bits de vídeo 900 inclui uma única camada. A CVS e a CLVS são diferentes apenas quando o fluxo de bits de vídeo 900 inclui múltiplas camadas.
[00164] Como mostrado na Figura 9, uma fatia de cada imagem 910 pode estar contida dentro de sua própria unidade de VCL NAL 912. O conjunto de unidades de VCL NAL 912 na CVS 914 pode ser referido como uma unidade de acesso.
[00165] A Figura 10 ilustra uma técnica de particionamento 1000 para uma imagem 1010. A imagem 1010 pode ser semelhante a qualquer uma das imagens 910 na Figura 9. Como mostrado, a imagem 1010 pode ser particionada em uma pluralidade de fatias 1012. Uma fatia é uma região espacialmente distinta de um quadro (por exemplo, uma imagem) que é codificada separadamente de qualquer outra região no mesmo quadro. Embora três fatias 1012 sejam representadas na Figura 10, mais ou menos fatias podem ser usadas em aplicações práticas. Cada fatia 1012 pode ser particionada em uma pluralidade de blocos 1014. Os blocos 1014 na Figura 10 podem ser semelhantes ao bloco atual 811, ao bloco de referência anterior 821 e ao bloco de referência subsequente 831 na Figura 8. O bloco 1014 pode representar uma CU. Embora quatro blocos 1014 sejam representados na Figura 10, mais ou menos blocos podem ser usados em aplicações práticas.
[00166] Cada bloco 1014 pode ser particionado em uma pluralidade de amostras 1016 (por exemplo, pixels). Em uma modalidade, o tamanho de cada bloco 1014 é medido em amostras de luma. Embora dezesseis amostras 1016 sejam representadas na Figura 10, mais ou menos amostras podem ser usadas em aplicações práticas.
[00167] Em uma modalidade, uma janela de conformidade 1060 é aplicada à imagem 1010. Como observado acima, a janela de conformidade 1060 é usada para recortar, reduzir ou de outra forma alterar o tamanho de imagem 1010 (por exemplo, uma imagem reconstruída / decodificada) no processo de preparação da imagem para saída. Por exemplo, um decodificador pode aplicar a janela de conformidade 1060 à imagem 1010 a fim de recortar, aparar, encolher ou de outra forma alterar o tamanho de imagem 1010 antes da imagem ser emitida para exibição a um usuário. O tamanho da janela de conformidade 1060 é determinado aplicando um desvio de topo de janela de conformidade 1062, um desvio de fundo de janela de conformidade 1064, um desvio à esquerda de janela de conformidade 1066 e um desvio à direita de janela de conformidade 1068 à imagem 1010 para reduzir o tamanho de imagem 1010 antes da saída. Ou seja, apenas a parte da imagem 1010 que existe dentro da janela de conformidade 1060 é emitida. Assim, a imagem 1010 é recortada em tamanho antes de ser emitida. Em uma modalidade, um primeiro conjunto de parâmetros de imagem e um segundo conjunto de parâmetros de imagem referem-se, cada um, ao mesmo conjunto de parâmetros de sequência e têm os mesmos valores de largura de imagem e altura de imagem. Como tal, o primeiro conjunto de parâmetros de imagem e o segundo conjunto de parâmetros de imagem têm os mesmos valores para uma janela de conformidade.
[00168] A Figura 11 é uma modalidade de um método 1100 de decodificação implementado por um decodificador de vídeo (por exemplo, decodificador de vídeo 400). O método 1100 pode ser realizado após o fluxo de bits decodificado ter sido recebido diretamente ou indiretamente a partir de um codificador de vídeo (por exemplo, codificador de vídeo 300). O método 1100 melhora o processo de decodificação, mantendo a janela de conformidade do mesmo tamanho para conjuntos de parâmetros de imagem com o mesmo tamanho de imagem. Assim, a reamostragem de imagem de referência (RPR) pode permanecer habilitada ou ligada para toda a CVS. Por manter um tamanho de janela de conformidade consistente para conjuntos de parâmetros de imagem com o mesmo tamanho de imagem, a eficiência de codificação pode ser melhorada. Portanto, na prática, o desempenho de um codec é aprimorado, o que leva a uma melhor experiência de usuário.
[00169] No bloco 1102, o decodificador de vídeo recebe um primeiro conjunto de parâmetros de imagem (por exemplo, ppsA) e um segundo conjunto de parâmetros de imagem (por exemplo, ppsB), cada um se referindo ao mesmo conjunto de parâmetros de sequência. Quando o primeiro conjunto de parâmetros de imagem e o segundo conjunto de parâmetros de imagem têm os mesmos valores de largura de imagem e altura de imagem, o primeiro conjunto de parâmetros de imagem e o segundo conjunto de parâmetros de imagem têm os mesmos valores de uma janela de conformidade. Em uma modalidade, a largura de imagem e altura de imagem são medidas em amostras de luma.
[00170] Em uma modalidade, a largura de imagem é designada como pic_width_in_luma_samples. Em uma modalidade, a altura de imagem é designada como pic_height_in_luma_samples. Em uma modalidade, o pic_width_in_luma_samples especifica a largura de cada imagem decodificada se referindo ao PPS em unidade de amostras de luma. Em uma modalidade, pic_height_in_luma_samples especifica a altura de cada imagem decodificada se referindo ao PPS em unidade de amostras de luma.
[00171] Em uma modalidade, a janela de conformidade compreende um desvio à esquerda de janela de conformidade, um desvio à direita de janela de conformidade, um desvio de topo de janela de conformidade e um desvio de fundo de janela de conformidade que representam coletivamente o tamanho de janela de conformidade. Em uma modalidade, o desvio à esquerda de janela de conformidade é designado como pps_conf_win_left_offset. Em uma modalidade, o desvio à direita de janela de conformidade é designado como pps_conf_win_right_offset. Em uma modalidade, o desvio de topo de janela de conformidade é designado como pps_conf_win_top_offset. Em uma modalidade, o desvio de fundo de janela de conformidade é designado como pps_conf_win_bottom_offset. Em uma modalidade, o tamanho ou valores de janela de conformidade são sinalizados no PPS.
[00172] No bloco 1104, o decodificador de vídeo aplica a janela de conformidade a uma imagem atual correspondente ao primeiro conjunto de parâmetros de imagem ou ao segundo conjunto de parâmetros de imagem. Ao fazer isso, o codificador de vídeo recorta a imagem atual para o tamanho da janela de conformidade.
[00173] Em uma modalidade, o método compreende ainda o uso de interpredição para decodificar a imagem atual com base em uma imagem de referência reamostrada. Em uma modalidade, o método compreende ainda reamostrar uma imagem de referência correspondente à imagem atual usando reamostragem de imagem de referência (RPS). Em uma modalidade, a reamostragem da imagem de referência muda uma resolução da imagem de referência.
[00174] Em uma modalidade, o método compreende ainda determinar se fluxo óptico de bidireção (BDOF) está habilitado para decodificar a imagem com base na largura de imagem, na altura de imagem e na janela de conformidade da imagem atual e uma imagem de referência para a imagem atual. Em uma modalidade, o método compreende ainda determinar se refinamento de vetor de movimento de lado de decodificador (DMVR) está habilitado para decodificar a imagem com base na largura de imagem, na altura de imagem e na janela de conformidade da imagem atual e uma imagem de referência para a imagem atual.
[00175] Em uma modalidade, o método compreende ainda exibir em uma exibição de um dispositivo eletrônico (por exemplo, um smartphone, tablet, laptop, computador pessoal, etc.) uma imagem gerada usando o bloco atual.
[00176] A Figura 12 é uma modalidade de um método 1200 de codificação de um fluxo de bits de vídeo implementado por um codificador de vídeo (por exemplo, codificador de vídeo 300). O método 1200 pode ser realizado quando uma imagem (por exemplo, a partir de um vídeo) deve ser codificada em um fluxo de bits de vídeo e, em seguida, transmitida em direção a um decodificador de vídeo (por exemplo, decodificador de vídeo 400). O método 1200 melhora o processo de codificação por manter a janela de conformidade do mesmo tamanho para conjuntos de parâmetros de imagem com o mesmo tamanho de imagem. Assim, reamostragem de imagem de referência (RPR) pode permanecer habilitada ou ligada para toda a CVS. Por manter um tamanho de janela de conformidade consistente para conjuntos de parâmetros de imagem com o mesmo tamanho de imagem, eficiência de codificação pode ser melhorada. Portanto, na prática, o desempenho de um codec é aprimorado, o que leva a uma melhor experiência de usuário.
[00177] No bloco 1202, o codificador de vídeo gera um primeiro conjunto de parâmetros de imagem e um segundo conjunto de parâmetros de imagem, cada um se referindo ao mesmo conjunto de parâmetros de sequência. Quando o primeiro conjunto de parâmetros de imagem e o segundo conjunto de parâmetros de imagem têm os mesmos valores de largura de imagem e altura de imagem, o primeiro conjunto de parâmetros de imagem e o segundo conjunto de parâmetros de imagem têm os mesmos valores de uma janela de conformidade. Em uma modalidade, a largura de imagem e altura de imagem são medidas em amostras de luma.
[00178] Em uma modalidade, a largura de imagem é designada como pic_width_in_luma_samples. Em uma modalidade, a altura de imagem é designada como pic_height_in_luma_samples. Em uma modalidade, o pic_width_in_luma_samples especifica a largura de cada imagem decodificada se referindo ao PPS em unidade de amostras de luma. Em uma modalidade, pic_height_in_luma_samples especifica a altura de cada imagem decodificada se referindo ao PPS em unidade de amostras de luma.
[00179] Em uma modalidade, a janela de conformidade compreende um desvio à esquerda de janela de conformidade, um desvio à direita de janela de conformidade, um desvio de topo de janela de conformidade e um desvio de fundo de janela de conformidade que representam coletivamente o tamanho de janela de conformidade. Em uma modalidade, o desvio à esquerda de janela de conformidade é designado como pps_conf_win_left_offset. Em uma modalidade, o desvio à direita de janela de conformidade é designado como pps_conf_win_right_offset. Em uma modalidade, o desvio de topo de janela de conformidade é designado como pps_conf_win_top_offset. Em uma modalidade, o desvio de fundo de janela de conformidade é designado como pps_conf_win_bottom_offset. Em uma modalidade, o tamanho ou valores de janela de conformidade são sinalizados no PPS.
[00180] No bloco 1204, o codificador de vídeo codifica o primeiro conjunto de parâmetros de imagem e o segundo conjunto de parâmetros de imagem em um fluxo de bits de vídeo. No bloco 1206, o codificador de vídeo armazena o fluxo de bits de vídeo para transmissão em direção a um decodificador de vídeo. Em uma modalidade, o codificador de vídeo transmite o fluxo de bits de vídeo contendo o primeiro conjunto de parâmetros de imagem e o segundo conjunto de parâmetros de imagem em direção ao decodificador de vídeo.
[00181] Em uma modalidade, um método para codificar um fluxo de bits de vídeo é fornecido. O fluxo de bits compreende uma pluralidade de conjuntos de parâmetros e uma pluralidade de imagens. Cada imagem da pluralidade de imagens compreende uma pluralidade de fatias. Cada fatia da pluralidade de fatias compreende uma pluralidade de blocos de codificação. O método compreende gerar e escrever um conjunto de parâmetros parameterSetA em um fluxo de bits contendo informações que incluem o tamanho de imagem picSizeA e a janela de conformidade confWinA. O parâmetro pode ser um conjunto de parâmetros de imagem (PPS). O método inclui ainda gerar e escrever outro conjunto de parâmetros parameterSetB em um fluxo de bits contendo informações que incluem tamanho de imagem picSizeB e janela de conformidade confWinB. O parâmetro pode ser um conjunto de parâmetros de imagem (PPS). O método inclui ainda restringir os valores para a janela de conformidade confWinA em parameterSetA e confWinB em parameterSetB para serem os mesmos quando os valores de picSizeA em parameterSetA e picSizeB em parameterSetB são os mesmos e restringir os valores para o tamanho de imagem picSizeA em parameterSetA e picSizeB em parameterSetB para serem os mesmos quando os valores de confWinA em parameterSetA e confWinB em parameterSetB são os mesmos. O método inclui ainda codificar o fluxo de bits.
[00182] Em uma modalidade, um método para decodificar um fluxo de bits de vídeo é fornecido. O fluxo de bits compreende uma pluralidade de conjuntos de parâmetros e uma pluralidade de imagens. Cada imagem da pluralidade de imagens compreende uma pluralidade de fatias. Cada fatia da pluralidade de fatias compreende uma pluralidade de blocos de codificação. O método compreende analisar um conjunto de parâmetros para obter o tamanho de imagem e o tamanho de janela de conformidade associado a uma imagem atual currPic. As informações obtidas são usadas para derivar o tamanho de imagem e o tamanho recortado da imagem atual. O método inclui ainda analisar outro conjunto de parâmetros para obter o tamanho de imagem e o tamanho de janela de conformidade associado a uma imagem de referência refPic. As informações obtidas são usadas para derivar o tamanho de imagem e o tamanho recortado da imagem de referência. O método inclui ainda determinar refPic como imagem de referência para decodificação de um bloco atual curBlock que está localizado dentro da imagem atual currPic, decidindo se o fluxo óptico de bidireção (BDOF) é usado ou habilitado para decodificar o bloco de codificação atual com base no tamanho de imagem e janela de conformidade da imagem atual e da imagem de referência, e decodificar o bloco atual.
[00183] Em uma modalidade, o BDOF não é usado ou é desabilitado para decodificar o bloco de codificação atual quando o tamanho de imagem e a janela de conformidade da imagem atual e da imagem de referência são diferentes.
[00184] Em uma modalidade, um método para decodificar um fluxo de bits de vídeo é fornecido. O fluxo de bits compreende uma pluralidade de conjuntos de parâmetros e uma pluralidade de imagens. Cada imagem da pluralidade de imagens compreende uma pluralidade de fatias. Cada fatia da pluralidade de fatias compreende uma pluralidade de blocos de codificação. O método compreende analisar um conjunto de parâmetros para obter o tamanho de imagem e o tamanho de janela de conformidade associado a uma imagem atual currPic. As informações obtidas são usadas para derivar o tamanho de imagem e o tamanho recortado da imagem atual. O método inclui ainda analisar outro conjunto de parâmetros para obter o tamanho de imagem e o tamanho de janela de conformidade associado a uma imagem de referência refPic. As informações obtidas são usadas para derivar o tamanho de imagem e o tamanho recortado da imagem de referência. O método inclui ainda determinar refPic como imagem de referência para a decodificação de um bloco atual curBlock que está localizado dentro da imagem atual currPic, decidindo se o refinamento de vetor de movimento de lado de decodificador (DMVR) é usado ou habilitado para decodificar o bloco de codificação atual com base no tamanho de imagem e janela de conformidade da imagem atual e da imagem de referência, e decodificar o bloco atual.
[00185] Em uma modalidade, DMVR não é usado ou está desabilitado para decodificar o bloco de codificação atual quando o tamanho de imagem e a janela de conformidade da imagem atual e da imagem de referência são diferentes.
[00186] Em uma modalidade, um método para codificar um fluxo de bits de vídeo é fornecido. Em uma modalidade, o fluxo de bits compreende uma pluralidade de conjuntos de parâmetros e uma pluralidade de imagens. Cada imagem da pluralidade de imagens compreende uma pluralidade de fatias. Cada fatia da pluralidade de fatias compreende uma pluralidade de blocos de codificação. O método compreende gerar um conjunto de parâmetros compreendendo o tamanho de imagem e o tamanho de janela de conformidade associado a uma imagem atual currPic. As informações são usadas para derivar tamanho de imagem e tamanho recortado da imagem atual. O método inclui ainda gerar outro conjunto de parâmetros compreendendo o tamanho de imagem e o tamanho de janela de conformidade associado a uma imagem de referência refPic. As informações obtidas são usadas para derivar o tamanho de imagem e o tamanho recortado da imagem de referência. O método inclui ainda restringir que a imagem de referência refPic não seja usada como imagem de referência colocalizada para predição de vetor de movimento temporal (TMVP) de todas as fatias que pertencem à imagem atual currPic quando o tamanho de imagem e a janela de conformidade da imagem atual e da imagem de referência são diferentes. Isto é, restringindo que se imagem de referência refPic for a imagem de referência colocalizada para codificação de blocos dentro da imagem atual currPic para TMVP, o tamanho de imagem e a janela de conformidade da imagem atual e da imagem de referência devem ser os mesmos. O método inclui ainda decodificar o fluxo de bits.
[00187] Em uma modalidade, um método para decodificar um fluxo de bits de vídeo é fornecido. O fluxo de bits compreende uma pluralidade de conjuntos de parâmetros e uma pluralidade de imagens. Cada imagem da pluralidade de imagens compreende uma pluralidade de fatias. Cada fatia da pluralidade de fatias compreende uma pluralidade de blocos de codificação. O método compreende analisar um conjunto de parâmetros para obter o tamanho de imagem e o tamanho de janela de conformidade associado a uma imagem atual currPic. As informações obtidas são usadas para derivar o tamanho de imagem e o tamanho recortado da imagem atual. O método inclui ainda analisar outro conjunto de parâmetros para obter o tamanho de imagem e o tamanho de janela de conformidade associado a uma imagem de referência refPic. As informações obtidas são usadas para derivar o tamanho de imagem e o tamanho recortado da imagem de referência. O método inclui ainda determinar refPic como imagem de referência para a decodificação de um bloco atual curBlock que está localizado dentro da imagem atual currPic, analisar um elemento de sintaxe (slice_DVMR_BDOF_enable_flag) para determinar se refinamento de vetor de movimento de lado de decodificador (DMVR) e / ou fluxo óptico de bidireção (BDOF) é usado ou habilitado para decodificação da imagem e / fatia de codificação atual. O método inclui ainda restringir os valores do elemento de sintaxe (slice_DVMR_BDOF_enable_flag) a zero quando a janela de conformidade confWinA em parameterSetA e confWinB em parameterSetB não são iguais ou quando os valores de picSizeA em parameterSetA e picSizeB em parameterSetB não são iguais.
[00188] A descrição abaixo é relativa ao texto base, que é o rascunho de trabalho de VVC. Ou seja, apenas o delta é descrito, enquanto os textos no texto base que não são mencionados abaixo se aplicam como são. O texto removido é indicado em itálico e o texto adicionado em negrito.
[00189] A sintaxe e a semântica do conjunto de parâmetros de sequência são fornecidas.
[00190] max_width_in_luma_samples especifica que é um requisito de conformidade de fluxo de bits que pic_width_in_luma_samples para qualquer imagem para qual este SPS esteja ativo seja menor ou igual a max_width_in_luma_samples.
[00191] max_height_in_luma_samples especifica que é um requisito de conformidade de fluxo de bits que pic_height_in_luma_samples para qualquer imagem para qual este SPS esteja ativo seja menor ou igual a max_height_in_luma_samples.
[00192] A sintaxe e a semântica do conjunto de parâmetros de imagem são fornecidas.
[00193] pic_width_in_luma_samples especifica a largura de cada imagem decodificada referenciando o PPS em unidade de amostras de luma. pic_width_in_luma_samples não deve ser igual a 0 e deve ser um múltiplo inteiro de MinCbSizeY.
[00194] pic_height_in_luma_samples especifica a altura de cada imagem decodificada referenciando o PPS em unidade de amostras de luma. pic_height_in_luma_samples não deve ser igual a 0 e deve ser um múltiplo inteiro de MinCbSizeY.
[00195] É um requisito de conformidade de fluxo de bits que todas as seguintes condições sejam satisfeitas para cada imagem de referência ativa cuja largura e altura são reference_pic_width_in_luma_samples e reference_pic_height_in_luma_samples: - 2 * pic_width_in_luma_samples >=reference_pic_width_in_luma_samples- 2 * pic_height_in_luma_samples >=reference_pic_height_in_luma_samples- pic_width_in_luma_samples <= 8 *reference_pic_width_in_luma_samples- pic_height_in_luma_samples <= 8 *reference_pic_height_in_luma_samples.
[00196] As variáveis PicWidthInCtbsY,PicHeightInCtbsY, PicSizeInCtbsY, PicWidthInMinCbsY,PicHeightInMinCbsY, PicSizeInMinCbsY, PicSizeInSamplesY, PicWidthInSamplesC e PicHeightInSamplesC são derivadas comosegue;PicWidthInCtbsY = Ceil (pic_width_in_luma_samples -rCtbSizeY) (1)PicHeightInCtbsY = Ceil (pic_height_in_luma_samples -rCtbSizeY) (2)PicSizeInCtbsY = PicWidthInCtbsY * PicHeightInCtbsY (3)PicWidthInMinCbsY = pic_width_in_luma_samples /MinCbSizeY (4)PicHeightInMinCbsY = pic_height_in_luma_samples /MinCbSizeY (5)PicSizeInMinCbsY = PicWidthInMinCbsY *PicHeightInMinCbsY (6)PicSizeInSamplesY = pic_width_in_luma_samples * pic_height_in_luma_samples (7)PicWidthInSamplesC = pic_width_in_luma_samples /SubWidthC (8)PicHeightInSamplesC = pic_height_in_luma_samples /SubHeightC (9).
[00197] conformance_window_flag igual a 1 indica que os parâmetros de desvio de janela de recorte de conformidade seguem próximos no PPS. conformance_window_flag igual a 0 indica que os parâmetros de desvio de janela de recorte de conformidade não estãopresentes.
[00198] conf_win_left_offset, conf_win_right_offset, conf_win_top_offset e conf_win_bottom_offset especificam as amostras das imagens que referenciam o PPS que são emitidas a partir do processo de decodificação, em termos de uma região retangular especificada em coordenadas de imagem para saída. Quando conformance_window_flag é igual a 0, os valores de conf_win_left_offset, conf_win_right_offset, conf_win_top_offset e conf_win_bottom_offset são inferidos como iguais a 0.
[00199] A janela de recorte de conformidade contém as amostras de luma com coordenadas de imagem horizontais a partir de SubWidthC * conf_win_left_offset para pic_width_in_luma_samples - (SubWidthC * conf_win_right_offset + 1) e coordenadas de imagem verticais a partir de SubHeightC * conf_win_top_offset para pic_height_in_luma_samples - (SubHeightC * conf_win_bottom_offset + 1 ), inclusive.
[00200] O valor de SubWidthC * (conf_win_left_offset+ conf_win_right_offset) deve ser menor que pic_width_in_luma_samples, e o valor de SubHeightC * (conf_win_top_offset + conf_win_bottom_offset) deve ser menor que pic_height_in_luma_samples.
[00201] As variáveis PicOutputWidthL ePicOutputHeightL são derivadas da seguinte forma: PicOutputWidthL = pic_width_in_luma_samples - SubWidthC * (conf_win_right_offset + conf_win_left_offset) (10)PicOutputHeightL = pic_height_in_pic_size_units - SubHeightC * (conf_win_bottom_offset + conf_win_top_offset) (11).
[00202] Quando ChromaArrayType não é igual a 0, as amostras especificadas correspondentes dos dois arranjos de croma são as amostras com coordenadas de imagem (x / SubWidthC, y / SubHeightC), em que (x, y) são as coordenadas de imagem das amostras de luma especificadas.
[00203] NOTA - os parâmetros de desvio de janela de recorte de conformidade são aplicados apenas na saída. Todos os processos de decodificação internos são aplicados ao tamanho de imagem não recortado.
[00204] Sejam PPS_A e PPS_B conjuntos de parâmetros de imagem se referindo ao mesmo conjunto de parâmetros de sequência, é um requisito de conformidade de fluxo de bits que todas as seguintes condições sejam verdadeiras se os valores de pic_width_in_luma_samples em PPS_A e PPS_B forem iguais e os valores de pic_height_in_luma_samples em PPS_A e PPS_B forem iguais:os valores de conf_win_left_offset em PPS_A e PPS_B são os mesmosos valores de conf_win_right_offset em PPS_A e PPS_B são os mesmosos valores de conf_win_top_offset em PPS_A e PPS_B são os mesmosos valores de conf_win_bottom_offset em PPS_A e PPS_B são os mesmos.
[00205] A seguinte restrição é adicionada à semântica de collocated_ref_idxcollocated_ref_idx especifica o índice de referência da imagem colocalizada usada para predição de vetor de movimento temporal.
[00206] Quando slice_type é igual a P ou quando slice_type é igual a B e collocated_from_l0_flag é igual a 1, collocated_ref_idx se refere a uma imagem na lista 0, e o valor de collocated_ref_idx deve estar na faixa de 0 a NumRefIdxActive [0] - 1, inclusive.
[00207] Quando slice_type é igual a B e collocated_from_l0_flag é igual a 0, collocated_ref_idx se refere a uma imagem na lista 1, e o valor de collocated_ref_idx deve estar na faixa de 0 a NumRefIdxActive [1] - 1, inclusive.
[00208] Quando collocated_ref_idx não está presente, o valor de collocated_ref_idx é inferido como igual a 0.
[00209] É um requisito de conformidade de fluxo de bits que a imagem referida por collocated_ref_idx seja a mesma para todas as fatias de uma imagem codificada.
[00210] É um requisito de conformidade de fluxo de bits que as resoluções da imagem de referência referida por collocated_ref_idx e a imagem atual sejam as mesmas.
[00211] É um requisito de conformidade de fluxo de bits que os tamanhos de imagem e as janelas de conformidade da imagem de referência referida por collocated_ref_idx e a imagem atual sejam os mesmos.
[00212] As seguintes condições para definir dmvrFlag para 1 são modificadas- quando todas as seguintes condições forem verdadeiras, dmvrFlag é definido igual a 1: - sps_dmvr_enabled_flag é igual a 1- general_merge_flag [xCb] [yCb] é igual a 1- ambos predFlagL0 [0] [0] e predFlagL1 [0] [0] sãoiguais a 1- mmvd_merge_flag [xCb] [yCb] é igual a 0- DiffPicOrderCnt (currPic, RefPicList [0] [refIdxL0]) é igual a DiffPicOrderCnt (RefPicList [1] [refIdxL1], currPic)- BcwIdx [xCb] [yCb] é igual a 0- ambos luma_weight_l0_flag [refIdxL0] e luma_weight_l1_flag [refIdxL1] são iguais a 0- cbWidth é maior ou igual a 8- cbHeight é maior ou igual a 8- cbHeight * cbWidth é maior ou igual a 128- para X sendo cada um de 0 e 1, o pic_width_in_luma_samples e pic_height_in_luma_samples da imagem de referência refPicLX associada a refIdxLX são iguais a pic_width_in_luma_samples epic_height_in_luma_samples da imagem atual, respectivamente.
[00213] - Para X sendo cada de 0 e 1, opic_width_in_luma_samples, pic_height_in_luma_samples,conf_win_left_offset, conf_win_right_offset,conf_win_top_offset, e conf_win_bottom_offset da imagem de referência refPicLX associada com o refIdxLX são iguais ao pic_width_in_luma_samples, pic_height_in_luma_samples,conf_win_left_offset, conf_win_right_offset,conf_win_top_offset, e conf_win_bottom_offset da imagem atual, respectivamente.
[00214] As seguintes condições para definir dmvrFlag para 1 são modificadas- se todas as condições a seguir forem verdadeiras, bdofFlag será definido igual a TRUE;- sps_bdof_enabled_flag é igual a 1;- predFlagL0 [xSbIdx] [ySbIdx] e predFlagL1 [xSbIdx] [ySbIdx] são ambos iguais a 1;- DiffPicOrderCnt (currPic, RefPicList [0] [refIdxL0])* DiffPicOrderCnt (currPic, RefPicList [1] [refIdxL1]) é menor que 0;- MotionModelIdc [xCb] [yCb] é igual a 0;- merge_subblock_flag [xCb] [yCb] é igual a 0;- sym_mvd_flag [xCb] [yCb] é igual a 0;- BcwIdx [xCb] [yCb] é igual a 0;- luma_weight_l0_flag [refIdxL0] e luma_weight_l1_flag [refIdxL1] são ambos iguais a 0;- cbHeight é maior ou igual a 8- para X sendo cada um de 0 e 1, o pic_width_in_luma_samples e pic_height_in_luma_samples da imagem de referência refPicLX associada a refIdxLX são iguais a pic_width_in_luma_samples epic_height_in_luma_samples da imagem atual, respectivamente.
[00215] - Para X sendo cada de 0 e 1, opic_width_in_luma_samples, pic_height_in_luma_samples,conf_win_left_offset, conf_win_right_offset,conf_win_top_offset, e conf_win_bottom_offse da imagem de referência refPicLX associada com o refIdxLX são iguais ao pic_width_in_luma_samples, pic_height_in_luma_samples,conf_win_left_offset, conf_win_right_offset,conf_win_top_offset, e conf_win_bottom_offse da imagem atual, respectivamente.
[00216] - cIdx é igual a 0.
[00217] A Figura 13 é um diagrama esquemático de um dispositivo de codificação de vídeo 1300 (por exemplo, um codificador de vídeo 20 ou um decodificador de vídeo 30) de acordo com uma modalidade da divulgação. O dispositivo de codificação de vídeo 1300 é adequado para implementar as modalidades divulgadas, conforme descrito neste documento. O dispositivo de codificação de vídeo 1300 compreende portas de ingresso 1310 e unidades receptoras (Rx) 1320 para receber dados; um processador, unidade lógica ou unidade central de processamento (CPU) 1330 para processar os dados; unidades transmissoras (Tx) 1340 e portas de egresso 1350 para transmitir os dados; e uma memória 1360 para armazenar os dados. O dispositivo de codificação de vídeo 1300 também pode compreender componentes ópticos para elétricos (OE) e componentes elétricos para ópticos (EO) acoplados às portas de ingresso 1310, as unidades receptoras 1320, as unidades transmissoras 1340 e as portas de egresso 1350 para egresso ou ingresso de sinais ópticos ou elétricos.
[00218] O processador 1330 é implementado por hardware e software. O processador 1330 pode ser implementado como um ou mais chips de CPU, núcleos (por exemplo, como um processador de múltiplos núcleos), arranjos de portas programáveis em campo (FPGAs), circuitos integrados de aplicação específica (ASICs) e processadores de sinais digitais (DSPs). O processador 1330 está em comunicação com as portas de ingresso 1310, unidades receptoras 1320, unidades transmissoras 1340, portas de egresso 1350 e memória 1360. O processador 1330 compreende um módulo de codificação 1370. O módulo de codificação 1370 implementa as modalidades divulgadas descritas acima. Por exemplo, o módulo de codificação 1370 implementa, processa, prepara ou fornece as várias funções de codec. A inclusão do módulo de codificação 1370, portanto, fornece uma melhoria substancial para a funcionalidade do dispositivo de codificação de vídeo 1300 e efetua uma transformação do dispositivo de codificação de vídeo 1300 para um estado diferente. Alternativamente, o módulo de codificação 1370 é implementado como instruções armazenadas na memória 1360 e executadas pelo processador 1330.
[00219] O dispositivo de codificação de vídeo 1300 também pode incluir dispositivos de entrada e / ou saída (E / S) 1380 para comunicar dados para e de um usuário. Os dispositivos de E / S 1380 podem incluir dispositivos de saída, como uma exibição para exibir dados de vídeo, alto- falantes para emitir dados de áudio, etc. Os dispositivos de E / S 1380 também podem incluir dispositivos de entrada, como um teclado, mouse, trackball, etc. e / ou interfaces correspondentes para interagir com tais dispositivos de saída.
[00220] A memória 1360 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 execução de programa. A memória 1360 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 endereçável por conteúdo ternário (TCAM) e / ou memória de acesso aleatório estática (SRAM).
[00221] A Figura 14 é um diagrama esquemático de uma modalidade de um meio para codificação 1400. Em uma modalidade, o meio para codificação 1400 é implementado em um dispositivo de codificação de vídeo 1402 (por exemplo, um codificador de vídeo 20 ou um decodificador de vídeo 30). O dispositivo de codificação de vídeo 1402 inclui meio de recepção 1401. O meio de recepção 1401 é configurado para receber uma imagem para codificar ou para receber um fluxo de bits para decodificar. O dispositivo de codificação de vídeo 1402 inclui meio de transmissão 1407 acoplados ao meio de recepção 1401. O meio de transmissão 1407 é configurado para transmitir o fluxo de bits para um decodificador ou para transmitir uma imagem decodificada para um meio de exibição (por exemplo, um dos dispositivos de E / S 1380).
[00222] O dispositivo de codificação de vídeo 1402 inclui um meio de armazenamento 1403. O meio de armazenamento 1403 é acoplado a pelo menos um do meio de recepção 1401 ou o meio de transmissão 1407. O meio de armazenamento 1403 é configurado para armazenar instruções. O dispositivo de codificação de vídeo 1402 também inclui meio de processamento 1405. O meio de processamento 1405 é acoplado ao meio de armazenamento 1403. O meio de processamento 1405 é configurado para executar as instruções armazenadas no meio de armazenamento 1403 para realizar os métodos divulgados neste documento.
[00223] Também deve ser entendido que os passos dos métodos exemplares estabelecidos neste documento não são necessariamente necessários para serem realizados na ordem descrita, e a ordem dos passos de tais métodos deve ser entendida como meramente exemplificativa. Da mesma forma, passos adicionais podem ser incluídos em tais métodos e certos passos podem ser omitidos ou combinados, em métodos consistentes com várias modalidades da presente divulgação.
[00224] Embora várias modalidades tenham sido fornecidas na presente divulgação, deve ser entendido que os sistemas e métodos divulgados podem ser incorporados em muitas outras formas específicas sem se afastar do espírito ou escopo da presente divulgação. Os presentes exemplos devem ser considerados ilustrativos e não restritivos, e a intenção não se limita aos detalhes fornecidos neste documento. 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.
[00225] 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 divulgação. Outros itens mostrados ou discutidos como acoplados ou diretamente acoplados ou se comunicando entre si 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 divulgados neste documento.

Claims (35)

1. Fluxo de bits codificado, caracterizado pelo fato de que o fluxo de bits compreende: um primeiro conjunto de parâmetros de imagem (PPS) e um segundo PPS, cada um referindo-se ao mesmo conjunto de parâmetros de sequência (SPS), em que o primeiro PPS compreende um primeiro parâmetro de largura de imagem, um primeiro parâmetro de altura de imagem e uma primeira bandeira de janela de conformidade, e o segundo PPS compreende um segundo parâmetro de largura de imagem, um segundo parâmetro de altura de imagem e uma segunda bandeira de janela de conformidade; em que a primeira bandeira de janela de conformidade sendo igual a 1 especifica que o primeiro PPS compreende ainda primeiros parâmetros de janela de conformidade; e a segunda bandeira de janela de conformidade sendo igual a 1 especifica que o segundo PPS compreende ainda segundos parâmetros de janela de conformidade; equando o primeiro parâmetro de largura de imagem tem um mesmo valor que o segundo parâmetro de largura de imagem e o primeiro parâmetro de altura de imagem tem um mesmo valor que o segundo parâmetro de altura de imagem, os primeiros parâmetros de janela de conformidade têm mesmos valores que os segundos parâmetros de janela de conformidade.
2. Fluxo de bits codificado, de acordo com a reivindicação 1, caracterizado pelo fato de que os primeiros ou segundos parâmetros da janela de conformidade compreendem um desvio à esquerda da janela de conformidade, um desvio à direita da janela de conformidade, um desvio de topo da janela de conformidade e um desvio de fundo da janela de conformidade.
3. Fluxo de bits codificado, de acordo com areivindicação 1 ou 2, caracterizado pelo fato de que oprimeiro ou segundo parâmetro de largura de imagem e oprimeiro ou segundo parâmetro de altura de imagem sãomedidos em amostras de luma.
4. Fluxo de bits codificado, de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que quando a primeira bandeira de janela de conformidade é igual a 0, isso indica que o primeiro PPS não compreende os primeiros parâmetros de janela de conformidade; e quando a segunda bandeira de janela de conformidade é igual a 0, isso indica que o segundo PPS não compreende os segundos parâmetros de janela de conformidade.
5. Fluxo de bits codificado, de acordo com qualquer uma das reivindicações 1 a 4, caracterizado pelo fato de que o primeiro ou segundo SPS compreende um parâmetro de largura de imagem máximo e um parâmetro de altura de imagem máximo, e o parâmetro de largura de imagem máximo e o parâmetro de altura de imagem máximo estão em unidade de amostras de luma.
6. Fluxo de bits codificado, de acordo com qualquer uma das reivindicações 1 a 5, caracterizado pelo fato de que o fluxo de bits compreende uma imagem atual correspondente ao primeiro PPS, em que o primeiro parâmetro de largura de imagem, o primeiro parâmetro de altura de imagem e os primeiros parâmetros de janela de conformidade da imagem atual e uma imagem de referência para a imagem atual são usados para determinar se ou não fluxo óptico bidirecional (BDOF) está habilitado para decodificar a imagem atual.
7. Fluxo de bits codificado, de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que o fluxo de bits compreende uma imagem atual correspondente ao primeiro PPS, em que o primeiro parâmetro de largura de imagem, o primeiro parâmetro de altura de imagem e os primeiros parâmetros de janela de conformidade da imagem atual e uma imagem de referência para a imagem atual são usados para determinar se ou não refinamento do vetor de movimento do lado do decodificador (DMVR) está habilitado para decodificar a imagem atual.
8. Dispositivo para armazenar um fluxo de bits, caracterizado pelo fato de que o dispositivo compreende pelo menos um meio de armazenamento e pelo menos uma interface de comunicação;em que a pelo menos uma interface de comunicação é configurada para receber ou transmitir o fluxo de bits;o pelo menos um meio de armazenamento é configurado para armazenar o fluxo de bits;em que o fluxo de bits compreende um primeiro conjunto de parâmetros de imagem (PPS) e um segundo PPS, cada um referindo-se ao mesmo conjunto de parâmetros de sequência (SPS), em que o primeiro PPS compreende um primeiro parâmetro de largura de imagem, um primeiro parâmetro de altura de imagem e uma primeira bandeira de janela de conformidade, e o segundo PPS compreende um segundo parâmetro de largura de imagem, um segundo parâmetro de altura de imagem e uma segunda bandeira de janela de conformidade; em que a primeira bandeira de janela de conformidade sendo igual a 1 especifica que o primeiro PPS compreende ainda primeiros parâmetros de janela de conformidade; e a segunda bandeira de janela de conformidade sendo igual a 1 especifica que o segundo PPS compreende ainda segundos parâmetros de janela de conformidade; equando o primeiro parâmetro de largura de imagem tem um mesmo valor que o segundo parâmetro de largura de imagem e o primeiro parâmetro de altura de imagem tem um mesmo valor que o segundo parâmetro de altura de imagem, os primeiros parâmetros de janela de conformidade têm mesmos valores que os segundos parâmetros de janela de conformidade.
9. Dispositivo, de acordo com a reivindicação 8, caracterizado pelo fato de que os primeiros ou segundos parâmetros da janela de conformidade compreendem um desvio à esquerda da janela de conformidade, um desvio à direita da janela de conformidade, um desvio de topo da janela de conformidade e um desvio de fundo da janela de conformidade.
10. Dispositivo, de acordo com a reivindicação 8 ou 9, caracterizado pelo fato de que o primeiro ou segundo parâmetro de largura de imagem e o primeiro ou segundo parâmetro de altura de imagem são medidos em amostras de luma.
11. Dispositivo, de acordo com qualquer uma das reivindicações 8 a 10, caracterizado pelo fato de que quando a primeira bandeira de janela de conformidade é igual a 0, isso indica que o primeiro PPS não compreende os parâmetros de janela de conformidade; e quando a segunda bandeira de janela de conformidade é igual a 0, isso indica que o segundo PPS não compreende os parâmetros de janela de conformidade.
12. Dispositivo, de acordo com qualquer uma das reivindicações 8 a 11, caracterizado pelo fato de que o SPS compreende um parâmetro de largura de imagem máximo e um parâmetro de altura de imagem máximo, e o parâmetro de largura de imagem máximo e o parâmetro de altura de imagem máximo estão em unidade de amostras de luma.
13. Dispositivo, de acordo com qualquer uma das reivindicações 8 a 12, caracterizado pelo fato de que o fluxo de bits compreende uma imagem atual correspondente ao primeiro PPS, em que o primeiro parâmetro de largura de imagem, o primeiro parâmetro de altura de imagem e os primeiros parâmetros de janela de conformidade da imagem atual e uma imagem de referência para a imagem atual é usada para determinar se ou não o fluxo óptico bidirecional (BDOF) está habilitado para decodificar a imagem atual.
14. Dispositivo, de acordo com qualquer uma das reivindicações 8 a 13, caracterizado pelo fato de que o fluxo de bits compreende uma imagem atual correspondente ao primeiro PPS, em que o primeiro parâmetro de largura de imagem, o primeiro parâmetro de altura de imagem e os primeiros parâmetros de janela de conformidade da imagem atual e uma imagem de referência para a imagem atual são usados para determinar se ou não refinamento de vetor de movimento de lado de decodificador (DMVR) está habilitado para decodificar a imagem atual.
15. Método para armazenar um fluxo de bits, caracterizado pelo fato de que compreende:receber ou transmitir um fluxo de bits através de uma interface de comunicação;armazenar o fluxo de bits em um ou mais meios de armazenamento, em que o fluxo de bits compreende um primeiro conjunto de parâmetros de imagem (PPS) e um segundo PPS, cada um referindo-se ao mesmo conjunto de parâmetros de sequência (SPS), em que o primeiro PPS compreende um primeiro parâmetro de largura de imagem, um primeiro parâmetro de altura de imagem e uma primeira bandeira de janela de conformidade, e o segundo PPS compreende um segundo parâmetro de largura de imagem, um segundo parâmetro de altura de imagem e uma segunda bandeira de janela de conformidade; em que a primeira bandeira de janela de conformidade sendo igual a 1 especifica que o primeiro PPS compreende ainda primeiros parâmetros de janela de conformidade; e a segunda bandeira de janela de conformidade sendo igual a 1 especifica que o segundo PPS compreende ainda segundos parâmetros de janela de conformidade; equando o primeiro parâmetro de largura de imagem tem um mesmo valor que o segundo parâmetro de largura de imagem e o primeiro parâmetro de altura de imagem tem um mesmo valor que o segundo parâmetro de altura de imagem, os primeiros parâmetros de janela de conformidade têm mesmos valores que os segundos parâmetros de janela de conformidade.
16. Método, de acordo com a reivindicação 15, caracterizado pelo fato de que o primeiro ou segundo parâmetros da janela de conformidade compreendem um desvio à esquerda da janela de conformidade, um desvio à direita da janela de conformidade, um desvio de topo da janela de conformidade e um desvio de fundo da janela de conformidade.
17. Método, de acordo com a reivindicação 15 ou 16, caracterizado pelo fato de que o primeiro ou segundo parâmetro de largura de imagem e o primeiro ou segundo parâmetro de altura de imagem são medidos em amostras de luma.
18. Método, de acordo com qualquer uma das reivindicações 15 a 17, caracterizado pelo fato de que quando a primeira bandeira de janela de conformidade é igual a 0, isso indica que o primeiro PPS não compreende os parâmetros de janela de conformidade; e quando a segunda bandeira de janela de conformidade é igual a 0, isso indica que o segundo PPS não compreende os parâmetros de janela de conformidade.
19. Método, de acordo com qualquer uma das reivindicações 15 a 18, caracterizado pelo fato de que o SPS compreende um parâmetro de largura de imagem máximo e um parâmetro de altura de imagem máximo, e o parâmetro de largura de imagem máximo e o parâmetro de altura de imagem máximo estão em unidade de amostras de luma.
20. Dispositivo para transmitir um fluxo de bits, caracterizado pelo fato de que o dispositivo compreende:pelo menos um meio de armazenamento, configurado para armazenar pelo menos um fluxo de bits, em que o fluxo de bits compreende: um primeiro conjunto de parâmetros de imagem (PPS) e um segundo PPS, cada um referindo-se ao mesmo conjunto de parâmetros de sequência (SPS), em que o primeiro PPS compreende um primeiro parâmetro de largura de imagem, um primeiro parâmetro de altura de imagem e uma primeira bandeira de janela de conformidade, e o segundo PPS compreende um segundo parâmetro de largura de imagem, um segundo parâmetro de altura de imagem e uma segunda bandeira de janela de conformidade; em que a primeira bandeira de janela de conformidade sendo igual a 1 especifica que o primeiro PPS compreende ainda primeiros parâmetros de janela de conformidade; e a segunda bandeira de janela de conformidade sendo igual a 1 especifica que o segundo PPS compreende ainda segundos parâmetros de janela de conformidade; e quando o primeiro parâmetro de largura de imagem tem um mesmo valor que o segundo parâmetro de largura de imagem e o primeiro parâmetro de altura de imagem tem um mesmo valor que o segundo parâmetro de altura de imagem, os primeiros parâmetros de janela de conformidade tem mesmos valores que os segundos parâmetros de janela de conformidade;pelo menos um processador, configurado para obter um ou mais fluxos de bits a partir de um do pelo menos um meio de armazenamento, e transmitir o um ou mais fluxos de bits para um dispositivo de destino.
21. Dispositivo, de acordo com a reivindicação 20, caracterizado pelo fato de que os primeiros ou segundos parâmetros da janela de conformidade compreendem um desvio à esquerda da janela de conformidade, um desvio à direita da janela de conformidade, um desvio de topo da janela de conformidade e um desvio de fundo da janela de conformidade.
22. Dispositivo, de acordo com a reivindicação 20 ou 21, caracterizado pelo fato de que o primeiro ou segundo parâmetro de largura de imagem e o primeiro ou segundo parâmetro de altura de imagem são medidos em amostras de luma.
23. Dispositivo, de acordo com qualquer uma das reivindicações 20 a 22, caracterizado pelo fato de que quando a primeira bandeira de janela de conformidade é igual a 0, isso indica que o primeiro PPS não compreende os parâmetros da janela de conformidade; e quando a segunda bandeira de janela de conformidade é igual a 0, isso indica que o segundo PPS não compreende os parâmetros da janela de conformidade.
24. Dispositivo, de acordo com qualquer uma das reivindicações 20 a 23, caracterizado pelo fato de que o SPS compreende um parâmetro de largura de imagem máximo e um parâmetro de altura de imagem máximo, e o parâmetro de largura de imagem máximo e o parâmetro de altura de imagem máximo estão em unidade de amostras de luma.
25. Método para transmitir um fluxo de bits, caracterizado pelo fato de que compreende:armazenar pelo menos um fluxo de bits em pelo menos um meio de armazenamento, em que o fluxo de bits compreende: um primeiro conjunto de parâmetros de imagem (PPS) e um segundo PPS, cada um referindo-se ao mesmo conjunto de parâmetros de sequência (SPS), em que o primeiro PPS compreende um primeiro parâmetro de largura de imagem, um primeiro parâmetro de altura de imagem e uma primeira bandeira de janela de conformidade, e o segundo PPS compreende um segundo parâmetro de largura de imagem, um segundo parâmetro de altura de imagem e uma segunda bandeira de janela de conformidade; em que a primeira bandeira de janela de conformidade sendo igual a 1 especifica que o primeiro PPS compreende ainda primeiros parâmetros de janela de conformidade; e a segunda bandeira de janela de conformidade sendo igual a 1 especifica que o segundo PPS compreende ainda segundos parâmetros de janela de conformidade; e quando o primeiro parâmetro de largura de imagem tem um mesmo valor que o segundo parâmetro de largura de imagem e o primeiro parâmetro de altura de imagem tem um mesmo valor que o segundo parâmetro de altura de imagem, os primeiros parâmetros de janela de conformidade tem mesmos valores que os segundos parâmetros de janela de conformidade;obter um ou mais fluxos de bits a partir de um do pelo menos um meio de armazenamento, etransmitir o um ou mais fluxos de bits para um dispositivo de destino.
26. Método, de acordo com a reivindicação 25, caracterizado pelo fato de que os primeiros ou segundos parâmetros da janela de conformidade compreendem um desvio à esquerda da janela de conformidade, um desvio à direita da janela de conformidade, um desvio de topo da janela de conformidade e um desvio de fundo da janela de conformidade.
27. Método, de acordo com a reivindicação 25 ou 26, caracterizado pelo fato de que o primeiro ou segundo parâmetro de largura de imagem e o primeiro ou segundo parâmetro de altura de imagem são medidos em amostras de luma.
28. Método, de acordo com qualquer uma das reivindicações 25 a 27, caracterizado pelo fato de que quando a primeira bandeira de janela de conformidade é igual a 0, isso indica que o primeiro PPS não compreende os parâmetros da janela de conformidade; e quando a segunda bandeira de janela de conformidade é igual a 0, isso indica que o segundo PPS não compreende os parâmetros da janela de conformidade.
29. Método, de acordo com qualquer uma das reivindicações 25 a 28, caracterizado pelo fato de que o SPS compreende um parâmetro de largura de imagem máximo e um parâmetro de altura de imagem máximo, e o parâmetro de largura de imagem máximo e o parâmetro de altura de imagem máximo estão em unidade de amostras de luma.
30. Sistema para processar um fluxo de bits, caracterizado pelo fato de que compreende: um dispositivo de codificação, um ou mais dispositivos de armazenamento e um dispositivo de decodificação, em que:o dispositivo de codificação é configurado para obter sinal de vídeo e codificar o sinal de vídeo para obter um ou mais fluxos de bits; e o fluxo de bits compreende um primeiro conjunto de parâmetros de imagem (PPS) e um segundo PPS, cada um referindo-se ao mesmo conjunto de parâmetros de sequência (SPS), em que o primeiro PPS compreende um primeiro parâmetro de largura de imagem, um primeiro parâmetro de altura de imagem e uma primeira bandeira de janela de conformidade, e o segundo PPS compreende um segundo parâmetro de largura de imagem, um segundo parâmetro de altura de imagem e uma segunda bandeira de janela de conformidade; em que a primeira bandeira de janela de conformidade sendo igual a 1 especifica que o primeiro PPS compreende ainda primeiros parâmetros de janela de conformidade; e a segunda bandeira de janela de conformidade sendo igual a 1 especifica que o segundo PPS compreende ainda segundos parâmetros de janela de conformidade; e quando o primeiro parâmetro de largura de imagem tem um mesmo valor que o segundo parâmetro de largura de imagem e o primeiro parâmetro de altura de imagem tem um mesmo valor que o segundo parâmetro de altura de imagem, os primeiros parâmetros de janela de conformidade têm mesmos valores que os segundos parâmetros de janela de conformidade;o um ou mais dispositivos de armazenamento são usados para armazenar o um ou mais fluxos de bits;o dispositivo de decodificação é usado para decodificar o um ou mais fluxos de bits.
31. Sistema, de acordo com a reivindicação 30, caracterizado pelo fato de que o primeiro ou segundo parâmetros da janela de conformidade compreendem um desvio à esquerda da janela de conformidade, um desvio à direita da janela de conformidade, um desvio de topo da janela de conformidade e um desvio de fundo da janela de conformidade.
32. Sistema, de acordo com a reivindicação 30 ou 31, caracterizado pelo fato de que o primeiro ou segundo parâmetro de largura de imagem e o primeiro ou segundo parâmetro de altura de imagem são medidos em amostras de luma.
33. Sistema, de acordo com qualquer uma das reivindicações 30 a 32, caracterizado pelo fato de compreender ainda um dispositivo de captura de vídeo configurado para capturar o sinal de vídeo.
34. Sistema, de acordo com qualquer uma das reivindicações 30 a 33, caracterizado pelo fato de que quando a primeira bandeira de janela de conformidade é igual a 0, isso indica que o primeiro PPS não compreende os parâmetros de janela de conformidade; e quando a segunda bandeira de janela de conformidade é igual a 0, isso indica que o segundo PPS não compreende os parâmetros da janela de conformidade.
35. Sistema, de acordo com qualquer uma das reivindicações 30 a 34, caracterizado pelo fato de que o SPS compreende um parâmetro de largura de imagem máximo e um parâmetro de altura de imagem máximo, e o parâmetro de largura de imagem máximo e o parâmetro de altura de imagem máximo estão em unidade de amostras de luma.
BR122023005531-4A 2019-07-08 2020-07-07 Fluxo de bits codificado, dispositivo para armazenar um fluxo de bits, método para armazenar um fluxo de bits, dispositivo para transmitir um fluxo de bits, método para transmitir um fluxo de bits e sistema para processar um fluxo de bits BR122023005531B1 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US62/871,493 2019-07-08

Publications (1)

Publication Number Publication Date
BR122023005531B1 true BR122023005531B1 (pt) 2024-11-12

Family

ID=

Similar Documents

Publication Publication Date Title
BR122022009663A2 (pt) Prevenção de sinalização redundante em fluxos de bits de vídeo de múltiplas camadas
US11785220B2 (en) Handling of multiple picture size and conformance windows for reference picture resampling in video coding
CN114845116B (zh) 在多层视频码流中支持在接入单元内包括混合irap图像和非irap图像
BR122022009674A2 (pt) Método implementado por um codificador, dispositivo e aparelho de codificação, sistema e meio para codificação
BR122022009680A2 (pt) Método implementado em um codificador, dispositivo de codificação de vídeo, meio legível por computador não transitório e codificador
BR122022009715A2 (pt) Método implementado por um codificador, dispositivo de codificação de vídeo, meio legível por computador não transitório, e codificador
BR122023003915B1 (pt) Fluxo de bits, método e dispositivo para armazenar um fluxo de bits,sistema e método para transmitir um fluxo de bits, e sistema para processar um fluxo de bits
BR122023005531B1 (pt) Fluxo de bits codificado, dispositivo para armazenar um fluxo de bits, método para armazenar um fluxo de bits, dispositivo para transmitir um fluxo de bits, método para transmitir um fluxo de bits e sistema para processar um fluxo de bits
BR112022000292B1 (pt) Método de decodificação implementado por um decodificador de vídeo, método de codificação implementado por um codificador de vídeo, dispositivo de decodificação, dispositivo de codificação, aparelho de codificação, sistema de codificação e decodificação, e meio para codificação
RU2817618C2 (ru) Обработка множества размеров изображения и окон соответствия для передискретизации опорного изображения при кодировании видео
RU2822714C9 (ru) Поддержка смешанных снимков irar и he-irar в пределах единицы доступа в многослойных битовых видеопотоках
RU2832214C1 (ru) Сигнализация заголовка изображения при кодировании видео
RU2829981C1 (ru) Сигнализация заголовка изображения при кодировании видео
BR122024004652A2 (pt) Codificador, decodificador e métodos correspondentes
BR122024006612A2 (pt) Fluxo de bits codificado e aparelho para armazenar um fluxo de bits
BR112022004859B1 (pt) Método implementado por um decodificador, método implementado por um codificador, dispositivo, aparelho e sistema de codificação, e meios para codificação
BR122023004245B1 (pt) Imagens com tipos de unidade nal mista
BR112016021476B1 (pt) Método e dispositivo para codificar dados de vídeo e memória legível por computador