BR122023027041A2 - Dispositivo de decodificação de sinal de vídeo, dispositivo de codificação de sinal de vídeo, meio legível por computador não transitório e método de decodificação de sinal de vídeo - Google Patents

Dispositivo de decodificação de sinal de vídeo, dispositivo de codificação de sinal de vídeo, meio legível por computador não transitório e método de decodificação de sinal de vídeo Download PDF

Info

Publication number
BR122023027041A2
BR122023027041A2 BR122023027041-0A BR122023027041A BR122023027041A2 BR 122023027041 A2 BR122023027041 A2 BR 122023027041A2 BR 122023027041 A BR122023027041 A BR 122023027041A BR 122023027041 A2 BR122023027041 A2 BR 122023027041A2
Authority
BR
Brazil
Prior art keywords
subfigure
sps
flag
value
syntax
Prior art date
Application number
BR122023027041-0A
Other languages
English (en)
Inventor
Dongcheol Kim
Jaehong Jung
Geonjung KO
Juhyung Son
Jinsam Kwak
Original Assignee
Wilus Institute Of Standards And Technology Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wilus Institute Of Standards And Technology Inc. filed Critical Wilus Institute Of Standards And Technology Inc.
Publication of BR122023027041A2 publication Critical patent/BR122023027041A2/pt

Links

Abstract

Um dispositivo de decodificação de sinal de vídeo compreende um processador, em que: o processador decodifica uma sintaxe de carga útil de sequência de bytes brutos (RBSP) do conjunto de parâmetros de sequência (SPS) incluída em um fluxo de bits de um sinal de vídeo, e decodifica o fluxo de bits com base no resultado de decodificação da sintaxe de RBSP de SPS; a sintaxe de RBSP de SPS inclui um primeiro elemento de sintaxe relacionado ao número de uma ou mais subfiguras configurando uma figura, e um segundo elemento de sintaxe indicando se deve processar um limite das uma ou mais subfiguras como um limite da uma figura com base no primeiro elemento de sintaxe; e o segundo elemento de sintaxe é analisado apenas quando o número das uma ou mais subfiguras é dois ou mais.

Description

CAMPO DA TÉCNICA
[001] A presente divulgação refere-se a um método de processamento de sinal de vídeo e aparelho, e mais particularmente, a um método de processamento de sinal de vídeo e aparelho para codificar ou decodificar um sinal de vídeo.
FUNDAMENTOS DA TÉCNICA
[002] A codificação de compressão refere-se a uma série de técnicas de processamento de sinal para transmitir informações digitalizadas através de uma linha de comunicação ou armazenar informações em uma forma adequada para um meio de armazenamento. Um objeto de codificação de compressão inclui objetos como voz, vídeo e texto e, em particular, uma técnica para realizar codificação de compressão em uma imagem é chamada de compressão de vídeo. A codificação de compressão para um sinal de vídeo é realizada removendo o excesso de informações em consideração à correlação espacial, correlação temporal e correlação estocástica. No entanto, com o desenvolvimento recente de vários meios de comunicação e meios de transmissão de dados, são necessários um método e aparelho de processamento de sinal de vídeo mais eficientes.
DIVULGAÇÃO DA INVENÇÃO PROBLEMA DA TÉCNICA
[003] A presente divulgação destina-se a fornecer um método de processamento de sinal de vídeo e um dispositivo para aumentar a eficiência de codificação do sinal de vídeo.
SOLUÇÃO DA TÉCNICA
[004] A presente divulgação fornece um método de processamento de sinal de vídeo e um dispositivo para o mesmo.
[005] Em detalhes, um dispositivo de decodificação de sinal de vídeo inclui um processador, em que o processador decodifica uma sintaxe de carga útil de sequência de bytes brutos (RBSP) do conjunto de parâmetros de sequência (SPS) incluída em um fluxo de bits de um sinal de vídeo, e decodifica o fluxo de bits com base em um resultado de decodificação da sintaxe de RBSP de SPS, em que a sintaxe de RBSP de SPS inclui um primeiro elemento de sintaxe relacionado ao número de pelo menos uma subfigura constituindo uma figura, e inclui um segundo elemento de sintaxe indicando se um limite da pelo menos uma subfigura é processado como um limite de uma figura com base no primeiro elemento de sintaxe, em que o segundo elemento de sintaxe é analisado apenas quando o número de pelo menos uma subfigura é pelo menos 2.
[006] Além disso, na presente divulgação, um dispositivo de codificação de sinal de vídeo inclui um processador, em que o processador obtém uma sintaxe de carga útil de sequência de bytes brutos (RBSP) do conjunto de parâmetros de sequência (SPS), e codifica um fluxo de bits incluindo a sintaxe de RBSP de SPS, em que a sintaxe de RBSP de SPS inclui um primeiro elemento de sintaxe relacionado ao número de pelo menos uma subfigura constituindo uma figura, e inclui um segundo elemento de sintaxe indicando se um limite da pelo menos uma subfigura é processado como um limite de uma figura com base no primeiro elemento de sintaxe, em que o segundo elemento de sintaxe é analisado apenas quando o número de pelo menos uma subfigura é pelo menos 2.
[007] Além disso, na presente divulgação, um meio legível por computador não transitório que armazena um fluxo de bits de um sinal de vídeo é fornecido, em que o fluxo de bits é codificado através de um método de codificação incluindo: obter uma sintaxe de carga útil de sequência de bytes brutos (RBSP) do conjunto de parâmetros de sequência (SPS); e codificar um fluxo de bits incluindo a sintaxe de RBSP de SPS, em que a sintaxe de RBSP de SPS inclui um primeiro elemento de sintaxe relacionado ao número de pelo menos uma subfigura constituindo uma figura, e inclui um segundo elemento de sintaxe indicando se um limite da pelo menos uma subfigura é processado como um limite de uma figura com base no primeiro elemento de sintaxe, em que o segundo elemento de sintaxe é analisado apenas quando o número de pelo menos uma subfigura é pelo menos 2.
[008] Além disso, na presente divulgação, o primeiro elemento de sintaxe indica um valor obtido subtraindo 1 do número de pelo menos uma subfigura.
[009] Além disso, na presente divulgação, o segundo elemento de sintaxe ainda indica se a filtragem em loop é aplicada ao limite da pelo menos uma subfigura.
[010] Além disso, na presente divulgação, o valor indicado pelo primeiro elemento de sintaxe é maior do que 0.
[011] Além disso, na presente divulgação, quando o número de pelo menos uma subfigura é 1, o segundo elemento de sintaxe é inferido como um valor predefinido indicando uma operação específica.
[012] Além disso, na presente divulgação, a sintaxe de RBSP de SPS inclui um terceiro elemento de sintaxe indicando se as informações relacionadas a pelo menos uma subfigura estão presentes, e inclui um quarto elemento de sintaxe indicando se o mapeamento de ID para a pelo menos uma subfigura está presente, em que o quarto elemento de sintaxe é analisado quando o terceiro elemento de sintaxe indica presença das informações relacionadas a pelo menos uma subfigura, e quando o quarto elemento de sintaxe indica presença do mapeamento de ID para a pelo menos uma subfigura, um valor de mapeamento de ID para a pelo menos uma subfigura é sinalizado na sintaxe de RBSP de SPS.
[013] Além disso, na presente divulgação, quando o quarto elemento de sintaxe indica presença do mapeamento de ID para a pelo menos uma subfigura e o valor de mapeamento de ID para a pelo menos uma subfigura não é sinalizado na sintaxe de RBSP de SPS, o valor de mapeamento de ID para a pelo menos uma subfigura é sinalizado em uma sintaxe de RBSP do conjunto de parâmetros de figura (PPS) referente à sintaxe de RBSP de SPS.
EFEITOS VANTAJOSOS
[014] A presente divulgação fornece um método para processar eficientemente um sinal de vídeo.
[015] Os efeitos obtidos a partir da presente divulgação não estão limitados aos efeitos acima, e outros efeitos seriam claramente compreendidos por aquelas pessoas versadas na técnica a partir da descrição a seguir.
BREVE DESCRIÇÃO DOS DESENHOS
[016] A Figura 1 é um diagrama de blocos esquemático de um aparelho de codificação de sinal de vídeo de acordo com uma modalidade da presente invenção.
[017] A Figura 2 é um diagrama de blocos esquemático de um aparelho de decodificação de sinal de vídeo de acordo com uma modalidade da presente invenção.
[018] A Figura 3 mostra uma modalidade na qual uma unidade de árvore de codificação é dividida em unidades de codificação em uma figura.
[019] A Figura 4 mostra uma modalidade de um método para sinalizar uma divisão de uma árvore quaternária e uma árvore multi-tipo.
[020] As Figuras 5 e 6 ilustram mais especificamente um método de intrapredição de acordo com uma modalidade da presente invenção.
[021] A Figura 7 é um diagrama que ilustra uma porção de uma estrutura de sintaxe de alto nível de acordo com uma modalidade da presente invenção.
[022] A Figura 8 é um diagrama que ilustra um tipo de unidade de camada abstrata de rede (NAL) de acordo com uma modalidade da presente invenção.
[023] A Figura 9 é um diagrama que ilustra que uma figura é dividida em CTUs, blocos, e fatias de acordo com uma modalidade da presente invenção.
[024] A Figura 10 é um diagrama que ilustra que uma figura é dividida em uma pluralidade de subfigura de acordo com uma modalidade da presente invenção.
[025] A Figura 11 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de conjunto de parâmetros de sequência de acordo com uma modalidade da presente invenção.
[026] A Figura 12 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de conjunto de parâmetros de figura de acordo com uma modalidade da presente invenção.
[027] A Figura 13 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de cabeçalho de figura de acordo com uma modalidade da presente invenção.
[028] A Figura 14 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de cabeçalho de figura de acordo com uma modalidade da presente invenção.
[029] A Figura 15 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de cabeçalho de figura de acordo com uma modalidade da presente invenção.
[030] A Figura 16 ilustra uma estrutura de sintaxe e semântica de RBSP de conjunto de parâmetros de figura de acordo com uma modalidade da presente invenção.
[031] A Figura 17 é um diagrama que ilustra um método para determinar uma variável de matriz SubpicIdList[i] de acordo com uma modalidade da presente invenção.
[032] A Figura 18 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de conjunto de parâmetros de sequência de acordo com uma modalidade da presente invenção.
[033] A Figura 19 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de conjunto de parâmetros de sequência de acordo com uma modalidade da presente invenção.
[034] A Figura 20 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de conjunto de parâmetros de sequência de acordo com uma modalidade da presente invenção.
[035] A Figura 21 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de cabeçalho de figura de acordo com uma modalidade da presente invenção.
[036] A Figura 22 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de cabeçalho de figura de acordo com uma modalidade da presente invenção.
[037] A Figura 23 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de cabeçalho de figura de acordo com uma modalidade da presente invenção.
[038] A Figura 24 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de conjunto de parâmetros de sequência de acordo com uma modalidade da presente invenção.
[039] A Figura 25 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de conjunto de parâmetros de sequência de acordo com uma modalidade da presente invenção.
[040] A Figura 26 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de conjunto de parâmetros de figura de acordo com uma modalidade da presente invenção.
[041] A Figura 27 é um diagrama que ilustra elemento de sintaxe subpic_id_mapping_in_pps_flag incluído em um conjunto de parâmetro de figura de acordo com uma modalidade da presente invenção.
[042] A Figura 28 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de conjunto de parâmetros de figura de acordo com uma modalidade da presente invenção.
[043] A Figura 29 é um diagrama que ilustra uma unidade de camada abstrata de rede (NAL) que é uma unidade básica constituindo um fluxo de bits de acordo com uma modalidade da presente invenção.
[044] A Figura 30 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de conjunto de parâmetros de decodificação, uma estrutura de sintaxe de RBSP de conjunto de parâmetros de sequência, e uma estrutura de sintaxe de nível de camada de perfil de acordo com uma modalidade da presente invenção.
[045] A Figura 31 é um diagrama que ilustra uma sintaxe de RBSP de conjunto de parâmetros de vídeo e uma sintaxe geral de informação de restrição de acordo com uma modalidade da presente invenção.
[046] A Figura 32 é um diagrama que ilustra uma sintaxe de RBSP de conjunto de parâmetros de sequência de acordo com uma modalidade da presente invenção.
[047] A Figura 33 é um diagrama que ilustra uma sintaxe de RBSP de conjunto de parâmetros de sequência de acordo com uma modalidade da presente invenção.
[048] A Figura 34 é um diagrama que ilustra uma sintaxe de RBSP de conjunto de parâmetros de sequência de acordo com uma modalidade da presente invenção.
[049] A Figura 35 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de conjunto de parâmetros de sequência de acordo com uma modalidade da presente invenção.
[050] A Figura 36 é um diagrama que ilustra uma sintaxe geral de informação de restrição estrutura de acordo com uma modalidade da presente invenção.
MODO PARA REALIZAR A INVENÇÃO
[051] Os termos usados neste relatório descritivo podem ser termos gerais atualmente amplamente utilizados em consideração às funções da presente invenção, mas podem variar de acordo com as intenções das pessoas versadas na técnica, costumes ou o advento de novas tecnologias. Além disso, em certos casos, pode haver termos que o requerente seleciona arbitrariamente e, neste caso, seus significados são descritos em uma parte de descrição correspondente da presente invenção. Assim, os termos usados nesta especificação devem ser interpretados com base nos significados substanciais dos termos e conteúdos em todo o relatório descritivo.
[052] Neste relatório descritivo, alguns termos podem ser interpretados como segue. A codificação pode ser interpretada como codificação ou decodificação em alguns casos. No presente relatório descritivo, um aparelho para gerar um fluxo de bits de sinal de vídeo realizando a encodificação (codificação) de um sinal de vídeo é denominado como um aparelho de codificação ou um codificador, e um aparelho que realiza a decodificação (decodificação) de um fluxo de bits de sinal de vídeo para reconstruir um sinal de vídeo é denominado como um aparelho de decodificação ou decodificador. Além disso, neste relatório descritivo, o aparelho de processamento de sinal de vídeo é usado como um termo de um conceito que inclui um codificador e um decodificador. Informação é um termo que inclui todos os valores, parâmetros, coeficientes, elementos, etc. Em alguns casos, o significado é interpretado de forma diferente, de modo que a presente invenção não está limitada a ele. “Unidade” é usado como um significado para se referir a uma unidade básica de processamento de imagem ou a uma posição específica de uma figura e refere-se a uma região de imagem incluindo pelo menos um componente de luma e um componente de croma. Além disso, “bloco” refere-se a uma região de imagem incluindo um componente específico entre componentes de luma e componentes de croma (isto é, Cb e Cr). No entanto, dependendo da modalidade, termos como “unidade”, “bloco”, “partição” e “região” podem ser usados alternadamente. Além disso, nesta especificação, uma unidade pode ser usada como um conceito incluindo toda uma unidade de codificação, uma unidade de predição e uma unidade de transformada. A figura indica um campo ou quadro e, de acordo com uma modalidade, os termos podem ser usados alternadamente.
[053] A Figura 1 é um diagrama de blocos esquemático de um aparelho de codificação de sinal de vídeo 100 de acordo com uma modalidade da presente invenção. Com referência à Figura 1, o aparelho de codificação 100 da presente invenção inclui uma unidade de transformada 110, uma unidade de quantização 115, uma unidade de quantização inversa 120, uma unidade de transformada inversa 125, uma unidade de filtragem 130, uma unidade de predição 150, e uma unidade de codificação de entropia 160.
[054] A unidade de transformada 110 obtém um valor de um coeficiente de transformada transformando um sinal residual, que é uma diferença entre o sinal de vídeo de entrada e o sinal previsto gerado pela unidade de predição 150. Por exemplo, uma Transformada de Cosseno Discreta (DCT), uma Transformada de Seno Discreta (DST) ou uma Transformada de Wavelet pode ser usada. O DCT e o DST realizam a transformada dividindo o sinal da figura de entrada em blocos. Na transformada, a eficiência de codificação pode variar de acordo com a distribuição e características dos valores na região de transformada. A unidade de quantização 115 quantifica o valor do valor do coeficiente de transformada emitido da unidade de transformada 110.
[055] De modo a melhorar a eficiência de codificação, em vez de codificar o sinal de figura como está, um método de prever uma figura usando uma região já codificada através da unidade de predição 150 e obter uma figura reconstruída adicionando um valor residual entre a figura original e a figura predita para a figura predita é usada. Para evitar incompatibilidades no codificador e no decodificador, as informações que podem ser usadas no decodificador devem ser usadas ao realizar a predição no codificador. Para isso, o codificador realiza novamente um processo de reconstrução do bloco atual codificado. A unidade de quantização inversa 120 quantiza inversamente o valor do coeficiente de transformada, e a unidade de transformada inversa 125 reconstrói o valor residual usando o valor do coeficiente de transformada quantizado inverso. Enquanto isso, a unidade de filtragem 130 realiza operações de filtragem para melhorar a qualidade da figura reconstruída e para melhorar a eficiência de codificação. Por exemplo, um filtro de desbloqueio, um desvio adaptativo de amostra (SAO) e um filtro de loop adaptativo podem ser incluídos. A figura filtrada é emitida ou armazenada em um buffer de figura decodificado (DPB) 156 para uso como uma figura de referência.
[056] De modo a aumentar a eficiência de codificação, em vez de codificar um sinal de figura como está, é usado um método para adquirir uma figura reconstruída em que uma figura é prevista usando uma região que já foi codificada através da unidade de predição 150, e um valor residual entre a figura original e a figura predita é adicionado à figura predita. Uma unidade de intrapredição 152 realiza intrapredição dentro da figura atual e uma unidade de interpredição 154 prevê a figura atual usando uma figura de referência armazenada no buffer de figura decodificado 156. A unidade de intrapredição 152 executa intrapredição de regiões reconstruídas na figura atual figura, e transmite informação de intracodificação para uma unidade de codificação de entropia 160. Novamente, a unidade de interpredição 154 pode incluir uma unidade de estimativa de movimento 154a e uma unidade de compensação de movimento 154b. A unidade de estimativa de movimento 154a obtém um valor de vetor de movimento da região atual referindo-se à região específica reconstruída. A unidade de estimativa de movimento 154a pode transmitir informação de posição (quadro de referência, vetor de movimento ou semelhante) da região de referência para a unidade de codificação de entropia 160 a ser incluída no fluxo de bits. A unidade de compensação de movimento 154b realiza compensação entre movimentos usando o valor do vetor de movimento transmitido da unidade de estimativa de movimento 154a.
[057] A unidade de predição 150 inclui uma unidade de intrapredição 152 e uma unidade de interpredição 154. A unidade de intrapredição 152 realiza intrapredição na figura atual e a unidade de interpredição 154 executa interpredição para prever a figura atual usando a figura de referência armazenada no DPB 156. A unidade de intrapredição 152 realiza intrapredição de amostras reconstruídas na figura atual e transmite informações de intracodificação para a unidade de codificação de entropia 160. A informação de intracodificação pode incluir pelo menos um de um modo de intrapredição, um sinalizador de Modo mais provável (MPM) e um índice de MPM. As informações de intracodificação podem incluir informações sobre a amostra de referência. A unidade de interpredição 154 pode incluir uma unidade de estimativa de movimento 154a e uma unidade de compensação de movimento 154b. A unidade de estimativa de movimento 154a refere-se a uma região específica da figura de referência reconstruída para obter um valor de vetor de movimento da região atual. A unidade de estimativa de movimento 154a transmite o conjunto de informações de movimento (índice de figura de referência, informação de vetor de movimento, etc.) na região de referência para a unidade de codificação de entropia 160. A unidade de compensação de movimento 154b realiza compensação de movimento usando o valor de vetor de movimento transmitido da unidade de estimativa de movimento 154a. A unidade de interpredição 154 transmite informações de intercodificação incluindo informações de movimento em uma região de referência para a unidade de codificação de entropia 160.
[058] De acordo com uma modalidade adicional, a unidade de predição 150 pode incluir uma unidade de predição de cópia intrabloco (BC) (não ilustrada). A unidade de intrapredição de BC realiza a intrapredição de BC a partir de amostras reconstruídas na figura atual e transmite informações de intracodificação BC para uma unidade de codificação de entropia 160. A unidade de intrapredição de BC refere-se a uma região específica na figura atual e obtém um valor de vetor de bloco indicando uma região de referência a ser usada para predição da região atual. A unidade de intrapredição de BC pode realizar intrapredição de BC usando o valor de vetor de bloco obtido. A unidade de intrapredição de BC transmite a informação de intracodificação de BC para a unidade de codificação de entropia 160. A informação de intracodificação de BC pode incluir informação de vetor de bloco.
[059] Quando a predição de figura descrita acima é realizada, a unidade de transformada 110 transforma um valor residual entre a figura original e a figura predita para obter um valor de coeficiente de transformada. Neste caso, a transformada pode ser realizada em uma unidade de bloco específica dentro de uma figura, e o tamanho de um bloco específico pode ser variado dentro de uma faixa predefinida. A unidade de quantização 115 quantifica o valor do coeficiente de transformada gerado na unidade de transformada 110 e o transmite para a unidade de codificação de entropia 160.
[060] A unidade de codificação de entropia 160 codifica informações de coeficientes de transformada quantificados, informações de intracodificação e informações de intercodificação para gerar um fluxo de bits de sinal de vídeo. Na unidade de codificação de entropia 160, um método de codificação de comprimento variável (VLC), um método de codificação aritmética ou semelhante pode ser usado. O método de VLC transforma os símbolos introduzidos em palavras de código sucessivas, e o comprimento das palavras de código pode ser variável. Por exemplo, símbolos que ocorrem com frequência são expressos como palavras de código curtas e símbolos que ocorrem com menos frequência são expressos como palavras de código longas. Como o método de VLC, um método de codificação de comprimento variável adaptável baseado em contexto (CAVLC) pode ser usado. A codificação aritmética transforma símbolos de dados sucessivos em um único ponto decimal, e a codificação aritmética pode obter o número ideal de bits decimais necessários para representar cada símbolo. Como codificação aritmética, a codificação aritmética adaptativa baseada em contexto (CABAC) pode ser usada. Por exemplo, a unidade de codificação de entropia 160 pode binarizar informações que representam um coeficiente de transformada quantizado. Além disso, a unidade de codificação de entropia 160 pode gerar um fluxo de bits por codificação aritmética da informação binária.
[061] O fluxo de bits gerado é encapsulado usando uma unidade de camada de abstração de rede (NAL) como unidade básica. A unidade de NAL inclui um número inteiro de unidades de árvore de codificação codificadas. Para decodificar um fluxo de bits em um decodificador de vídeo, primeiro, o fluxo de bits deve ser separado em unidades de NAL e, em seguida, cada unidade de NAL separada deve ser decodificada. Enquanto isso, as informações necessárias para decodificar um fluxo de bits de sinal de vídeo podem ser transmitidas através de um conjunto de nível superior de Carga útil de sequência de bytes brutos (RBSP), como Conjunto de parâmetros de figura (PPS), Conjunto de parâmetros de sequência (SPS), Conjunto de parâmetros de vídeo (VPS) e semelhantes.
[062] Enquanto isso, o diagrama de blocos da Figura 1 mostra um aparelho de codificação 100 de acordo com uma modalidade da presente invenção, e blocos exibidos separadamente distinguem e mostram logicamente os elementos do aparelho de codificação 100. Consequentemente, os elementos do aparelho de codificação descrito acima 100 podem ser montados como um chip ou como uma pluralidade de chips dependendo do design do dispositivo. De acordo com uma modalidade, a operação de cada elemento do aparelho de codificação 100 descrito acima pode ser realizada por um processador (não mostrado).
[063] A Figura 2 é um diagrama de blocos esquemático de um aparelho de decodificação de sinal de vídeo 200 de acordo com uma modalidade da presente divulgação. Com referência à Figura 2, o aparelho de decodificação 200 da presente divulgação inclui uma unidade de decodificação de entropia 210, uma unidade de desquantização 220, uma unidade de transformada inversa 225, uma unidade de filtragem 230, e uma unidade de predição 250.
[064] A unidade de decodificação de entropia 210 decodifica por entropia um fluxo de bits de sinal de vídeo para extrair informações de coeficiente de transformada, informações de intracodificação, informações de intercodificação e semelhantes para cada região. Por exemplo, a unidade de decodificação de entropia 210 pode obter um código binário para informação de coeficiente de transformada de uma região específica do fluxo de bits do sinal de vídeo. Além disso, a unidade de decodificação de entropia 210 obtém um coeficiente de transformada quantizado por binarização inversa de um código binário. A unidade de desquantização 220 desquantiza o coeficiente de transformada quantizado, a unidade de transformada inversa 225 reconstrói um valor residual usando o coeficiente de transformada desquantizado. O dispositivo de processamento de sinal de vídeo 200 reconstrói um valor de pixel original somando o valor residual obtido pela unidade de transformada inversa 225 com um valor de predição obtido pela unidade de predição 250.
[065] Enquanto isso, a unidade de filtragem 230 realiza filtragem em uma figura para melhorar a qualidade da imagem. Isso pode incluir um filtro de desbloqueio para reduzir a distorção do bloco e/ou um filtro de loop adaptativo para remover a distorção de toda a figura. A figura filtrada é emitida ou armazenada no DPB 256 para uso como figura de referência para a próxima figura.
[066] A unidade de predição 250 inclui uma unidade de intrapredição 252 e uma unidade de interpredição 254. A unidade de predição 250 gera uma figura de predição usando o tipo de codificação decodificado através da unidade de decodificação de entropia 210 descrita acima, coeficientes de transformada para cada região e informações de intra/intercodificação. Para reconstruir um bloco atual no qual a decodificação é realizada, pode ser usada uma região decodificada da figura atual ou outras figuras incluindo o bloco atual. Uma figura (ou bloco/fatia) usando apenas a figura atual para reconstrução, ou seja, realizando intrapredição ou intrapredição de BC é chamada de figura intra ou figura I (ou bloco/fatia), e uma figura (ou bloco/fatia) que executa toda a intrapredição, interpredição e intrapredição de BC é denominado como uma figura inter (ou bloco/fatia). A fim de prever valores de amostra de cada bloco entre figuras (ou, blocos/fatias), uma figura (ou, bloco/fatia) usando até um vetor de movimento e um índice de figura de referência é chamada de figura preditiva ou figura P (ou, bloco/fatia) e uma figura (ou bloco/fatia) usando até dois vetores de movimento e um índice de figura de referência é chamado de figura bipreditiva ou figura B (ou bloco/fatia). Em outras palavras, a figura P (ou, bloco/fatia) usa até um conjunto de informações de movimento para prever cada bloco, e a figura B (ou, bloco/fatia) usa até dois conjuntos de informações de movimento para prever cada bloco. Aqui, o conjunto de informações de movimento inclui um ou mais vetores de movimento e um índice de figura de referência.
[067] A unidade de intrapredição 252 gera um bloco de predição usando as informações de intracodificação e amostras restauradas na figura atual. Conforme descrito acima, as informações de intracodificação podem incluir pelo menos um de um modo de intrapredição, um sinalizador de Modo Mais Provável (MPM) e um índice de MPM. A unidade de intrapredição 252 prevê os valores de amostra do bloco atual usando as amostras restauradas localizadas no lado esquerdo e/ou superior do bloco atual como amostras de referência. Nesta divulgação, amostras restauradas, amostras de referência e amostras do bloco atual podem representar pixels. Além disso, os valores de amostra podem representar valores de pixel.
[068] De acordo com uma modalidade, as amostras de referência podem ser amostras incluídas em um bloco vizinho do bloco atual. Por exemplo, as amostras de referência podem ser amostras adjacentes ao limite esquerdo do bloco atual e/ou amostras adjacentes ao limite superior. Além disso, as amostras de referência podem ser amostras localizadas em uma linha dentro de uma distância predeterminada do limite esquerdo do bloco atual e/ou amostras localizadas em uma linha dentro de uma distância predeterminada do limite superior do bloco atual entre as amostras de blocos vizinhos do bloco atual. Neste caso, o bloco vizinho do bloco atual pode incluir o bloco esquerdo (L), o bloco superior (A), o bloco inferior esquerdo (BL), o bloco superior direito (AR) ou o bloco superior esquerdo (AL).
[069] A unidade de interpredição 254 gera um bloco de predição usando figuras de referência e informações de intercodificação armazenadas no DPB 256. As informações de intercodificação podem incluir conjunto de informações de movimento (índice de figura de referência, informação de vetor de movimento, etc.) do bloco atual para o bloco de referência. A interpredição pode incluir predição L0, predição L1 e predição bi. A predição L0 significa predição usando uma figura de referência incluída na lista de figuras L0, e predição L1 significa predição usando uma figura de referência incluída na lista de figuras L1. Para isso, um conjunto de informações de movimento (por exemplo, vetor de movimento e índice de figura de referência) pode ser necessário. No método de bipredição, até duas regiões de referência podem ser usadas, e as duas regiões de referência podem existir na mesma figura de referência ou podem existir em figuras diferentes. Ou seja, no método de bipredição, até dois conjuntos de informações de movimento (por exemplo, um vetor de movimento e um índice de figura de referência) podem ser usados e dois vetores de movimento podem corresponder ao mesmo índice de figura de referência ou a diferentes índices de figura de referência. Neste caso, as figuras de referência podem ser exibidas (ou emitidas) antes e depois da figura atual no aspecto de tempo. De acordo com uma modalidade, duas regiões de referência usadas em um esquema de bipredição podem ser regiões selecionadas de uma lista de figuras L0 e uma lista de figuras L1.
[070] A unidade de interpredição 254 pode obter um bloco de referência do bloco atual usando um vetor de movimento e um índice de figura de referência. O bloco de referência está em uma figura de referência correspondente a um índice de figura de referência. Além disso, um valor de amostra de um bloco especificado por um vetor de movimento ou um valor interpolado do mesmo pode ser usado como um preditor do bloco atual. Para predição de movimento com precisão de pixel de unidade de sub-pel, por exemplo, um filtro de interpolação de 8 toques para um sinal de luma e um filtro de interpolação de 4 toques para um sinal de croma podem ser usados. No entanto, o filtro de interpolação para predição de movimento em unidades de sub-pel não está limitado a ele. Desta forma, a unidade de interpredição 254 executa compensação de movimento para prever a textura da unidade atual a partir de figuras em movimento reconstruídas anteriormente. Neste caso, a unidade de interpredição pode usar um conjunto de informações de movimento.
[071] De acordo com uma modalidade adicional, a unidade de predição 250 pode incluir uma unidade de intrapredição de BC (não ilustrada). A unidade de intrapredição de BC pode reconstruir a região atual referindo-se a uma região específica incluindo amostras reconstruídas na figura atual. A unidade de intrapredição de BC obtém informação de intracodificação de BC na região atual da unidade de decodificação de entropia 210. A unidade de intrapredição de BC obtém um valor de vetor de bloco da região atual indicando uma região específica na figura atual. A unidade de intrapredição de BC pode realizar intrapredição de BC usando o valor de vetor de bloco obtido. A informação de intracodificação de BC pode incluir informação de vetor de bloco.
[072] A figura de vídeo reconstruída é gerada pela adição do valor de predição emitido da unidade de intrapredição 252 ou da unidade de interpredição 254 e o valor residual emitido da unidade de transformada inversa 225. Ou seja, o aparelho de decodificação de sinal de vídeo 200 reconstrói o bloco atual usando o bloco de predição gerado pela unidade de predição 250 e o resíduo obtido da unidade de transformada inversa 225.
[073] Entretanto, o diagrama de blocos da Figura 2 mostra um aparelho de decodificação 200 de acordo com uma modalidade da presente invenção, e blocos exibidos separadamente distinguem e mostram logicamente os elementos do aparelho de decodificação 200. Consequentemente, os elementos do aparelho de decodificação acima descrito 200 podem ser montados como um chip ou como uma pluralidade de chips dependendo do design do dispositivo. De acordo com uma modalidade, a operação de cada elemento do aparelho de decodificação 200 descrito acima pode ser realizada por um processador (não mostrado).
[074] A Figura 3 ilustra uma modalidade na qual uma unidade de árvore de codificação (CTU) é dividida em unidades de codificação (CUs) em uma figura. No processo de codificação de um sinal de vídeo, uma figura pode ser dividida em uma sequência de unidades de árvore de codificação (CTUs). A unidade de árvore de codificação é composta por um bloco NXN de amostras de luma e dois blocos de amostras de croma correspondentes. A unidade de árvore de codificação pode ser dividida em uma pluralidade de unidades de codificação. A unidade de árvore de codificação não é dividida e pode ser um nó folha. Neste caso, a própria unidade de árvore de codificação pode ser uma unidade de codificação. A unidade de codificação refere-se a uma unidade básica para processar uma figura no processo de processamento do sinal de vídeo descrito acima, isto é, intra/interpredição, transformada, quantização e/ou codificação de entropia. O tamanho e a forma da unidade de codificação em uma figura podem não ser constantes. A unidade de codificação pode ter uma forma quadrada ou retangular. A unidade de codificação retangular (ou bloco retangular) inclui uma unidade de codificação vertical (ou bloco vertical) e uma unidade de codificação horizontal (ou bloco horizontal). No presente relatório descritivo, o bloco vertical é um bloco cuja altura é maior que a largura, e o bloco horizontal é um bloco cuja largura é maior que a altura. Além disso, neste relatório descritivo, um bloco não quadrado pode referir-se a um bloco retangular, mas a presente invenção não está limitada a ele.
[075] Com referência à Figura 3, a unidade de árvore de codificação é primeiro dividida em uma estrutura de árvore quaternária (QT). Ou seja, um nó com tamanho 2NX2N em uma estrutura de árvore quaternária pode ser dividido em quatro nós com tamanho NXN. No presente relatório descritivo, a árvore quaternária também pode ser denominada como uma árvore quaternária. A divisão de árvore quaternária pode ser executada recursivamente e nem todos os nós precisam ser divididos com a mesma profundidade.
[076] Enquanto isso, o nó folha da árvore quaternária descrita acima pode ser ainda dividido em uma estrutura de árvore multi-tipo (MTT). De acordo com uma modalidade da presente invenção, em uma estrutura de árvore multi-tipo, um nó pode ser dividido em uma estrutura de árvore binária ou ternária de divisão horizontal ou vertical. Ou seja, na estrutura de árvore multi-tipo, existem quatro estruturas de divisão, como divisão binária vertical, divisão binária horizontal, divisão ternária vertical e divisão ternária horizontal. De acordo com uma modalidade da presente invenção, em cada uma das estruturas de árvore, a largura e a altura dos nós podem ter potências de 2. Por exemplo, em uma estrutura de árvore binária (BT), um nó de tamanho 2NX2N pode ser dividido em dois nós NX2N por divisão binária vertical e dividido em dois nós 2NXN por divisão binária horizontal. Além disso, em uma estrutura de árvore ternária (TT), um nó de tamanho 2NX2N é dividido em nós (N/2)X2N, NX2N e (N/2)X2N por divisão ternária vertical e dividido em 2NX(N/ 2), nós 2NXN e 2NX(N/2) por divisão ternária horizontal. Essa divisão de árvore de vários tipos pode ser executada recursivamente.
[077] Um nó folha de uma árvore multi-tipo pode ser uma unidade de codificação. Quando uma unidade de codificação não é maior em comparação com um comprimento máximo de conversão, a unidade de codificação pode ser usada como uma unidade de predição e/ou conversão sem ser mais dividida. Em uma modalidade, quando uma largura ou altura de uma unidade de codificação atual é maior que o comprimento máximo de conversão, a unidade de codificação atual pode ser dividida em uma pluralidade de unidades de conversão sem sinalização explícita sobre divisão. Por outro lado, pelo menos um dos seguintes parâmetros na árvore quaternária descrita acima e na árvore multi-tipo pode ser predefinido ou transmitido através de um conjunto de RBSPs de nível superior, como PPS, SPS, VPS e semelhantes. 1) Tamanho da CTU: tamanho do nó raiz da árvore quaternária, 2) tamanho mínimo do QT MinQtSize: tamanho mínimo permitido do nó folha do QT, 3) tamanho máximo do BT MaxBtSize: tamanho máximo permitido do nó raiz do BT, 4) Tamanho máximo do TT MaxTtSize: máximo do TT permitido tamanho do nó raiz, 5) Profundidade máxima do MTT MaxMttDepth: profundidade máxima permitida da divisão do MTT do nó folha do QT, 6) Tamanho mínimo BT MinBtSize: tamanho mínimo permitido do nó folha BT, 7) Tamanho mínimo TT MinTtSize: tamanho mínimo permitido do nó folha TT.
[078] A Figura 4 ilustra uma modalidade de um método para sinalizar uma divisão de árvore quaternária e árvore multi-tipo. Os sinalizadores predefinidos podem ser usados para sinalizar a divisão de árvore quaternária e árvore multi-tipo descrita acima. Com referência à Figura 4, pelo menos um de um sinalizador 'split_cu_flag' indicando se um nó está dividido ou não, um sinalizador 'split_qt_flag' indicando se um nó de árvore quaternária é ou não dividido, um sinalizador 'mtt_split_cu_vertical_flag' indicando uma direção de divisão do multi-tipo nó de árvore, ou um sinalizador 'mtt_split_cu_binary_flag' indicando a forma de divisão do nó de árvore multi-tipo pode ser usado.
[079] De acordo com uma modalidade da presente invenção, ‘split_cu_flag’, que é um sinalizador que indica se o nó atual está dividido ou não, pode ser sinalizado primeiro. Quando o valor de 'split_cu_flag'é 0, indica que o nó atual não está dividido e o nó atual se torna uma unidade de codificação. Quando o nó atual é uma unidade de árvore de codificação, a unidade de árvore de codificação inclui uma unidade de codificação não dividida. Quando o nó atual é um nó de árvore quaternária “nó da QT”, o nó atual é um nó folha “nó de folha da QT” da árvore quaternária e se torna a unidade de codificação. Quando o nó atual é um nó de árvore multi-tipo “nó da MTT”, o nó atual é um nó folha “nó folha da MTT” da árvore multi-tipo e se torna uma unidade de codificação.
[080] Quando o valor de ‘split_cu_flag’ é 1, o nó atual pode ser dividido em nós de uma árvore quaternária ou uma árvore multi-tipo de acordo com o valor de ‘split_qt_flag’. A unidade de árvore de codificação é um nó raiz de uma árvore quaternária e pode ser primeiro dividida em uma estrutura de árvore quaternária. Na estrutura árvore quaternária, ‘split_qt_flag’ é sinalizado para cada nó ‘nó QT’. Quando o valor de ‘split_qt_flag’ é 1, o nó é dividido em 4 nós quadrados, e quando o valor de ‘split_qt_flag’ é 0, o nó se torna o nó folha da árvore quaternária ‘nó folha QT’, e o nó é dividido em nós de árvore de vários tipos. De acordo com uma modalidade da presente invenção, a divisão em árvore quaternária pode ser limitada de acordo com o tipo do nó atual. Quando o nó atual é uma unidade de árvore de codificação (nó raiz da árvore quaternária) ou um nó de árvore quaternária, a divisão de árvore quaternária pode ser permitida e quando o nó atual é um nó de árvore multi-tipo, a divisão de árvore quaternária pode não ser permitido. Cada nó de folha de árvore quaternária ‘nó de folha QT’ pode ser dividido em estruturas de árvore de vários tipos. Conforme descrito acima, quando ‘split_qt_flag’ é 0, o nó atual pode ser dividido em nós de vários tipos. Para indicar a direção da divisão e a forma da divisão, ‘mtt_split_cu_vertical_flag’ e ‘mtt_split_cu_binary_flag’ podem ser sinalizados. Quando o valor de ‘mtt_split_cu_vertical_flag’ é 1, a divisão vertical do nó ‘nó MTT’ é indicada, e quando o valor de ‘mtt_split_cu_vertical_flag’ é 0, a divisão horizontal do nó ‘nó MTT’ é indicada. Além disso, quando o valor de ‘mtt_split_cu_binary_flag’ é 1, o nó ‘nó mtt’ é dividido em dois nós retangulares e quando o valor de ‘mtt_split_cu_binary_flag’ é 0, o nó ‘nó mtt’ é dividido em três nós retangulares.
[081] A predição de figura (compensação de movimento) para codificação é realizada em unidades de codificação que não são mais divididas (isto é, nós de folha da árvore de unidades de codificação). A unidade básica que realiza tal predição é doravante denominada como uma unidade de predição ou um bloco de predição.
[082] Em seguida, o termo unidade usado no presente relatório descritivo pode ser usado como um termo para substituir a unidade de predição, que é uma unidade básica para realizar a predição. No entanto, a presente invenção não está limitada a isso, e pode ser mais amplamente entendida como um conceito que inclui a unidade de codificação.
[083] As Figuras 5 e 6 ilustram mais especificamente um método de intrapredição de acordo com uma modalidade da presente invenção. Como descrito acima, a unidade de intrapredição prevê os valores de amostra do bloco atual usando as amostras restauradas localizadas no lado esquerdo e/ou superior do bloco atual como amostras de referência.
[084] Em primeiro lugar, a Figura 5 mostra uma modalidade de amostras de referência usadas para predição de um bloco atual em um modo de intrapredição. De acordo com uma modalidade, as amostras de referência podem ser amostras adjacentes ao limite esquerdo do bloco atual e/ou amostras adjacentes ao limite superior. Como mostrado na Figura 5, quando o tamanho do bloco atual é WXH e amostras de uma única linha de referência adjacente ao bloco atual são usadas para intrapredição, amostras de referência podem ser configuradas usando um máximo de 2W+2H+1 amostras vizinhas localizadas à esquerda e /ou lado superior do bloco atual.
[085] Além disso, se pelo menos algumas das amostras a serem usadas como amostras de referência não tiverem sido restauradas, a unidade de intrapredição pode obter uma amostra de referência realizando um processo de preenchimento de amostra de referência. Além disso, a unidade de intrapredição pode realizar um processo de filtragem de amostra de referência para reduzir erros na intrapredição. Ou seja, realizar a filtragem em amostras circundantes e/ou amostras de referência obtidas por um processo de preenchimento de amostra de referência pode ser realizada para obter amostras de referência filtradas. A unidade de intrapredição prevê as amostras do bloco atual usando as amostras de referência assim obtidas. A unidade de intrapredição prevê amostras do bloco atual usando amostras de referência que não foram filtradas ou amostras de referência que foram filtradas. Na presente divulgação, as amostras circundantes podem incluir amostras em pelo menos uma linha de referência. Por exemplo, as amostras circundantes podem incluir amostras adjacentes em uma linha adjacente ao limite do bloco atual.
[086] A seguir, a Figura 6 mostra uma modalidade de modos de predição usados para intrapredição. Para intrapredição, as informações do modo de intrapredição indicando uma direção de intrapredição podem ser sinalizadas. A informação do modo de intrapredição indica um de uma pluralidade de modos de intrapredição incluídos no conjunto de modo de intrapredição. Quando o bloco atual é um bloco de intrapredição, o decodificador recebe informações do modo de intrapredição do bloco atual do fluxo de bits. A unidade de intrapredição do decodificador executa intrapredição no bloco atual com base nas informações de modo de intrapredição extraídas.
[087] De acordo com uma modalidade da presente invenção, o conjunto de modos de intrapredição pode incluir todos os modos de intrapredição usados na intrapredição (por exemplo, um total de 67 modos de intrapredição). Mais especificamente, o conjunto de modo de intrapredição pode incluir um modo planar, um modo DC e uma pluralidade (por exemplo, 65) de modos de ângulo (isto é, modos direcionais). Cada modo de intrapredição pode ser indicado através de um índice predefinido (isto é, índice de modo de intrapredição). Por exemplo, como mostrado na Figura 6, o índice 0 do modo de intrapredição indica um modo planar e o índice 1 do modo de intrapredição indica um modo DC. Além disso, os índices de modo de intrapredição 2 a 66 podem indicar diferentes modos de ângulo, respectivamente. Os modos de ângulo indicam respectivamente ângulos que são diferentes entre si dentro de uma faixa de ângulo pré-definida. Por exemplo, o modo de ângulo pode indicar um ângulo dentro de uma faixa de ângulo (isto é, uma primeira faixa angular) entre 45 graus e -135 graus no sentido horário. O modo de ângulo pode ser definido com base na direção das 12 horas. Neste caso, o índice de modo de intrapredição 2 indica um modo diagonal horizontal (HDIA), o índice de modo de intrapredição 18 indica um modo horizontal (Horizontal, HOR), o índice de modo de intrapredição 34 indica um modo diagonal (DIA), o índice de modo de intrapredição 50 indica um modo vertical (VER), e o índice de modo de intrapredição 66 indica um modo diagonal vertical (VDIA).
[088] Enquanto isso, uma faixa de ângulo predefinido pode ser definida de forma diferente de acordo com a forma de um bloco atual. Por exemplo, quando um bloco atual é um bloco retangular, um modo de grande angular indicando um ângulo que excede 45 graus ou é menor que -135 graus no sentido horário pode ser usado adicionalmente. Quando um bloco atual é um bloco horizontal, o modo de ângulo pode indicar um ângulo que cai dentro de uma faixa de ângulo (isto é, segunda faixa de ângulo) entre (45+offset1) graus e (-135+offset1) graus no sentido horário. Aqui, os modos de ângulo 67 a 76 fora da primeira faixa de ângulo podem ser usados adicionalmente. Além disso, quando o bloco atual é um bloco vertical, o modo de ângulo pode indicar um ângulo que cai dentro de uma faixa de ângulo (isto é, terceira faixa de ângulo) entre (45-offset2) graus e (-135-offset2) graus no sentido horário. Aqui, os modos de ângulo -10 a -1 fora da primeira faixa de ângulo podem ser usados adicionalmente. De acordo com uma modalidade da presente invenção, os valores de deslocamento1 e deslocamento2 podem ser determinados de forma diferente de acordo com uma razão entre a largura e a altura de um bloco retangular. Além disso, offset1 e offset2 podem ser números positivos.
[089] De acordo com uma modalidade adicional da presente invenção, uma pluralidade de modos de ângulo que constituem um conjunto de modo de intrapredição pode incluir um modo de ângulo básico e um modo de ângulo estendido. Aqui, o modo de ângulo estendido pode ser determinado com base no modo de ângulo básico.
[090] De acordo com uma modalidade, o modo de ângulo básico pode ser um modo correspondente a um ângulo usado na intrapredição de um padrão de codificação de vídeo de alta eficiência (HEVC) existente, e o modo de ângulo estendido pode ser um modo correspondente a um ângulo recentemente adicionado na intrapredição de um padrão de codec de vídeo de próxima geração. Em mais detalhes, o modo de ângulo básico pode ser um modo de ângulo correspondente a qualquer um dos modos de intrapredição {2, 4, 6, ..., 66}, e o modo de ângulo estendido pode ser um modo de ângulo correspondente a qualquer um dos modos de intrapredição {3, 5, 7, ., 65}. Nomeadamente, o modo de ângulo estendido pode ser um modo de ângulo entre os modos de ângulo básicos dentro da primeira faixa de ângulo. Portanto, um ângulo indicado pelo modo de ângulo estendido pode ser determinado com base em um ângulo indicado pelo modo de ângulo básico.
[091] De acordo com outra modalidade, o modo de ângulo básico pode ser um modo correspondente a um ângulo dentro da primeira faixa de ângulo predefinida e o modo de ângulo estendido pode ser um modo de grande angular fora da primeira faixa de ângulo. Nomeadamente, o modo de ângulo básico pode ser um modo de ângulo correspondente a qualquer um dos modos de intrapredição {2, 3, 4, ., 66}, e o modo de ângulo estendido pode ser um modo de ângulo correspondente a qualquer um dos modos de intrapredição { -10, -9, ., -1} e {67, 68, ., 76}. Um ângulo indicado pelo modo de ângulo estendido pode ser determinado como um ângulo oposto a um ângulo indicado por um modo de ângulo básico correspondente. Portanto, um ângulo indicado pelo modo de ângulo estendido pode ser determinado com base em um ângulo indicado pelo modo de ângulo básico. Enquanto isso, o número de modos de ângulo estendido não está limitado a isso, e ângulos estendidos adicionais podem ser definidos de acordo com um tamanho e/ou forma de um bloco atual. Por exemplo, o modo de ângulo estendido pode ser definido como um modo de ângulo correspondente a qualquer um dos modos de intrapredição {-14, -13, ., -1} e {67, 68, ., 80}. Enquanto isso, o número total de modos de intrapredição incluídos no conjunto de modo de intrapredição pode ser variado de acordo com as configurações acima mencionadas do modo de ângulo básico e modo de ângulo estendido.
[092] Nas modalidades acima, um intervalo entre os modos de ângulo estendido pode ser definido com base em um intervalo entre os modos de ângulo básico correspondentes. Por exemplo, o intervalo entre os modos de ângulo estendido {3, 5, 7, ..., 65} pode ser determinado com base no intervalo entre os modos de ângulo básico correspondentes {2, 4, 6, ..., 66}. Além disso, o intervalo entre os modos de ângulo estendido {-10, -9, ., -1} pode ser determinado com base no intervalo entre os modos de ângulo básicos opostos correspondentes {56, 57, ., 65} e o intervalo entre os modos de ângulo estendido {67, 68, ., 76} pode ser determinado com base no intervalo entre os modos de ângulo básico opostos correspondentes {3, 4, ., 12}. O intervalo entre os modos de ângulo estendido pode ser definido igual a um intervalo de ângulo entre os modos de ângulo básico correspondentes. Além disso, o número de modos de ângulo estendido no conjunto de modo de intrapredição pode ser definido igual ou menor que o número de modos de ângulo básico.
[093] De acordo com uma modalidade da presente invenção, o modo de ângulo estendido pode ser sinalizado com base no modo de ângulo básico. Por exemplo, um modo de grande angular (isto é, modo de ângulo estendido) pode substituir pelo menos um modo de ângulo (isto é, modo de ângulo básico) dentro da primeira faixa de ângulo. Um modo de ângulo básico substituído pode ser um modo de ângulo correspondente a um lado oposto do modo de grande angular. Nomeadamente, o modo de ângulo básico substituído é um modo de ângulo correspondente a um ângulo oposto a um ângulo indicado pelo modo de grande angular ou correspondente a um ângulo que difere tanto quanto um índice de deslocamento predefinido do ângulo oposto. De acordo com uma modalidade da presente invenção, o índice de deslocamento predefinido é 1. Um índice de modo de intrapredição correspondente ao modo de ângulo básico substituído pode ser remapeado para um modo de grande angular de modo a sinalizar o modo de grande angular. Por exemplo, os modos de grande angular {-10, -9, ., -1} podem ser sinalizados pelos índices de modo de intrapredição {57, 58, ..., 66} respectivamente, e os modos de grande angular {67, 68, ..., 76} podem ser sinalizados pelos índices de modo de intrapredição {2, 3, ., 11} respectivamente. Conforme descrito acima, uma vez que o índice do modo de intrapredição para o modo de ângulo básico sinaliza o modo de ângulo estendido, os índices do modo de intrapredição do mesmo conjunto podem ser usados para sinalizar um modo de intrapredição mesmo se os modos de ângulo usados na intrapredição de cada bloco tiverem configurações diferentes. Portanto, uma sobrecarga de sinalização devido a uma mudança na configuração do modo de intrapredição pode ser minimizada.
[094] Enquanto isso, a utilização do modo de ângulo estendido pode ser determinada com base em pelo menos um de uma forma e tamanho de um bloco atual. De acordo com uma modalidade, o modo de ângulo estendido pode ser usado para intrapredição do bloco atual quando o tamanho do bloco atual é maior que um tamanho predefinido; caso contrário, apenas o modo de ângulo básico pode ser usado para intrapredição do bloco atual. De acordo com outra modalidade, o modo de ângulo estendido pode ser usado para intrapredição do bloco atual quando o bloco atual é um bloco diferente de um quadrado, e apenas o modo de ângulo básico pode ser usado para intrapredição do bloco atual quando a corrente bloco é um bloco quadrado.
[095] A unidade de intrapredição determina amostras de referência e/ou amostras de referência interpoladas a serem usadas na intrapredição do bloco atual com base na informação do modo de intrapredição do bloco atual. Quando o índice de modo de intrapredição indica um modo de ângulo particular, uma amostra de referência ou amostra de referência interpolada correspondente ao ângulo particular de uma amostra atual do bloco atual é usada na predição de um pixel atual. Portanto, amostras de referência e/ou amostras de referência interpoladas de diferentes conjuntos podem ser usadas na intrapredição de acordo com um modo de intrapredição. Quando a intrapredição do bloco atual foi realizada usando amostras de referência e informações do modo de intrapredição, o decodificador restaura os valores de amostra do bloco atual adicionando um sinal residual do bloco atual obtido da unidade de transformada inversa a um valor de intrapredição do bloco atual.
[096] A Figura 7 é um diagrama que ilustra uma porção de uma estrutura de sintaxe de alto nível de acordo com uma modalidade da presente invenção. Com referência à Figura 7, o decodificador pode decodificar uma imagem de acordo com uma determinada regra de um fluxo de bits que é resultado da codificação de vídeo e pode emitir a imagem. Um elemento de sintaxe é cada informação incluída em um fluxo de bits de acordo com uma série de regras determinadas, e uma estrutura de sintaxe é uma configuração de elementos de sintaxe. Os elementos de sintaxe podem ser alinhados em unidades de bytes e encapsulados como uma unidade de camada de abstração de rede (NAL), e isso é chamado de carga útil de sequência de bytes bruta (RBSP). Os elementos de sintaxe podem ser codificados em unidades da unidade NAL e armazenados em um fluxo de bits ou transmitidos. Vários tipos de unidades NAL podem ser definidos. As unidades NAL podem ser classificadas como uma camada de codificação de vídeo (VCL) e uma não VCL, conforme sejam informações sobre a compactação do conteúdo dos próprios dados de vídeo ou informações adicionais para compactação. A unidade NAL dividida em uma classe não VCL pode incluir uma sintaxe de RBSP de VPS, uma sintaxe de RBSP de SPS, uma sintaxe de RBSP de PPS, uma sintaxe de RBSP de cabeçalho de figura (PH), uma sintaxe de RBSP de camada de fatia e semelhantes. Quando um fluxo de bits é gerado ou transmitido como resultado da compactação de imagem, as unidades NAL podem ser configuradas na ordem de unidade NAL de VPS, unidade NAL de SPS, unidade NAL de PPS, unidade NAL de PH e unidade NAL de camada de fatia. O número e a ordem das unidades NAL podem ser alterados de acordo com um ambiente de compressão de imagem. Uma unidade NAL de delimitador de unidade de acesso (AUD) e uma unidade NAL de informações de capacidade de decodificação (DCI) podem preceder a sintaxe de RBSP de VPS. A Figura 7 mostra uma relação de referência entre sintaxes inferiores em uma sintaxe superior. Em particular, os elementos de sintaxe a serem comumente usados em uma sequência de vídeo ou unidade de figura (figura inferior) ou uma unidade de fatia para decodificar uma primeira figura em um fluxo de bits podem ter a relação mostrada na Figura 7. Como exemplo da relação de referência, os parâmetros definidos na sintaxe de RBSP de VPS referenciados com base no SPS_VPS_id definido na sintaxe de RBSP de SPS podem ser comumente aplicados à sequência de vídeo correspondente. Alguns parâmetros podem ser redefinidos/atualizados em uma sintaxe inferior. Os termos sobre uma estrutura de sintaxe usados neste documento podem indicar uma estrutura de sintaxe incluindo um nome parcial, mesmo que os termos sejam mencionados como o nome parcial em vez de um nome completo. Além disso, a sinalização/análise para a estrutura de sintaxe e elemento de sintaxe da presente invenção pode ser aplicada de forma semelhante durante a codificação/decodificação.
[097] A Figura 8 é um diagrama que ilustra um tipo de unidade de camada abstrata de rede (NAL) de acordo com uma modalidade da presente invenção.
[098] As unidades NAL podem ser classificadas grosseiramente como duas classes. As unidades NAL correspondentes às informações de dados de vídeo podem ser classificadas como VCL, e as unidades NAL, incluindo informações que não são informações de dados de vídeo, mas são necessárias para decodificar um vídeo, podem ser classificadas como não VCL. As unidades NAL classificadas como VCL também podem ter vários tipos de unidades NAL de acordo com um método de aplicação. As informações sobre um tipo de unidade NAL podem ser incluídas nas informações do cabeçalho da unidade NAL. O decodificador pode identificar uma unidade NAL usando um tipo de unidade NAL indicado nas informações de cabeçalho em uma camada de transporte/rede. Na Figura 8, um tipo de unidade NAL (nal_unit_type), o nome de um tipo de unidade NAL (Nome de nal_unit_type), o conteúdo de uma unidade NAL e estrutura de sintaxe de RBSP e uma classe de tipo de unidade NAL podem ser confirmados. Com referência à Figura 8, informações sobre as unidades NAL mostradas na Figura 7 pode ser confirmado.
[099] A Figura 9 é um diagrama que ilustra que uma figura é dividida em CTUs, blocos, e fatias de acordo com uma modalidade da presente invenção.
[0100] Por várias razões, uma figura/quadro pode ser dividida em blocos/unidades de codificação de um tamanho predefinido ou um conjunto dos mesmos. Uma unidade de codificação (CU) pode ser um bloco de codificação de amostras de luma e um bloco de codificação correspondente a amostras de dois componentes de croma e pode ter três matrizes de amostras. Um bloco de árvore de codificação (CTB) pode ser configurado com uma unidade de árvore de codificação (CTU) de um componente de luma e dois componentes de croma. Um bloco é uma área retangular em uma figura e pode incluir CTUs em uma coluna de blocos e uma linha de blocos de um tamanho específico. Uma fatia pode ser configurada com blocos de tamanho inteiro ou colunas de CTU sucessivas de tamanho inteiro. Uma fatia pode ser transmitida como uma única unidade NAL.
[0101] Em detalhes, a Figura 9 ilustra que uma figura é configurada com 18 x 12 luma de CTUs e dividida em 24 blocos e 9 fatias retangulares de acordo com uma modalidade da presente invenção. A divisão da figura mostrada na Figura 9 é meramente um exemplo, e uma figura pode ser dividida em várias formas sem se limitar ao exemplo ilustrado na Figura 9. Uma figura pode ser dividida não apenas em fatias retangulares, mas também em fatias do tipo varredura raster. Além disso, um bloco pode ser dividido em formas de tamanhos diferentes.
[0102] A Figura 10 é um diagrama que ilustra que uma figura é dividida em uma pluralidade de subfiguras de acordo com uma modalidade da presente invenção.
[0103] Em detalhes, a Figura 10 ilustra que uma figura é dividida em uma pluralidade de figuras inferiores (doravante referidas como subfiguras) de acordo com uma modalidade da presente invenção. Com referência à Figura 10, uma figura pode ser configurada sendo dividida em 15 blocos e 24 fatias, e pode ser dividida em 24 subfiguras. Quando uma figura é dividida em uma pluralidade de subfiguras, a codificação/decodificação pode ser realizada por subfigura. Além disso, uma nova figura pode ser configurada com uma determinada subfigura ou subfiguras, e uma nova figura também pode ser configurada com subfiguras de outra camada de codificação de vídeo (VCL).
[0104] A Figura 11 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de conjunto de parâmetros de sequência de acordo com uma modalidade da presente invenção.
[0105] Os elementos de sintaxe incluídos na estrutura de sintaxe de RBSP de SPS serão descritos com referência à Figura 11.
[0106] sps_decoding_parameter_set_id é um elemento de sintaxe que indica se deve se referir a DPS em SPS. Quando um valor de sps_decoding_parameter_set_id é maior que 0, esse elemento de sintaxe indica dps_decoding_parameter_set_id de um conjunto de parâmetros de decodificação (DPS) referido no SPS. Pelo contrário, quando o valor de sps_decoding_parameter_set_id for 0, esse elemento de sintaxe pode indicar que DPS não é referido no SPS correspondente. Todos os SPSs referidos por figuras codificadas de um fluxo de bits precisam ter o mesmo valor de sps_decoding_parameter_set_id.
[0107] sps_video_parameter_set_id é um elemento de sintaxe que indica se deve se referir a VPS em SPS. Quando um valor de sps_video_parameter_set_id é maior que 0, pode indicar vps_video_parameter_set_id para VPS referido no SPS. Ao contrário, quando o valor de sps_video_parameter_set_id for 0, o SPS correspondente pode não se referir ao VPS. Além disso, quando o valor de sps_video_parameter_set_id é 0, um valor de vps_max_layers_minus1 pode ser inferido como 0. Além disso, quando o valor de sps_video_parameter_set_id é 0, uma sequência de vídeo codificada (CVS) pode incluir apenas uma camada.
[0108] sps_seq_parameter_set_id é um elemento de sintaxe, que fornece um ID para SPS para ser referido por outros elementos de sintaxe. sps_seq_parameter_set_id pode ser usado como informação a ser referenciada no PPS.
[0109] subpics_present_flag é um elemento de sintaxe que indica se um parâmetro relacionado a uma subfigura está presente na sintaxe de RBSP de SPS. Quando o valor de subpics_present_flag for 1, pode indicar que um parâmetro (elemento de sintaxe) relacionado a uma subfigura está presente na sintaxe de RBSP de SPS, e quando o valor de subpics_present_flag for 0, pode indicar que um parâmetro (elemento de sintaxe) relacionado a uma subfigura não está presente na sintaxe de RBSP de SPS.
[0110] Quando o valor de subpics_present_flag for 1, os parâmetros (elementos de sintaxe) relacionados a uma subfigura, descritos abaixo, podem ser sinalizados.
[0111] sps_num_subpics_minus1 é um elemento de sintaxe que indica um valor relacionado ao número de subfiguras. sps_num_subpics_minus1 indica um valor obtido subtraindo 1 do número de subfiguras. Ou seja, um valor obtido pela adição de 1 ao valor de sps_num_subpics_minus1 pode indicar o número de subfiguras. sps_num_subpics_minus1 pode ter um valor entre 0 e (MaxSlicesPerAu - 1). Aqui, MaxSlicesPerAu pode ter um valor entre 16 e 600 de acordo com um nível. Quando sps_num_subpics_minus1 não está presente, o valor de sps_num_subpics_minus1 pode ser inferido como 0.
[0112] Com referência à Figura 11, quando sps_num_subpics_minus1 está presente, os elementos de sintaxe definidos para cada subfigura podem ser sinalizados. Elementos de sintaxe que indicam informações de coordenadas de um ponto inicial superior esquerdo de uma subfigura, uma largura de uma subfigura, uma altura de uma subfigura, informações que indicam se uma subfigura é considerada uma figura e informações que indicam se um filtro de loop é aplicado pode ser sinalizado.
[0113] subpic_ctu_top_left_x[i] é um elemento de sintaxe que indica, em unidades de CtbSizeY, uma posição do eixo horizontal de uma CTU superior esquerda de uma i-ésima subfigura. Aqui, a posição do eixo horizontal pode ser indicada em uma forma de coordenadas. CtbSizeY representa o tamanho de um CTB do componente luma. CtbSizeY pode ser determinado como 1 << CtbLog2SizeY, em que CtbLog2SizeY pode ser determinado como um valor obtido calculando sps_log2_ctu_size_minus5 + 5. CtbLog2SizeY representa um valor obtido tomando log2 de um tamanho de CTB de um componente luma. Aqui, o símbolo “<<”, que é um operador de deslocamento à esquerda, representa que uma entrada de operando para o operador é binarizada, e o operando binarizado é deslocado para a esquerda tanto quanto um parâmetro de deslocamento. O número de bits de subpic_ctu_top_left_x[i] pode ser determinado como um valor obtido calculando Ceil(Log2(pic_width_max_in_luma_samples / CtbSizeY)). Aqui, Ceil(A) é uma função que retorna um número menor que é maior que um número real A. Quando subpic_ctu_top_left_x[i] não está presente, um valor de subpic_ctu_top_left_x[i] pode ser inferido como 0.
[0114] subpic_ctu_top_left_y[i] é um elemento de sintaxe que indica, em unidades de CtbSizeY, uma posição do eixo vertical de uma CTU superior esquerda de uma i-ésima subfigura. Aqui, a posição do eixo vertical pode ser indicada em uma forma de coordenadas. O número de bits de subpic_ctu_top_left_y[i] pode ser determinado como um valor obtido calculando Ceil(Log2(pic_width_max_in_luma_samples/CtbSizeY)). Quando subpic_ctu_top_left_y[i] não está presente, um valor de subpic_ctu_top_left_y[i] pode ser inferido como 0. pic_width_max_in_luma_samples é um elemento de sintaxe que indica uma largura máxima de cada figura decodificada referente a SPS.
[0115] subpic_width_minus1[i] é um elemento de sintaxe que indica um valor relacionado a uma largura de uma i-ésima subfigura. subpic_width_minus1[i] indica um valor obtido subtraindo 1 da largura de uma i-ésima subfigura. Nomeadamente, um valor obtido pela adição de 1 ao valor de subpic_width_minus1[i] pode ser um valor que indica a largura de uma i-ésima subfigura. Aqui, o valor que indica a largura de uma subfigura pode ser expresso em unidades de CtbSizeY. O número de bits de subpic_width_minus1[i] pode ser determinado como um valor obtido calculando Ceil(Log2(pic_width_max_in_luma_samples / CtbSizeY)). Quando subpic_width_minus1[i] não está presente, a largura de uma subfigura pode ser inferida como Ceil(pic_width_max_in_luma_samples / CtbSizeY) - 1.
[0116] subpic_height_minus1[i] é um elemento de sintaxe que indica um valor relacionado a uma altura de uma i-ésima subfigura. subpic_height_minus1[i] indica um valor obtido subtraindo 1 da altura de uma i-ésima subfigura. Nomeadamente, um valor obtido pela adição de 1 ao valor de subpic_height_minus1[i] pode ser um valor que indica uma altura de uma i-ésima subfigura. Aqui, o valor que indica a altura de uma subfigura pode ser expresso em unidades de CtbSizeY. O número de bits de subpic_height_minus1[i] pode ser determinado como um valor obtido calculando Ceil(Log2(pic_height_max_in_luma_samples / CtbSizeY)). pic_height_max_in_luma_samples é um elemento de sintaxe que indica a altura máxima de cada figura decodificada referente ao SPS. Quando subpic_height_minus1[i] não estiver presente, a altura de uma subfigura pode ser inferida como Ceil(pic_height_max_in_luma_samples / CtbSizeY) - 1.
[0117] subpic_treated_as_pic_flag[i] é um elemento de sintaxe que indica se o decodificador considera uma i-ésima subfigura como uma figura para realizar a decodificação. Quando um valor de subpic_treated_as_pic_flag[i] é 1, uma i-ésima subfigura em uma figura codificada individualmente dentro de uma sequência de vídeo de camada codificada (CLVS) pode ser tratada como uma figura durante um processo de decodificação, exceto para filtragem em loop. Quando o valor de subpic_treated_as_pic_flag[i] é 0, pode indicar que uma i-ésima subfigura em uma figura codificada individualmente dentro de um CLVS não é tratada como uma figura durante um processo de decodificação, exceto para filtragem em loop. Quando subpic_treated_as_pic_flag[i] não estiver presente, um valor de subpic_treated_as_pic_flag[i] pode ser inferido como 0.
[0118] Loop_filter_across_subpic_enabled_flag[i] é um elemento de sintaxe que indica se um filtro de loop pode ser operado em um limite de subfigura. Quando um valor de Loop_filter_across_subpic_enabled_flag[i] é 1, isso indica que um filtro de loop pode ser operado em um limite de subfigura. O filtro de loop pode ser aplicado a cada i-ésima subfigura codificada dentro de um CLVS. Quando o valor de Loop_filter_across_subpic_enabled_flag[i] for 0, isso indica que esse filtro de loop não é operado em um limite de subfigura. Quando Loop_filter_across_subpic_enabled_flag[i] não estiver presente, o valor de Loop_filter_across_subpic_enabled_flag[i] pode ser inferido como 1 .
[0119] Além disso, os parâmetros (elementos de sintaxe) relacionados a uma subfigura, que são descritos abaixo, podem ser sinalizados adicionalmente.
[0120] sps_subpic_id_present_flag é um elemento de sintaxe que indica se o mapeamento de ID de subfigura está presente no SPS. Quando um valor de sps_subpic_id_present_flag é 1, isso indica que o mapeamento de ID de subfigura está presente no SPS. Um ID de subfigura pode ser redefinido/mapeado como um novo valor de ID em vez de um valor definido padrão. Quando um valor de sps_subpic_id_present_flag é 0, isso indica que o mapeamento de ID de subfigura não está presente no SPS. sps_subpic_id_present_flag descrito na presente divulgação pode ser descrito como sps_subpic_id_mapping_explicitly_signalled_flag.
[0121] sps_subpic_id_signalling_present_flag é um elemento de sintaxe que indica se as informações relacionadas ao mapeamento de ID de subfigura são sinalizadas no SPS. Quando um valor de sps_subpic_id_signalling_present_flag é 1, as informações (valor de mapeamento) relacionadas ao mapeamento de ID de subfigura são sinalizadas no SPS. Quando o valor de sps_subpic_id_signalling_present_flag é 0, as informações (valor de mapeamento) relacionadas ao mapeamento de ID de subfigura não são sinalizadas no SPS. Quando sps_subpic_id_signalling_present_flag não está presente, o valor de sps_subpic_id_signalling_present_flag pode ser inferido como 0. sps_subpic_id_signalling_present_flag descrito na presente divulgação pode ser descrito como sps_subpic_id_mapping_present_flag.
[0122] sps_subpic_id_len_minus1 é um elemento de sintaxe que indica um valor relacionado ao número de bits para expressar um valor de sps_subpic_id[i] descrito abaixo. sps_subpic_id_len_minus1 indica um valor obtido subtraindo 1 do número de bits para expressar o valor de sps_subpic_id[i]. Ou seja, um valor obtido pela adição de 1 ao valor de sps_subpic_id_len_minus1 pode indicar o número de bits para expressar o valor de sps_subpic_id[i]. sps_subpic_id_len_minus1 pode ter um valor entre 0 e 15.
[0123] sps_subpic_id[i] é um elemento de sintaxe que indica um valor de ID de subfigura de uma i-ésima subfigura. O número de bits para expressar um valor de sps_subpic_id[i] pode ser calculado como sps_subpic_id_len_minus1 + 1. Quando sps_subpic_id[i] não está presente e o valor de sps_subpic_id_present_flag é 0, o valor de ID de subfigura de uma i-ésima subfigura pode ser um valor entre 0 e o valor de sps_num_subpics_minus1. Com referência à Figura 11, o valor de ID de subfigura pode ser determinado como um valor de i que aumenta em incrementos de 1 devido ao loop for na sintaxe if(subpics_present_flag). Quando sps_subpic_id[i] não está presente e o valor de sps_subpic_id_present_flag é 0, o número de bits para expressar o valor de sps_subpic_id[i] pode ser inferido como um valor obtido calculando Ceil(Log2 (sps_num_subpics_minus1 + 1)).
[0124] Na Figura 11, para que o elemento de sintaxe sps_subpic_id[i] seja sinalizado, o valor de sps_subpic_id_present_flag indicando se o mapeamento de ID de subfigura está presente deve ser 1. Além disso, o valor de sps_subpic_id_signalling_present_flag indicando que um valor de ID de subfigura mapeado é sinalizado em SPS deve ser 1. Então, o codificador/decodificador pode sinalizar/analisar sps_subpic_id_len_minus1 que é um elemento de sintaxe que indica o número de bits para expressar um valor de ID de subfigura, e o codificador pode informar o decodificador do valor de sps_subpic_id[i] pelo número de subfiguras previamente sinalizadas.
[0125] A Figura 12 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de conjunto de parâmetros de figura de acordo com uma modalidade da presente invenção.
[0126] Com referência à Figura 12, os elementos de sintaxe incluídos na estrutura de sintaxe de RBSP de PPS são descritos abaixo.
[0127] pps_pic_parameter_set_id é um elemento de sintaxe, que indica distintamente PPS para ser referido por outros elementos de sintaxe. pps_pic_parameter_set_id pode ter um valor entre 0 e 63.
[0128] pps_seq_parameter_set_id é um elemento de sintaxe que indica um valor correspondente a sps_seq_parameter_set_id para referência a SPS. Um valor de pps_seq_parameter_set_id deve ser o mesmo em todos os PPSs referidos por figuras codificadas dentro de um CLVS.
[0129] pic_width_in_luma_samples é um elemento de sintaxe que indica uma largura de uma figura codificada referente a PPS em unidades de amostra de luma. Um valor de pic_width_in_luma_samples não é 0 e deve ser expresso como um múltiplo de Max(8, MinCbSizeY) e deve ser igual ou menor que um valor de pic_width_max_in_luma_samples. pic_width_max_in_luma_samples pode indicar a largura máxima de uma figura pelo número de amostras de luma. Quando o valor de subpics_present_flag for 1 ou o valor de ref_pic_resampling_enabled_flag for 0, o valor de pic_width_in_luma_samples deverá ser igual ao valor de pic_width_max_in_luma_samples. Max(a, b) é uma função que retorna um valor maior entre “a” e “b”.
[0130] pic_height_in_luma_samples é um elemento de sintaxe que indica uma altura de cada figura decodificada referente a PPS em unidades de amostra de luma. Um valor de pic_height_in_luma_samples não é 0 e deve ser expresso como um múltiplo de Max(8, MinCbSizeY) e deve ser igual ou menor que um valor de pic_height_max_in_luma_samples.
[0131] Os quatro elementos de sintaxe pps_subpic_id_signalling_present_flag, pps_num_subpics_minus1, pps_subpic_id_len_minus1 e pps_subpic_id[i] descritos abaixo são elementos de sintaxe em PPS relacionados a uma subfigura.
[0132] pps_subpic_id_signalling_present_flag é um elemento de sintaxe que indica se o mapeamento de ID de subfigura é sinalizado em PPS. Quando um valor de pps_subpic_id_signalling_present_flag é 1, indica que o mapeamento de ID de subfigura é sinalizado em PPS. Quando o valor de pps_subpic_id_signalling_present_flag é 0, indica que o mapeamento de ID de subfigura não está sinalizado no PPS. Além disso, quando o valor de sps_subpic_id_present_flag for 0 ou o valor de sps_subpic_id_signalling_present_flag for 1, o valor de pps_subpic_id_signalling_present_flag deverá ser 0.
[0133] pps_num_subpics_minus1 é um elemento de sintaxe que indica um valor relacionado ao número de subfiguras em uma figura codificada referente a PPS. Um valor de pps_num_subpics_minus1 é um valor obtido subtraindo 1 do número de subfiguras em uma figura codificada referente a PPS. Nomeadamente, um valor obtido pela adição de 1 ao valor de pps_num_subpics_minus1 pode indicar o número de subfiguras em uma figura codificada referente a PPS. Como uma condição de correspondência de fluxo de bits, o valor de pps_num_subpic_minus1 deve ser igual ao valor de sps_num_subpics_minus1.
[0134] pps_subpic_id_len_minus1 é um elemento de sintaxe que indica um valor relacionado ao número de bits usados para expressar pps_subpic_id[i]. Um valor de pps_subpic_id_len_minus1 indica um valor obtido subtraindo 1 do número de bits usados para expressar pps_subpic_id[i]. Ou seja, um valor obtido pela adição de 1 ao valor de pps_subpic_id_len_minus1 indica o número de bits usados para expressar pps_subpic_id[i]. O valor de pps_subpic_id_len_minus1 pode variar de 0 a 15. Como uma condição de correspondência de fluxo de bits, o valor de pps_subpic_id_len_minus1 deve ser o mesmo em todos os PPSs referidos em figuras codificadas dentro de um CLVS.
[0135] pps_subpic_id[i] é um elemento de sintaxe que indica um valor de ID de subfigura de uma i-ésima subfigura. Um comprimento (número de bits) de pps_subpic_id[i] pode ser igual a um valor obtido calculando pps_subpic_id_len_minus1 + 1.
[0136] A Figura 13 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de cabeçalho de figura de acordo com uma modalidade da presente invenção.
[0137] Com referência à Figura 13, os elementos de sintaxe incluídos na estrutura de sintaxe de RBSP de cabeçalho de figura são descritos abaixo.
[0138] ph_pic_parameter_set_id é um elemento de sintaxe que indica um valor correspondente a pps_pic_parameter_set_id definido no PPS. ph_pic_parameter_set_id pode ter um valor entre 0 e 63.
[0139] ph_subpic_id_signalling_present_flag é um elemento de sintaxe que indica se a sinalização de mapeamento de ID de subfigura pode ser transmitida em um cabeçalho de figura. Quando um valor de ph_subpic_id_signalling_present_flag é 1, isso indica que a sinalização de mapeamento de ID de subfigura pode ser transmitida em um cabeçalho de figura. Quando o valor de ph_subpic_id_signalling_present_flag é 0, isso indica que a sinalização de mapeamento de ID de figura de subfigura não é transmitida em um cabeçalho de figura.
[0140] ph_subpic_id_len_minus1 é um elemento de sintaxe que indica um valor relacionado ao número de bits usados para expressar ph_subpic_id[i]. ph_subpic_id_len_minus1 pode indicar um valor obtido subtraindo 1 do número de bits usados para expressar ph_subpic_id[i]. Ou seja, um valor obtido pela adição de 1 ao valor de ph_subpic_id_len_minus1 pode ser o número de bits usados para expressar ph_subpic_id[i]. Aqui, o valor de pic_subpic_id_len_minus1 pode estar entre 0 e 15. Como uma condição de correspondência de fluxo de bits, o valor de ph_subpic_id_len_minus1 deve ser o mesmo em todos os PHs referidos por uma figura codificada dentro de um CLVS.
[0141] ph_subpic_id[i] é um elemento de sintaxe que indica um i-ésimo valor de ID de subfigura. O número de bits para expressar ph_subpic_id[i] pode ser calculado como ph_subpic_id_len_minus1 + 1.
[0142] SubpicIdList[i] é um elemento de sintaxe usado para determinar um valor de slice_subpic_id em um cabeçalho de fatia.
[0143] Um método de derivar SubpicIdList[i] é expresso pela Equação 1. [Equação 1] for( i = 0; i <= sps_num_subpics_minus1; i++ ) Subpicldl_ist[i] = sps_subpic_id_present_flag ? (sps_subpic_id_signalling_present_flag ? sps_subpicjd[i] : (ph_subpic_id_signalling_present_flag ? ph_subpic_id[i] : pps_subpic_id[i])) : i
[0144] “?” é um operador condicional, e A = B ? C : D indica que A se torna um valor de C se a condição B for verdadeira e se torna um valor de D se a condição B for falsa.
[0145] Com referência à Equação 1, um valor de SubpicIdList[i] é determinado de acordo com o valor de sps_subpic_id_signalling_present_flag quando o valor de sps_subpic_id_present_flag é 1. Aqui, quando o valor de sps_subpic_id_signalling_present_flag é 1, o valor de SubpicIdList[i] é o igual ao valor de sps_subpic_id[i]. Quando o valor de sps_subpic_id_signalling_present_flag é 0, o valor de SubpicIdList[i] é determinado de acordo com o valor de ph_subpic_id_signalling_present_flag. Aqui, quando o valor de ph_subpic_id_signalling_present_flag é 1, o valor de SubpicIdList[i] é o mesmo que o valor de ph_subpic_id[i]. Quando o valor de ph_subpic_id_signalling_present_flag é 0, o valor de SubpicIdList[i] é igual ao valor de pps_subpic_id[i].
[0146] Enquanto isso, o valor de SubpicIdList[i] é igual a um índice i quando o valor de sps_subpic_id_present_flag é 0.
[0147] A Figura 14 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de cabeçalho de figura de acordo com uma modalidade da presente invenção.
[0148] Em detalhes, a Figura 14 mostra que ph_subpic_id[i] é sempre sinalizado/analisado na estrutura de sintaxe de RBSP de cabeçalho de figura.
[0149] Pode haver um caso em que o valor de ph_subpic_id[i] não esteja presente de acordo com uma condição na qual SubpicIdList[i] descrito na Figura 13 é sinalizado/analisado. Por exemplo, conforme mostrado na Equação 1, quando o valor de sps_subpic_id_present_flag é 1, o valor de sps_subpic_id_signalling_present_flag é 0 e o valor de ph_subpic_id_signalling_present_flag é 0, SubpicIdList[i] = pps_subpic_id[i]. No entanto, pode haver um caso em que o valor de pps_subpic_id[i] não esteja presente. Como uma condição (isto é, sps_subpic_id_present_flag && !sps_subpic_id_signalling_flag) não é considerada ao sinalizar/analisar pps_subpic_id_signalling_present_flag, o valor de pps_subpics_id_signalling_present_flag pode ser 0. Um valor de ID de subfigura pode não ser transmitido em PPS quando o valor de pps_subpic_id_signalling_present_flag é 0 e, portanto, o valor de pps_subpic_id[i] pode não estar presente. A Figura 14 ilustra um exemplo para resolver este problema. Com referência à Figura 14, existe uma condição para sinalização/análise de ph_subpic_id[i] na estrutura de sintaxe de RBSP do cabeçalho da figura. Ou seja, quando sps_subpic_id_present_flag && !sps_subpic_id_signalling_flag for verdadeiro, ph_subpic_id_len_minus1 e ph_subpic_id[i] podem ser sinalizados/analisados. Em um cabeçalho de figura, quando sps_subpic_id_present_flag é verdadeiro (isto é, o valor de sps_subpic_id_present_flag é 1) e o valor de sps_subpic_id_signalling_flag é 0, um valor de ID de subfigura não sinalizado no SPS pode ser transmitido. A transmissão de um valor de ID de subfigura em um cabeçalho de figura pode ser independente de um valor de ID de subfigura estar presente no PPS.
[0150] A Figura 15 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de cabeçalho de figura de acordo com uma modalidade da presente invenção.
[0151] A Figura 15 ilustra outro método para sempre sinalizar/analisar o valor de ph_subpic_id[i] para abordar o caso mencionado acima em que o valor de SubpicIdList[i] não está presente de acordo com uma condição de sinalização/análise sintática.
[0152] Quando a condição sps_subpic_id_present_flag && !sps_subpic_id_signalling_flag && !pps_subpic_id_signalling_flag for verdadeira, ph_subpic_id_len_minus1 e ph_subpic_id[i] podem ser sinalizados/analisados. Em outras palavras, a Figura 15 propõe um formato no qual uma condição relacionada a pps_subpic_id_signalling_flag é adicionada à condição descrita com referência à Figura 14. Além da condição proposta com referência à Figura 14, quando o valor de pps_subpic_id_signalling_flag é 0, subpic_id[i] não pode ser sinalizado/analisado na sintaxe de RBSP de SPS e na sintaxe de RBSP de PPS. Neste caso, pode ser indicado que subpic_id[i] deve ser sinalizado/analisado em um cabeçalho de figura.
[0153] A Figura 16 ilustra uma estrutura de sintaxe e semântica de RBSP de conjunto de parâmetros de figura de acordo com uma modalidade da presente invenção.
[0154] A Figura 16 ilustra outro método para sempre sinalizar/analisar o valor de ph_subpic_id[i] para abordar o caso mencionado acima em que o valor de SubpicIdList[i] não está presente de acordo com uma condição de sinalização/análise sintática.
[0155] A Figura 16 ilustra que uma condição adicional é adicionada a uma semântica que descreve pps_subpic_id_signalling_present_flag na estrutura de sintaxe RBSP do cabeçalho da figura descrita com referência à Figura 13.
[0156] A condição adicional é descrita abaixo. [Quando sps_subpic_id_present_flag é igual a 1 e sps_subpic_id_signalling_present_flag é igual a 0, pps_subpic_id_signalling_present_flag deve ser igual a 1]. Em outras palavras, quando o valor de sps_subpic_id_present_flag é 1 e o valor de sps_subpic_id_signalling_present_flag é 0, o valor de pps_subpic_id_signalling_present_flag pode ser definido como 1. Ou seja, no caso em que é indicado que o mapeamento de ID de subfigura está presente no SPS, mas um valor de ID de subfigura não é sinalizado em SPS, o valor de pps_subpic_id_signalling_present_flag pode ser definido como 1 em PPS e um valor de ID de subfigura pode ser sinalizado/analisado em PPS. Isto é eficaz em termos do grau de liberdade de transmissão de um valor de ID de subfigura, uma vez que um valor de ID de subfigura pode ser transmitido num cabeçalho de figura. Quando um valor de ID de subfigura é transmitido simultaneamente em um cabeçalho de figura e em PPS conforme configurado anteriormente, o valor de SubpicIdList[i] pode ser determinado como um valor de um cabeçalho de figura.
[0157] A Figura 17 é um diagrama que ilustra um método para determinar uma variável de matriz SubpicIdList[i] de acordo com uma modalidade da presente invenção.
[0158] Em detalhes, a Figura 17 é um diagrama que ilustra um método para resolver um problema que pode ocorrer na Equação 1.
[0159] A Figura 17 mostra que quando sps_subpic_id_present_flag é verdadeiro (isto é, tem um valor de 1), sps_subpic_id_signalling_present_flag é falso (isto é, tem um valor de 0) e ph_subpic_id_signalling_present_flag é falso (isto é, tem um valor de 0), a condição de pps_subpic_id_signalling_present_flag é verificada novamente. O codificador/decodificador pode verificar a condição de pps_subpic_id_signalling_present_flag novamente e pode determinar SubpicIdList[i] como pps_subpic_id[i] quando pps_subpic_id_signalling_present_flag for verdadeiro (isto é, tem um valor de 1) e determinar SubpicIdList[i] como um valor de índice i quando pps_subpic_id_signalling_present_flag é falso (isto é, tem um valor de 0).
[0160] Além disso, como uma condição de correspondência de fluxo de bits, a condição de que pelo menos um dos valores de sps_subpic_id_signalling_present_flag, pps_subpic_id_signalling_present_flag e ph_subpic_id_signalling_present_flag deve ser 1 quando o valor de sps_subpic_id_present_flag for 1 pode ser considerado.
[0161] [sps_subpic_id_present_flag igual a 1 especifica que o mapeamento de ID de subfigura está presente no SPS. sps_subpic_id_present_flag igual a 0 especifica que o mapeamento de ID de subfigura não está presente no SPS. É um requisito de conformidade de fluxo de bits que o valor de um dentre sps_subpic_id_signalling_present_flag, pps_subpic_id_signalling_present_flag e ph_subpic_id_signalling_present_flag seja igual a 1.]
[0162] A Figura 18 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de conjunto de parâmetros de sequência de acordo com uma modalidade da presente invenção.
[0163] A Figura 18 é um diagrama que ilustra uma estrutura na qual sps_subpic_id_present_flag incluída na estrutura de sintaxe de RBSP de SPS é sinalizada/analisada. sps_subpic_id_present_flag é um elemento de sintaxe que indica se o mapeamento de ID de subfigura está presente e pode ser significativo quando uma subfigura está presente. Com referência à Figura 11, no SPS, sps_subpic_id_present_flag é sinalizado/analisado independentemente de (independentemente de verdadeiro/falso) um resultado de análise de subpics_present_flag indicando se uma subfigura está presente em uma figura. Portanto, conforme descrito acima, quando o valor de subpics_present_flag é 0, sps_subpic_id_present_flag não é mais significativo. Em outras palavras, como o mapeamento de ID de subfigura não está obviamente presente se uma subfigura não estiver presente em uma figura, sps_subpic_id_present_flag que é um elemento de sintaxe que indica se o mapeamento de ID de subfigura está presente não é necessário. Portanto, de acordo com a Figura 18, sps_subpic_id_present_flag pode ser sinalizado/analisado quando subpics_present_flag for verdadeiro.
[0164] A Figura 19 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de conjunto de parâmetros de sequência de acordo com uma modalidade da presente invenção.
[0165] Em detalhes, a Figura 19 refere-se a elementos de sintaxe relacionados a uma partição na estrutura de sintaxe de RBSP de SPS de acordo com uma modalidade da presente invenção.
[0166] log2_min_luma_coding_block_size_minus2 é um elemento de sintaxe que indica um valor relacionado a um tamanho mínimo de bloco de codificação de luma. log2_min_luma_coding_block_size_minus2 indica um valor obtido subtraindo 2 de um tamanho mínimo de bloco de codificação de luma. Ou seja, um valor obtido pela adição de 2 ao valor de log2_min_luma_coding_block_size_minus2 pode indicar um tamanho mínimo de bloco de codificação de luma. Aqui, log2_min_luma_coding_block_size_minus2 pode ter um valor entre 0 e (sps_log2_ctu_size_minus5 + 3). sps_log2_ctu_size_minus5 é um elemento de sintaxe que indica um valor relacionado ao tamanho de um bloco de árvore de codificação luma de uma unidade de árvore de codificação. sps_log2_ctu_size_minus5 pode ser sinalizado/analisado no SPS e pode ter um valor entre 0 e 2.
[0167] As variáveis MinCbLog2SizeY, MinCbSizeY, IbcBufWidthY, IbcBufWidthC e Vsize que podem ser usadas na presente invenção podem ser calculadas usando a Equação 2. [Equação 2] MinCbLog2SizeY = Iog2_minjuma_coding_block_size_minus2 + 2 MinCbSizeY =1 << MinCbLog2SizeY IbcBufWidthY = 256 * 128 / CtbSizeY IbcBufWidthC = IbcBufWidthY / SubWidthC VSize = Min( 64, CtbSizeY )
[0168] MinCbLog2SizeY denota um tamanho mínimo de bloco de codificação de luma em unidades log2, MinCbSizeY denota um tamanho mínimo de bloco de codificação, IbcBufWidthY denota um tamanho de buffer de luma capaz de armazenar uma área de referência necessária para cópia de intrabloco, e IbcBufWidthC denota um tamanho de buffer de croma capaz de armazenando uma área de referência necessária para a cópia intrabloco.
[0169] Min(a, b) é uma função que retorna um valor menor entre “a” e “b”. A variável MinCbSizeY deve ser igual ou menor que VSize.
[0170] partition_constraints_override_enabled_flag é um elemento de sintaxe que indica se partition_constraints_override_flag que é um elemento de sintaxe de restrição de partição (flag) está presente em um cabeçalho de figura referente a SPS. Quando um valor de partition_constraints_override_enabled_flag é 1, isso indica que partition_constraints_override_flag pode estar presente em um cabeçalho de figura referente ao SPS. Quando o valor de partition_constraints_override_enabled_flag for 0, isso indica que partition_constraints_override_flag não está presente em um cabeçalho de figura referente ao SPS.
[0171] Log2 descrito na presente divulgação é um operador log2(A).
[0172] sps_log2_diff_min_qt_min_cb_intra_slice_luma é um elemento de sintaxe que indica uma diferença entre um valor obtido tomando um logaritmo binário de um tamanho mínimo de amostras de luma de um bloco de folha luma que é resultado da divisão de árvore quaternária de CTU e um valor obtido tomando um binário logaritmo de um tamanho mínimo de bloco de codificação para uma unidade de codificação luma em fatias de fatia tipo 2 (fatia I) referente a SPS. Quando o valor de partition_constraints_override_enabled_flag for 1, sps_log2_diff_min_qt_min_cb_intra_slice_luma poderá ser alterado para o valor de pic_log2_diff_min_qt_min_cb_luma se pic_log2_diff_min_qt_min_cb_luma estiver presente em um cabeçalho de figura referente ao SPS. sps_log2_diff_min_qt_min_cb_intra_slice_luma pode ter um valor entre 0 e (CtbLog2SizeY - MinCbLog2SizeY). O valor (MinQtLog2SizeIntraY) obtido tomando um logaritmo binário de um tamanho mínimo de amostras de luma de um bloco de folha de luma que é resultado da divisão de árvore quaternária de CTU pode ser calculado conforme mostrado na Equação 3. [Equação 3] MinQtLog2SizelntraY = sps_log2_diff_min_qt_min_cb_intra_slice_luma + MinCbLog2SizeY
[0173] sps_log2_diff_min_qt_min_cb_inter_slice é um elemento de sintaxe que indica uma diferença entre um valor obtido tomando um logaritmo binário de um tamanho mínimo de amostras de luma de um bloco de folha de luma que é resultado da divisão de árvore quaternária de CTU e um valor obtido tomando um binário logaritmo de um tamanho mínimo de bloco de codificação para uma unidade de codificação luma em fatias do tipo 0 (fatia B), 1 (fatia P) ou 2 (fatia I) referente a SPS. Quando o valor de partition_constraints_override_enabled_flag é 1, o valor de sps_log2_diff_min_qt_min_cb_inter_slice pode ser alterado para o valor de pic_log2_diff_min_qt_min_cb_luma que está presente em um cabeçalho de figura referente ao SPS. sps_log2_diff_min_qt_min_cb_inter_slice pode ter um valor entre 0 e (CtbLog2SizeY - MinCbLog2SizeY). O valor (MinQtLog2SizeInterY) obtido tomando um logaritmo binário de um tamanho mínimo de amostras de luma de um bloco de folha de luma que é resultado da divisão de árvore quaternária de CTU pode ser calculado conforme mostrado na Equação 4. [Equação 4]
[0174] sps_max_mtt_hierarchy_depth_inter_slice é um elemento de sintaxe que indica uma profundidade de hierarquia máxima básica de uma unidade de codificação. Aqui, a unidade de codificação pode ser um resultado da divisão multi- tipo de um nó folha de árvore quaternária em uma fatia de fatia tipo 0 (fatia B) ou fatia tipo 1 (fatia P) referente a SPS. Em outras palavras, sps_max_mtt_hierarchy_depth_inter_slice pode ser um elemento de sintaxe que indica um número máximo de vezes que uma unidade de codificação pode ser dividida em forma de vários tipos em uma entre fatias. Quando o valor de partition_constraints_override_enabled_flag é 1, o valor de sps_max_mtt_hierarchy_depth_inter_slice pode ser alterado para o valor de pic_max_mtt_hierarchy_depth_inter_slice que está presente em um cabeçalho de figura referente ao SPS. sps_max_mtt_hierarchy_depth_inter_slice pode ter um valor entre 0 e 2*(CtbLog2SizeY - MinCbLog2SizeY).
[0175] sps_max_mtt_hierarchy_depth_intra_slice_luma é um elemento de sintaxe que indica uma profundidade de hierarquia máxima básica de uma unidade de codificação. Aqui, a unidade de codificação pode ser resultado da divisão multitipo de um nó folha de árvore quaternária em uma fatia de fatia tipo 2 (fatia I) referente a SPS. Nomeadamente, este pode ser um elemento de sintaxe que indica um número máximo de vezes que uma unidade de codificação pode ser dividida em forma de vários tipos em uma fatia interna. Quando o valor de partition_constraints_override_enabled_flag é 1, o valor de sps_max_mtt_hierarchy_depth_intra_slice_luma pode ser alterado para o valor de pic_max_mtt_hierarchy_depth_intra_slice_luma que está presente em um cabeçalho de figura referente ao SPS. sps_max_mtt_hierarchy_depth_intra_slice_luma pode ter um valor entre 0 e 2*(CtbLog2SizeY - MinCbLog2SizeY).
[0176] sps_log2_diff_max_bt_min_qt_intra_slice_luma pode ser um elemento de sintaxe que indica uma diferença entre um valor obtido tomando um logaritmo binário de um tamanho máximo (largura ou altura) de um bloco de codificação luma capaz de ser dividido binário e um valor obtido tomando um logaritmo binário de um tamanho mínimo (largura ou altura) de um bloco de folha de luma que é resultado da divisão de árvore quaternária de CTU em fatias de fatia tipo 2 (fatia I) referente ao SPS. Quando o valor de partition_constraints_override_enabled_flag é 1, o valor de sps_log2_diff_max_bt_min_qt_intra_slice_luma pode ser alterado para o valor de pic_log2_diff_max_bt_min_qt_luma que está presente em um cabeçalho de figura referente ao SPS. sps_log2_diff_max_bt_min_qt_intra_slice_luma pode ter um valor entre 0 e (CtbLog2SizeY - MinQtLog2SizeIntraY). Quando sps_log2_diff_max_bt_min_qt_intra_slice_luma não está presente, o valor de sps_log2_diff_max_bt_min_qt_intra_slice_luma pode ser inferido como 0.
[0177] sps_log2_diff_max_tt_min_qt_intra_slice_luma pode ser um elemento de sintaxe que indica uma diferença entre um valor obtido tomando um logaritmo binário de um tamanho máximo (largura ou altura) de um bloco de codificação luma capaz de ser dividido ternário e um valor obtido tomando um logaritmo binário de um tamanho mínimo (largura ou altura) de um nó de folha de luma que é resultado da divisão da árvore quaternária de CTU em fatias de fatia tipo 2 (fatia I) referente ao SPS. Quando o valor de partition_constraints_override_enabled_flag é 1, o valor de sps_log2_diff_max_tt_min_qt_intra_slice_luma pode ser alterado para o valor de pic_log2_diff_max_tt_min_qt_luma que está presente em um cabeçalho de figura referente ao SPS. sps_log2_diff_max_tt_min_qt_intra_slice_luma pode ter um valor entre 0 e (CtbLog2SizeY - MinQtLog2SizeIntraY). Quando sps_log2_diff_max_tt_min_qt_intra_slice_luma não está presente, o valor de sps_log2_diff_max_tt_min_qt_intra_slice_luma pode ser inferido como 0.
[0178] sps_log2_diff_max_bt_min_qt_inter_slice pode ser um elemento de sintaxe que indica uma diferença entre um valor obtido tomando um logaritmo binário de um tamanho máximo (largura ou altura) de um bloco de codificação luma capaz de ser dividido binário e um valor obtido tomando um logaritmo binário de um tamanho mínimo de um bloco de folha de luma que é resultado da divisão de árvore quaternária de CTU em fatias de fatia tipo 0 (fatia B) ou 1 (fatia P) referente ao SPS. Quando o valor de partition_constraints_override_enabled_flag é 1, o valor de sps_log2_diff_max_bt_min_qt_inter_slice pode ser alterado para o valor de pic_log2_diff_max_bt_min_qt_luma que está presente em um cabeçalho de figura referente ao SPS. sps_log2_diff_max_bt_min_qt_inter_slice pode ter um valor entre 0 e (CtbLog2SizeY - MinQtLog2SizeInterY). Quando sps_log2_diff_max_bt_min_qt_inter_slice não está presente, o valor de sps_log2_diff_max_bt_min_qt_inter_slice pode ser inferido como 0.
[0179] sps_log2_diff_max_tt_min_qt_inter_slice pode ser um elemento de sintaxe que indica uma diferença entre um valor obtido tomando um logaritmo binário de um tamanho máximo (largura ou altura) de um bloco de codificação luma capaz de ser dividido ternário e um valor obtido tomando um logaritmo binário de um tamanho mínimo de um bloco de folha de luma que é resultado da divisão de árvore quaternária de CTU em fatias de fatia tipo 0 (fatia B) ou 1 (fatia P) referente ao SPS.
[0180] Quando o valor de partition_constraints_override_enabled_flag é 1, o valor de partition_constraints_override_enabled_flag pode ser alterado para o valor de pic_log2_diff_max_tt_min_qt_luma que está presente em um cabeçalho de figura referente ao SPS. sps_log2_diff_max_tt_min_qt_inter_slice pode ter um valor entre 0 e (CtbLog2SizeY - MinQtLog2SizeInterY). Quando sps_log2_diff_max_tt_min_qt_inter_slice não está presente, o valor de sps_log2_diff_max_tt_min_qt_inter_slice pode ser inferido como 0.
[0181] sps_log2_diff_min_qt_min_cb_intra_slice_chroma pode ser um elemento de sintaxe que indica uma diferença entre um valor obtido tomando um logaritmo binário de um tamanho mínimo de um bloco de folha de croma que é resultado da divisão de árvore quaternária de uma CTU de croma com um tipo de árvore de DUAL_TREE_CHROMA e um valor obtido tomando um logaritmo binário de um tamanho mínimo de bloco de codificação de croma CUs tendo um tipo de árvore DUAL_TREE_CHROMA em uma fatia de fatia tipo 2 (fatia I) referente a SPS. Quando o valor de partition_constraints_override_enabled_flag é 1, o valor de sps_log2_diff_min_qt_min_cb_intra_slice_chroma pode ser alterado para o valor de pic_log2_diff_min_qt_min_cb_chroma que está presente em um cabeçalho de figura referente ao SPS.
[0182] sps_log2_diff_min_qt_min_cb_intra_slice_chroma pode ter um valor entre 0 e (CtbLog2SizeY - MinCbLog2SizeY). Quando sps_log2_diff_min_qt_min_cb_intra_slice_chroma não está presente, o valor de sps_log2_diff_min_qt_min_cb_intra_slice_chroma pode ser inferido como 0. O valor (MinQtLog2SizeIntraC) obtido tomando um logaritmo binário de um tamanho mínimo de um bloco de folha de croma que é resultado da divisão de árvore quaternária de uma CTU de croma com um tipo de árvore de DUAL_TREE_CHROMA pode ser calculado como mostrado na Equação 5. [Equação 5] MinQtLog2SizelntraC = spsjog2_diff_min_qt_min_cbjntra_slice_chroma + MinCbl_og2SizeY
[0183] sps_max_mtt_hierarchy_depth_intra_slice_chroma pode ser um elemento de sintaxe que indica uma profundidade de hierarquia máxima básica para uma unidade de codificação de croma que é resultado da divisão de vários tipos de um nó de folha de árvore quaternária de croma tendo um tipo de árvore de DUAL_TREE_CHROMA em uma fatia do tipo de fatia 2 (fatia I) referindo-se ao SPS. Quando o valor de partition_constraints_override_enabled_flag é 1, o valor de sps_max_mtt_hierarchy_depth_intra_slice_chroma pode ser alterado para o valor de pic_max_mtt_hierarchy_depth_intra_slice_chroma que está presente em um cabeçalho de figura referente ao SPS. sps_max_mtt_hierarchy_depth_intra_slice_chroma pode ter um valor entre 0 e 2*(CtbLog2SizeY - MinCbLog2SizeY). Quando sps_max_mtt_hierarchy_depth_intra_slice_chroma não está presente, o valor de sps_max_mtt_hierarchy_depth_intra_slice_chroma pode ser inferido como 0.
[0184] sps_log2_diff_max_bt_min_qt_intra_slice_chroma pode ser um elemento de sintaxe que indica uma diferença entre um valor obtido tomando um logaritmo binário de um tamanho máximo (largura ou altura) de um bloco de codificação de croma capaz de ser dividido binário e um valor obtido tomando um logaritmo binário de um tamanho mínimo (largura ou altura) de um bloco de folha de croma que é resultado da divisão de árvore quaternária de uma CTU de croma com um tipo de árvore de DUAL_TREE_CHROMA em fatias de fatia tipo 2 (fatia I) referindo-se a SPS. Quando o valor de partition_constraints_override_enabled_flag é 1, o valor de sps_log2_diff_max_bt_min_qt_intra_slice_chroma pode ser alterado para o valor de pic_log2_diff_max_bt_min_qt_chroma que está presente em um cabeçalho de figura referente ao SPS. sps_log2_diff_max_bt_min_qt_intra_slice_chroma pode ter um valor entre 0 e (CtbLog2SizeY - MinQtLog2SizeIntraC). Quando sps_log2_diff_max_bt_min_qt_intra_slice_chroma não está presente, o valor de sps_log2_diff_max_bt_min_qt_intra_slice_chroma pode ser inferido como 0.
[0185] sps_log2_diff_max_tt_min_qt_intra_slice_chroma pode ser um elemento de sintaxe que indica uma diferença entre um valor obtido tomando um logaritmo binário de um tamanho máximo (largura ou altura) de um bloco de codificação de croma capaz de ser dividido ternário e um valor obtido tomando um logaritmo binário de um tamanho mínimo (largura ou altura) de um bloco de folha de croma que é resultado da divisão de árvore quaternária de uma CTU de croma com um tipo de árvore de DUAL_TREE_CHROMA em fatias de fatia tipo 2 (fatia I) referindo-se a SPS. Quando o valor de partition_constraints_override_enabled_flag é 1, o valor de sps_log2_diff_max_tt_min_qt_intra_slice_chroma pode ser alterado para o valor de pic_log2_diff_max_tt_min_qt_chroma que está presente em um cabeçalho de figura referente ao SPS. sps_log2_diff_max_tt_min_qt_intra_slice_chroma pode ter um valor entre 0 e (CtbLog2SizeY - MinQtLog2SizeIntraC). Quando sps_log2_diff_max_tt_min_qt_intra_slice_chroma não está presente, o valor de sps_log2_diff_max_tt_min_qt_intra_slice_chroma pode ser inferido como 0.
[0186] Os tipos de fatia descritos na presente divulgação podem incluir três tipos. A fatia tipo 0 pode ser a fatia B, a fatia tipo 1 pode ser a fatia P e a fatia tipo 2 pode ser a fatia I. Os tipos de fatia 0 e 1 podem ser codificados/decodificados usando métodos de interpredição e intrapredição, e o tipo de fatia 2 pode ser codificado/decodificado usando apenas intrapredição.
[0187] Os tipos de árvore descritos na presente divulgação podem incluir dois tipos. Esses tipos podem ser classificados grosseiramente em uma única árvore (SINGLE_TREE) e uma árvore dupla. Aqui, a árvore dupla pode ser classificada de acordo com se um bloco é um componente luma (DUAL_TREE_LUMA) ou um componente de croma (DUAL_TREE_CHROMA). Na árvore única, um bloco de um componente luma e um bloco de um componente de croma podem ser divididos usando o mesmo método ao dividir um bloco. Na árvore dupla, um bloco de um componente luma e um bloco de um componente de croma podem ser divididos usando métodos diferentes ao dividir um bloco.
[0188] A Figura 20 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de conjunto de parâmetros de sequência de acordo com uma modalidade da presente invenção.
[0189] Em detalhes, a Figura 20 mostra uma estrutura na qual os elementos de sintaxe relacionados a uma partição de bloco de codificação na sintaxe de RBSP de SPS são sinalizados/analisados. MinCbSizeY e CtbSizeY entre as variáveis mencionadas acima podem ter o mesmo valor. log2_min_luma_coding_block_size_minus2 pode ter um valor entre 0 e (sps_log2_ctu_size_minus5 + 3). Por exemplo, uma CTU pode ter um tamanho de 32 quando sps_log2_ctu_size_minus5 tem um valor de 0 e, aqui, log2_min_luma_coding_block_size_minus2 pode ter um valor entre 0 e 3. Quando o valor de log2_min_luma_coding_block_size_minus2 é 3, MinCbLog2SizeY tem um valor de 5 e MinCbSizeY tem um valor de 32 de acordo com a Equação 2 (isto é, 1 << 5). MinCbSizeY e CtbSizeY se tornam iguais. Mesmo quando o valor de sps_log2_ctu_size_minus5 for 1, MinCbSizeY e CtbSizeY podem se tornar iguais. No entanto, quando o valor de sps_log2_ctu_size_minus5 é 2, pode não ocorrer um caso em que MinCbSizeY e CtbSizeY são iguais. Uma porção dos elementos de sintaxe relacionados à partição da Figura 20 pode indicar um valor de 0 quando MinCbSizeY e CtbSizeY são iguais. Portanto, quando MinCbSizeY e CtbSizeY são iguais, os elementos de sintaxe relacionados à partição podem ser inferidos como tendo um valor de 0 sem serem sinalizados/analisados. Por exemplo, entre o elementos de sintaxe, sps_log2_diff_min_qt_min_cb_intra_slice_luma, sps_log2_diff_min_qt_min_cb_inter_slice, sps_max_mtt_hierarchy_depth_inter_slice, sps_max_mtt_hierarchy_depth_intra_slice_luma, sps_log2_diff_min_qt_min_cb_intra_slice_chroma, e sps_max_mtt_hierarchy_depth_intra_slice_chroma, que são elementos de sintaxe tendo um valor entre 0 e (CtbLog2SizeY - MinCbLog2SizeY), podem ser inferidos como tendo um valor de 0.
[0190] Elementos de sintaxe sps_log2_diff_max_bt_min_qt_intra_slice_luma, sps_log2_diff_max_tt_min_qt_intra_slice_luma, sps_log2_diff_max_bt_min_qt_inter_slice, e sps_log2_diff_max_tt_min_qt_inter_slice podem ter um valor entre 0 e (CtbLog2SizeY - MinQtLog2SizeIntraY). Visto que o valor de sps_log2_diff_min_qt_min_cb_inter_slice é inferido como 0, MinQtLog2SizeIntraY é igual a MinCbLog2SizeY de acordo com a Equação 4. O valor de CtbLog2SizeY pode ser 0 igual ao valor de MinCbLog2SizeY.
[0191] Elementos de sintaxe sps_log2_diff_max_bt_min_qt_intra_slice_chroma e sps_log2_diff_max_tt_min_qt_intra_slice_chroma pode ter um valor entre 0 e (CtbLog2SizeY - MinQtLog2SizeIntraC). Visto que o valor de sps_log2_diff_min_qt_min_cb_intra_slice_chroma é inferido como 0, MinQtLog2SizeIntraC é igual a MinCbLog2SizeY de acordo com a Equação 5. O valor de CtbLog2SizeY pode ser 0 igual ao valor de MinCbLog2SizeY.
[0192] Portanto, os elementos de sintaxe partition_constraints_override_enabled_flag, sps_log2_diff_min_qt_min_cb_intra_slice_luma, sps_log2_diff_min_qt_min_cb_inter_slice, sps_max_mtt_hierarchy_depth_inter_slice, e sps_max_mtt_hierarchy_depth_intra_slice_luma da Figura 20 podem ser sinalizados/analisados apenas quando o valor de MinCbSizeY e o valor de CtbSizeY não forem iguais. Em outras palavras, os elementos de sintaxe acima podem ser sinalizados/analisados quando a condição ‘MinCbSizeY != CtbSizeY’ for verdadeira. Além disso, quando parâmetros (elementos de sintaxe) relacionados a uma partição do bloco de codificação estão presentes em um cabeçalho de figura referente ao SPS, valores dos parâmetros relacionados a uma partição do bloco de codificação são priorizados em relação aos valores definidos no SPS. Em outras palavras, os valores dos parâmetros relacionados a uma partição do bloco de codificação são alterados para valores definidos em um cabeçalho de figura. Além disso, elementos de sintaxe sps_log2_diff_min_qt_min_cb_intra_slice_chroma e sps_max_mtt_hierarchy_depth_intra_slice_chroma que são sinalizados/analisados quando qtbtt_dual_tree_intra_flag é verdadeiro pode ser sinalizado/analisado apenas quando a condição (MinCbSizeY != CtbSizeY) também for verdadeira. qtbtt_dual_tree_intra_flag é um elemento de sintaxe indicando que um bloco de codificação pode ser dividido para cada tipo de árvore.
[0193] A Figura 21 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de cabeçalho de figura de acordo com uma modalidade da presente invenção.
[0194] Em detalhes, a Figura 21 mostra elementos de sintaxe relacionados a substituição de parâmetro relacionados à partição de bloco incluídos na estrutura de sintaxe de RBSP de cabeçalho de figura. Com referência à Figura 21, quando partition_constraints_override_enabled_flag da sintaxe de RBSP de SPS referida por um cabeçalho de figura é verdadeiro, um parâmetro (elemento de sintaxe) correspondente a um parâmetro relacionado à partição de bloco (elemento de sintaxe) definido na sintaxe de RBSP de SPS está presente em um cabeçalho de figura. Aqui, um valor definido em um cabeçalho de figura pode ser usado preferencialmente no momento da partição do bloco. Os parâmetros relacionados à partição definidos em um cabeçalho de figura podem ter o mesmo problema mencionado acima com referência à Figura 20. No entanto, referindo-se à Figura 20, o elemento de sintaxe partition_constraints_override_enabled_flag é sinalizado/analisado quando MinCbSizeY e CtbSizeY não são iguais. Portanto, um novo valor pode ser definido em um cabeçalho de figura somente quando o valor de partition_constraints_override_enabled_flag for verdadeiro (isto é, 1), e o valor recém- definido pode ser usado preferencialmente no momento da partição do bloco.
[0195] A Figura 22 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de cabeçalho de figura de acordo com uma modalidade da presente invenção.
[0196] Em detalhes, com referência à Figura 22, elementos de sintaxe incluídos na estrutura de sintaxe de RBSP de cabeçalho de figura podem estar relacionados à informação necessária para determinar um valor de parâmetro de quantização (qp) de uma unidade de codificação.
[0197] Quando um valor de cu_qp_delta_enabled_flag é 1, indica que elementos de sintaxe pic_cu_qp_delta_subdiv_intra_slice e pic_cu_qp_delta_subdiv_inter_slice podem estar presentes em cabeçalhos de figura referentes a SPS. Além disso, quando o valor de cu_qp_delta_enabled_flag é 1, indica que cu_qp_delta_abs pode estar presente em uma unidade de transformada.
[0198] pic_cu_qp_delta_subdiv_intra_slice é um elemento de sintaxe que indica um valor máximo de cbSubdiv de uma unidade de codificação em uma fatia intra que transporta cu_qp_delta_abs e cu_qp_delta_sign_flag. pic_cu_qp_delta_subdiv_intra_slice pode ter um valor entre 0 e 2 * (CtbLog2SizeY - MinQtLog2SizeIntraY + pic_max_mtt_hierarchy_depth_intra_slice_luma). Quando pic_cu_qp_delta_subdiv_intra_slice não está presente, o valor de pic_cu_qp_delta_subdiv_intra_slice pode ser inferido como 0.
[0199] pic_cu_qp_delta_subdiv_inter_slice é um elemento de sintaxe que indica um valor máximo de cbSubdiv de uma unidade de codificação em uma fatia entre transmitindo cu_qp_delta_abs e cu_qp_delta_sign_flag. pic_cu_qp_delta_subdiv_inter_slice pode ter um valor entre 0 e 2 * (CtbLog2SizeY - MinQtLog2SizeInterY + pic_max_mtt_hierarchy_depth_inter_slice). Quando pic_cu_qp_delta_subdiv_inter_slice não está presente, o valor de pic_cu_qp_delta_subdiv_inter_slice pode ser inferido como 0.
[0200] pic_cu_chroma_qp_offset_subdiv_intra_slice é um elemento de sintaxe que indica um valor máximo de cbSubdiv de uma unidade de codificação em uma fatia intra que transporta cu_chroma_qp_offset_flag. pic_cu_chroma_qp_offset_subdiv_intra_slice pode ter um valor entre 0 e 2 * (CtbLog2SizeY - MinQtLog2SizeIntraY + pic_max_mtt_hierarchy_depth_intra_slice_luma). Quando pic_cu_chroma_qp_offset_subdiv_intra_slice não está presente, o valor de pic_cu_chroma_qp_offset_subdiv_intra_slice pode ser inferido como 0.
[0201] pic_cu_chroma_qp_offset_subdiv_inter_slice é um elemento de sintaxe que indica um valor máximo de cbSubdiv de uma unidade de codificação em uma entre fatias que transporta cu_chroma_qp_offset_flag. pic_cu_chroma_qp_offset_subdiv_inter_slice pode ter um valor entre 0 e 2 * (CtbLog2SizeY - MinQtLog2SizeInterY + pic_max_mtt_hierarchy_depth_inter_slice). Quando pic_cu_chroma_qp_offset_subdiv_inter_slice não está presente, o valor de pic_cu_chroma_qp_offset_subdiv_inter_slice pode ser inferido como 0.
[0202] A Figura 23 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de cabeçalho de figura de acordo com uma modalidade da presente invenção.
[0203] Em detalhes, a Figura 23 mostra que um elemento de sintaxe relacionado ao parâmetro de quantização incluído na estrutura de sintaxe RBSP do cabeçalho da figura é sinalizado/analisado. O elemento de sintaxe relacionado ao parâmetro de quantização pic_cu_qp_delta_subdiv_intra_slice descrito com referência à Figura 22 pode ter um valor entre 0 e 2 * (CtbLog2SizeY - MinQtLog2SizeIntraY + pic_max_mtt_hierarchy_depth_intra_slice_luma). Enquanto isso, como descrito acima com referência à Figura 20, MinCbSizeY e CtbSizeY podem ter o mesmo valor. Neste caso, o valor de pic_max_mtt_hierarchy_depth_intra_slice_luma é 0. Além disso, MinQtLog2SizeIntraY tem o mesmo valor que MinCbLog2SizeY e CtbLog2SizeY, e, aqui, o valor é 0. Portanto, pic_cu_qp_delta_subdiv_intra_slice tem apenas o valor 0. Outro elemento de sintaxe tem a pic_cu_qp_delta_subdiv_inter_slice valor entre 0 e 2 * (CtbLog2SizeY - MinQtLog2SizeInterY + pic_max_mtt_hierarchy_depth_inter_slice). Também neste caso, como descrito acima com referência à Figura 20, MinCbSizeY e CtbSizeY podem ter o mesmo valor. Neste caso, o valor de pic_max_mtt_hierarchy_depth_inter_slice é 0. Além disso, MinQtLog2SizeInterY tem o mesmo valor que MinCbLog2SizeY e CtbLog2SizeY, e, aqui, o valor é 0. Portanto, pic_cu_qp_delta_subdiv_inter_slice tem apenas o valor 0. Pelo mesmo motivo, pic_cu_chroma_qp_offset_subdiv_intra_slice e pic_cu_chroma_qp_offset_subdiv_intra_slice e pic_cu_chroma_qp_offset_subdiv_inter_slice também pode ter um valor de 0. Portanto, como um elemento de sintaxe relacionado ao parâmetro de quantização tem um valor de 0 quando MinCbSizeY e CtbSizeY têm o mesmo valor, um elemento de sintaxe relacionado ao parâmetro de quantização presente em um cabeçalho de figura pode ser sinalizado/analisado quando MinCbSizeY e CtbSizeY têm valores diferentes (isto é, CtbSizeY != MinCbSizeY) na Figura 23.
[0204] A Figura 24 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de conjunto de parâmetros de sequência de acordo com uma modalidade da presente invenção.
[0205] Quando um valor de sps_video_parameter_set_id é maior que 0, pode indicar vps_video_parameter_set_id do VPS referido no SPS. Quando o valor de sps_video_parameter_set_id é 0, SPS pode não se referir a VPS, e o valor de vps_max_layers_minus1 pode ser inferido como 0. Aqui, CVS pode incluir apenas uma camada.
[0206] sps_seq_parameter_set_id é um elemento de sintaxe, que fornece um ID para SPS para ser referido por outros elementos de sintaxe. Aqui, o ID para SPS pode ser usado como informação a ser referenciada no PPS.
[0207] subpics_present_flag é um elemento de sintaxe que indica se um parâmetro (elemento de sintaxe) relacionado a uma subfigura está presente na estrutura de sintaxe de RBSP de SPS. Quando o valor de subpics_present_flag for 1, pode indicar que um parâmetro relacionado a uma subfigura está presente na estrutura de sintaxe de RBSP de SPS. Quando o valor de subpics_present_flag for 0, pode indicar que um parâmetro relacionado a uma subfigura não está presente na estrutura de sintaxe de RBSP de SPS. Quando o valor de subpics_present_flag é 1, os parâmetros relacionados à subfigura descritos abaixo podem ser sinalizados/analisados. subpics_present_flag descrito na presente divulgação é o mesmo elemento de sintaxe que subpic_info_present_flag da Figura 24, e esses elementos são usados de forma intercambiável na presente divulgação. Aqui, entre os parâmetros relacionados com a subfigura que são sinalizados/analisados, os mesmos parâmetros que os da Figura 11 não será descrito.
[0208] subpic_id_mapping_explicity_signalled_flag é um elemento de sintaxe que indica se o mapeamento de ID de subfigura é explicitamente sinalizado. Aqui, o mapeamento de ID de subfigura pode ser sinalizado em SPS ou PPS referido por uma figura codificada de um CLVS. Quando um valor de subpic_id_mapping_explicity_signalled_flag é 1, isso indica que o mapeamento de ID de subfigura é sinalizado explicitamente em um CLVS. Quando o valor de subpic_id_mapping_explicity_signalled_flag é 0, isso indica que o mapeamento de ID de subfigura não é sinalizado explicitamente em um CLVS. Quando subpic_id_mapping_explicity_signalled_flag não está presente, o valor de subpic_id_mapping_explicity_signalled_flag pode ser inferido como 0.
[0209] subpic_id_mapping_in_sps_flag é um elemento de sintaxe que indica um nível de sinalização de mapeamento de ID de subfigura quando o valor de subpic_id_mapping_explicity_signalled_flag é 1. Quando um valor de subpic_id_mapping_in_sps_flag é 1, indica que o mapeamento de ID de subfigura é sinalizado em SPS. Quando o valor de subpic_id_mapping_in_sps_flag é 0, indica que o mapeamento de ID de subfigura é sinalizado em PPS.
[0210] A Figura 25 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de conjunto de parâmetros de sequência de acordo com uma modalidade da presente invenção.
[0211] Em detalhes, a Figura 25 mostra a estrutura de sintaxe de RBSP de SPS incluindo um elemento de sintaxe relacionado ao número de subfiguras. Com referência à Figura 25, os elementos de sintaxe relacionados ao número de subfiguras podem ser sinalizados/analisados quando o valor de subpic_info_present_flag da Figura 24 é 1, sendo subpic_info_present_flag um sinalizador que indica a presença de informações de subfigura com base em informações básicas de elementos de sintaxe. Uma única figura pode ser dividida em uma pluralidade de subfiguras. Aqui, o número de subfiguras divididas pode ter um valor obtido adicionando 1 ao valor de sps_num_subpics_minus1. Aqui, um valor que indica o número de subfiguras pode estar entre 0 e Ceil(pic_width_max_in_luma_samples - CtbSizeY) * Ceil(pic_height_max_in_luma_samples - CtbSizeY) - 1. Quando o valor de sps_num_subpics_minus1 é 0, o número de subfiguras é 1. Nomeadamente, o número de subfiguras sendo 1 em uma única figura tem o mesmo significado que a única figura não é dividida em subfiguras. Quando o valor de sps_num_subpics_minus1 é 0, pedaços de informação (elementos de sintaxe) considerando vários casos que podem ocorrer quando uma pluralidade de subfiguras estão presentes podem ser inferidas sem serem sinalizadas/analisadas. A estrutura de sintaxe ilustrada na Figura 25 indica que quando o valor de sps_num_subpics_minus1 é 0, o valor de sps_independent_subpics_flag, o valor de sps_subpic_id_len_minus1 e o valor de subpic_id_mapping_explicitly_signalled_flag podem ser inferidos. Aqui, cada um dos valores inferidos pode ser 0. Além disso, cada um dos valores inferidos pode ser inferido como um valor individual para realizar uma operação predefinida. Em outras palavras, quando o número de subfiguras é pelo menos 2 (isto é, sps_num_subpics_minus1 > 0), sps_independent_subpics_flag, sps_subpic_id_len_minus1 e subpic_id_mapping_explicitly_signalled_flag podem ser sinalizados/analisados. sps_independent_subpics_flag é um elemento de sintaxe que indica se os limites de todas as subfiguras devem ser tratados como um limite de uma figura. Além disso, sps_independent_subpics_flag pode indicar ainda que a filtragem em loop não é usada em um limite de subfigura. sps_subpic_id_len_minus1 é um elemento de sintaxe que indica o número de bits necessários ao mapear um valor de ID de subfigura. subpic_id_mapping_explicitly_signalled_flag é um elemento de sintaxe que indica se um ID de subfigura é explicitamente sinalizado. Quando o valor de sps_independent_subpics_flag é 1, um limite de subfigura pode ser tratado como um limite de uma figura. Além disso, indica que a filtragem em loop não pode ser usada em um limite de subfigura. Quando o valor de sps_independent_subpics_flag é 0, isso indica que não há restrição para tratar um limite de subfigura como um limite de uma figura. Além disso, indica que não há restrição quanto ao uso de filtragem em loop em um limite de subfigura. Quando o valor de subpic_id_mapping_explicitly_signalled_flag é 1, indica que um ID de subfigura pode ser sinalizado explicitamente, e quando o valor de subpic_id_mapping_explicitly_signalled_flag é 0, indica que um valor de ID de subfigura não é sinalizado explicitamente.
[0212] A Figura 26 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de conjunto de parâmetros de figura de acordo com uma modalidade da presente invenção.
[0213] Os elementos de sintaxe mostrados na Figura 26 são descritos abaixo. Aqui, entre os elementos de sintaxe mostrados na Figura 26, os mesmos elementos de sintaxe que os elementos de sintaxe descritos com referência à Figura 12 não será descrito.
[0214] subpic_id_mapping_in_pps_flag é um elemento de sintaxe que indica se o mapeamento de ID de subfigura é sinalizado em PPS. Quando um valor de subpic_id_mapping_in_pps_flag é 1, pode indicar que o mapeamento de ID de subfigura é sinalizado em PPS. Quando o valor de subpic_id_mapping_in_pps_flag é 0, indica que o mapeamento de ID de subfigura não está sinalizado no PPS. Quando o valor de subpic_id_mapping_explicitly_signalled_flag é 0 ou o valor de subpic_id_mapping_in_sps_flag é 1, o valor de subpic_id_mapping_in_pps_flag é necessariamente 0. Caso contrário (isto é, quando o valor de subpic_id_mapping_explicitly_signalled_flag é 1 e o valor de subpic_id_mapping_in_sps_flag é 0), o valor de subpic_id_mapping_in_sps_flag é 0 é necessário ser 1.
[0215] Quando o valor de subpic_id_mapping_in_pps_flag é 1, os elementos de sintaxe pps_num_subpics_minus1, pps_subpic_id_len_minus e pps_subpic_id[i] relacionados ao mapeamento de ID de subfigura podem ser sinalizados/analisados.
[0216] A Figura 27 é um diagrama que ilustra subpic_id_mapping_in_pps_flag incluído na estrutura de sintaxe de RBSP de conjunto de parâmetros de figura.
[0217] Em detalhes, a Figura 27 mostra um método para definir o valor de subpic_id_mapping_in_pps_flag descrito com referência à Figura 26. Foi descrito com referência à Figura 25 que quando o valor de sps_num_subpics_minus1 é 0, elementos de sintaxe para vários casos que podem ocorrer quando uma pluralidade de subfiguras estão presentes podem ser inferidos sem serem sinalizados/analisados. Da mesma forma, os elementos de sintaxe relacionados a subfigura descritos com referência à Figura 26 pode ser similarmente sinalizado/analisado com base no valor de subpic_id_mapping_in_pps_flag em PPS referente a SPS. Portanto, quando o valor de sps_num_subpics_minus1 descrito com referência à Figura 25 for 0, o valor de subpic_id_mapping_in_pps_flag pode ser definido como 0 para que os elementos de sintaxe relacionados à subfigura possam ser inferidos sem serem sinalizados/analisados. Aqui, referindo-se à Figura 27, a condição para definir o valor de subpic_id_mapping_in_pps_flag como 0 pode incluir adicionalmente um caso em que o valor de sps_num_subpics_minus1 é 0.
[0218] A Figura 28 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de conjunto de parâmetros de figura de acordo com uma modalidade da presente invenção.
[0219] Em detalhes, a Figura 28 mostra uma estrutura na qual é sinalizado/analisado um sinalizador que indica se um filtro de loop é aplicado entre os blocos. Uma figura pode ser dividida em uma pluralidade de subfiguras e uma figura/subfigura pode ser dividida em uma pluralidade de blocos. Além disso, uma figura/subfigura pode ser dividida em uma pluralidade de fatias e um bloco também pode ser dividido em uma pluralidade de fatias. Aqui, a largura e a altura de um bloco podem ser um múltiplo de CTB em unidades de CTB.
[0220] no_pic_partition_flag é um elemento de sintaxe que indica se uma figura individual está sujeita a divisão adicional. Quando um valor de no_pic_partition_flag é 1, indica que uma figura individual referente ao PPS não está sujeita a divisão adicional. Quando o valor de no_pic_partition_flag é 0, indica que uma figura individual referente ao PPS pode ser dividida em mais de um bloco ou fatia.
[0221] num_exp_tile_columns_minus1 é um elemento de sintaxe que indica um valor relacionado a uma largura de coluna de bloco. num_exp_tile_columns_minus1 indica um valor obtido subtraindo 1 de uma largura de coluna de bloco. Em outras palavras, um valor obtido pela adição de 1 ao valor de num_exp_tile_columns_minus1 indica um valor de larguras de coluna lado a lado. num_exp_tile_columns_minus1 pode ter um valor entre 0 e PicWidthInCtbsY - 1. Quando o valor de no_pic_partition_flag é 1, o valor de num_exp_tile_columns_minus1 pode ser inferido como 0.
[0222] num_exp_tile_row_minus1 é um elemento de sintaxe que indica um valor relacionado a uma altura de linha de bloco. num_exp_tile_row_minus1 indica um valor obtido subtraindo 1 de uma altura de linha de bloco. Em outras palavras, um valor obtido pela adição de 1 ao valor de num_exp_tile_row_minus1 indica um valor das alturas das linhas do bloco. num_exp_tile_rows_minus1 pode ter um valor entre 0 e PicHeightInCtbsY - 1. Quando o valor de no_pic_partition_flag é 1, o valor de num_tile_rows_minus1 pode ser inferido como 0.
[0223] Pode haver um caso em que o valor de num_exp_tile_columns_minus1 e o valor de num_exp_tile_row_minus1 sejam ambos 0. Aqui, uma variável NumTilesInPic pode ser determinada pela Equação 6. [Equação 6] NumTilesInPic = NumTileColumns * NumTileRows
[0224] NumTilesInPic denota o número de blocos em uma figura, NumTileColumns denota o número de linhas de blocos em uma figura e NumTileRows denota o número de colunas de blocos em uma figura.
[0225] As variáveis NumTileColumns e NumTileRows podem ser induzidas ao determinar colWidth[].
[0226] Quando o valor de loop_filter_across_tiles_enabled_flag da Figura 28 for 1, indica que uma operação de filtragem em loop pode ser realizada em blocos presentes em uma figura. Quando um valor de loop_filter_across_tiles_enabled_flag é 0, isso indica que uma operação de filtragem em loop não é executada nos blocos presentes em uma figura. A operação de filtragem em loop pode incluir filtro de desbloqueio, filtro de deslocamento adaptativo de amostra e operações de filtro de loop adaptativo. Quando loop_filter_across_tiles_enabled_flag não estiver presente, o valor de loop_filter_across_tiles_enabled_flag pode ser inferido como 1 .
[0227] Quando uma figura, subfigura ou fatia é configurada com um bloco, não é necessário indicar se um filtro de loop é aplicado nos blocos. Portanto, o valor de no_pic_partition_flag pode ser inferido como um valor predefinido, em que o valor predefinido pode ser 1.
[0228] A Figura 29 é um diagrama que ilustra uma unidade de camada abstrata de rede (NAL) que é uma unidade básica constituindo um fluxo de bits.
[0229] Quando uma imagem de vídeo é codificada e armazenada como um fluxo de bits através do codificador, o fluxo de bits pode ser configurado em unidades de camada de abstração de rede. Uma unidade de camada de abstração de rede é chamada de unidade NAL abaixo. Uma unidade NAL pode ser definida de várias formas de acordo com a sua finalidade e pode ser distinguida por um ID único. Uma unidade NAL pode ser dividida em uma parte incluindo informações de dados de imagem reais e uma parte incluindo informações necessárias para decodificar tal imagem de vídeo. A Figura 29 é um diagrama que ilustra uma porção de vários tipos de unidades NAL. Uma unidade NAL pode ser configurada com base em um pedido predefinido, e as informações incluídas na unidade NAL correspondente também podem ser configuradas com base em um pedido predefinido. Cada unidade NAL pode ter uma relação de referência cruzada. Como mostrado na Figura 29, uma unidade NAL de DPS indica uma sintaxe de RBSP do conjunto de parâmetros de decodificação (DPS). Uma unidade NAL de VPS indica uma sintaxe de RBSP do conjunto de parâmetros de vídeo (VPS). Uma unidade NAL de SPS indica uma sintaxe de RBSP do conjunto de parâmetros de sequência (SPS). Uma unidade NAL de PPS indica uma sintaxe de RBSP do conjunto de parâmetros de figura (PPS). A sintaxe de RBSP de DPS é uma sintaxe que inclui informações (elemento de sintaxe) necessárias para que o decodificador execute a decodificação de vídeo. A sintaxe de RBSP de DPS pode ser descrita como uma sintaxe de RBSP de informações de capacidade de decodificação (DCI). A sintaxe de RBSP de VPS é uma sintaxe que inclui informações (elemento de sintaxe) comumente usadas para decodificar dados codificados de camada básica e de camada aprimorada. A sintaxe de RBSP de SPS é uma sintaxe que inclui elementos de sintaxe transmitidos em um nível de unidade de sequência. A sintaxe de RBSP de SPS pode incluir informações (elemento de sintaxe) comumente usadas para decodificar uma figura por referência ao VPS. Aqui, a sequência representa um conjunto de uma ou mais figuras. A sintaxe de RBSP de PPS é uma sintaxe que inclui informações (elemento de sintaxe) comumente usada para decodificar pelo menos uma figura. O RBSP mencionado acima, que é uma carga útil de sequência de bytes bruta (RBSP), pode representar uma sintaxe que é alinhada por byte e encapsulada como uma unidade NAL. As sintaxes acima mencionadas são descritas abaixo.
[0230] A Figura 30 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de conjunto de parâmetros de decodificação, uma estrutura de sintaxe de RBSP de conjunto de parâmetros de sequência, e um estrutura de sintaxe de nível de camada de perfil de acordo com uma modalidade da presente invenção.
[0231] A Figura 30(a) é um diagrama que ilustra uma sintaxe RBSP do conjunto de parâmetros de decodificação (DPS), Figura 30(b) é um diagrama que ilustra uma sintaxe de RBSP do conjunto de parâmetros de sequência (SPS), e a Figura 30(c) é um diagrama que ilustra uma sintaxe de nível de camada de perfil 'profile_tier_level()'.
[0232] Como mostrado nas Figuras 30 (a) e (b), a sintaxe de nível de camada de perfil pode ser incluída (chamada) na sintaxe de RBSP de DPS e na sintaxe de RBSP de SPS. A sintaxe de nível de camada de perfil pode incluir informações relacionadas a um perfil, camada e nível. Aqui, a sintaxe de nível de camada de perfil pode incluir uma sintaxe ‘general_constraint_info()’ para informações gerais de restrição (GCI). A sintaxe para GCI (doravante referida como sintaxe GCI) pode controlar para desabilitar uma ferramenta e/ou função, etc. incluída na sintaxe GCI e/ou outra sintaxe (por exemplo, sintaxe de RBSP de DPS, sintaxe de RBSP de VPS, sintaxe de RBSP de SPS, Sintaxe de RBSP de PPS, sintaxe Sliceheader ou semelhante) para interoperabilidade. Quando a sintaxe GCI indica desabilitar uma ferramenta e/ou função, as ferramentas e/ou funções declaradas em uma sintaxe inferior podem ser desabilitadas. Aqui, de acordo com uma posição de uma unidade NAL analisada pelo decodificador, pode ser determinado se deve aplicar a ferramenta e/ou função desabilitada pela sintaxe GCI a todos os fluxos de bits ou fluxos de bits parciais. Por exemplo, a sintaxe de nível de perfil ‘profile_tier_level()’ pode ser incluída na sintaxe de RBSP de DPS e/ou na sintaxe de RBSP de SPS, e quando a sintaxe de nível de perfil está incluída na sintaxe de RBSP de DPS, a sintaxe GCI incluída no perfil a sintaxe de nível de camada pode ser aplicada a todos os fluxos de bits. Para outro exemplo, quando a sintaxe de nível de camada de perfil é incluída na sintaxe de RBSP de SPS, a sintaxe GCI incluída na sintaxe de nível de camada de perfil pode ser aplicada em uma sequência de vídeo de camada codificada (CLVS).
[0233] A Figura 31 é um diagrama que ilustra uma sintaxe de RBSP de conjunto de parâmetros de vídeo e uma sintaxe geral de informação de restrição de acordo com uma modalidade da presente invenção.
[0234] A Figura 31(a) é um diagrama que ilustra uma sintaxe de RBSP de um conjunto de parâmetros de vídeo (VPS) de acordo com uma modalidade da presente invenção, e a Figura 31(b) é um diagrama que ilustra uma sintaxe de informação de restrição geral (GCI) de acordo com uma modalidade da presente invenção. Como mostrado na Figura 31(a), a sintaxe GCI ‘general_constraint_info()’ pode ser incluída na sintaxe VPS. Além disso, embora não ilustrado na Figura 31(a), a sintaxe de nível de camada de perfil acima mencionada pode ser incluída na sintaxe VPS e a sintaxe GCI pode ser incluída na sintaxe de nível de camada de perfil incluída na sintaxe VPS. A sintaxe GCI pode incluir pelo menos um elemento de sintaxe. As Figuras 32 e 33 são diagramas que ilustram uma sintaxe de RBSP do conjunto de parâmetros de sequência (SPS) de acordo com uma modalidade da presente invenção. A seguir, um sinalizador de restrição que é um elemento de sintaxe incluído na sintaxe GCI será descrito com referência às Figuras 31 a 33.
[0235] - no_qtbtt_dual_tree_intra_constraint_flag
[0236] no_qtbtt_dual_tree_intra_constraint_flag é um sinalizador para controlar qtbtt_dual_tree_intra_flag. Por exemplo, quando um valor de no_qtbtt_dual_tree_intra_constraint_flag é 1, um valor de qtbtt_dual_tree_intra_flag pode ser definido como 0. Enquanto isso, quando o valor de no_qtbtt_dual_tree_intra_constraint_flag é 0, não há restrição no valor de qtbtt_dual_tree_intra_flag. Ou seja, o valor de qtbtt_dual_tree_intra_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0237] Aqui, qtbtt_dual_tree_intra_flag é um sinalizador que indica se a fatia é usada em uma estrutura de sintaxe coding_tree. Por exemplo, quando o valor de qtbtt_dual_tree_intra_flag é 1, isso indica que para fatia I, cada unidade de árvore de codificação (CTU) pode ser dividida em unidades de codificação com 64 x 64 amostras de luma por meio de divisão de árvore quaternária implícita, em que as unidades de codificação são nós raiz (unidade de codificação mais alta) da estrutura de sintaxe coding_tree separada para dois elementos, ou seja, luma e croma. Quando o valor de qtbtt_dual_tree_intra_flag é 0, pode indicar que a estrutura de sintaxe coding_tree não é usada para fatia I. O qtbtt_dual_tree_intra_flag mencionado acima pode ser chamado de sps_qtbtt_dual_tree_intra_flag.
[0238] Com referência à Figura 32, log2_ctu_size_minus5 é um elemento de sintaxe que indica informação de tamanho de um bloco de árvore de codificação luma de cada unidade de árvore de codificação. O tamanho (CtbLog2SizeY) de um bloco de árvore de codificação luma em unidades de log2 pode ser encontrado adicionando 5 a log2_ctu_size_minus5. Isto é expresso como Equação 7 como abaixo. Na Equação 7, CtbSizeY denota um tamanho de cada bloco de árvore de codificação de luma. [Equação 7] CtbLog2SizeY = Iog2_ctu_size_minus5 + 5 CtbSizeY = 1 << Ctbl_og2SizeY
[0239] - no_partition_constraints_override_constraint_flag
[0240] no_partition_constraints_override_constraint_flag é um sinalizador para controlar partition_constraints_override_enabled_flag. Por exemplo, quando um valor de no_partition_constraints_override_constraint_flag é 1, um valor de partition_constraints_override_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_partition_constraints_override_constraint_flag é 0, não há restrição no valor de partition_constraints_override_enabled_flag. Ou seja, o valor de partition_constraints_override_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0241] Aqui, partition_constraints_override_enabled_flag é um sinalizador que indica se ph_partition_constraints_override_flag está presente em um cabeçalho de figura (PH). Quando um valor de partition_constraints_override_enabled_flag é 1, indica que ph_partition_constraints_override_flag está presente e quando o valor de partition_constraints_override_enabled_flag é 0, indica que ph_partition_constraints_override_flag não está presente. O partition_constraints_override_enabled_flag mencionado acima pode ser chamado de sps_partition_constraints_override_enabled_flag.
[0242] - no_sao_constraint_flag
[0243] no_sao_constraint_flag é um sinalizador para controlar sps_sao_enabled_flag. Por exemplo, quando um valor de no_sao_constraint_flag é 1, um valor de sps_sao_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_sao_constraint_flag é 0, não há restrição no valor de sps_sao_enabled_flag. Ou seja, o valor de sps_sao_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0244] Aqui, sps_sao_enabled_flag é um sinalizador que indica se um processo de deslocamento adaptativo de amostra é aplicado a uma figura reconstruída após um processo de filtro de desbloqueio para uma sequência de vídeo de camada codificada (CLVS). Por exemplo, quando o valor de sps_sao_enabled_flag é 1, indica que o processo de deslocamento adaptativo de amostra está habilitado para uma figura reconstruída após o processo de filtro de desbloqueio para um CLVS, e o processo de deslocamento adaptativo de amostra é aplicado a uma figura reconstruída após o filtro de desbloqueio processo para um CLVS. Quando o valor de sps_sao_enabled_flag é 0, indica que o processo de deslocamento adaptativo de amostra está desabilitado para uma figura reconstruída após o processo de filtro de desbloqueio para um CLVS, e o processo de deslocamento adaptativo de amostra não é aplicado a uma figura reconstruída após o processo de filtro de desbloqueio para um CLVS.
[0245] - no_alf_constraint_flag
[0246] no_alf_constraint_flag é um sinalizador para controlar sps_alf_enabled_flag. Por exemplo, quando um valor de no_alf_constraint_flag é 1, um valor de sps_alf_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_alf_constraint_flag é 0, não há restrição no valor de sps_alf_enabled_flag. Ou seja, o valor de sps_alf_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0247] Aqui, sps_alf_enabled_flag é um sinalizador que indica se um filtro de loop adaptativo que é aplicado na decodificação de figuras em um CLVS está ativado. Por exemplo, quando o valor de sps_alf_enabled_flag é 1, o filtro de loop adaptativo é habilitado e pode ser aplicado na decodificação de figuras em um CLVS. Quando o valor de sps_alf_enabled_flag for 0, indica que o filtro de loop adaptativo está desabilitado e não é aplicado na decodificação de figuras em um CLVS.
[0248] - no_joint_cbcr_constraint_flag
[0249] no_joint_cbcr_constraint_flag é um sinalizador para controlar sps_joint_cbcr_enabled_flag. Por exemplo, quando um valor de no_joint_cbcr_constraint_flag é 1, um valor de sps_joint_cbcr_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_joint_cbcr_constraint_flag é 0, não há restrição no valor de sps_joint_cbcr_enabled_flag. Ou seja, o valor de sps_joint_cbcr_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0250] Aqui, sps_joint_cbcr_enabled_flag é um sinalizador que indica se a codificação conjunta de resíduos de croma usados na decodificação de figuras em um CLVS está habilitada. Por exemplo, quando o valor de sps_joint_cbcr_enabled_flag é 1, indica que a codificação conjunta de resíduos de croma está habilitada e pode ser usada na decodificação de figuras em um CLVS. Quando o valor de sps_joint_cbcr_enabled_flag é 0, indica que a codificação conjunta de resíduos de croma está desabilitada e não é usada na decodificação de figuras em um CLVS. Enquanto isso, sps_joint_cbcr_enabled_flag pode não estar presente e, nesse caso, o valor de sps_joint_cbcr_enabled_flag pode ser inferido como 0.
[0251] - no_ref_wraparound_constraint_flag
[0252] no_ref_wraparound_constraint_flag é um sinalizador para controlar sps_ref_wraparound_enabled_flag. Por exemplo, quando um valor de no_ref_wraparound_constraint_flag é 1, um valor de sps_ref_wraparound_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_ref_wraparound_constraint_flag é 0, não há restrição no valor de sps_ref_wraparound_enabled_flag. Ou seja, o valor de sps_ref_wraparound_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0253] Aqui, sps_ref_wraparound_enabled_flag é um sinalizador que indica se a compensação de movimento envolvente horizontal que é aplicada na decodificação de figuras em um CLVS está habilitada. Por exemplo, quando o valor de sps_ref_wraparound_enabled_flag é 1, isso indica que a compensação de movimento horizontal está habilitada e pode ser aplicada na decodificação de figuras em um CLVS. Quando o valor de sps_ref_wraparound_enabled_flag for 0, isso indica que a compensação de movimento de contorno horizontal está desabilitada e não é aplicada na decodificação de figuras em um CLVS.
[0254] - no_temporal_mvp_constraint_flag
[0255] no_temporal_mvp_constraint_flag é um sinalizador para controlar sps_temporal_mvp_enabled_flag. Por exemplo, quando um valor de no_temporal_mvp_constraint_flag é 1, um valor de sps_temporal_mvp_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_temporal_mvp_constraint_flag é 0, não há restrição no valor de sps_temporal_mvp_enabled_flag. Ou seja, o valor de sps_temporal_mvp_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0256] Aqui, sps_temporal_mvp_enabled_flag é um sinalizador que indica se os preditores de vetor de movimento temporal usados na decodificação de figuras em um CLVS estão ativados. Por exemplo, quando o valor de sps_temporal_mvp_enabled_flag é 1, indica que os preditores de vetor de movimento temporal estão habilitados e podem ser usados na decodificação de figuras em um CLVS. Quando o valor de sps_temporal_mvp_enabled_flag é 0, indica que os preditores de vetor de movimento temporal estão desabilitados e não são usados na decodificação de figuras em um CLVS.
[0257] - no_sbtmvp_constraint_flag
[0258] no_sbtmvp_constraint_flag é um sinalizador para controlar sps_sbtmvp_enabled_flag. Por exemplo, quando um valor de no_sbtmvp_constraint_flag é 1, um valor de sps_sbtmvp_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_sbtmvp_constraint_flag é 0, não há restrição no valor de sps_sbtmvp_enabled_flag. Ou seja, o valor de sps_sbtmvp_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0259] Aqui, sps_sbtmvp_enabled_flag é um sinalizador que indica se os preditores de vetor de movimento temporal baseados em sub-bloco usados na decodificação de figuras em um CLVS estão ativados. Por exemplo, quando o valor de sps_sbtmvp_enabled_flag é 1, isso indica que os preditores de vetor de movimento temporal baseados em sub-bloco estão habilitados e podem ser usados na decodificação de figuras em um CLVS. Aqui, um tipo de fatia de figuras pode incluir tipos (por exemplo, fatia B, fatia P), exceto para fatia I. Quando o valor de sps_sbtmvp_enabled_flag é 0, indica que os preditores de vetor de movimento temporal baseados em sub-bloco estão desabilitados e não são usados na decodificação de figuras em um CLVS.
[0260] - no_amvr_constraint_flag
[0261] no_amvr_constraint_flag é um sinalizador para controlar sps_amvr_enabled_flag. Por exemplo, quando um valor de no_amvr_constraint_flag é 1, um valor de sps_amvr_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_amvr_constraint_flag é 0, não há restrição no valor de sps_amvr_enabled_flag. Ou seja, o valor de sps_amvr_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0262] Aqui, sps_amvr_enabled_flag é um sinalizador que indica se a resolução de diferença de vetor de movimento usada na decodificação de figuras em um CLVS está habilitada. Por exemplo, quando o valor de sps_amvr_enabled_flag é 1, indica que a resolução de diferença de vetor de movimento está habilitada e pode ser usada na decodificação de figuras em um CLVS. Quando o valor de sps_amvr_enabled_flag é 0, indica que a resolução da diferença do vetor de movimento está desabilitada e não é usada na decodificação de figuras em um CLVS.
[0263] - no_bdof_constraint_flag
[0264] no_bdof_constraint_flag é um sinalizador para controlar sps_bdof_enabled_flag. Por exemplo, quando um valor de no_bdof_constraint_flag é 1, um valor de sps_bdof_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_bdof_constraint_flag é 0, não há restrição no valor de sps_bdof_enabled_flag. Ou seja, o valor de sps_bdof_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0265] Aqui, sps_bdof_enabled_flag é um sinalizador que indica se a predição bidirecional de fluxo óptico usada na decodificação de figuras em um CLVS está habilitada. Por exemplo, quando o valor de sps_bdof_enabled_flag é 1, indica que a predição bidirecional de fluxo óptico está habilitada e pode ser usada na decodificação de figuras em um CLVS. Quando o valor de sps_bdof_enabled_flag é 0, indica que a predição bidirecional de fluxo óptico está desabilitada e não é usada na decodificação de figuras em um CLVS.
[0266] - no_dmvr_constraint_flag
[0267] no_dmvr_constraint_flag é um sinalizador para controlar sps_dmvr_enabled_flag. Por exemplo, quando um valor de no_dmvr_constraint_flag é 1, um valor de sps_dmvr_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_dmvr_constraint_flag é 0, não há restrição no valor de sps_dmvr_enabled_flag. Ou seja, o valor de sps_dmvr_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0268] Aqui, sps_dmvr_enabled_flag é um sinalizador que indica se a bi- predição baseada em refinamento de vetor de movimento do decodificador usada na decodificação de figuras em um CLVS está habilitada. Por exemplo, quando o valor de sps_dmvr_enabled_flag é 1, isso indica que a bi-predição baseada em refinamento de vetor de movimento do decodificador está habilitada e pode ser usada na decodificação de figuras em um CLVS. Quando o valor de sps_dmvr_enabled_flag é 0, isso indica que a bi-predição baseada em refinamento de vetor de movimento do decodificador está desabilitada e não é usada na decodificação de figuras em um CLVS.
[0269] - no_cclm_constraint_flag
[0270] no_cclm_constraint_flag é um sinalizador para controlar sps_cclm_enabled_flag. Por exemplo, quando um valor de no_cclm_constraint_flag é 1, um valor de sps_cclm_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_cclm_constraint_flag é 0, não há restrição no valor de sps_cclm_enabled_flag. Ou seja, o valor de sps_cclm_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0271] Aqui, sps_cclm_enabled_flag é um sinalizador que indica se a intrapredição de modelo linear de componente cruzado de um componente de luma para um componente de croma usado na decodificação de figuras em um CLVS está habilitada. Por exemplo, quando o valor de sps_cclm_enabled_flag é 1, indica que a intrapredição do modelo linear de componente cruzado de um componente de luma para um componente de croma está habilitada e pode ser usada na decodificação de figuras em um CLVS. Quando o valor de sps_cclm_enabled_flag é 0, indica que a intrapredição do modelo linear de componentes cruzados de um componente de luma para um componente de croma está desabilitada e não é usada na decodificação de figuras em um CLVS. Enquanto isso, sps_cclm_enabled_flag pode não estar presente e, nesse caso, o valor de sps_cclm_enabled_flag pode ser inferido como 0.
[0272] - no_mts_constraint_flag
[0273] no_mts_constraint_flag é um sinalizador para controlar sps_mts_enabled_flag. Por exemplo, quando um valor de no_mts_constraint_flag é 1, um valor de sps_mts_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_mts_constraint_flag é 0, não há restrição no valor de sps_mts_enabled_flag. Ou seja, o valor de sps_mts_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0274] Aqui, sps_mts_enabled_flag é um sinalizador que indica se sps_explicit_mts_intra_enabled_flag e sps_explicit_mts_inter_enabled_flag estão presentes em um conjunto de parâmetros de sequência (SPS). Por exemplo, quando o valor de sps_mts_enabled_flag é 1, isso indica que sps_explicit_mts_intra_enabled_flag e sps_explicit_mts_inter_enabled_flag estão presentes no SPS. Quando o valor de sps_mts_enabled_flag é 0, isso indica que sps_explicit_mts_intra_enabled_flag e sps_explicit_mts_inter_enabled_flag não estão presentes no SPS.
[0275] Aqui, sps_explicit_mts_intra_enabled_flag e sps_explicit_mts_inter_enabled_flag são sinalizadores que indicam se mts_idx está presente em uma sintaxe de unidade de codificação intra de um CLVS. Por exemplo, quando um valor de sps_explicit_mts_intra_enabled_flag/sps_explicit_mts_inter_enabled_flag é 1, isso indica que mts_idx pode estar presente em uma sintaxe de unidade de intra/intercodificação. Quando o valor de sps_explicit_mts_intra_enabled_flag/sps_explicit_mts_inter_enabled_flag for 0, isso indica que mts_idx não está presente na sintaxe da unidade de intra/intercodificação. Enquanto isso, sps_explicit_mts_intra_enabled_flag/sps_explicit_mts_inter_enabled_flag pode não estar presente e, nesse caso, o valor de sps_explicit_mts_intra_enabled_flag/sps_explicit_mts_inter_enabled_flag pode ser inferido como 0.
[0276] O mts_idx acima mencionado é um elemento de sintaxe que indica um kernel de transformada aplicado ao longo das direções horizontal e vertical de um bloco de transformada de luma associado a uma unidade de codificação atual.
[0277] - no_sbt_constraint_flag
[0278] no_sbt_constraint_flag é um sinalizador para controlar sps_sbt_enabled_flag. Por exemplo, quando um valor de no_sbt_constraint_flag é 1, um valor de sps_sbt_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_sbt_constraint_flag é 0, não há restrição no valor de sps_sbt_enabled_flag. Ou seja, o valor de sps_sbt_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0279] Aqui, sps_sbt_enabled_flag é um sinalizador que indica se a transformada de sub-bloco para unidades de codificação interpreditas (CUs) usadas na decodificação de figuras em um CLVS está habilitada. Por exemplo, quando o valor de sps_sbt_enabled_flag é 1, indica que a transformada de sub-bloco para unidades de codificação interpreditas está habilitada e pode ser usada na decodificação de figuras em um CLVS. Quando o valor de sps_sbt_enabled_flag é 0, indica que a transformada de sub-bloco para unidades de codificação interpreditas está desabilitada e não é usada na decodificação de figuras em um CLVS.
[0280] - no_affine_motion_constraint_flag
[0281] no_affine_motion_constraint_flag é um sinalizador para controlar sps_affine_enabled_flag. Por exemplo, quando um valor de no_affine_motion_constraint_flag é 1, um valor de sps_affine_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_affine_motion_constraint_flag é 0, não há restrição no valor de sps_affine_enabled_flag. Ou seja, o valor de sps_affine_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0282] Aqui, sps_affine_enabled_flag é um sinalizador que indica se a compensação de movimento baseada em modelo afim usada na decodificação de figuras em um CLVS está habilitada. Além disso, sps_affine_enabled_flag indica se inter_affine_flag e cu_affine_type_flag estão presentes em uma sintaxe de unidade de codificação de um CLVS. Por exemplo, quando o valor de sps_affine_enabled_flag é 1, indica que a compensação de movimento baseada em modelo afim está habilitada e pode ser usada na decodificação de figuras em um CLVS. Além disso, quando o valor de sps_affine_enabled_flag é 1, isso indica que inter_affine_flag e cu_affine_type_flag podem estar presentes na sintaxe da unidade de codificação de um CLVS. Quando o valor de sps_affine_enabled_flag é 0, indica que a compensação de movimento baseada em modelo afim está desabilitada e não é usada na decodificação de figuras em um CLVS. Quando o valor de sps_affine_enabled_flag é 0, isso indica que inter_affine_flag e cu_affine_type_flag não estão presentes na sintaxe da unidade de codificação de um CLVS.
[0283] Aqui, inter_affine_flag é um sinalizador que indica se a compensação de movimento baseada em modelo afim é usada para gerar uma amostra de predição de uma unidade de codificação atual ao decodificar a unidade de codificação atual. cu_affine_type_flag é um sinalizador que indica se a compensação de movimento baseada em modelo afim que usa 4 parâmetros é usada ou a compensação de movimento baseada em modelo afim que usa 6 parâmetros é usada ao decodificar uma unidade de codificação atual.
[0284] - no_bcw_constraint_flag
[0285] no_bcw_constraint_flag é um sinalizador para controlar sps_bcw_enabled_flag. Por exemplo, quando um valor de no_bcw_constraint_flag é 1, um valor de sps_bcw_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_bcw_constraint_flag é 0, não há restrição no valor de sps_bcw_enabled_flag. Ou seja, o valor de sps_bcw_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0286] Aqui, sps_bcw_enabled_flag é um sinalizador que indica se a predição bidirecional usando pesos de unidade de codificação, que é usada na decodificação de figuras em um CLVS, está habilitada. Além disso, sps_bcw_enabled_flag também pode indicar se bcw_idx está presente na sintaxe da unidade de codificação de um CLVS. Por exemplo, quando o valor de sps_bcw_enabled_flag é 1, indica que a predição bidirecional usando pesos de unidade de codificação está habilitada e pode ser usada na decodificação de figuras em um CLVS. Além disso, quando o valor de sps_bcw_enabled_flag é 1, indica que bcw_idx pode estar presente na sintaxe da unidade de codificação de um CLVS. Quando o valor de sps_bcw_enabled_flag é 0, indica que a predição bidirecional usando pesos unitários de codificação está desabilitada e não é usada na decodificação de figuras em um CLVS. Além disso, quando o valor de sps_bcw_enabled_flag é 0, indica que bcw_idx não está presente na sintaxe da unidade de codificação de um CLVS.
[0287] Aqui, bcw_idx é um elemento de sintaxe que indica um índice relacionado à predição bidirecional usando pesos de unidade de codificação.
[0288] - no_ibc_constraint_flag
[0289] no_ibc_constraint_flag é um sinalizador para controlar sps_ibc_enabled_flag. Por exemplo, quando um valor de no_ibc_constraint_flag é 1, um valor de sps_ibc_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_ibc_constraint_flag é 0, não há restrição no valor de sps_ibc_enabled_flag. Ou seja, o valor de sps_ibc_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0290] Aqui, sps_ibc_enabled_flag é um sinalizador que indica se um modo de predição de cópia intrabloco (IBC) usado na decodificação de figuras em um CLVS está ativado. Por exemplo, quando o valor de sps_ibc_enabled_flag é 1, indica que o modo de predição IBC está habilitado e pode ser usado na decodificação de figuras em um CLVS. Quando o valor de sps_ibc_enabled_flag é 0, indica que o modo de predição IBC está desabilitado e não é usado na decodificação de figuras em um CLVS.
[0291] - no_ciip_constraint_flag
[0292] no_ciip_constraint_flag é um sinalizador para controlar sps_ciip_enabled_flag. Por exemplo, quando um valor de no_ciip_constraint_flag é 1, um valor de sps_ciip_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_ciip_constraint_flag é 0, não há restrição no valor de sps_ciip_enabled_flag. Ou seja, o valor de sps_ciip_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0293] Aqui, sps_ciip_enabled_flag é um sinalizador que indica se ciip_flag está presente em uma sintaxe de unidade de codificação para unidades de intercodificação. Por exemplo, quando um valor de sps_ciip_enabled_flag é 0, isso indica que ciip_flag não está presente na sintaxe da unidade de codificação para unidades de intercodificação. Quando o valor de sps_ciip_enabled_flag for 1, isso indica que ciip_flag pode estar presente na sintaxe da unidade de codificação para unidades de intercodificação.
[0294] ciip_flag é um sinalizador que indica se a mesclagem entre figuras e a predição intra-figura são aplicadas a uma unidade de codificação atual.
[0295] - no_fpel_mmvd_constraint_flag
[0296] no_fpel_mmvd_constraint_flag é um sinalizador para controlar sps_fpel_mmvd_enabled_flag. Por exemplo, quando um valor de no_fpel_mmvd_constraint_flag é 1, um valor de sps_fpel_mmvd_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_fpel_mmvd_constraint_flag é 0, não há restrição no valor de sps_fpel_mmvd_enabled_flag. Ou seja, o valor de sps_fpel_mmvd_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0297] Aqui, sps_fpel_mmvd_enabled_flag é um sinalizador que indica o tipo de precisão da amostra usada em um modo de mesclagem usando uma diferença de vetor de movimento. Por exemplo, quando o valor de sps_fpel_mmvd_enabled_flag é 1, isso indica que a precisão da amostra usada no modo de mesclagem usando uma diferença de vetor de movimento é a precisão da amostra inteira. Quando o valor de sps_fpel_mmvd_enabled_flag é 0, isso indica que a precisão da amostra usada no modo de mesclagem usando uma diferença de vetor de movimento é uma precisão fracionária da amostra. Enquanto isso, sps_fpel_mmvd_enabled_flag pode não estar presente e, nesse caso, o valor de sps_fpel_mmvd_enabled_flag pode ser inferido como 0. sps_fpel_mmvd_enabled_flag pode ser referido como sps_mmvd_fullpel_only_flag.
[0298] - no_triângulo_constraint_flag
[0299] no_triangle_constraint_flag é um sinalizador para controlar sps_triangle_enabled_flag. Por exemplo, quando um valor de no_triangle_constraint_flag é 1, um valor de sps_triangle_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_triangle_constraint_flag é 0, não há restrição no valor de sps_triangle_enabled_flag. Ou seja, o valor de sps_triangle_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0300] Aqui, sps_triangle_enabled_flag é um sinalizador que indica se a compensação de movimento baseada em triângulo pode ser aplicada. De acordo com um método de predição de compensação de movimento baseado em triângulo, uma unidade de intercodificação pode ser dividida em duas formas de triângulo em relação a uma linha diagonal na unidade de intercodificação e cada área de triângulo pode ter um conjunto de informações de movimento diferente e, ao realizar compensação de movimento com base nisso, uma amostra de predição pode ser gerada.
[0301] - no_ladf_constraint_flag
[0302] no_ladf_constraint_flag é um sinalizador para controlar sps_ladf_enabled_flag. Por exemplo, quando um valor de no_ladf_constraint_flag é 1, um valor de sps_ladf_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_ladf_constraint_flag é 0, não há restrição no valor de sps_ladf_enabled_flag. Ou seja, o valor de sps_ladf_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0303] Aqui, sps_ladf_enabled_flag é um sinalizador que indica se sps_num_ladf_intervals_minus2, sps_ladf_lowest_interval_qp_offset, sps_ladf_qp_offset[i] e sps_ladf_delta_threshold_minus1[i] estão presentes no SPS. Por exemplo, quando o valor de sps_ladf_enabled_flag é 1, isso indica que sps_num_ladf_intervals_minus2, sps_ladf_lowest_interval_qp_offset, sps_ladf_qp_offset[i] e sps_ladf_delta_threshold_minus1[i] estão presentes no SPS. Quando o valor de sps_ladf_enabled_flag for 0, isso indica que sps_num_ladf_intervals_minus2, sps_ladf_lowest_interval_qp_offset, sps_ladf_qp_offset[i] e sps_ladf_delta_threshold_minus1[i] não estão presentes no SPS.
[0304] sps_num_ladf_intervals_minus2 é um elemento de sintaxe que indica o número de sps_ladf_delta_threshold_minus1[i] e sps_ladf_qp_offset[i] presentes no SPS. sps_num_ladf_intervals_minus2 pode ter um valor entre 0 e 3.
[0305] sps_ladf_lowest_interval_qp_offset é um elemento de sintaxe que indica um deslocamento usado para derivar um parâmetro de quantificação (QP) que é uma variável. sps_ladf_lowest_interval_qp_offset pode ter um valor entre -63 e 63.
[0306] sps_ladf_qp_offset[i] é um elemento de sintaxe que indica uma matriz de deslocamento usada para derivar um parâmetro de quantização que é uma variável. sps_ladf_qp_offset[i] pode ter um valor entre -63 e 63.
[0307] sps_ladf_delta_threshold_minus1[i] é um elemento de sintaxe usado para calcular um valor de SpsLadfIntervalLowerBound[i] que é um elemento de sintaxe que especifica um limite inferior de um intervalo de nível de intensidade de i-ésima luma. sps_ladf_delta_threshold_minus1[i] pode ter um valor entre 0 e 2BitDepth - 3. BitDepth, que indica uma profundidade de bits, representa o número de bits necessários para expressar o brilho de uma imagem.
[0308] - no_transform_skip_constraint_flag
[0309] no_transform_skip_constraint_flag é um sinalizador para controlar sps_transform_skip_enabled_flag. Por exemplo, quando um valor de no_transform_skip_constraint_flag é 1, um valor de sps_transform_skip_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_transform_skip_constraint_flag é 0, não há restrição no valor de sps_transform_skip_enabled_flag. Ou seja, o valor de sps_transform_skip_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0310] Aqui, sps_transform_skip_enabled_flag é um sinalizador que indica se transform_skip_flag está presente em uma sintaxe de unidade de transformada. Por exemplo, quando o valor de sps_transform_skip_enabled_flag é 1, isso indica que transform_skip_flag pode estar presente na sintaxe da unidade de transformada. Quando o valor de sps_transform_skip_enabled_flag for 0, isso indica que transform_skip_flag não está presente na sintaxe da unidade de transformada.
[0311] transform_skip_flag é um sinalizador que indica se a transformada foi aplicada a uma unidade de transformada.
[0312] - no_bdpcm_constraint_flag
[0313] no_bdpcm_constraint_flag é um sinalizador para controlar sps_bdpcm_enabled_flag. Por exemplo, quando um valor de no_bdpcm_constraint_flag é 1, um valor de sps_bdpcm_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_bdpcm_constraint_flag é 0, não há restrição no valor de sps_bdpcm_enabled_flag. Ou seja, o valor de sps_bdpcm_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0314] Aqui, sps_bdpcm_enabled_flag é um sinalizador que indica se intra_bdpcm_luma_flag e intra_bdpcm_chroma_flag estão presentes em uma sintaxe de unidade de codificação para unidades de intracodificação. Por exemplo, quando um valor de sps_bdpcm_enabled_flag é 1, isso indica que intra_bdpcm_luma_flag e intra_bdpcm_chroma_flag podem estar presentes na sintaxe da unidade de codificação para unidades de intracodificação. Quando o valor de sps_bdpcm_enabled_flag é 0, isso indica que intra_bdpcm_luma_flag e intra_bdpcm_chroma_flag não estão presentes na sintaxe da unidade de codificação para unidades de intracodificação. Enquanto isso, sps_bdpcm_enabled_flag pode não estar presente e, nesse caso, o valor de sps_bdpcm_enabled_flag pode ser inferido como 0.
[0315] intra_bdpcm_luma_flag/intra_bdpcm_chroma_flag são sinalizadores que indicam se a modulação de código de pulso delta baseada em bloco (bdpcm) é aplicada a um bloco de codificação luma/croma de uma posição específica (x0, y0).
[0316] - no_qp_delta_constraint_flag
[0317] no_qp_delta_constraint_flag é um sinalizador para controlar cu_qp_delta_enabled_flag. Por exemplo, quando um valor de no_qp_delta_constraint_flag é 1, um valor de cu_qp_delta_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_qp_delta_constraint_flag é 0, não há restrição no valor de cu_qp_delta_enabled_flag. Ou seja, o valor de cu_qp_delta_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0318] Aqui, cu_qp_delta_enabled_flag é um sinalizador que indica se os elementos de sintaxe ph_cu_qp_delta_subdiv_intra_slice e ph_cu_qp_delta_subdiv_inter_slice estão presentes em PHs referentes a PPS. Além disso, cu_qp_delta_enabled_flag indica se cu_qp_delta_abs e cu_qp_delta_sign_flag, que são elementos de sintaxe incluídos em uma sintaxe de unidade de transformada e uma sintaxe de codificação de paleta, estão presentes. Por exemplo, quando o valor de cu_qp_delta_enabled_flag é 1, indica que os elementos de sintaxe ph_cu_qp_delta_subdiv_intra_slice e ph_cu_qp_delta_subdiv_inter_slice podem estar presentes em PHs referentes a PPS. Além disso, quando o valor de cu_qp_delta_enabled_flag é 1, indica que os elementos de sintaxe cu_qp_delta_abs e cu_qp_delta_sign_flag podem estar presentes na sintaxe da unidade de transformada e na sintaxe de codificação da paleta. Quando o valor de cu_qp_delta_enabled_flag é 0, indica que os elementos de sintaxe ph_cu_qp_delta_subdiv_intra_slice e ph_cu_qp_delta_subdiv_inter_slice não estão presentes nos PHs referentes ao PPS. Além disso, quando o valor de cu_qp_delta_enabled_flag é 0, indica que os elementos de sintaxe cu_qp_delta_abs e cu_qp_delta_sign_flag não estão presentes na sintaxe da unidade de transformada e na sintaxe de codificação da paleta.
[0319] ph_cu_qp_delta_subdiv_intra_slice/ph_cu_qp_delta_subdiv_inter_slic e são elementos de sintaxe que indicam um valor máximo 'cbSubdiv' de uma unidade de codificação em uma fatia intra/inter transmitindo cu_qp_delta_abs e cu_qp_delta_sign_flag. Aqui, ‘cbSubdiv’ indica um valor de divisão inferior de um bloco.
[0320] cu_qp_delta_abs é um elemento de sintaxe que indica um valor absoluto de uma diferença 'CuQpDeltaVal' entre um parâmetro de quantização de uma unidade de codificação atual e um valor de predição de parâmetro de quantização da unidade de codificação atual.
[0321] cu_qp_delta_sign_flag é um sinalizador que indica um sinal do 'CuQpDeltaVal'.
[0322] - no_dep_quant_constraint_flag
[0323] no_dep_quant_constraint_flag é um sinalizador para controlar sps_dep_quant_enabled_flag. Por exemplo, quando um valor de no_dep_quant_constraint_flag é 1, um valor de sps_dep_quant_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_dep_quant_constraint_flag é 0, não há restrição no valor de sps_dep_quant_enabled_flag. Ou seja, o valor de sps_dep_quant_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0324] Aqui, sps_dep_quant_enabled_flag é um sinalizador que indica se a quantização dependente usada em figuras referentes a SPS está ativada. Por exemplo, quando o valor de sps_dep_quant_enabled_flag é 1, indica que a quantização dependente está habilitada e pode ser usada em figuras referentes ao SPS. Quando o valor de sps_dep_quant_enabled_flag é 0, indica que a quantização dependente está desabilitada e não é usada em figuras referentes ao SPS.
[0325] - no_sign_data_hiding_constraint_flag
[0326] no_sign_data_hiding_constraint_flag é um sinalizador para controlar sps_sign_data_hiding_enabled_flag. Por exemplo, quando um valor de no_sign_data_hiding_constraint_flag é 1, um valor de sps_sign_data_hiding_enabled_flag pode ser definido como 0. Enquanto isso, quando o valor de no_sign_data_hiding_constraint_flag é 0, não há restrição no valor de sps_sign_data_hiding_enabled_flag. Ou seja, o valor de sps_sign_data_hiding_enabled_flag pode ser determinado de acordo com um resultado de análise da sintaxe de RBSP de SPS.
[0327] Aqui, sps_sign_data_hiding_enabled_flag é um sinalizador que indica se a ocultação de bits de sinal usada em figuras referentes a SPS está ativada. Por exemplo, quando o valor de sps_sign_data_hiding_enabled_flag é 1, isso indica que a ocultação de bits de sinal usada em figuras referentes ao SPS está habilitada e pode ser usada em figuras referentes ao SPS. Quando o valor de sps_sign_data_hiding_enabled_flag é 0, indica que a ocultação de bit de sinal usada em figuras referentes ao SPS está desabilitada e não é usada em figuras referentes ao SPS.
[0328] A Figura 34 é um diagrama que ilustra uma sintaxe RBSP do conjunto de parâmetros de sequência (SPS) de acordo com uma modalidade da presente invenção.
[0329] Com referência à Figura 34, o elemento de sintaxe de RBSP de SPS inclui sps_scaling_list_enabled_flag de modo a incluir um espaço estendido para adicionar informações de parâmetro relacionadas a alta faixa dinâmica (hdr) e os parâmetros sps descritos abaixo. A cláusula “se” abaixo de hrd_parameters_present_flag mostrada na Figura 34 podem ser informações de parâmetros relacionadas a hdr.
[0330] A Figura 35 é um diagrama que ilustra uma estrutura de sintaxe de RBSP de conjunto de parâmetros de sequência de acordo com uma modalidade da presente invenção.
[0331] Elementos de sintaxe incluídos na estrutura de sintaxe de RBSP de SPS serão descritos com referência à Figura 35.
[0332] Quando um valor de sps_entropy_coding_sync_enabled_flag é 1, um processo de sincronização específico pode ser aplicado a variáveis de conteúdo. O processo de sincronização específico é aplicado antes de decodificar um primeiro CTU incluindo um primeiro CTB de uma linha CTB presente em um bloco individual em uma figura individual referente ao SPS. Além disso, quando o valor de sps_entropy_coding_sync_enabled_flag é 1, um processo de armazenamento específico pode ser aplicado a variáveis de conteúdo. O processo de armazenamento específico é aplicado após a decodificação de uma CTU incluindo um primeiro CTB de uma linha CTB presente em um bloco individual em uma figura individual referente ao SPS. Quando o valor de sps_entropy_coding_sync_enabled_flag for 0, o processo de sincronização específico e o processo de armazenamento específico não podem ser aplicados a variáveis de conteúdo. Determinar que o processo de sincronização específico não é aplicado é realizado antes de decodificar um primeiro CTU incluindo um primeiro CTB de uma linha CTB presente em um bloco individual em uma figura individual referente ao SPS. A determinação de que o processo de armazenamento específico não é aplicado é realizada após a decodificação de uma CTU incluindo um primeiro CTB de uma linha CTB presente em um bloco individual em uma figura individual referente ao SPS.
[0333] same_qp_table_for_chroma é um elemento de sintaxe relacionado a uma tabela de mapeamento de croma QP. Quando um valor de same_qp_table_for_chroma é 1, indica que apenas uma tabela de mapeamento de croma QP é usada, em que uma tabela de mapeamento de croma QP também é usada em sinais residuais de Cb, Cr e sinal residual de Cb-Cr conjunto. Quando o valor de same_qp_table_for_chroma é 0, duas tabelas de mapeamento de croma QP para Cb e Cr e uma tabela de mapeamento de croma QP para junta Cb-Cr são sinalizadas em SPS. A tabela de mapeamento de croma QP pode ser sinalizada quando o valor de sps_joint_cbcr_enabled_flag for 1. Quando o valor de same_qp_table_for_chroma não estiver presente, o valor de same_qp_table_for_chroma pode ser inferido como 1.
[0334] sps_explicit_mts_intra_enabled_flag é um elemento de sintaxe que indica se mtx_idx está presente em uma sintaxe intra CU. Quando um valor de sps_explicit_mts_intra_enabled_flag é 1, isso indica que mtx_idx pode estar presente na sintaxe intra CU. Quando o valor de sps_explicit_mts_intra_enabled_flag for 0, isso indica que mtx_idx não está presente na sintaxe intra CU. Quando sps_explicit_mts_intra_enabled_flag não está presente, o valor de sps_explicit_mts_intra_enabled_flag pode ser inferido como 0.
[0335] sps_explicit_mts_inter_enabled_flag é um elemento de sintaxe que indica se mtx_idx está presente em uma sintaxe entre CUs. Quando um valor de sps_explicit_mts_inter_enabled_flag é 1, isso indica que mtx_idx pode estar presente na sintaxe entre CUs. Quando o valor de sps_explicit_mts_inter_enabled_flag é 0, indica que mtx_idx não está presente na sintaxe entre CUs. Quando sps_explicit_mts_inter_enabled_flag não estiver presente, o valor de sps_explicit_mts_inter_enabled_flag pode ser inferido como 0.
[0336] sps_affine_amvr_enabled_flag é um elemento de sintaxe que indica se a resolução de diferença de vetor de movimento adaptável é usada para um vetor de movimento de um modo inter afim. Quando um valor de sps_affine_amvr_enabled_flag é 1, isso indica que a resolução de diferença de vetor de movimento adaptável é usada para um vetor de movimento de um modo inter afim. Quando o valor de sps_affine_amvr_enabled_flag é 0, isso indica que a resolução de diferença de vetor de movimento adaptável não é usada para um vetor de movimento de um modo inter afim. Quando sps_affine_amvr_enabled_flag não estiver presente, o valor de sps_affine_amvr_enabled_flag pode ser inferido como 0.
[0337] sps_affine_prof_enabled_flag é um elemento de sintaxe que indica se o refinamento de predição de um fluxo óptico é usado na compensação de movimento afim. Quando um valor de sps_affine_prof_enabled_flag é 1, a compensação de movimento afim pode ser refinada com o fluxo óptico. Quando o valor de sps_affine_prof_enabled_flag é 0, a compensação de movimento afim não é refinada. Quando sps_affine_prof_enabled_flag não estiver presente, o valor de sps_affine_prof_enabled_flag pode ser inferido como 0.
[0338] sps_explicit_scaling_list_enabled_flag é um elemento de sintaxe que indica se uma lista de dimensionamento explícita é usada. Quando um valor de sps_explicit_scaling_list_enabled_flag é 1, isso pode indicar que a lista de dimensionamento explícita é usada. A lista de escala explícita pode ser sinalizada em uma lista de escala de um conjunto de parâmetros de adaptação (APS). Aqui, a lista de escala explícita pode ser usada em um processo de escala para um coeficiente de transformada quando a decodificação de fatia é habilitada para um CLVS. Quando o valor de sps_explicit_scaling_list_enabled_flag é 0, pode indicar que a lista de dimensionamento explícita é usada no processo de dimensionamento para um coeficiente de transformada quando a decodificação de fatia não está habilitada para um CLVS.
[0339] sps_virtual_boundaries_enabled_flag é um elemento de sintaxe que indica se a filtragem em loop está desabilitada. Quando um valor de sps_virtual_boundaries_enabled_flag é 1, isso indica que a desativação da filtragem em loop em um limite virtual pode ser aplicada a figuras codificadas em um CLVS. Quando o valor de sps_virtual_boundaries_enabled_flag é 0, isso indica que a desativação da filtragem em loop em um limite virtual não é aplicada a figuras codificadas em um CLVS. Uma operação de filtragem em loop pode incluir filtro de desbloqueio, filtro de deslocamento adaptativo de amostra e operações de filtro de loop adaptativo.
[0340] A Figura 36 é um diagrama que ilustra uma estrutura de sintaxe de informação de restrição geral de acordo com uma modalidade da presente invenção.
[0341] Os elementos de sintaxe incluídos na estrutura de sintaxe de informação de restrição geral (GCI) descrita com referência à Figura 36 pode habilitar/desabilitar sinalizadores (elementos de sintaxe) definidos na sintaxe SPS RBSP. Aqui, as bandeiras podem ser as mostradas na Figura 35. Os elementos de sintaxe incluídos na estrutura de sintaxe GCI, descritos abaixo, têm uma relação mutuamente exclusiva e não são limitados pelos nomes mostrados na Figura 36. Além disso, descrições sobrepostas de porções, que são as mesmas ou correspondem à modalidade da Figura 35, dos sinalizadores (elementos de sintaxe) incluídos na estrutura de sintaxe SPS restringidos pelos elementos de sintaxe incluídos na estrutura de sintaxe GCI não serão fornecidos.
[0342] no_weighted_pred_constraint_flag é um sinalizador que restringe sps_weighted_pred_flag incluído na estrutura de sintaxe SPS. Quando um valor de no_weighted_pred_constraint_flag é 1, um valor de sps_weighted_pred_flag é limitado a 0. Quando o valor de no_weighted_pred_constraint_flag é 0, o valor de sps_weighted_pred_flag não é limitado. sps_weighted_pred_flag é um elemento de sintaxe que indica se a predição ponderada é aplicada à fatia P referente ao SPS. A predição ponderada é aplicada à fatia P quando um valor de sps_weighted_pred_flag é 1 e a predição ponderada não é aplicada à fatia P quando o valor de sps_weighted_pred_flag é 0.
[0343] no_weighted_bipred_constraint_flag é um sinalizador que restringe sps_weighted_bipred_flag incluído na estrutura de sintaxe SPS. Quando um valor de no_weighted_bipred_constraint_flag é 1, um valor de sps_weighted_bipred_flag é limitado a 0. Quando o valor de no_weighted_bipred_constraint_flag é 0, o valor de sps_weighted_bipred_flag não é limitado. sps_weighted_bipred_flag é um elemento de sintaxe que indica se a predição ponderada é aplicada à fatia B referente ao SPS. A predição ponderada é aplicada à fatia B quando um valor de sps_weighted_bipred_flag é 1 e a predição ponderada não é aplicada à fatia B quando o valor de sps_weighted_bipred_flag é 0.
[0344] no_same_qp_table_for_chroma_constraint_flag é um sinalizador que restringe same_qp_table_for_chroma incluído na estrutura de sintaxe SPS. Quando um valor de no_same_qp_table_for_chroma_constraint_flag é 1, um valor de same_qp_table_for_chroma é limitado a 0. Quando o valor de no_same_qp_table_for_chroma_constraint_flag é 0, o valor de same_qp_table_for_chroma não é limitado.
[0345] no_explicit_mts_intra_constraint_flag é um sinalizador que restringe sps_explicit_mts_intra_enabled_flag incluído na estrutura de sintaxe SPS. Quando um valor de no_explicit_mts_intra_constraint_flag é 1, um valor de sps_explicit_mts_intra_enabled_flag é limitado a 0. Quando o valor de no_explicit_mts_intra_constraint_flag é 0, o valor de sps_explicit_mts_intra_enabled_flag não é limitado.
[0346] no_explicit_mts_inter_constraint_flag é um sinalizador que restringe sps_explicit_mts_inter_enabled_flag incluído na estrutura de sintaxe SPS. Quando um valor de no_explicit_mts_inter_constraint_flag é 1, um valor de sps_explicit_mts_inter_enabled_flag é limitado a 0. Quando o valor de no_explicit_mts_inter_constraint_flag é 0, o valor de sps_explicit_mts_inter_enabled_flag não é limitado.
[0347] no_affine_amvr_constraint_flag é um sinalizador que restringe sps_affine_amvr_enabled_flag incluído na estrutura de sintaxe SPS. Quando um valor de no_affine_amvr_constraint_flag é 1, um valor de sps_affine_amvr_enabled_flag é limitado a 0. Quando o valor de no_affine_amvr_constraint_flag é 0, o valor de sps_affine_amvr_enabled_flag não é limitado.
[0348] no_affine_prof_constraint_flag é um sinalizador que restringe sps_affine_prof_enabled_flag incluído na estrutura de sintaxe SPS. Quando um valor de no_affine_prof_constraint_flag é 1, um valor de sps_affine_prof_enabled_flag é limitado a 0. Quando o valor de no_affine_prof_constraint_flag é 0, o valor de sps_affine_prof_enabled_flag não é limitado.
[0349] no_explicit_scaling_list_constraint_flag é um sinalizador que restringe sps_explicit_scaling_list_enabled_flag incluído na estrutura de sintaxe SPS. Quando um valor de no_explicit_scaling_list_constraint_flag é 1, um valor de sps_explicit_scaling_list_enabled_flag é limitado a 0. Quando o valor de no_explicit_scaling_list_constraint_flag é 0, o valor de sps_explicit_scaling_list_enabled_flag não é limitado.
[0350] no_virtual_boundaries_constraint_flag é um sinalizador que restringe sps_virtual_boundaries_enabled_flag incluído na estrutura de sintaxe SPS. Quando um valor de no_virtual_boundaries_constraint_flag é 1, um valor de sps_virtual_boundaries_enabled_flag é limitado a 0. Quando o valor de no_virtual_boundaries_constraint_flag é 0, o valor de sps_virtual_boundaries_enabled_flag não é limitado.
[0351] Embora a presente divulgação seja estabelecida principalmente em relação a um decodificador, um codificador pode realizar a mesma operação. O termo “analisar” incluído na presente divulgação foi usado principalmente em relação a um processo de obtenção de informações de um fluxo de bits, mas pode ser interpretado como configuração de informações correspondentes em um fluxo de bits em um lado do codificador. Assim, o termo “analisar” também pode ser interpretado como um ato de configurar um fluxo de bits em um codificador sem se limitar à operação de um decodificador. Além disso, tal fluxo de bits pode ser armazenado em um meio de gravação legível por computador.
[0352] As modalidades descritas acima da presente invenção podem ser implementadas através de vários meios. Por exemplo, as modalidades da presente invenção podem ser implementadas por hardware, firmware, software ou uma combinação dos mesmos.
[0353] Para implementação por hardware, o método de acordo com as modalidades da presente invenção pode ser implementado por um ou mais de Circuitos Integrados Específicos de Aplicação (ASICs), Processadores de Sinal Digital (DSPs), Dispositivos de Processamento de Sinal Digital (DSPDs), Dispositivos Lógicos Programáveis (PLDs), Matrizes de Portas Programáveis em Campo (FPGAs), processadores, controladores, microcontroladores, microprocessadores e semelhantes.
[0354] No caso de implementação por firmware ou software, o método de acordo com as modalidades da presente invenção pode ser implementado na forma de um módulo, procedimento ou função que executa as funções ou operações descritas acima. O código do software pode ser armazenado na memória e conduzido por um processador. A memória pode estar localizada dentro ou fora do processador, podendo trocar dados com o processador por diversos meios já conhecidos.
[0355] Algumas modalidades também podem ser implementadas na forma de um meio de gravação incluindo instruções executáveis por um computador, como um módulo de programa executado por um computador. Uma mídia legível por computador pode ser qualquer mídia disponível que seja acessível por um computador e inclui mídia volátil e não volátil, mídia removível e não removível. Além disso, o meio legível por computador pode incluir meios de armazenamento de computador e meios de comunicação. A mídia de armazenamento de computador inclui mídia volátil e não volátil, removível e não removível implementada em qualquer método ou tecnologia para armazenamento de informações, como instruções legíveis por computador, estruturas de dados, módulos de programa ou outros dados. Os meios de comunicação normalmente incluem instruções legíveis por computador, estruturas de dados, outros dados em um sinal de dados modulado, como módulos de programa ou outros mecanismos de transmissão, e incluem qualquer meio de entrega de informações.
[0356] A descrição acima mencionada da presente invenção é apenas para fins ilustrativos, e será entendido que aquelas pessoas versadas na técnica à qual a presente invenção pertence podem fazer alterações na presente invenção sem alterar as ideias técnicas ou características essenciais da presente invenção e a invenção podem ser facilmente modificadas em outras formas específicas. Portanto, as modalidades descritas acima são ilustrativas e não são restritas em todos os aspectos. Por exemplo, cada componente descrito como uma única entidade pode ser distribuído e implementado e, da mesma forma, os componentes descritos como distribuídos também podem ser implementados de forma associada.
[0357] O escopo da presente invenção é definido pelas reivindicações anexas em vez da descrição detalhada acima, e todas as alterações ou modificações derivadas do significado e alcance das reivindicações anexas e seus equivalentes devem ser interpretadas como incluídas no escopo da presente invenção.

Claims (21)

1. Dispositivo de decodificação de sinal de vídeo, CARACTERIZADO pelo fato de que compreende: um processador, em que o processador é configurado para: analisar um primeiro elemento de sintaxe que indica se as informações relacionadas à pelo menos uma subfigura incluída em cada figura estão presentes, e analisar um segundo elemento de sintaxe que indica se o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado quando o primeiro elemento de sintaxe indica que as informações relacionadas a pelo menos uma subfigura estão presentes, analisar um terceiro elemento de sintaxe indicando se o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado em uma sintaxe de carga útil de sequência de bytes bruta (RBSP) de conjunto de parâmetros de sequência (SPS) quando o segundo elemento de sintaxe indica que o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado, e analisar um quarto elemento de sintaxe que indica se o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado em uma sintaxe de RBSP de conjunto de parâmetros de figura (PPS), em que o primeiro elemento de sintaxe, o segundo elemento de sintaxe e o terceiro elemento de sintaxe estão incluídos na sintaxe de RBSP de SPS.
2. Dispositivo de decodificação de sinal de vídeo, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que quando o terceiro elemento de sintaxe indica que o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado na sintaxe de RBSP de SPS: um valor de mapeamento de ID de subfigura relacionado a pelo menos uma subfigura é sinalizado na sintaxe de RBSP de SPS, quando o segundo elemento de sintaxe indica se o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado e o terceiro elemento de sintaxe indica que o valor de mapeamento de ID de subfigura relacionado a pelo menos uma subfigura não está sinalizado na sintaxe de RBSP de SPS: o quarto elemento de sintaxe indica que o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado na sintaxe de RBSP de PPS, o valor de mapeamento de ID de subfigura relacionado a pelo menos uma subfigura é sinalizado na sintaxe de RBSP de PPS.
3. Dispositivo de decodificação de sinal de vídeo, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o quarto elemento de sintaxe está incluído na sintaxe de RBSP do conjunto de parâmetros de figura (PPS) referente à sintaxe de RBSP de SPS.
4. Dispositivo de decodificação de sinal de vídeo, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que compreende analisar um quinto elemento de sintaxe relacionado a um número de pelo menos uma subfigura, analisar um sexto elemento de sintaxe indicando se um limite de pelo menos uma subfigura é processado como um limite de uma figura com base no quinto elemento de sintaxe, em que o sexto elemento de sintaxe é analisado quando o número de pelo menos uma subfigura é pelo menos 2.
5. Dispositivo de decodificação de sinal de vídeo, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que o quinto elemento de sintaxe indica um valor obtido subtraindo 1 do número de pelo menos uma subfigura.
6. Dispositivo de decodificação de sinal de vídeo, de acordo com a reivindicação 4 CARACTERIZADO pelo fato de que o sexto elemento de sintaxe indica ainda se a filtragem em loop é aplicada ao limite de pelo menos uma subfigura.
7. Dispositivo de decodificação de sinal de vídeo, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que o valor indicado pelo quinto elemento de sintaxe é maior que 0.
8. Dispositivo de decodificação de sinal de vídeo, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que quando o número de pelo menos uma subfigura é 1, o sexto elemento de sintaxe é inferido como um valor predefinido indicando se a filtragem em loop é aplicada ao limite de pelo menos uma subfigura.
9. Dispositivo de codificação de sinal de vídeo, CARACTERIZADO pelo fato de que compreende: um processador, em que o processador é configurado para: obter um fluxo de bits a ser decodificado por um decodificador usando um método de decodificação, em que o método de decodificação compreende: analisar um primeiro elemento de sintaxe que indica se a informação relacionada a pelo menos uma subfigura incluída em cada figura está presente; analisar um segundo elemento de sintaxe que indica se o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado quando o primeiro elemento de sintaxe indica que a informação relacionada a pelo menos uma subfigura está presente; analisar um terceiro elemento de sintaxe indicando se o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado em uma sintaxe de carga útil de sequência de bytes bruta (RBSP) de conjunto de parâmetros de sequência (SPS) quando o segundo elemento de sintaxe indica que o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado; e analisar um quarto elemento de sintaxe que indica se o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado em uma sintaxe de RBSP de conjunto de parâmetros de figura (PPS), em que o primeiro elemento de sintaxe, o segundo elemento de sintaxe e o terceiro elemento de sintaxe estão incluídos na sintaxe de RBSP de SPS.
10. Dispositivo de codificação de sinal de vídeo, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que quando o terceiro elemento de sintaxe indica que o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado na sintaxe de RBSP de SPS: um valor de mapeamento de ID de subfigura relacionado a pelo menos uma subfigura é sinalizado na sintaxe de RBSP de SPS, quando o segundo elemento de sintaxe indica se o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado e o terceiro elemento de sintaxe indica que o valor de mapeamento de ID de subfigura relacionado a pelo menos uma subfigura não está sinalizado na sintaxe de RBSP de SPS: o quarto elemento de sintaxe indica que o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado na sintaxe de RBSP de PPS, o valor de mapeamento de ID de subfigura relacionado a pelo menos uma subfigura é sinalizado na sintaxe de RBSP de PPS.
11. Dispositivo de decodificação de sinal de vídeo, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que o quarto elemento de sintaxe está incluído na sintaxe de RBSP do conjunto de parâmetros de figura (PPS) referente à sintaxe de RBSP de SPS.
12. Dispositivo de decodificação de sinal de vídeo, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que o método de decodificação compreende ainda: analisar um quinto elemento de sintaxe relacionado a um número de pelo menos uma subfigura; analisar um sexto elemento de sintaxe que indica se um limite de pelo menos uma subfigura é processado como um limite de uma figura com base no quinto elemento de sintaxe, em que o sexto elemento de sintaxe é analisado quando o número de pelo menos uma subfigura é pelo menos 2.
13. Dispositivo de decodificação de sinal de vídeo, de acordo com a reivindicação 12, CARACTERIZADO pelo fato de que o quinto elemento de sintaxe indica um valor obtido subtraindo 1 do número de pelo menos uma subfigura.
14. Dispositivo de decodificação de sinal de vídeo, de acordo com a reivindicação 12, CARACTERIZADO pelo fato de que o sexto elemento de sintaxe indica ainda se a filtragem de loop é aplicada ao limite de pelo menos uma subfigura.
15. Dispositivo de decodificação de sinal de vídeo, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que o valor indicado pelo quinto elemento de sintaxe é maior que 0.
16. Dispositivo de decodificação de sinal de vídeo, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que quando o número de pelo menos uma subfigura é 1, o sexto elemento de sintaxe é inferido como um valor predefinido indicando se a filtragem em loop é aplicada ao limite de pelo menos uma subfigura.
17. Meio legível por computador não transitório que armazena um fluxo de bits, o fluxo de bits sendo decodificado por um método de decodificação, CARACTERIZADO pelo fato de que o método de decodificação compreende: analisar um primeiro elemento de sintaxe que indica se a informação relacionada a pelo menos uma subfigura incluída em cada figura está presente; analisar um segundo elemento de sintaxe que indica se o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado quando o primeiro elemento de sintaxe indica que a informação relacionada a pelo menos uma subfigura está presente; analisar um terceiro elemento de sintaxe indicando se o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado em uma sintaxe de carga útil de sequência de bytes bruta (RBSP) de conjunto de parâmetros de sequência (SPS) quando o segundo elemento de sintaxe indica que o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado; e analisar um quarto elemento de sintaxe que indica se o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado em uma sintaxe de RBSP de conjunto de parâmetros de figura (PPS), em que o primeiro elemento de sintaxe, o segundo elemento de sintaxe e o terceiro elemento de sintaxe estão incluídos na sintaxe de RBSP de SPS.
18. Meio legível por computador não transitório que armazena o fluxo de bits, de acordo com a reivindicação 17, CARACTERIZADO pelo fato de que, quando o terceiro elemento de sintaxe indica que o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado na sintaxe de RBSP de SPS: um valor de mapeamento de ID de subfigura relacionado a pelo menos uma subfigura é sinalizado na sintaxe de RBSP de SPS, quando o segundo elemento de sintaxe indica se o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado e o terceiro elemento de sintaxe indica que o valor de mapeamento de ID de subfigura relacionado a pelo menos uma subfigura não está sinalizado na sintaxe de RBSP de SPS: o quarto elemento de sintaxe indica que o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado na sintaxe de RBSP de PPS, o valor de mapeamento de ID de subfigura relacionado a pelo menos uma subfigura é sinalizado na sintaxe de RBSP de PPS.
19. Meio legível por computador não transitório que armazena o fluxo de bits, de acordo com a reivindicação17, CARACTERIZADO pelo fato de que o quarto elemento de sintaxe está incluído na sintaxe de RBSP do conjunto de parâmetros de figura (PPS) referente à sintaxe de RBSP de SPS.
20. Meio legível por computador não transitório que armazena o fluxo de bits, de acordo com a reivindicação 17, CARACTERIZADO pelo fato de o método de decodificação compreende ainda: analisar um quinto elemento de sintaxe relacionado a um número de pelo menos uma subfigura; analisar um sexto elemento de sintaxe que indica se um limite de pelo menos uma subfigura é processado como um limite de uma figura com base no quinto elemento de sintaxe, em que o sexto elemento de sintaxe é analisado quando o número de pelo menos uma subfigura é pelo menos 2.
21. Método de decodificação de sinal de vídeo, CARACTERIZADO pelo fato de que compreende: analisar um primeiro elemento de sintaxe que indica se a informação relacionada a pelo menos uma subfigura incluída em cada figura está presente; analisar um segundo elemento de sintaxe que indica se o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado quando o primeiro elemento de sintaxe indica que a informação relacionada a pelo menos uma subfigura está presente; analisar um terceiro elemento de sintaxe indicando se o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado em uma sintaxe de carga útil de sequência de bytes bruta (RBSP) de conjunto de parâmetros de sequência (SPS) quando o segundo elemento de sintaxe indica que o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado; e analisar um quarto elemento de sintaxe que indica se o mapeamento de ID de subfigura para pelo menos uma subfigura é sinalizado em uma sintaxe de RBSP de conjunto de parâmetros de figura (PPS), em que o primeiro elemento de sintaxe, o segundo elemento de sintaxe e o terceiro elemento de sintaxe estão incluídos na sintaxe de RBSP de SPS.
BR122023027041-0A 2019-12-20 2020-12-21 Dispositivo de decodificação de sinal de vídeo, dispositivo de codificação de sinal de vídeo, meio legível por computador não transitório e método de decodificação de sinal de vídeo BR122023027041A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR10-2019-0171788 2019-12-20
KR10-2020-0041255 2020-04-04
KR10-2020-0050377 2020-04-24

Publications (1)

Publication Number Publication Date
BR122023027041A2 true BR122023027041A2 (pt) 2024-04-09

Family

ID=

Similar Documents

Publication Publication Date Title
EP4358514A2 (en) Video signal processing method and device
TWI663869B (zh) 區塊可適性顏色空間轉換寫碼
CA2949542C (en) Block adaptive color-space conversion coding
CN117294852A (zh) 跨分量编解码顺序导出
AU2015330676A1 (en) Intra block copy prediction restrictions for parallel processing
AU2020407738B2 (en) Video signal processing method and device therefor
US11570483B2 (en) Video signal processing method and device for signaling prediction mode
US20230008778A1 (en) Interplay between picture header and slice header of a video bitstream
KR20220152212A (ko) 양자화 파라미터를 위한 높은 레벨의 비트스트림 신택스
BR122022009674A2 (pt) Método implementado por um codificador, dispositivo e aparelho de codificação, sistema e meio para codificação
CN115211130B (zh) 基于条带和片图片分割的信令通知的处理视频数据的方法
US20240137571A1 (en) General Constraint Information In Video Coding
CN114567786B (zh) 以4:4:4色度格式进行视频编解码的方法和装置
JP7460784B2 (ja) スライスおよびタイルを含むピクチャのコーディング
BR122023027041A2 (pt) Dispositivo de decodificação de sinal de vídeo, dispositivo de codificação de sinal de vídeo, meio legível por computador não transitório e método de decodificação de sinal de vídeo
BR122023027043A2 (pt) Dispositivo de decodificação de sinal de vídeo, dispositivo de codificação de sinal de vídeo, meio legível por computador não transitório e método de decodificação de sinal de vídeo
BR122023027045A2 (pt) Dispositivo de decodificação de sinal de vídeo, dispositivo de codificação de sinal de vídeo, meio legível por computador não transitório e método de decodificação de sinal de vídeo
BR122023027038A2 (pt) Dispositivo de decodificação de sinal de vídeo, dispositivo de codificação de sinal de vídeo, meio legível por computador não transitório e método de decodificação de sinal de vídeo
JP2024012516A (ja) 一般制約フラグのシグナリング
CN115244922A (zh) 视频编解码中使用图片级别条带索引
KR20220163392A (ko) 비디오 코딩에서 디블로킹 시그널링