BR112021012366A2 - Método e dispositivo de codificação de imagem utilizando sinalizador de sato de transformada - Google Patents

Método e dispositivo de codificação de imagem utilizando sinalizador de sato de transformada Download PDF

Info

Publication number
BR112021012366A2
BR112021012366A2 BR112021012366-0A BR112021012366A BR112021012366A2 BR 112021012366 A2 BR112021012366 A2 BR 112021012366A2 BR 112021012366 A BR112021012366 A BR 112021012366A BR 112021012366 A2 BR112021012366 A2 BR 112021012366A2
Authority
BR
Brazil
Prior art keywords
transform
information
size
flag
enabled
Prior art date
Application number
BR112021012366-0A
Other languages
English (en)
Other versions
BR112021012366B1 (pt
Inventor
Summi Yoo
Jungah CHOI
Jangwon CHOI
Seunghwan Kim
Original Assignee
Lg Electronics 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 Lg Electronics Inc. filed Critical Lg Electronics Inc.
Priority to BR122021012456-6A priority Critical patent/BR122021012456B1/pt
Priority to BR122021012448-5A priority patent/BR122021012448B1/pt
Publication of BR112021012366A2 publication Critical patent/BR112021012366A2/pt
Publication of BR112021012366B1 publication Critical patent/BR112021012366B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/507Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction using conditional replenishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

trata-se de um método de decodificação de imagem de acordo com o presente documento que compreende as etapas de: adquirir, a partir de um fluxo de bits, informações de modo de predição e informações relacionadas residuais; realizar a predição com base nas informações de modo de predição para derivar amostras de predição de um bloco atual; derivar amostras residuais do bloco atual com base nas informações relacionadas residuais; e gerar amostras reconstruídas do bloco atual com base nas amostras de predição e nas amostras residuais, em que as informações relacionadas residuais incluem um sinalizador de salto de transformada com base no tamanho do bloco atual e um tamanho máximo de salto de transformada, o sinalizador de salto de transformada indica se um salto de transformada é aplicado ao bloco atual, e informações sobre o tamanho máximo de salto de transformada são adquiridas a partir do fluxo de bits.

Description

“MÉTODO E DISPOSITIVO DE CODIFICAÇÃO DE IMAGEM UTILIZANDO SINALIZADOR DE SATO DE TRANSFORMADA” ANTECEDENTES DA REVELAÇÃO CAMPO DA REVELAÇÃO
[001] O presente documento refere-se a uma tecnologia de codificação de imagem e, mais particularmente, a um método e dispositivo de codificação de imagem utilizando um sinalizador de salto de transformada em um sistema de codificação de imagem.
TÉCNICA RELACIONADA
[002] A demanda de imagens de alta resolução e alta qualidade, como imagens em HD (Alta Definição) e imagens em UHD (Ultra Alta Definição) tem aumentado em vários campos. Como os dados da imagem têm alta resolução e alta qualidade, a quantidade de informações ou bits que será transmitida aumenta em relação aos dados da imagem herdada. Portanto, quando os dados de imagem são transmitidos usando um meio como uma linha de banda larga convencional com fio/sem fio, ou os dados de imagem são armazenados usando um meio de armazenamento existente, o custo de transmissão e o custo de armazenamento são aumentados.
[003] Por conseguinte, existe uma necessidade por uma técnica de compactação de imagem altamente eficiente para transmitir, armazenar e reproduzir informações de alta resolução e imagens de alta qualidade.
SUMÁRIO
[004] O presente documento fornece um método e um dispositivo para aprimorar a eficiência de codificação de imagem.
[005] O presente documento fornece um método e um dispositivo para aprimorar a eficiência de codificação residual.
[006] O presente documento fornece um método e um dispositivo para aprimorar a eficiência da codificação residual de acordo com a possibilidade de aplicar um salto de transformada.
[007] O presente documento fornece um método e um dispositivo para aprimorar a eficiência da codificação residual definindo de forma variável um tamanho máximo de salto de transformada.
[008] De acordo com uma modalidade do presente documento, é fornecido um método de decodificação de uma imagem realizado por um aparelho de decodificação. O método inclui obter informações de modo de predição e informações relacionadas residuais a partir de um fluxo de bits, derivar amostras de predição de um bloco atual realizando a predição com base nas informações de modo de predição, derivar amostras residuais do bloco atual com base nas informações relacionadas residuais, e gerar amostras de reconstrução do bloco atual com base nas amostras de predição e nas amostras residuais, e as informações relacionadas residuais incluem um sinalizador de salto de transformada com base em um tamanho do bloco atual e um tamanho máximo de salto de transformada, o sinalizador de salto de transformada representa se um salto de transformada é aplicado ao bloco atual, e informações sobre o tamanho máximo de salto de transformada são obtidas a partir do fluxo de bits.
[009] De acordo com outra modalidade do presente documento, é fornecido um aparelho de decodificação que realiza a decodificação de imagem. O aparelho de decodificação inclui um decodificador de entropia que obtém informações de modo de predição e informações relacionadas residuais a partir de um fluxo de bits, um preditor que deriva amostras de predição de um bloco atual realizando a predição com base nas informações de modo de predição, um processador residual que deriva amostras residuais do bloco atual com base nas informações relacionadas residuais, e um somador que gera amostras de reconstrução do bloco atual com base nas amostras de predição e nas amostras residuais, e as informações relacionadas residuais incluem um sinalizador de salto de transformada com base em um tamanho do bloco atual e um tamanho máximo de salto de transformada, o sinalizador de salto de transformada representa se um salto de transformada é aplicado ao bloco atual, e informações sobre o tamanho máximo de salto de transformada são obtidas a partir do fluxo de bits.
[010] De acordo com ainda outra modalidade do presente documento, é fornecido um método para codificar um vídeo realizado por um aparelho de codificação. O método inclui derivar amostras de predição realizando a predição em um bloco atual, derivar amostras residuais para o bloco atual, e codificar informações de imagem incluindo informações de modo de predição sobre a predição e informações relacionadas residuais sobre as amostras residuais, e as informações relacionadas residuais incluem um sinalizador de salto de transformada com base em um tamanho do bloco atual e um tamanho máximo de salto de transformada, o sinalizador de salto de transformada representa se um salto de transformada é aplicado ao bloco atual, e as informações de imagem incluem informações sobre o tamanho máximo de salto de transformada.
[011] De acordo com ainda outra modalidade do presente documento, é fornecido um aparelho de codificação de vídeo. O aparelho de codificação inclui um preditor que deriva amostras de predição realizando a predição em um bloco atual, um processador residual que deriva amostras residuais para o bloco atual, e um codificador de entropia que codifica informações de imagem incluindo informações de modo de predição sobre a predição e informações relacionadas residuais sobre as amostras residuais, e as informações relacionadas residuais incluem um sinalizador de salto de transformada com base em um tamanho do bloco atual e um tamanho máximo de salto de transformada, o sinalizador de salto de transformada representa se um salto de transformada é aplicado ao bloco atual, e as informações de imagem incluem informações sobre o tamanho máximo de salto de transformada.
[012] De acordo com ainda outra modalidade do presente documento, é fornecido um meio de armazenamento digital legível por computador. O meio de armazenamento digital legível por computador armazena informações de imagem que fazem com que o método de decodificação seja realizado.
[013] De acordo com uma modalidade adicional do presente documento, é fornecido um meio de armazenamento digital legível por computador. O meio de armazenamento digital legível por computador armazena informações de imagem geradas pelo método de codificação.
[014] De acordo com o presente documento, é possível aprimorar a eficiência de compactação de imagem/vídeo total.
[015] De acordo com o presente documento, é possível aprimorar a eficiência da codificação residual usando o sinalizador de presença/ausência de salto de transformada.
[016] De acordo com o presente documento, é possível aprimorar a eficiência da codificação residual definindo de forma variável o tamanho máximo de salto de transformada.
[017] De acordo com o presente documento, é possível aprimorar a eficiência de codificação transmitindo eficientemente o sinal residual representado pelo domínio de pixel que tem as características diferentes daquelas do sinal residual do domínio de transformada geral.
BREVE DESCRIÇÃO DOS DESENHOS
[018] A Figura 1 é um diagrama que ilustra esquematicamente um exemplo de um sistema de codificação de vídeo/imagem ao qual o presente documento pode ser aplicado.
[019] A Figura 2 é um diagrama que explica esquematicamente uma configuração de um aparelho de codificação de vídeo/imagem ao qual o presente documento pode ser aplicado.
[020] A Figura 3 é um diagrama que explica esquematicamente uma configuração de um aparelho de decodificação de vídeo/imagem ao qual o presente documento pode ser aplicado.
[021] A Figura 4 é um diagrama que ilustra um exemplo de uma desquantização e transformador inverso.
[022] A Figura 5 é um diagrama que ilustra um exemplo de uma unidade de transformada secundário inversa e uma unidade de transformada primária inversa.
[023] A Figura 6 é um diagrama que ilustra um exemplo de um método de transformada inversa baseado em parâmetros relacionados à transformada.
[024] A Figura 7 é um diagrama que ilustra um exemplo de um método de transformada inversa específico.
[025] A Figura 8 é um diagrama de blocos de um sistema de codificação de CABAC de acordo com uma modalidade.
[026] A Figura 9 é um diagrama que ilustra um exemplo de coeficientes de transformada dentro de um bloco 4x4.
[027] A Figura 10 é um diagrama que ilustra um decodificador de sinal residual de acordo com uma modalidade do presente documento.
[028] A Figura 11 é um diagrama que ilustra um determinador de análise de sinalizador de salto de transformada de acordo com uma modalidade do presente documento.
[029] A Figura 12 é um fluxograma para explicar um método de codificação de um sinalizador de presença/ausência de salto de transformada de acordo com uma modalidade do presente documento.
[030] As Figuras 13 e 14 são diagramas que ilustram esquematicamente um exemplo de um método de codificação de vídeo/imagem e componentes relacionados de acordo com a modalidade (ou modalidades) do presente documento.
[031] As Figuras 15 e 16 são diagramas que ilustram esquematicamente um exemplo do método de decodificação de vídeo/imagem e componentes relacionados de acordo com a modalidade (ou modalidades) do presente documento.
[032] A Figura 17 é um diagrama que ilustra esquematicamente uma estrutura de sistema de streaming de conteúdo.
DESCRIÇÃO DE MODALIDADES EXEMPLIFICATIVAS
[033] O presente documento pode ser modificado de várias formas, e modalidades específicas da mesma serão descritas e ilustradas nos desenhos.
Entretanto, as modalidades não se destinam a limitar o presente documento. Os termos usados na descrição a seguir são usados meramente para descrever modalidades específicas, porém não se destinam a limitar o presente documento.
Uma expressão de um número no singular inclui uma expressão do número no plural, desde que seja claramente lido de forma diferente. Os termos como "incluir" e "ter" se destinam a representar que existem recursos, números, etapas, operações, elementos, componentes ou combinações dos mesmos usados na descrição a seguir e, dessa forma, deve ser entendido que a possibilidade de existência ou adição de um ou mais recursos, números, etapas, operações, elementos, componentes diferentes ou combinações dos mesmos não é excluída.
[034] Cada um dos componentes nos desenhos descritos no presente documento é ilustrado independentemente por uma questão de conveniência de descrição referente a funções características diferentes, e não significa que os componentes sejam implementados em hardware ou software separado. Por exemplo, duas ou mais de cada configuração podem ser combinadas para formar uma configuração, ou uma configuração pode ser dividida em uma pluralidade de configurações. As modalidades em que cada configuração é integrada e/ou separada também estão incluídas no escopo do presente documento sem que se afaste do espírito do presente documento.
[035] Mais adiante neste documento, modalidades exemplificativas do presente documento serão descritas em detalhes com referência aos desenhos em anexo. Mais adiante neste documento, as mesmas referências numéricas são usadas para os mesmos componentes nos desenhos, e uma descrição redundante dos mesmos componentes é omitida.
[036] A Figura 1 ilustra um exemplo de um sistema de codificação de vídeo/imagem ao qual as modalidades do presente relatório descritivo podem ser aplicadas.
[037] Com referência à Figura 1, um sistema de codificação de vídeo/imagem pode incluir um primeiro aparelho (dispositivo de origem) e um segundo aparelho (dispositivo de recepção). O dispositivo de origem pode transmitir informações ou dados de vídeo/imagem codificados ao dispositivo de recepção através de um meio de armazenamento digital ou rede sob a forma de um arquivo ou streaming.
[038] O dispositivo de origem pode incluir uma fonte de vídeo, um aparelho de codificação e um transmissor. O dispositivo de recepção pode incluir um receptor, um aparelho de decodificação e um renderizador. O aparelho de codificação pode ser chamado de um aparelho de codificação de vídeo/imagem, e o aparelho de decodificação pode ser chamado de um aparelho de decodificação de vídeo/imagem. O transmissor pode estar incluído no aparelho de codificação. O receptor pode estar incluído no aparelho de decodificação. O renderizador pode incluir uma tela, e a tela pode ser configurada como um dispositivo separado ou um componente externo.
[039] A fonte de vídeo pode obter vídeo/imagem através de um processo para capturar, sintetizar ou gerar o vídeo/imagem. A fonte de vídeo pode incluir um dispositivo de captura de vídeo/imagem e/ou um dispositivo de geração de vídeo/imagem. O dispositivo de captura de vídeo/imagem pode incluir, por exemplo, uma ou mais câmeras, arquivos de vídeo/imagem incluindo vídeo/imagens anteriormente capturados, e similares. O dispositivo de geração de vídeo/imagem pode incluir, por exemplo, computadores, tablets e smartphones, e pode gerar (eletronicamente) vídeo/imagens. Por exemplo, um vídeo/imagem virtual pode ser gerado através de um computador ou similares. Nesse caso, o processo de captura de vídeo/imagem pode ser substituído por um processo de geração de dados relacionados.
[040] O aparelho de codificação pode codificar vídeo/imagem de entrada.
O aparelho de codificação pode executar uma série de procedimentos como predição, transformada e quantização para eficiência de compactação e codificação. Os dados codificados (informações de vídeo/imagem codificadas) podem ser emitidos sob a forma de um fluxo de bits.
[041] O transmissor pode transmitir as informações ou dados de imagem/imagem codificados sob a forma de um fluxo de bits ao receptor do dispositivo de recepção através de um meio de armazenamento digital ou uma rede sob a forma de um arquivo ou streaming. O meio de armazenamento digital pode incluir vários meios de armazenamento como USB, SD, CD, DVD, Blu-ray, HDD, SSD, e similares. O transmissor pode incluir um elemento para gerar um arquivo de mídia através de um formato de arquivo predeterminado e pode incluir um elemento para transmissão através de uma rede de difusão/comunicação. O receptor pode receber/extrair o fluxo de bits e transmitir o fluxo de bits recebido ao aparelho de decodificação.
[042] O aparelho de decodificação pode decodificar o vídeo/imagem realizando uma série de procedimentos como desquantização, transformada inversa e predição correspondente à operação do aparelho de codificação.
[043] O renderizador pode renderizar o vídeo/imagem decodificado. O vídeo/imagem renderizado pode ser exibido através da tela.
[044] O presente documento se refere à codificação de vídeo/imagem. Por exemplo, o método/modalidade revelado no presente documento pode ser aplicado ao método revelado no padrão de codificação de vídeo versátil (VVC), no padrão EVC (codificação de vídeo essencial), no padrão AOMedia Video 1 (AV1), no padrão de codificação de áudio e vídeo de 2a geração (AVS2) ou no padrão de codificação de vídeo/imagem de próxima geração (por exemplo, H.267 ou H.268, etc.).
[045] O presente documento apresenta várias modalidades de codificação de vídeo/imagem, e as modalidades podem ser realizadas em combinação umas com as outras, exceto onde mencionado em contrário.
[046] No presente documento, um vídeo pode significar um conjunto de uma série de imagens ao longo do tempo. Uma figuração significa, em geral, uma unidade que representa uma imagem em um fuso horário específico, e uma fatia/ladrilho é uma unidade que configura uma parte da figuração na codificação. A fatia/ladrilho pode incluir uma ou mais unidades de árvore de codificação (CTUs).
Uma figuração pode ser composta de uma ou mais fatias/ladrilhos. Uma figuração pode ser composta de um ou mais grupos de ladrilhos. Um grupo de ladrilhos pode incluir um ou mais ladrilhos. Um tijolo pode representar uma região retangular de linhas de CTU dentro de um ladrilho em uma figuração. Um ladrilho pode ser particionado em múltiplos tijolos, cada um dos quais consiste em uma ou mais linhas de CTU dentro do ladrilho. Um ladrilho que não é particionado em múltiplos tijolos também pode ser chamado de um tijolo. Um ladrilho que não é particionado em múltiplos tijolos também pode ser chamado de um tijolo. Uma varredura de tijolo pode representar uma ordenação sequencial específica das CTUs que particionam uma figuração em que as CTUs podem ser ordenadas em uma varredura raster de CTU dentro do tijolo, os tijolos dentro do ladrilho podem ser ordenados consecutivamente na varredura raster dos tijolos do ladrilho, e os ladrilhos em uma figuração podem ser ordenados consecutivamente na varredura raster dos ladrilhos da figuração. Um ladrilho é uma região retangular de CTUs dentro de uma coluna de ladrilho específica e uma linha de ladrilho específica. A coluna de ladrilho é uma região retangular de CTUs que tem uma altura igual à altura da figuração e uma largura especificada por elementos de sintaxe no conjunto de parâmetro de figuração. A linha de ladrilho é uma região retangular de CTUs que tem uma altura especificada por elementos de sintaxe no conjunto de parâmetros de figuração e uma largura igual à largura da figuração. Uma varredura de ladrilho é uma ordenação sequencial específica de CTUs que particionam uma figuração em que as CTUs estão ordenadas consecutivamente em uma varredura raster de CTU em um ladrilho, enquanto os ladrilhos de uma figuração são ordenados consecutivamente em uma varredura raster dos ladrilhos da figuração.
Uma fatia inclui um número inteiro de tijolos de uma figuração que pode estar exclusivamente contido em uma única unidade de NAL. Uma fatia pode consistir em vários ladrilhos completos ou apenas uma sequência consecutiva de tijolos completos de um ladrilho. O grupo de ladrilhos e a fatia podem ser usados de forma intercambiável no presente documento. Por exemplo, no presente documento, o grupo de ladrilhos/cabeçalho de grupo de ladrilhos pode também ser chamado de uma fatia/cabeçalho de fatia.
[047] Um pixel ou um pel pode significar a menor unidade que constitui uma figuração (ou imagem). Além disso, ‘amostra’ pode ser usada como um termo correspondente a um pixel. Uma amostra pode, em geral, representar um pixel ou um valor de um pixel, e pode representar apenas um pixel/valor de pixel de um componente luma ou apenas um pixel/valor de pixel de um componente croma.
[048] Uma unidade pode representar uma unidade básica de processamento de imagens. A unidade pode incluir pelo menos uma dentre uma região específica da figuração e informações relacionadas à região. Uma unidade pode incluir um bloco luma e dois blocos croma (por exemplo, cb, cr). A unidade pode ser usada de forma intercambiável com termos como bloco ou área em alguns casos. Em um caso geral, um bloco M×N pode incluir amostras (ou matrizes de amostras) ou um conjunto (ou matriz) de coeficientes de transformada de M colunas e N linhas.
[049] No presente documento, o termo “/” “e“, deve ser interpretado para representar “e/ou”. Por exemplo, a expressão “A/B” pode significar “A e/ou B”.
Ademais, “A, B” pode significar “A e/ou B”. Ademais, “A/B/C” pode significar “pelo menos um dentre A, B e/ou C”. Além disso, “A/B/C” pode significar “pelo menos um dentre A, B e/ou C”.
[050] Ademais, no presente documento, o termo “ou“, deve ser interpretado para representar “e/ou”. Por exemplo, a expressão “A ou B” pode compreender 1) apenas A, 2) apenas B e/ou 3) tanto A como B. Ou seja, o termo “ou” no presente documento deve ser interpretado para representar “adicional ou alternativamente”.
[051] A Figura 2 é um diagrama que explica esquematicamente uma configuração de um aparelho de codificação de vídeo/imagem ao qual o presente documento pode ser aplicado. Mais adiante neste documento, o aparelho de codificação de vídeo pode incluir um aparelho de codificação de imagem.
[052] Com referência à Figura 2, o aparelho de codificação 200 inclui um particionador de imagem 210, um preditor 220, um processador residual 230, um codificador de entropia 240, um somador 250, um filtro 260 e uma memória 270. O preditor 220 pode incluir um preditor inter 221 e um preditor intra 222. O processador residual 230 pode incluir um transformador 232, um quantizador 233,
um desquantizador 234 e um transformador inverso 235. O processador residual 230 pode incluir adicionalmente um subtrator 231. O somador 250 pode ser chamado de um reconstrutor ou um gerador de bloco reconstruído. O particionador de imagem 210, o preditor 220, o processador residual 230, o codificador de entropia 240, o somador 250 e o filtro 260 podem ser configurados por pelo menos um componente de hardware (por exemplo, um chipset codificador ou processador) de acordo com uma modalidade. Além disso, a memória 270 pode incluir um buffer de figuração decodificado (DPB) ou pode ser configurada por um meio de armazenamento digital. O componente de hardware pode incluir adicionalmente a memória 270 como um componente interno/externo.
[053] O particionador de imagem 210 pode particionar uma imagem de entrada (ou uma figuração ou um quadro) inserida no aparelho de codificação 200 em um ou mais processadores. Por exemplo, o processador pode ser chamado de uma unidade de codificação (CU). Nesse caso, a unidade de codificação pode ser recursivamente particionada de acordo com uma estrutura de árvore quaternária, árvore binária, árvore ternária (QTBTTT) de uma unidade de árvore de codificação (CTU) ou uma grande unidade de codificação (LCU). Por exemplo, uma unidade de codificação pode ser particionada em uma pluralidade de unidades de codificação de uma profundidade maior com base em uma estrutura de árvore quaternária, uma estrutura de árvore binária e/ou uma estrutura ternária. Nesse caso, por exemplo, a estrutura de árvore quaternária pode ser aplicada primeiro e a estrutura de árvore binária e/ou estrutura ternária pode ser aplicada posteriormente. Alternativamente, a estrutura de árvore binária pode ser aplicada primeiro. O procedimento de codificação de acordo com o presente documento pode ser realizado com base na unidade de codificação final que não é mais particionada. Nesse caso, a grande unidade de codificação pode ser usada como a unidade de codificação final com base na eficiência de codificação de acordo com características de imagem, ou se necessário, a unidade de codificação pode ser recursivamente particionada em unidades de codificação de maior profundidade e uma unidade de codificação que tem um tamanho ideal pode ser usada como a unidade de codificação final. Aqui, o procedimento de codificação pode incluir um procedimento de predição, transformação e reconstrução, que será descrito posteriormente. Como outro exemplo, o processador pode incluir adicionalmente um preditor (PU) ou um transformador (TU). Nesse caso, o preditor e o transformador podem ser divididos a partir da unidade de codificação final supracitada. O preditor pode ser uma unidade de predição de amostra, e o transformador pode ser uma unidade para derivar um coeficiente de transformada e/ou uma unidade para derivar um sinal residual do coeficiente de transformação.
[054] A unidade pode ser usada de forma intercambiável com termos como bloco ou área em alguns casos. Em um caso geral, um bloco M×N pode representar um conjunto de amostras de coeficientes de transformada composto de M colunas e N linhas. Uma amostra pode, em geral, representar um pixel ou um valor de um pixel, pode representar apenas um pixel/valor de pixel de um componente luma ou representar apenas um pixel/valor de pixel de um componente croma. Uma amostra pode ser usada como um termo correspondente a uma figuração (ou imagem) para um pixel ou um pel.
[055] No aparelho de codificação 200, um sinal de predição (bloco previsto, matriz de amostras de predição) emitido do preditor inter 221 ou o preditor intra 222 é subtraído de um sinal de imagem de entrada (bloco original, matriz de amostra original) para gerar um bloco residual de sinal residual, matriz de amostra residual), e o sinal residual gerado é transmitido ao transformador 232. Nesse caso, conforme ilustrado, uma unidade para subtrair um sinal de predição (bloco previsto, matriz de amostras de predição) a partir do sinal de imagem de entrada (bloco original, matriz de amostra original) no codificador 200 pode ser chamada de um subtrator 231. O preditor pode realizar a predição e um bloco que será processado (mais adiante neste documento, chamado de um bloco atual) e gerar um bloco previsto incluindo amostras de predição para o bloco atual. O preditor pode determinar se a predição intra ou predição inter é aplicada em um bloco atual ou base de CU. Conforme descrito posteriormente na descrição de cada modo de predição, o preditor pode gerar várias informações relacionadas à predição, como informações de modo de predição, e transmitir as informações geradas ao codificador de entropia 240. As informações sobre a predição podem ser codificadas no codificador de entropia 240 e emitidas sob a forma de um fluxo de bits.
[056] O preditor intra 222 pode prever o bloco atual referindo-se às amostras na figuração atual. As amostras referidas podem estar situadas na vizinhança do bloco atual ou podem estar situadas separadas de acordo com o modo de predição. Na predição intra, os modos de predição podem incluir uma pluralidade de modos não direcionais e uma pluralidade de modos direcionais. O modo não direcional pode incluir, por exemplo, um modo DC e um modo plano. O modo direcional pode incluir, por exemplo, 33 modos de predição direcionais ou 65 modos de predição direcionais de acordo com o grau de detalhes da direção de predição. Entretanto, esse é meramente um exemplo, mais ou menos modos de predição direcionais podem ser usados dependendo de uma configuração. O preditor intra 222 pode determinar o modo de predição aplicado ao bloco atual usando um modo de predição aplicado a um bloco vizinho.
[057] O preditor inter 221 pode derivar um bloco previsto para o bloco atual com base em um bloco de referência (matriz de amostra de referência) especificado por um vetor de movimento em uma figuração de referência. Aqui, para reduzir a quantidade de informações de movimento transmitidas no modo de predição inter, as informações de movimento podem ser previstas em unidades de blocos, sub-blocos, ou amostras com base na correlação de informações de movimento entre o bloco vizinho e o bloco atual. As informações de movimento podem incluir um vetor de movimento e um índice de figuração de referência. As informações de movimento podem incluir adicionalmente as informações de direção de predição inter (predição L0, predição L1, predição Bi, etc.). No caso de predição inter, o bloco vizinho pode incluir um bloco vizinho espacial presente na figuração atual e um bloco vizinho temporal presente na figuração de referência. A figuração de referência incluindo o bloco de referência e a figuração de referência incluindo o bloco vizinho temporal podem ser iguais ou diferentes. O bloco vizinho temporal pode ser chamado de um bloco de referência colocalizado, uma CU colocalizada (colCU), e similares, e a figuração de referência incluindo o bloco vizinho temporal pode ser chamada de uma figuração colocalizada (colPic). Por exemplo, o preditor inter 221 pode configurar uma lista de candidatos de informações de movimento com base em blocos vizinhos e gerar informações representando qual candidato é usado para derivar um vetor de movimento e/ou um índice de figuração de referência do bloco atual. A predição inter pode ser realizada com base em vários modos de predição. Por exemplo, no caso de um modo de salto e um modo de mesclagem, o preditor inter 221 pode usar informações de movimento do bloco vizinho como informações de movimento do bloco atual. No modo de salto, ao contrário do modo de mesclagem, o sinal residual não pode ser transmitido. No caso do modo de vetor de movimento predição (MVP), o vetor de movimento do bloco vizinho pode ser usado como um preditor de vetor de movimento e o vetor de movimento do bloco atual pode ser representado pela sinalização de uma diferença de vetor de movimento.
[058] O preditor 220 pode gerar um sinal de predição com base em vários métodos de predição descritos abaixo. Por exemplo, o preditor pode não só aplicar predição intra ou predição inter para prever um bloco, como também aplicar simultaneamente tanto predição intra como predição inter. Isto pode ser chamado de predição inter e intra combinada (CIIP). Além disso, o preditor pode ser baseado em um modo de predição de cópia de bloco intra (IBC) ou modo de paleta para a predição de um bloco. O modo de predição de IBC ou modo de paleta pode ser usado para codificação de imagem/vídeo de conteúdo de um jogo ou similares, por exemplo, codificação de conteúdo de tela (SCC). A IBC basicamente realiza a predição na figuração atual, porém pode ser realizada de modo similar à predição inter pelo fato de que um bloco de referência é derivado na figuração atual. Ou seja, a IBC pode usar pelo menos uma das técnicas de predição inter descritas no presente documento. O modo de paleta pode ser considerado como um exemplo de codificação intra ou predição intra. Quando o modo de paleta é aplicado, um valor de amostra dentro de uma figuração pode ser sinalizado com base nas informações sobre a tabela de paleta e no índice de paleta.
[059] O sinal de predição gerado através do preditor (incluindo o preditor inter 221 e/ou o preditor intra 222) pode ser usado para gerar um sinal reconstruído ou pode ser usado para gerar um sinal residual. O transformador 232 pode gerar coeficientes de transformada pela aplicação de uma técnica de transformada ao sinal residual. Por exemplo, a técnica de transformada pode incluir pelo menos uma dentre uma Transformada Discreta de Cosseno (DCT), uma Transformada Discreta de Seno (DST), uma Transformada de Karhunen- Loève (KLT), uma Transformada Baseada em Gráfico (GBT) ou uma Transformada Condicionalmente Não Linear (CNT). Aqui, a GBT significa uma transformada obtida a partir de um gráfico quando as informações de relação entre os pixels são graficamente representadas. A CNT significa uma transformada obtida gerando-se o sinal de predição usando todos os pixels anteriormente reconstruídos e baseados no sinal de predição. Além disso, o processo de transformada também pode ser aplicado a blocos de pixels que têm o mesmo tamanho de um quadrado ou também pode ser aplicado a blocos de tamanhos variáveis em vez do quadrado.
[060] O quantizador 233 pode quantizar os coeficientes de transformada e transmitir os mesmos ao codificador de entropia 240 e o codificador de entropia 240 pode codificar o sinal quantizado (informações sobre os coeficientes de transformada quantizados) e emitir um fluxo de bits. As informações sobre os coeficientes de transformada quantizados podem ser chamadas de informações residuais. O quantizador 233 pode rearranjar os coeficientes de transformada quantizados tipo bloco em uma forma de vetor unidimensional com base em uma ordem de varredura de coeficiente e gerar informações sobre os coeficientes de transformada quantizados com base nos coeficientes de transformada quantizados na forma de vetor unidimensional. Informações sobre os coeficientes de transformada podem ser geradas. O codificador de entropia 240 pode realizar vários métodos de codificação como, por exemplo, Golomb exponencial, codificação de comprimento variável adaptável ao contexto (CAVLC), codificação aritmética binária adaptável ao contexto (CABAC) e similares. O codificador de entropia 240 pode codificar as informações necessárias para a reconstrução de vídeo/imagem em vez de coeficientes de transformada quantizados (por exemplo, valores de elementos de sintaxe, etc.) em conjunto ou separadamente. As informações codificadas (por exemplo, informações de vídeo/imagem codificadas) podem ser transmitidas ou armazenadas em unidades de NALs (camada de abstração de rede) sob a forma de um fluxo de bits. As informações de vídeo/imagem podem incluir adicionalmente informações sobre vários conjuntos de parâmetros como um conjunto de parâmetros de adaptação (APS), um conjunto de parâmetros de figuração (PPS), um conjunto de parâmetros de sequência (SPS) ou um conjunto de parâmetros de vídeo (VPS). Além disso, as informações de vídeo/imagem podem incluir adicionalmente informações de restrição. No presente documento, as informações e/ou elementos de sintaxe transmitidas/sinalizadas do aparelho de codificação ao aparelho de decodificação podem estar incluídas nas informações de vídeo/figuração. As informações de vídeo/imagem podem ser codificadas através do procedimento de codificação descrito acima e incluídas no fluxo de bits. O fluxo de bits pode ser transmitido através de uma rede ou pode ser armazenado em um meio de armazenamento digital. A rede pode incluir uma rede de difusão e/ou uma rede de comunicação, e o meio de armazenamento digital pode incluir vários meios de armazenamento como USB, SD, CD, DVD, Blu-ray, HDD, SSD, e similares. Um transmissor (não ilustrado) que transmite um sinal emitido do codificador de entropia 240 e/ou uma unidade de armazenamento (não ilustrada) que armazena o sinal pode estar incluído como elemento interno/externo do aparelho de codificação 200, e alternativamente, o transmissor pode estar incluído no codificador de entropia 240.
[061] Os coeficientes de transformada quantizados emitidos do quantizador 233 podem ser usados para gerar um sinal de predição. Por exemplo, o sinal residual (bloco residual ou amostras residuais) pode ser reconstruído pela aplicação de desquantização e transformada inversa aos coeficientes de transformada quantizados através do desquantizador 234 e do transformador inverso 235. O somador 250 soma o sinal residual reconstruído ao sinal de predição emitido do preditor inter 221 ou do preditor intra 222 para gerar um sinal reconstruído (figuração reconstruída, bloco reconstruído, matriz de amostra reconstruída). Se não houver resíduo para o bloco que será processado, como um caso em que o modo de salto é aplicado, o bloco previsto pode ser usado como o bloco reconstruído. O somador 250 pode ser chamado de um reconstrutor ou um gerador de bloco reconstruído. O sinal reconstruído gerado pode ser usado para predição intra de um próximo bloco que será processado na figuração atual e pode ser usado para predição inter de uma próxima figuração através de filtragem,
conforme descrito a seguir.
[062] No entanto, o mapeamento luma com escalonamento croma (LMCS) pode ser aplicado durante a codificação e/ou reconstrução de figuração.
[063] O filtro 260 pode aprimorar a qualidade de imagem subjetiva/objetiva pela aplicação de filtragem ao sinal reconstruído. Por exemplo, o filtro 260 pode gerar uma figuração reconstruída modificada pela aplicação de vários métodos de filtragem à figuração reconstruída e armazenar a figuração reconstruída modificada na memória 270, especificamente, um DPB da memória 270. Os vários métodos de filtragem podem incluir, por exemplo, filtragem de deblocagem, um deslocamento adaptável à amostra, um filtro de laço adaptável, um filtro bilateral, e similares. O filtro 260 pode gerar várias informações relacionadas à filtragem e transmitir as informações geradas ao codificador de entropia 240 como descrito posteriormente na descrição de cada método de filtragem. As informações relacionadas à filtragem podem ser codificadas pelo codificador de entropia 240 e emitidas sob a forma de um fluxo de bits.
[064] A figuração reconstruída modificada transmitida à memória 270 pode ser usada como a figuração de referência no preditor inter 221. Quando a predição inter é aplicada através do aparelho de codificação, a incompatibilidade de predição entre o aparelho de codificação 200 e o aparelho de decodificação pode ser evitada e a eficiência de codificação pode ser aprimorada.
[065] O DPB da memória 270 pode armazenar a figuração reconstruída modificada para uso como uma figuração de referência no preditor inter 221. A memória 270 pode armazenar as informações de movimento do bloco a partir do qual as informações de movimento na figuração atual são derivadas (ou codificadas) e/ou as informações de movimento dos blocos na figuração que já foram reconstruídas. As informações de movimento armazenadas podem ser transmitidas ao preditor inter 221 e usadas como as informações de movimento do bloco vizinho espacial ou as informações de movimento do bloco vizinho temporal.
A memória 270 pode armazenar as amostras reconstruídas de blocos reconstruídos na figuração atual e pode transferir as amostras reconstruídas para o preditor intra 222.
[066] A Figura 3 é um diagrama que explica esquematicamente uma configuração de um aparelho de decodificação de vídeo/imagem ao qual o presente documento pode ser aplicado.
[067] Com referência à Figura 3, o aparelho de decodificação 300 pode incluir um decodificador de entropia 310, um processador residual 320, um preditor 330, um somador 340, um filtro 350 e uma memória 360. O preditor 330 pode incluir um preditor inter 331 e um preditor intra 332. O processador residual 320 pode incluir um desquantizador 321 e um transformador inverso 321. O decodificador de entropia 310, o processador residual 320, o preditor 330, o somador 340 e o filtro 350 podem ser configurados por um componente de hardware (por exemplo, um chipset codificador ou processador) de acordo com uma modalidade. Além disso, a memória 360 pode incluir um buffer de figuração decodificado (DPB) ou pode ser configurada por um meio de armazenamento digital. O componente de hardware pode incluir adicionalmente a memória 360 como um componente interno/externo.
[068] Quando um fluxo de bits incluindo informações de vídeo/imagem for inserido, o aparelho de decodificação 300 pode reconstruir uma imagem correspondente a um processo em que as informações de vídeo/imagem são processadas no aparelho de codificação da Figura 2. Por exemplo, o aparelho de decodificação 300 pode derivar unidades/blocos com base nas informações relacionadas à partição de bloco obtidas do fluxo de bits. O aparelho de decodificação 300 pode realizar a decodificação usando um processador aplicado no aparelho de codificação. Dessa forma, o processador de decodificação pode ser uma unidade de codificação, por exemplo, e a unidade de codificação pode ser particionada de acordo com uma estrutura de árvore quaternária, estrutura de árvore binária e/ou estrutura de árvore ternária da unidade de árvore de codificação ou da grande unidade de codificação. Um ou mais transformadores podem ser derivados da unidade de codificação. O sinal de imagem reconstruída decodificado e emitido através do aparelho de decodificação 300 pode ser reproduzido através de um aparelho de reprodução
[069] O aparelho de decodificação 300 pode receber um sinal emitido do aparelho de codificação da Figura 2 sob a forma de um fluxo de bits, e o sinal recebido pode ser decodificado através do decodificador de entropia 310. Por exemplo, o decodificador de entropia 310 pode analisar o fluxo de bits para derivar informações (por exemplo, informações de vídeo/imagem) necessárias para a reconstrução de imagem (ou reconstrução de figuração). As informações de vídeo/imagem podem incluir adicionalmente informações sobre vários conjuntos de parâmetros como um conjunto de parâmetros de adaptação (APS), um conjunto de parâmetros de figuração (PPS), um conjunto de parâmetros de sequência (SPS) ou um conjunto de parâmetros de vídeo (VPS). Além disso, as informações de vídeo/imagem podem incluir adicionalmente informações de restrição. O aparelho de decodificação pode decodificar adicionalmente a figuração com base nas informações sobre o conjunto de parâmetros e/ou nas informações de restrição gerais. As informações sinalizadas/recebidas e/ou elementos de sintaxe descritos posteriormente no presente documento podem ser decodificadas para decodificar o procedimento de decodificação e obtidas do fluxo de bits. Por exemplo, o decodificador de entropia 310 decodifica as informações no fluxo de bits com base em um método de codificação como codificação de Golomb exponencial, CAVLC ou CABAC, e elementos de sintaxe de saída necessários para reconstrução de imagem e valores quantizados de coeficientes de transformada para resíduo. Mais especificamente, o método de decodificação de entropia CABAC pode receber um bin correspondente a cada elemento de sintaxe no fluxo de bits, determinar um modelo de contexto usando informações de elemento de sintaxe de destino de decodificação de um bloco de destino de decodificação ou informações de um símbolo/bin decodificado em um estágio anterior, e realizar uma decodificação aritmética no bin prevendo-se uma probabilidade de ocorrência de um bin de acordo com o modelo de contexto determinado, e gerar um símbolo correspondente ao valor de cada elemento de sintaxe.
Nesse caso, o método de decodificação de entropia CABAC pode atualizar o modelo de contexto usando as informações do símbolo/bin decodificado para um modelo de contexto de um próximo símbolo/bin após determinar o modelo de contexto.
As informações relacionadas à predição entre as informações decodificadas pelo decodificador de entropia 310 podem ser fornecidas ao preditor (o preditor inter 332 e o preditor intra 331), e o valor residual em que a decodificação de entropia foi realizada no decodificador de entropia 310, ou seja, os coeficientes de transformada quantizados e informações de parâmetro relacionadas, pode ser inserido no processador residual 320. O processador residual 320 pode derivar o sinal residual
(o bloco residual, as amostras residuais, a matriz de amostra residual). Além disso,
as informações sobre filtragem entre as informações decodificadas pelo decodificador de entropia 310 podem ser fornecidas ao filtro 350. Entretanto, um receptor (não ilustrado) para receber um sinal emitido do aparelho de codificação pode ser adicionalmente configurado como um elemento interno/externo do aparelho de decodificação 300, ou o receptor pode ser um componente do decodificador de entropia 310. Entretanto, o aparelho de decodificação de acordo com o presente documento pode ser chamado de um aparelho de decodificação de vídeo/imagem/figuração, e o aparelho de decodificação pode ser classificado em um decodificador de informações (decodificador de informações de vídeo/imagem/figuração) e um decodificador de amostra (decodificador de amostra de vídeo/imagem/figuração). O decodificador de informações pode incluir o decodificador de entropia 310, e o decodificador de amostra pode incluir pelo menos um dentre o desquantizador 321, o transformador inverso 322, o somador 340, o filtro 350, a memória 360, o preditor inter 332 e o preditor intra 331.
[070] O desquantizador 321 pode desquantizar os coeficientes de transformada quantizados e emitir os coeficientes de transformada. O desquantizador 321 pode rearranjar os coeficientes de transformada quantizados sob a forma de uma forma de bloco bidimensional. Nesse caso, o rearranjo pode ser realizado com base na ordem de varredura de coeficiente realizada no aparelho de codificação. O desquantizador 321 pode realizar a desquantização nos coeficientes de transformada quantizados usando um parâmetro de quantização (por exemplo, informações de tamanho de etapa de quantização) e obter coeficientes de transformada.
[071] O transformador inverso 322 transforma inversamente os coeficientes de transformada para obter um sinal residual (bloco residual, matriz de amostra residual).
[072] O preditor pode realizar a predição no bloco atual e gerar um bloco previsto incluindo amostras de predição para o bloco atual. O preditor pode determinar se a predição intra ou predição inter é aplicada ao bloco atual com base nas informações sobre a predição emitida do decodificador de entropia 310 e pode determinar um modo de predição intra/inter específico.
[073] O preditor 320 pode gerar um sinal de predição com base em vários métodos de predição descritos abaixo. Por exemplo, o preditor pode não só aplicar predição intra ou predição inter para prever um bloco, como também aplicar simultaneamente predição intra e predição inter. Isto pode ser chamado de predição inter e intra combinada (CIIP). Além disso, o preditor pode ser baseado em um modo de predição de cópia de bloco intra (IBC) ou modo de paleta para a predição de um bloco. O modo de predição de IBC ou modo de paleta pode ser usado para codificação de imagem/vídeo de conteúdo de um jogo ou similares, por exemplo, codificação de conteúdo de tela (SCC). A IBC basicamente realiza a predição na figuração atual, porém pode ser realizada de modo similar à predição inter pelo fato de que um bloco de referência é derivado na figuração atual. Ou seja, a IBC pode usar pelo menos uma das técnicas de predição inter descritas no presente documento. O modo de paleta pode ser considerado como um exemplo de codificação intra ou predição intra. Quando o modo de paleta é aplicado, um valor de amostra dentro de uma figuração pode ser sinalizado com base nas informações sobre a tabela de paleta e no índice de paleta.
[074] O preditor intra 331 pode prever o bloco atual referindo-se às amostras na figuração atual. As amostras referidas podem estar situadas na vizinhança do bloco atual ou podem estar situadas separadas de acordo com o modo de predição. Na predição intra, os modos de predição podem incluir uma pluralidade de modos não direcionais e uma pluralidade de modos direcionais. O preditor intra 331 pode determinar o modo de predição aplicado ao bloco atual usando um modo de predição aplicado a um bloco vizinho.
[075] O preditor inter 332 pode derivar um bloco previsto para o bloco atual com base em um bloco de referência (matriz de amostra de referência) especificado por um vetor de movimento em uma figuração de referência. Nesse caso, para reduzir a quantidade de informações de movimento transmitidas no modo de predição inter, as informações de movimento podem ser previstas em unidades de blocos, sub-blocos, ou amostras com base na correlação de informações de movimento entre o bloco vizinho e o bloco atual. As informações de movimento podem incluir um vetor de movimento e um índice de figuração de referência. As informações de movimento podem incluir adicionalmente as informações de direção de predição inter (predição L0, predição L1, predição Bi, etc.). No caso de predição inter, o bloco vizinho pode incluir um bloco vizinho espacial presente na figuração atual e um bloco vizinho temporal presente na figuração de referência. Por exemplo, o preditor inter 332 pode configurar uma lista de candidatos de informações de movimento com base nos blocos vizinhos e derivar um vetor de movimento do bloco atual e/ou um índice de figuração de referência com base nas informações de seleção de candidato recebidas. A predição inter pode ser realizada com base em vários modos de predição, e as informações sobre a predição podem incluir informações representando um modo de predição inter no bloco atual.
[076] O somador 340 pode gerar um sinal reconstruído (figuração reconstruída, bloco reconstruído, matriz de amostra reconstruída) pela soma do sinal residual obtido ao sinal de predição (bloco previsto, matriz de amostras de predição) emitido do preditor (incluindo o preditor inter 332 e/ou o preditor intra 331). Se não houver resíduo para o bloco que será processado, como quando o modo de salto é aplicado, o bloco previsto pode ser usado como o bloco reconstruído.
[077] O somador 340 pode ser chamado de reconstrutor ou um gerador de bloco reconstruído. O sinal reconstruído gerado pode ser usado para predição intra de um próximo bloco que será processado na figuração atual, pode ser emitido através da filtragem, conforme descrito a seguir, ou pode ser usado para predição inter de uma próxima figuração.
[078] No entanto, o mapeamento luma com escalonamento croma (LMCS) pode ser aplicado no processo de decodificação de figuração.
[079] O filtro 350 pode aprimorar a qualidade de imagem subjetiva/objetiva pela aplicação de filtragem ao sinal reconstruído. Por exemplo, o filtro 350 pode gerar uma figuração reconstruída modificada pela aplicação de vários métodos de filtragem à figuração reconstruída e armazenar a figuração reconstruída modificada na memória 360, especificamente, um DPB da memória 360. Os vários métodos de filtragem podem incluir, por exemplo, filtragem de deblocagem, um deslocamento adaptável à amostra, um filtro de laço adaptável, um filtro bilateral, e similares.
[080] A figuração reconstruída (modificada) armazenada no DPB da memória 360 pode ser usada como uma figuração de referência no preditor inter
332. A memória 360 pode armazenar as informações de movimento do bloco a partir do qual as informações de movimento na figuração atual são derivadas (ou decodificadas) e/ou as informações de movimento dos blocos na figuração que já foram reconstruídas. As informações de movimento armazenadas podem ser transmitidas ao preditor inter 260 para serem usadas como as informações de movimento do bloco vizinho espacial ou as informações de movimento do bloco vizinho temporal. A memória 360 pode armazenar as amostras reconstruídas de blocos reconstruídos na figuração atual e transferir as amostras reconstruídas para o preditor intra 331.
[081] Na presente revelação, as modalidades descritas no filtro 260, o preditor inter 221 e o preditor intra 222 do aparelho de codificação 200 podem ser iguais ou respectivamente aplicados para corresponderem ao filtro 350, ao preditor inter 332 e ao preditor intra 331 do aparelho de decodificação 300. O mesmo também pode se aplicar à unidade 332 e ao preditor intra 331.
[082] Conforme descrito acima, ao realizar a codificação de vídeo, a predição é realizada para aumentar a eficiência de compactação. Portanto, um bloco previsto incluindo as amostras de predição para o bloco atual, que é um bloco de destino de codificação, pode ser gerado. Aqui, o bloco previsto inclui as amostras de predição em um domínio espacial (ou domínio de pixel). O bloco previsto é derivado de forma idêntica no aparelho de codificação e no aparelho de decodificação, e o aparelho de codificação pode sinalizar informações sobre residuais (informações residuais) entre o bloco original e o bloco previsto, em vez do próprio valor de amostra original do bloco original, ao aparelho de decodificação, aumentando assim a eficiência de codificação de imagem. O aparelho de decodificação pode derivar um bloco residual incluindo amostras residuais com base nas informações residuais, gerar um bloco reconstruído incluindo amostras reconstruídas somando-se o bloco residual e o bloco previsto, e gerar uma figuração reconstruída incluindo os blocos reconstruídos.
[083] As informações residuais podem ser geradas através de procedimentos de transformada e quantização. Por exemplo, o aparelho de codificação pode sinalizar informações residuais relacionadas (através de um fluxo de bits) ao aparelho de decodificação ao derivar o bloco residual entre o bloco original e o bloco de predição, derivar coeficientes de transformada realizando o processo de transformada para amostras residuais (matriz de amostra residual) incluídas no bloco residual, derivar coeficientes de transformada quantizados realizando o processo de quantização para os coeficientes de transformada. Aqui, as informações residuais podem incluir informações como informações de valor, informações de posição, técnica de transformada, kernel de transformada e parâmetro de quantização dos coeficientes de transformada quantizados. O aparelho de decodificação pode realizar procedimentos de desquantização/transformada inversa com base nas informações residuais e derivar as amostras residuais (ou blocos residuais). O aparelho de decodificação pode gerar uma figuração reconstruída com base no bloco previsto e no bloco residual. O aparelho de codificação também pode desquantizar/transformar inversamente os coeficientes de transformada quantizados para referência para a predição inter da pós-figuração para derivar o bloco residual, e gerar a figuração reconstruída no mesmo.
[084] No presente documento, o transformador, o quantizador, o desquantizador ou o transformador inverso do aparelho de codificação na Figura 2, ou o desquantizador ou o transformador inverso do aparelho de decodificação na Figura 3 será descrito em detalhe. Aqui, o aparelho de codificação pode derivar um fluxo de bits de informações transformadas e quantizadas através de codificação de entropia, e o aparelho de decodificação pode derivar as informações transformadas e quantizadas do fluxo de bits através de decodificação de entropia.
Mais adiante neste documento, o desquantizador e o transformador inverso serão descritos, e o transformador e o quantizador podem realizar inversamente a mesma operação que no desquantizador e no transformador inverso. Além disso, o desquantizador e o transformador inverso podem ser representados por uma desquantização e transformador inverso, e o transformador e o quantizador também podem ser representados por uma transformada e quantizador.
[085] Além disso, no presente documento, Seleção de Transformada Múltipla (MTS) pode significar um método para realizar a transformada usando pelo menos dois tipos de transformada. Essa também pode ser expressa como uma Transformada Múltipla Adaptativa (AMT) ou uma Transformada Múltipla Explícita (EMT), e de modo semelhante, mts_idx também pode ser expresso como AMT_idx, EMT_idx, AMT_TU_idx, EMT_TU_idx, índice de transformada, índice de combinação de transformada, ou similares, e o presente documento não se limita a tal expressão.
[086] A Figura 4 ilustra um exemplo da desquantização e transformador inverso.
[087] Com referência à Figura 4, a desquantização e transformador inverso 400 podem incluir um desquantizador 410, uma unidade de transformada secundária inversa 420 e uma unidade de transformada primária inversa 430.
[088] O desquantizador 410 pode obter um coeficiente de transformada realizando a desquantização para um sinal decodificado por entropia (ou coeficiente de transformada quantizada) usando informações de tamanho de etapa de quantização, e a unidade de transformada secundária inversa 420 pode realizar uma transformada secundária inversa para o coeficiente de transformada. Além disso, a unidade de transformada primária inversa 430 pode executar uma transformada primária inversa para o sinal ou bloco transformado secundário inverso (ou coeficiente de transformada), e um sinal residual decodificado através da transformada primária inversa pode ser obtido. Aqui, a transformada secundária inversa pode representar uma transformada inversa da transformada secundária, e a transformada primária inversa pode representar a transformada inversa da transformada primária.
[089] No presente documento, uma combinação de transformada pode ser configurada para cada grupo de configuração de transformada que é classificado por pelo menos um dentre um modo de predição, um tamanho de bloco ou um formato de bloco, e a unidade de transformada primária inversa 430 pode executar a transformada inversa com base na combinação de transformada que é configurada pelo presente documento. Além disso, as modalidades que serão descritas posteriormente no presente documento podem ser aplicadas.
[090] A Figura 5 ilustra um exemplo da unidade de transformada secundário inversa e da unidade de transformada primária inversa.
[091] Descrevendo especificamente o processo de transformada inversa com referência à Figura 5, o processo de transformada inversa pode usar um determinador de presença/ausência de aplicação de transformada secundária inversa (ou elemento que determina se deve aplicar a transformada secundária inversa) 510, um determinador de transformada secundária inversa (ou elemento que determina a transformada secundária inversa) 520, uma unidade de transformada secundária inversa 530 e uma unidade de transformada primária inversa 540. Aqui, a unidade de transformada secundária inversa 420 ilustrada na Figura 4 pode ser igual à unidade de transformada secundária inversa 530 ilustrada na Figura 5, e também pode incluir pelo menos um dentre o determinador de presença/ausência de aplicação de transformada secundária inversa 510, o determinador de transformada secundária inversa 520 e a unidade de transformada secundária inversa 530 ilustrados na Figura 5, porém pode ser alterada de acordo com a expressão, de modo que o presente documento não seja limitado a isso. Além disso, a unidade de transformada primária inversa 430 ilustrada na Figura 4 pode ser igual à unidade de transformada primária inversa 540 ilustrada na Figura 5, porém pode ser alterada de acordo com a expressão, de modo que o presente documento não seja limitado a isso.
[092] O determinador de presença/ausência de aplicação de transformada secundária inversa 510 pode determinar se deve aplicar a transformada secundária inversa. Por exemplo, a transformada secundária inversa pode ser NSST ou RST. Por exemplo, o determinador de presença/ausência de aplicação de transformada secundária inversa 510 pode determinar se deve aplicar a transformada secundária inversa com base em um segundo sinalizador de transformada do aparelho de codificação. Como outro exemplo, o determinador de presença/ausência de aplicação de transformada secundária inversa 510 também pode determinar se deve aplicar a transformada secundária inversa com base no coeficiente de transformada do bloco residual.
[093] O determinador de transformada secundária inversa 520 pode determinar a transformada secundária inversa. Nesse momento, o determinador de transformada secundária inversa 520 pode determinar a transformada secundária inversa aplicada ao bloco atual com base no conjunto de transformada NSST (ou RST) que é designado de acordo com um modo de predição intra.
[094] Além disso, por exemplo, um método de determinação de transformada secundária pode ser determinado dependendo de um método de determinação de transformada primária. Várias combinações da transformada primária e da transformada secundária podem ser determinadas de acordo com o modo de predição intra.
[095] Além disso, por exemplo, o determinador de transformada secundária inversa 520 também pode determinar uma área à qual a transformada secundária inversa é aplicada com base no tamanho do bloco atual.
[096] A unidade de transformada secundária inversa 530 pode executar a transformada secundária inversa para o bloco residual desquantizado usando a transformada secundária inversa determinada.
[097] A unidade de transformada primária inversa 540 pode executar a transformada primária inversa para o bloco residual de transformada secundária inversa. A transformada primária pode ser chamada de uma transformada de núcleo. Por exemplo, a unidade de transformada primária inversa 540 pode executar a transformada primária usando a MTS supracitada. Além disso, por exemplo, a unidade de transformada primária inversa 540 pode determinar se a MTS é aplicada ao bloco atual.
[098] Por exemplo, quando a MTS é aplicada ao bloco atual (ou quando um valor de um elemento de sintaxe tu_mts_flag é 1), a unidade de transformada primária inversa 540 pode configurar um candidato de MTS com base no modo de predição intra do bloco atual. Além disso, a unidade de transformada primária inversa 540 pode determinar a transformada primária aplicada ao bloco atual usando um elemento de sintaxe mts_idx que indica uma MTS específica entre os candidatos de MTS configurados.
[099] A Figura 6 é um exemplo de um método de transformada inversa baseado em parâmetros relacionados à transformada.
[0100] Com referência à Figura 6, uma modalidade pode obter um elemento de sintaxe sps_mts_intra_enabled_flag ou um elemento de sintaxe sps_mts_inter_enabled_flag (S600). Aqui, o elemento de sintaxe sps_mts_intra_enabled_flag pode representar informações sobre se o elemento de sintaxe tu_mts_flag está incluído na sintaxe de codificação residual da unidade de codificação intra. Por exemplo, quando o valor do elemento de sintaxe sps_mts_intra_enabled_flag é 0, o elemento de sintaxe tu_mts_flag pode não estar incluído na sintaxe de codificação residual da unidade de codificação intra, e quando o elemento de sintaxe sps_mts_intra_enabled_flag é 1, o elemento de sintaxe tu_mts_flag pode estar incluído na sintaxe de codificação residual da unidade de codificação intra.
[0101] Além disso, o elemento de sintaxe sps_mts_inter_enabled_flag pode representar informações sobre se o elemento de sintaxe tu_mts_flag está incluído na sintaxe de codificação residual da unidade de codificação inter. Por exemplo, quando o valor do elemento de sintaxe sps_mts_inter_enabled_flag é 0, o elemento de sintaxe tu_mts_flag pode não estar incluído na sintaxe de codificação residual da unidade de codificação intra, e quando o elemento de sintaxe sps_mts_inter_enabled_flag é 1, o elemento de sintaxe tu_mts_flag pode estar incluído na sintaxe de codificação residual da unidade de codificação inter.
[0102] Aqui, o elemento de sintaxe tu_mts_flag pode representar se a Seleção de Transformada Múltipla (MTS) é aplicada à amostra residual do bloco de transformada luma.
[0103] Uma modalidade pode obter o elemento de sintaxe tu_mts_flag com base no elemento de sintaxe sps_mts_intra_enabled_flag ou no elemento de sintaxe sps_mts_inter_enabled_flag (S610). Por exemplo, quando o valor do elemento de sintaxe sps_mts_intra_enabled_flag ou do elemento de sintaxe sps_mts_inter_enabled_flag é 1, uma modalidade pode obter o elemento de sintaxe tu_mts_flag. Por exemplo, quando o valor do elemento de sintaxe tu_mts_flag é 0, o MTS pode não ser aplicado à amostra residual do bloco de transformada luma, e quando o valor do elemento de sintaxe tu_mts_flag é 1, o MTS pode ser aplicado à amostra residual do bloco de transformada luma.
[0104] Uma modalidade pode obter um elemento de sintaxe mts_idx com base no elemento de sintaxe tu_mts_flag (S620). Aqui, o elemento de sintaxe mts_idx pode representar informações sobre qual kernel da transformada é aplicado a amostras residuais luma de acordo com as direções horizontal e/ou vertical de um bloco de transformada atual (luma). Por exemplo, quando o valor do elemento de sintaxe tu_mts_flag é 1, uma modalidade pode obter o elemento de sintaxe mts_idx. Alternativamente, quando o valor do elemento de sintaxe tu_mts_flag é 0, uma modalidade pode não obter o elemento de sintaxe mts_idx.
[0105] Uma modalidade pode induzir um kernel da transformada correspondente ao elemento de sintaxe mts_idx (S630). Alternativamente, uma modalidade pode derivar o kernel da transformada com base no elemento de sintaxe mts_idx.
[0106] Entretanto, em outra modalidade, pelo menos uma das modalidades do presente documento pode também ser aplicada ao elemento de sintaxe tu_mts_flag e/ou ao elemento de sintaxe mts_idx.
[0107] Por exemplo, o elemento de sintaxe tu_mts_flag pode estar incluído na sintaxe de codificação residual com base no elemento de sintaxe sps_mts_intra_enabled_flag ou no elemento de sintaxe sps_mts_inter_enabled_flag, e o elemento de sintaxe mts_idx syntax pode estar incluído na sintaxe de unidade de transformada com base no elemento de sintaxe tu_mts_flag.
[0108] Alternativamente, por exemplo, o elemento de sintaxe sps_mts_intra_enabled_flag pode ser representado por um elemento de sintaxe sps_explicit_mts_intra_enabled_flag, e o elemento de sintaxe sps_mts_inter_enabled_flag pode ser representado por um elemento de sintaxe sps_explicit_mts_inter_enabled_flag. Alternativamente, o elemento de sintaxe tu_mts_flag pode ser omitido, e o elemento de sintaxe mts_idx também pode estar incluído na sintaxe de unidade de codificação com base no elemento de sintaxe sps_explicit_mts_intra_enabled_flag ou no elemento de sintaxe sps_explicit_mts_inter_enabled_flag.
[0109] Por exemplo, o kernel de transformada correspondente ao elemento de sintaxe mts_idx pode ser definido como sendo classificado em uma transformada horizontal e uma transformada vertical. Alternativamente, o kernel de transformada determinado com base no elemento de sintaxe mts_idx pode ser classificado na transformada horizontal e na transformada vertical. Entretanto, kernels de transformada diferentes podem ser aplicados à transformada horizontal e à transformada vertical, porém o mesmo kernel de transformada também pode ser aplicado às mesmas, de modo que o presente documento não se limite a isso.
[0110] Por exemplo, as informações sobre o kernel da transformada aplicado à transformada horizontal e à transformada vertical que são determinadas com base no elemento de sintaxe mts_idx podem ser conforme ilustrado na Tabela 1 ou Tabela 2.
TABELA 1 TABELA 2
[0111] Uma modalidade pode executar uma transformada inversa com base no kernel da transformada (S640). No presente documento, a transformada inversa pode ser representada pela transformada ou também pode ser representada pelo inverso da transformada.
[0112] A Figura 7 é um exemplo de um método de transformada inversa específico.
[0113] Com referência à Figura 7, uma modalidade pode confirmar um tamanho de transformada (nTbS) (S710). Por exemplo, o tamanho de transformada (nTbS) pode ser uma variável que representa o tamanho de amostra horizontal de coeficientes de transformada em escala.
[0114] Uma modalidade pode confirmar um tipo de kernel da transformada (trType) (S720). Por exemplo, o tipo de kernel da transformada (trType) pode ser uma variável que representa o tipo de kernel da transformada, e várias modalidades do presente documento podem ser aplicadas. Por exemplo, o tipo de kernel da transformada também pode representar trTypeHor ou trTypeVer ilustrado na Figura 6.
[0115] Uma modalidade pode executar a multiplicação de matriz de transformada com base em pelo menos um dentre o tamanho de transformada (nTbS) ou o tipo de kernel da transformada (trType) (S730). Por exemplo, uma operação específica pode ser aplicada com base no tipo de kernel da transformada (trType). Alternativamente, por exemplo, uma matriz de transformada predeterminada pode ser aplicada com base no tamanho de transformada (nTbS) e no tipo de kernel da transformada (trType).
[0116] Uma modalidade pode derivar uma amostra de transformada com base na multiplicação de matriz de transformada (S740).
[0117] O aparelho de codificação/aparelho de decodificação pode executar o processo de transformada inversa supracitado, e o aparelho de codificação também pode executar o processo de transformada que é o inverso do processo de transformada inversa supracitado.
[0118] A Figura 8 é um diagrama de blocos de um sistema de codificação CABAC de acordo com uma modalidade, e ilustra um diagrama de blocos de codificação aritmética binária adaptável ao contexto (CABAC) para codificar um único elemento de sintaxe.
[0119] O processo de codificação da CABAC primeiro transforma um sinal de entrada em um valor binário através de binarização quando o sinal de entrada é um elemento de sintaxe em vez de um valor binário. Quando o sinal de entrada já é um valor binário, o sinal de entrada pode ser inserido sendo contornado sem a binarização, ou seja, para um mecanismo de codificação. Aqui, cada binário 0 ou 1 que configura o valor binário pode ser chamado de um bin. Por exemplo, quando uma cadeia binária após a binarização é 110, cada um dentre 1, 1 e 0 é chamado de um bin. O(s) bin (s) para um elemento de sintaxe pode representar um valor do elemento de sintaxe correspondente.
[0120] Os bins binarizados podem ser inseridos em um mecanismo de codificação regular ou um mecanismo de codificação bypass.
[0121] O mecanismo de codificação regular pode atribuir um modelo de contexto refletindo um valor de probabilidade para o bin correspondente e codificar o bin correspondente com base no modelo de contexto atribuído. O mecanismo de codificação regular pode atualizar o modelo de probabilidade para o bin correspondente após a codificação de cada bin. Os bins codificados dessa forma podem ser chamados de bins codificados por contexto.
[0122] O mecanismo de codificação bypass omite um procedimento de estimativa da probabilidade do bin de entrada e um procedimento de atualização do modelo de probabilidade aplicado ao bin correspondente após a codificação.
Codificando-se o bin que é inserido aplicando-se a distribuição de probabilidade uniforme em vez de atribuir o contexto, é possível aumentar a velocidade de codificação. Os bins codificados dessa forma são chamados de bins bypass.
[0123] A codificação de entropia pode determinar se deve realizar a codificação através do mecanismo de codificação regular ou realizar a codificação através do mecanismo de codificação bypass e mudar um caminho de codificação.
A decodificação de entropia executa inversamente o mesmo processo que na codificação de entropia.
[0124] Entretanto, em uma modalidade, os coeficientes de transformada (quantizados) podem ser codificados/decodificados com base nos elementos de sintaxe, como transform_skip_flag, last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix, last_sig_coeff_y_suffix, coded_sub_block_flag, sig_coeff_flag, abs_level_gt1_flag, par_level_flag, abs_level_gt3_flag, abs_remainder, dec_abs_level, coeff_sign_flag e/ou mts_idx.
[0125] Por exemplo, as informações relacionadas residuais ou os elementos de sintaxe incluídos nas informações relacionadas residuais podem ser representados conforme nas Tabelas 3 a 5. Alternativamente, as informações de codificação residuais incluídas nas informações relacionadas residuais ou os elementos de sintaxe incluídos na sintaxe de codificação residual podem ser representados conforme nas Tabelas 3 a 5. As Tabelas 3 a 5 podem representar uma sintaxe consecutivamente.
TABELA 3
TABELA 4
TABELA 5
[0126] Por exemplo, as informações relacionadas residuais podem incluir as informações de codificação residuais (ou elementos de sintaxe incluídos na sintaxe de codificação residual) ou as informações de unidade de transformada (ou elementos de sintaxe incluídos na sintaxe de unidade de transformada), as informações de codificação residuais podem ser representadas conforma nas Tabelas 6 a 9, e as informações de unidade de transformada podem ser representadas conforme na Tabela 10 ou Tabela 11. As Tabelas 6 a 9 podem representar uma sintaxe consecutivamente.
TABELA 6
TABELA 7
TABELA 8
TABELA 9
TABELA 10
TABELA 11
[0127] O elemento de sintaxe transform_skip_flag representa se a transformada para um bloco associado é omitida.
O bloco associado pode ser um bloco de codificação (CB) ou um bloco de transformada (TB). Em relação à transformada (e quantização) e procedimentos de codificação residuais, o CB e o
TB podem ser usados de forma intercambiável.
Por exemplo, conforme descrito acima, as amostras residuais em relação ao CB podem ser derivadas, e os coeficientes de transformada (quantizados) podem ser derivados através da transformada e da quantização para as amostras residuais, e as informações (por exemplo, elementos de sintaxe) que representam eficientemente a posição,
tamanho, sinal, e similares dos coeficientes de transformada (quantizados) podem ser geradas e sinalizadas através do procedimento de codificação residual.
Os coeficientes de transformada quantizados podem ser simplesmente chamados de coeficientes de transformada. Em geral, quando o CB não é maior que o TB máximo, o tamanho do CB pode ser igual ao tamanho do TB e, nesse caso, um bloco alvo que será transformado (e quantizado) e submetido à codificação residual pode ser chamado de CB ou TB. Entretanto, quando o CB é maior que o TB máximo, o bloco alvo que será transformado (e quantizado) e submetido à codificação residual pode ser chamado de TB. Mais adiante neste documento, embora seja descrito que os elementos de sintaxe relacionados à codificação residual são sinalizados em unidades de bloco de transformada (TB), isso é ilustrativo e o TB pode ser usado de forma intercambiável com o bloco de codificação (CB), conforme descrito acima.
[0128] Nas Tabelas 3 a 5, embora seja ilustrado que o elemento de sintaxe transform_skip_flag é sinalizado com base na sintaxe de codificação residual, isso é ilustrativo, e o elemento de sintaxe transform_skip_flag pode também ser sinalizado com base na sintaxe de unidade de transformada conforme ilustrado na Tabela 10 ou Tabela 11. A sintaxe de codificação residual e a sintaxe de unidade de transformada podem ser coletivamente chamadas de informações residuais (relacionadas). Por exemplo, o elemento de sintaxe transform_skip_flag pode ser sinalizado apenas para o componente luma (bloco de componente luma) (consultar a Tabela 10). Especificamente, por exemplo, quando um coeficiente significativo não zero existe no bloco de componente luma, as informações relacionadas residuais podem incluir o sinalizador de salto de transformada (transform_skip_flag) para o bloco de componente luma. Nesse caso, as informações relacionadas residuais não incluem o sinalizador de salto de transformada para o bloco de componente croma. Ou seja, as informações relacionadas residuais podem incluir o sinalizador de salto de transformada para o bloco de componente luma, e podem não incluir o sinalizador de salto de transformada para o bloco de componente croma. Ou seja, nesse caso, o sinalizador de salto de transformada para o bloco de componente croma não é explicitamente sinalizado, e o valor do sinalizador de salto de transformada para o bloco de componente croma pode ser derivado/inferido para 0.
[0129] Alternativamente, como outro exemplo, o elemento de sintaxe transform_skip_flag também pode ser sinalizado para o componente luma (bloco de componente luma) e o componente croma (bloco de componente croma), respectivamente (consultar a Tabela 11).
[0130] Novamente com referência às Tabelas 3 a 5 ou Tabelas 6 a 9, uma modalidade pode codificar (x, y) informações de posição do último coeficiente de transformada não zero dentro do bloco de transformada com base nos elementos de sintaxe last_sig_coeff_x_prefix, last_sig_coeff_y_prefix, last_sig_coeff_x_suffix e last_sig_coeff_y_suffix. Mais especificamente, o elemento de sintaxe last_sig_coeff_x_prefix representa o prefixo da posição de coluna do último coeficiente significativo na ordem de varredura dentro do bloco de transformada, o elemento de sintaxe last_sig_coeff_y_prefix representa o prefixo da posição de linha do último coeficiente significativo na ordem de varredura dentro do bloco de transformada, o elemento de sintaxe last_sig_coeff_x_suffix representa o sufixo da posição de coluna do último coeficiente significativo na ordem de varredura dentro do bloco de transformada, e o elemento de sintaxe last_sig_coeff_y_suffix representa o sufixo da posição de linha do último coeficiente significativo na ordem de varredura dentro do bloco de transformada. Aqui, o coeficiente significativo pode representar o coeficiente não zero. A ordem de varredura pode ser uma ordem de varredura diagonal para cima-à direita. Alternativamente, a ordem de varredura pode ser uma ordem de varredura horizontal ou uma ordem de varredura vertical. A ordem de varredura pode ser determinada com base na possibilidade de a predição intra/inter ser aplicada ao bloco alvo (CB ou CB incluindo TB) e/ou um modo de predição intra/inter específico.
[0131] Em seguida, após o bloco de transformada ser dividido em sub- blocos 4x4, se o coeficiente não zero existir dentro de um sub-bloco atual usando um elemento de sintaxe de 1 bit coded_sub_block_flag a cada sub-bloco 4x4. O sub-bloco pode ser usado de forma intercambiável com um Grupo de Coeficientes (CG).
[0132] Quando um valor do elemento de sintaxe coded_sub_block_flag é 0, não há mais informações a serem transmitidas, de modo que o processo de codificação para o sub-bloco atual possa ser concluído. Por outro lado, quando o valor do elemento de sintaxe coded_sub_block_flag é 1, o processo de codificação para o elemento de sintaxe sig_coeff_flag pode ser continuamente realizado. Visto que o sub-bloco incluindo o último coeficiente não-zero não exige a codificação para o elemento de sintaxe coded_sub_block_flag, e o sub-bloco incluindo as informações de DC do bloco de transformada tem uma alta probabilidade de incluir o coeficiente não-zero, o valor do elemento de sintaxe coded_sub_block_flag pode ser considerado como 1 sem ser codificado.
[0133] Se o valor do elemento de sintaxe coded_sub_block_flag for 1 e for determinado que o coeficiente não-zero existe dentro do sub-bloco atual, o elemento de sintaxe sig_coeff_flag que tem um valor binário pode ser codificado de acordo com a ordem inversamente varrida. Um elemento de sintaxe de 1 bit sig_coeff_flag pode ser codificado para cada coeficiente de acordo com a ordem de varredura. Se o valor do coeficiente de transformada na posição de varredura atual não for 0, o valor do elemento de sintaxe sig_coeff_flag pode ser 1. Aqui, no caso do sub-bloco incluindo o último coeficiente não-zero, o processo de codificação para o sub-bloco pode ser omitido, pois não é necessário codificar o elemento de sintaxe sig_coeff_flag em relação ao último coeficiente não-zero. A codificação de informações de nível pode ser realizada apenas quando o elemento de sintaxe sig_coeff_flag is 1, e quatro elementos de sintaxe podem ser usados no processo de codificação de informações de nível. Mais especificamente, cada elemento de sintaxe sig_coeff_flag [xC] [yC] pode representar se o nível (valor) do coeficiente de transformada correspondente em cada posição de coeficiente de transformada (xC, yC) dentro do TB atual é não-zero. Em uma modalidade, o elemento de sintaxe sig_coeff_flag pode corresponder a um exemplo de um sinalizador de coeficiente significativo que representa se o coeficiente de transformada quantizado for um coeficiente significativo não-zero.
[0134] O valor de nível restante após a codificação do elemento de sintaxe sig_coeff_flag pode ser conforme expresso na Equação 1 abaixo. Ou seja, um elemento de sintaxe remAbsLevel que representa o valor de nível que será codificado pode ser conforme expresso na Equação 1 abaixo. Aqui, coeff pode significar um valor de coeficiente de transformação real.
EQUAÇÃO 1
[0135] O elemento de sintaxe abs_level_gt1_flag pode representar se o remAbsLevel' na posição de varredura correspondente (n) é maior que 1. Quando um valor do abs_level_gt1_flag é 0, o valor absoluto do coeficiente da posição correspondente pode ser 1. Quando o valor do abs_level_gt1_flag é 1, o valor de nível remAbsLevel que será codificado posteriormente pode ser conforme expresso na Equação 2 abaixo.
EQUAÇÃO 2
[0136] Como na Equação 3 abaixo através do elemento de sintaxe par_level_flag, o valor de coeficiente menos significativo (LSB) do remAbsLevel descrito na Equação 2 pode ser codificado. Aqui, o elemento de sintaxe par_level_flag [n] pode representar uma paridade do nível (valor) de coeficiente de transformada na posição de varredura (n). O valor de nível de coeficiente de transformada remAbsLevel que será codificado após a codificação do elemento de sintaxe par_level_flag pode ser atualizado como é expresso na Equação 4 abaixo.
EQUAÇÃO 3 EQUAÇÃO 4
[0137] O elemento de sintaxe abs_level_gt3_flag pode representar se o remAbsLevel' na posição de varredura correspondente (n) é maior que 3. A codificação do elemento de sintaxe abs_remainder pode ser realizada apenas quando o elemento de sintaxe abs_level_gt3_flag é 1. A relação entre o coeff, que é o valor de coeficiente de transformada real, e os respectivos elementos de sintaxe pode ser resumida como expresso na Equação 5 abaixo, e a Tabela 12 abaixo pode representar exemplos relacionados à Equação 5. Por fim, o sinal de cada coeficiente pode ser codificado usando o elemento de sintaxe coeff_sign_flag, que é um símbolo de 1 bit. |coeff| pode representar o nível (valor) de coeficiente de transformada, e também pode ser expresso como AbsLevel para o coeficiente de transformada.
EQUAÇÃO 5 TABELA 12
[0138] Em uma modalidade, o par_level_flag pode representar um exemplo de um sinalizador de nível de paridade para a paridade do nível de coeficiente de transformada para o coeficiente de transformada quantizado, o abs_level_gt1_flag pode representar um exemplo de um primeiro sinalizador de nível de coeficiente de transformada sobre se o nível ou nível (valor) de coeficiente de transformada que será codificado é maior que um primeiro limite, e o abs_level_gt3_flag pode representar um exemplo de um segundo sinalizador de nível de coeficiente de transformada sobre se o nível ou o nível (valor) de coeficiente de transformada que será codificado é maior que um segundo limite.
[0139] A Figura 9 é um diagrama que ilustra um exemplo de coeficientes de transformada dentro de um bloco 4x4.
[0140] O bloco 4x4 ilustrado na Figura 9 pode representar um exemplo de coeficientes quantizados. O bloco ilustrado na Figura 9 pode ser um bloco de transformada 4x4, ou um sub-bloco 4x4 de blocos de transformada 8x8, 16x16,
32x32 e 64x64. O bloco 4x4 ilustrado na Figura 9 pode representar um bloco luma ou um bloco croma. Os resultados de codificação para os coeficientes varridos diagonalmente inversos ilustrados na Figura 9 podem ser representados, por exemplo, como na Tabela 13. Na Tabela 13, o scan_pos pode representar a posição do coeficiente de acordo com a varredura diagonal inversa. O scan_pos 15 pode representar o coeficiente que é primeiramente varrido, ou seja, do canto inferior direito no bloco 4x4, e o scan_pos 0 pode representar o coeficiente, que é varrido por último, ou seja, do canto superior esquerdo no bloco 4x4. Entretanto, em uma modalidade, o scan_pos também pode ser chamado de uma posição de varredura. Por exemplo, o scan_pos 0 pode ser chamado de uma posição de varredura 0.
TABELA 13
[0141] Entretanto, CABAC fornece alto desempenho, porém tem uma desvantagem de desempenho de taxa de transferência insatisfatório. Isso é causado pelo mecanismo de codificação regular da CABAC, e a codificação regular usa o estado de probabilidade atualizado e o alcance através da codificação do bin anterior, mostrando, assim, alta dependência de dados e demorando muito para ler a seção de probabilidade e determinar o estado atual. É possível resolver o problema de taxa de transferência da CABAC limitando-se o número de bins codificados por contexto. Consequentemente, a soma de bins usados para expressar os elementos de sintaxe sig_coeff_flag, abs_level_gt1_flag e par_level_flag é limitada a 28 no caso do sub-bloco 4x4, e limitada a 6 (remBinsPass1) no caso do sub-bloco 2x2 de acordo com o tamanho do sub-bloco como nas Tabelas 3 a 5 ou Tabelas 6 a 9, e o número de bins codificados por contexto do elemento de sintaxe abs_level_gt3_flag pode ser limitado a 4 no caso do sub-bloco 4x4 e limitado a 2 (remBinsPass2) no caso do sub-bloco 2x2.
Quando todos os bins codificados por contexto limitados são usados para codificar o elemento de contexto, os coeficientes restantes podem ser binarizados sem usar a CABAC para executar a codificação bypass.
[0142] Entretanto, uma modalidade do presente documento pode propor um método de sinalização do tipo de transformada unificada.
[0143] Por exemplo, as informações sobre se deve aplicar a MTS podem ser representadas pelo elemento de sintaxe tu_mts_flag, e as informações sobre o kernel da transformada que será aplicado podem ser representadas pelo elemento de sintaxe mts_idx. Além disso, o elemento de sintaxe tu_mts_flag pode estar incluído na sintaxe de unidade de transformada, e o elemento de sintaxe mts_idx pode estar incluído na sintaxe de codificação residual, e pode ser representado, por exemplo, como nas Tabelas 14 e 15.
TABELA 14
TABELA 15
[0144] Entretanto, uma modalidade do presente documento é a sinalização do tipo de transformada unificada, e pode representar as informações sobre se deve aplicar a MTS e as informações sobre o kernel da transformada que será aplicado usando apenas algumas informações. Por exemplo, algumas informações também podem ser representadas por informações sobre o tipo de transformada unificada, e também podem ser representadas por um elemento de sintaxe tu_mts_idx. Nesse caso, o elemento de sintaxe tu_mts_flag e o elemento de sintaxe mts_idx podem ser omitidos. O elemento de sintaxe tu_mts_idx pode estar incluído na sintaxe de unidade de transformada, e pode ser representado, por exemplo, como na Tabela 16.
TABELA 16
[0145] O sinalizador MTS (ou elemento de sintaxe tu_mts_flag) é analisado primeiro, e para o sinalizador de Salto de Transformada (TS) (ou elemento de sintaxe tranform_skip_flag) seguido do índice MTS (ou elemento de sintaxe mts_idx), o elemento de sintaxe tu_mts_idx, que é um novo elemento de sintaxe conjunta usando binarização de Unário Truncado (TU) de acordo com uma modalidade do presente documento, pode ser usado, em vez de realizar uma codificação de comprimento fixo que tem dois bins. Um primeiro first pode representar o TS, a segunda MTS, e todos os seguintes índices MTS.
[0146] Por exemplo, a semântica e a binarização do elemento de sintaxe tu_mts_idx podem ser representadas conforme na Tabela 17 ou Tabela 18.
TABELA 17 Tipo de binarização transformada tu_mts_idx MTS & TS MTS TS horizontal vertical habilitados habilitada habilitado 0 DCT-II DCT-II 0 0 0 1 SALTO SALTO 10 - 1 2 DST-VII DST-VII 110 10 - 3 DCT-VIII DST-VII 1110 110 - 4 DST-VII DCT-VIII 11110 1110 - 5 DCT-VIII DCT-VIII 11111 1111 - TABELA 18 Tipo de binarização transformada tu_mts_idx MTS & TS MTS TS horizontal vertical habilitados habilitada habilitado 0 SALTO SALTO 0 - 0 1 DCT-II DCT-II 10 0 1 2 DST-VII DST-VII 110 10 - 3 DCT-VIII DST-VII 1110 110 -
4 DST-VII DCT-VIII 11110 1110 - 5 DCT-VIII DCT-VIII 11111 1111 -
[0147] Por exemplo, o número de modelos de contexto pode não ser alterado, e a atribuição de ctxInc, que é um incremento de índice de contexto para cada bin do elemento de sintaxe tu_mts_idx, pode ser representada como na Tabela 19.
TABELA 19 Elemento binldx de sintaxe 0 1 2 3 4 >=5 tu_mts_idx 1…6 0 7 8 9 na (MTS & TS) (1+cqtDepth) tu_mts_idx 1…6 7 8 9 na na (MTS) (1+cqtDepth) tu_mts+idx 0 na na na na na (TS)
[0148] Entretanto, uma modalidade do presente documento pode propor um método de codificação residual para o salto de transformada.
[0149] Por exemplo, o seguintes itens podem ser modificados para adaptar a codificação residual à estatística e características de sinal do nível de salto de transformada que representa um residual de predição quantizado (domínio espacial).
[0150] (1) Nenhuma última posição de varredura significativa: uma vez que o sinal residual reflete o residual espacial após a predição, e a compactação de energia pela transformada não é realizada para o Salto de Transformada (TS), uma alta probabilidade de zeros à direita ou níveis insignificantes pode não ser mais fornecida no canto inferior direito do bloco de transformada.
Consequentemente, a sinalização da última posição de varredura significativa pode ser omitida. Em vez disso, um primeiro sub-bloco que será processado pode ser o sub-bloco mais inferior direito dentro do bloco de transformada.
[0151] (2) CBFs de sub-bloco: devido à ausência da sinalização da última posição de varredura significativa, a sinalização de CBF de sub-bloco que tem o elemento de sintaxe coded_sub_block_flag para o TS pode ser modificada da seguinte forma.
[0152] - Devido à quantização, a sequência insignificante supracitada pode ainda ocorrer localmente dentro do bloco de transformada. Consequentemente, a última posição de varredura significativa pode ser eliminada conforme descrito acima, e o elemento de sintaxe coded_sub_block_flag pode ser codificado para todos os sub-blocos.
[0153] - O elemento de sintaxe coded_sub_block_flag para o sub-bloco (sub-bloco superior esquerdo) que abrange uma posição de frequência DC pode ser representado como um caso especial. Por exemplo, o elemento de sintaxe coded_sub_block_flag para o sub-bloco correspondente não é sinalizado e sempre pode ser inferido como 1. Quando a última posição de varredura significativa é posicionada em outro sub-bloco, pode significar que há pelo menos um nível significativo fora do sub-bloco DC (sub-bloco que abrange a posição de frequência DC). Como resultado, para o sub-bloco DC, é inferido que o valor do elemento de sintaxe coded_sub_block_flag para o sub-bloco correspondente é 1, porém pode incluir apenas 0/nível insignificante. Quando não há informações da última posição de varredura no TS, o elemento de sintaxe coded_sub_block_flag para cada sub- bloco pode ser sinalizado. Esse pode incluir o elemento de sintaxe coded_sub_block_flag para o sub-bloco DC, exceto para o caso em que os valores de todos os outros elementos de sintaxe coded_sub_block_flag syntax já são 0.
Nesse caso, o valor do elemento de sintaxe coded_sub_block_flag para o sub- bloco DC pode ser inferido como 1 (inferDcSbCbf = 1). Visto que o sub-bloco DC precisa ter pelo menos um nível significativo, em vez de o valor de todos os outros elementos de sintaxe sig_coeff_flag dentro do sub-bloco DC ser 0, o elemento de sintaxe sig_coeff_flag para a primeira posição (0, 0) pode não ser sinalizado, e o valor do elemento de sintaxe sig_coeff_flag pode ser derivado como 1 (inferSbDcSigCoeffFlag = 1).
[0154] - A modelagem de contexto para o elemento de sintaxe coded_sub_block_flag pode ser alterada. O índice de modelo de contexto pode ser calculado pela soma do elemento de sintaxe coded_sub_block_flag da direita e o do elemento de sintaxe coded_sub_block_flag de baixo em vez do sub-bloco atual e da disjunção lógica dos dois.
[0155] (3) Modelagem de contexto do elemento de sintaxe sig_coeff_flag: o modelo local da modelagem de contexto do elemento de sintaxe sig_coeff_flag pode ser modificado para incluir o vizinho direito (NB0) e o vizinho de baixo (NB1) da posição de varredura atual. Um deslocamento de modelo de contexto pode ser o número de posições vizinhas significativas sig_coeff_flag [NB0] + sig_coeff_flag [NB1]. Consequentemente, a seleção de outros conjuntos de contexto pode ser eliminada de acordo com a diagonal (d) dentro do bloco de transformada atual.
Isso pode causar três modelos de contexto e um único modelo de contexto definido para codificação do elemento de sintaxe sig_coeff_flag.
[0156] (4) Modelagem de contexto do elemento de sintaxe abs_level_gt1_flag e do elemento de sintaxe par_level_flag: o único modelo de contexto pode ser usado para o elemento de sintaxe abs_level_gt1_flag e o elemento de sintaxe par_level_flag.
[0157] (5) Codificação do elemento de sintaxe abs_remainder geralmente, a distribuição empírica dos níveis absolutos de salto de transformada residual ainda é adequada para um laplaciano ou uma distribuição geométrica, porém a instacionaridade, que é maior do que os níveis absolutos do coeficiente de transformada, pode existir. Particularmente, a variância dentro da janela de realização contínua pode ser mais alta para os níveis absolutos residuais.
Consequentemente, a binarização e a modelagem de contexto do elemento de sintaxe abs_remainder podem ser modificadas da seguinte forma.
[0158] - Usar um valor de corte mais alto para binarização, ou seja, a codificação usada para o elemento de sintaxe sig_coeff_flag, o elemento de sintaxe abs_level_gt1_flag, o elemento de sintaxe par_level_flag, e o elemento de sintaxe abs_level_gt3_flag, os modelos de contexto dedicados para o ponto de transição para um código Rice para o elemento de sintaxe abs_remainder e a posição de cada bin podem causar maior eficiência de compactação. Um aumento no corte pode causar um sinalizador "maior que X", por exemplo, como introduzindo o elemento de sintaxe abs_level_gt5_flag e o elemento de sintaxe abs_level_gt7_flag até atingir o corte. O próprio corte pode ser fixado em 5 (numGtFlags = 5).
[0159] - O modelo para derivar um parâmetro Rice pode ser modificado.
Ou seja, apenas o vizinho esquerdo e o vizinho de baixo da posição da posição de varredura atual podem ser considerados de modo similar ao modelo local para a modelagem de contexto do elemento de sintaxe sig_coeff_flag.
[0160] (6) Modelagem de contexto do elemento de sintaxe coeff_sign_flag: devido ao fato de que a instacionaridade dentro da sequência de sinais e o residual de predição são frequentemente desviados, os sinais podem ser codificados usando os modelos de contexto mesmo quando a distribuição empírica global é quase uniformemente distribuída. Um único modelo de contexto dedicado pode ser usado para a codificação do sinal, e o sinal pode ser analisado após o elemento de sintaxe sig_coeff_flag para manter todos os bins codificados por contexto juntos.
[0161] (7) Redução nos bins codificados por contexto: um primeiro passo de varredura, ou seja, a transmissão do elemento de sintaxe sig_coeff_flag, do elemento de sintaxe abs_level_gt1_flag e do elemento de sintaxe par_level_flag pode não ser alterada. Entretanto, o limite sobre o número máximo de Bins Codificados por Contexto (CCBs) por amostra pode ser eliminado, e pode ser processado de forma diferente. A redução nos CCBs pode ser garantida designando o modo como CCB > k como inválido. Aqui, k pode ser um número inteiro positivo. Por exemplo, k para o modo de codificação de nível regular pode ser 2, porém não se limita a isso. Esse limite pode corresponder à redução em um espaço de quantização.
[0162] Por exemplo, a sintaxe de codificação residual de salto de transformada pode ser representada conforme na Tabela 20.
TABELA 20
[0163] A Figura 10 é um diagrama que ilustra um decodificador de sinal residual de acordo com um exemplo do presente documento.
[0164] Entretanto, como descrito com referência às Tabelas 3 a 5 ou
Tabelas 6 a 8, antes de codificar o sinal residual, particularmente, o sinal residual, se deve aplicar a transformada ao bloco correspondente pode ser distribuído primeiro. Ao expressar a correlação entre os sinais residuais no domínio de transformada, a compactação de dados é realizada e os dados compactados são o aparelho de decodificação e, se a correlação entre os sinais residuais for insuficiente, a compactação de dados pode não ocorrer suficientemente. Nesse caso, o processo de transformada incluindo um processo de cálculo complicado pode ser omitido e o sinal residual do domínio de pixel (domínio espacial) pode ser distribuído ao aparelho de decodificação.
[0165] Visto que o sinal residual do domínio de pixel que não foi transformado tem características diferentes (distribuição do sinal residual, o nível absoluto de cada sinal residual, e similares) do sinal residual do domínio de transformada geral, a seguinte descrição propõe um método de codificação do sinal residual para distribuir eficientemente tal sinal ao aparelho de decodificação de acordo com uma modalidade do presente documento.
[0166] Conforme ilustrado na Figura 10, um sinalizador de presença/ausência de aplicação de transformada que representa se a transformada é aplicada ao bloco de transformada correspondente e um fluxo de bits (ou informações sobre código de binarização codificado) pode ser inserido em um decodificador de sinal residual 1000 e um sinal residual (decodificado) pode ser emitido.
[0167] O sinalizador de presença/ausência de aplicação de transformada pode ser representado por um sinalizador de presença/ausência de transformada, um sinalizador de presença/ausência de salto de transformada ou um elemento de sintaxe transform_skip_flag. O código de binarização codificado também pode ser inserido no decodificador de sinal residual 1000 através do processo de binarização.
[0168] O decodificador de sinal residual 1000 pode estar incluído no decodificador de entropia do aparelho de decodificação. Além disso, embora o sinalizador de presença/ausência de aplicação de transformada seja distinguido do fluxo de bits por uma questão de conveniência de explicação na Figura 10, o sinalizador de presença/ausência de aplicação de transformada pode estar incluído no fluxo de bits. Alternativamente, o fluxo de bits pode incluir informações sobre os coeficientes de transformada (quando a transformada é aplicada, o elemento de sintaxe transform_skip_flag = 0) ou informações sobre (um valor de) a amostra residual (quando a transformada não é aplicada, a transform_skip_flag = 1) bem como o sinalizador de presença/ausência de aplicação de transformada. As informações sobre os coeficientes de transformada podem incluir, por exemplo, informações (ou elementos de sintaxe) ilustradas nas Tabelas 3 a 5 ou Tabelas 6 a
9.
[0169] O sinalizador de presença/ausência de salto de transformada pode ser transmitido em unidades de bloco de transformada e, por exemplo, nas Tabelas 3 a 5, o sinalizador de presença/ausência de salto de transformada é limitado a um tamanho de bloco específico (condição que analisa o transform_skip_flag está incluída apenas quando o tamanho do bloco de transformada é 4x4 ou menos), porém uma modalidade pode configurar variadamente o tamanho do bloco que determina se deve analisar o sinalizador de presença/ausência de salto de transformada. Os tamanhos de log2TbWidth e log2TbHeight podem ser determinados por variáveis wN e hN, e wN e hN podem ter, por exemplo, um valor dos seguintes valores ilustrados na Equação 6.
EQUAÇÃO 6
[0170] Por exemplo, os elementos de sintaxe aos quais wN e hN que têm valores de acordo com a Equação 6 podem ser aplicados podem ser representados como na Tabela 21.
TABELA 21
[0171] Por exemplo, wN e hN podem ter, cada um, um valor de 5, nesse caso, o sinalizador de presença/ausência de salto de transformada pode ser sinalizado para o bloco que tem uma largura menor ou igual a 32 e uma altura menor ou igual a 32. Alternativamente, wN e hN podem ter, cada um, um valor de 6, nesse caso, o sinalizador de presença/ausência de salto de transformada pode ser sinalizado para o bloco que tem uma largura menor ou igual a 64 e uma altura menor ou igual a 64. Por exemplo, wN e hN podem ter valores de 2, 3, 4, 5 ou 6 como é expresso na Equação 6, ter os mesmos valores entre si, e também ter valores diferentes entre si. Além disso, a largura e a altura do bloco em que o sinalizador de presença/ausência de salto de transformada pode ser sinalizado podem ser determinadas com base nos valores de wN e hN.
[0172] Conforme descrito acima, um método de decodificação do sinal residual pode ser determinado de acordo com o sinalizador de presença/ausência de salto de transformada. Ao processar de forma eficiente os sinais com características estatísticas diferentes entre si através do método proposto, é possível reduzir a complexidade no processo de decodificação de entropia e aumentar a eficiência de codificação..
[0173] A Figura 11 é um diagrama que ilustra um determinador de análise de sinalizador de salto de transformada de acordo com uma modalidade do presente documento.
[0174] Entretanto, como descrito com referência às Tabelas 3 a 5 ou Tabelas 6 a 9, uma modalidade pode, primeiro, determinar se deve aplicar a transformada ao bloco correspondente antes de codificar o sinal residual. Ao expressar a correlação entre os sinais residuais no domínio de transformada, a compactação de dados é realizada e os dados compactados são distribuídos ao decodificador, e, se a correlação entre os sinais residuais for insuficiente, a compactação de dados pode não ocorrer suficientemente. Nesse caso, o processo de transformada incluindo o processo de cálculo complicado pode ser omitido e o sinal residual do domínio de pixel (domínio espacial) pode ser distribuído ao decodificador. Visto que o sinal residual do domínio de pixel que não foi transformado tem características diferentes (grau de distribuição do sinal residual, o nível absoluto de cada sinal residual, e similares) do sinal residual do domínio de transformada geral, a seguinte descrição propõe um método para codificar o sinal residual para distribuir eficientemente tal sinal ao decodificador.
[0175] O sinalizador de presença/ausência de salto de transformada pode ser transmitido em unidades de bloco de transformada e, por exemplo, a sinalização do sinalizador de presença/ausência de salto de transformada é limitada ao tamanho de um bloco específico (condição de analisar o transform_skip_flag está incluída apenas quando o tamanho do bloco de transformada é 4x4 ou menos), porém uma modalidade pode definir a condição de determinar se deve analisar o sinalizador de presença/ausência de salto de transformada como o número de pixels ou amostras dentro do bloco em vez das informações sobre a largura ou altura do bloco. Ou seja, a condição de determinar se deve analisar o sinalizador de presença/ausência de salto de transformada pode ser definida como usando o produto de log2TbWidth e log2TbHeight entre as condições usadas para analisar o sinalizador de presença/ausência de salto de transformada (por exemplo, elemento de sintaxe transform_skip_flag).
Alternativamente, o sinalizador de presença/ausência de salto de transformada pode ser analisado com base no produto da largura (por exemplo, log2TbWidth) e altura (por exemplo, log2TbHeight) do bloco. Alternativamente, a possibilidade de analisar o sinalizador de presença/ausência de salto de transformada pode ser determinada de acordo com um valor obtido pelo produto da largura (por exemplo, log2TbWidth) e altura (por exemplo, log2TbHeight) do bloco. Por exemplo, o log2TbWidth e o log2TbHeight podem ter um valor dos seguintes valores ilustrados na Equação 7.
EQUAÇÃO 7
[0176] De acordo com uma modalidade, quando se deve analisar o sinalizador de presença/ausência de salto de transformação é determinado com base no número de amostras dentro do bloco, blocos de vários formatos podem ser incluídos em um bloco de exclusão de transformada (em que o sinalizador de presença/ausência de salto de transformada não é analisado) em vez de determinar se deve analisar o sinalizador de presença/ausência de salto de transformada com base na largura e altura do bloco.
[0177] Por exemplo, quando todos dentre o log2TbWidth e o log2TbHeight são definidos como 2, apenas os blocos de 2x4, 4x2 e 4x4 podem estar incluídos no bloco de exclusão de transformada, porém quando controlados pelo número de amostras, o bloco em que o número de amostras é 16 ou menos dentro do bloco está incluído no bloco de exclusão de transformada, de modo que os blocos de tamanhos 2x8 e 8x2 bem como os blocos de 2x4, 4x2 e 4x4 também possam estar incluídos no bloco de exclusão de transformada.
[0178] Um método de decodificação do sinal residual pode ser determinado de acordo com o sinalizador de presença/ausência de salto de transformada, e com o processamento eficiente dos sinais que têm características estatísticas diferentes de acordo com a modalidade anteriormente mencionada, é possível reduzir a complexidade do processo de decodificação de entropia e aumentar a eficiência de codificação.
[0179] Por exemplo, conforme ilustrado na Figura 11, as informações sobre se deve habilitar o salto de transformada dentro da sintaxe de alto nível, as informações de tamanho de bloco, e as informações sobre se deve aplicar a Seleção de Transformada Múltipla (MTS) podem ser inseridas no determinador de análise de sinalizador de salto de transformada 1100, e o sinalizador de salto de transformada pode ser emitido. Alternativamente, as informações sobre se deve habilitar o salto de transformada dentro da sintaxe de alto nível e as informações de tamanho de bloco podem ser inseridas no determinador de análise de sinalizador de salto de transformada, e o sinalizador de salto de transformada também pode ser emitido com base nas informações. Ou seja, o sinalizador de salto de transformada pode ser emitido (ou analisado) com base nas informações de tamanho de bloco, quando o salto de transformada é habilitado de acordo com as informações sobre se deve habilitar o salto de transformada dentro da sintaxe de alto nível. As informações supracitadas podem estar incluídas no fluxo de bits ou na sintaxe. O determinador de análise de sinalizador de salto de transformada 1100 pode estar incluído no decodificador de entropia do aparelho de decodificação. Por exemplo, um método em que o sinalizador de salto de transformada é determinado com base nas informações supracitadas pode ser da seguinte forma.
[0180] A Figura 12 é um fluxograma para explicar um método de codificação do sinalizador de presença/ausência de salto de transformada de acordo com uma modalidade do presente documento.
[0181] A modalidade anteriormente mencionada será descrita novamente com referência à Figura 12 da seguinte forma.
[0182] Primeiro, a possibilidade de o salto de transformada dentro da sintaxe de alto nível ser habilitado pode ser determinada (S1200). Por exemplo, a possibilidade de o salto de transformada dentro da sintaxe de alto nível ser habilitado pode ser determinada com base nas informações sobre se deve habilitar o salto de transformada dentro da sintaxe de alto nível (por exemplo, elemento de sintaxe transform_skip_enabled_flag). Por exemplo, as informações sobre se deve habilitar o salto de transformada (por exemplo, transform_skip_enabled_flag elemento de sintaxe) podem ser sinalizadas com base em um conjunto de parâmetros de sequência (SPS). Alternativamente, as informações sobre se deve habilitar o salto de transformada podem ser sinalizadas como estando incluídas na sintaxe de SPS. Alternativamente, as informações sobre se deve habilitar o salto de transformada também podem ser sinalizadas com base em um conjunto de parâmetros de figuração (PPS) ou sinalizadas como estando incluídas na sintaxe de PPS, porém o presente documento não se limita a isso. Aqui, o fato de que o salto de transformada dentro da sintaxe de alto nível é habilitado pode representar que o salto de transformada é habilitado para a fatia/bloco referente à sintaxe de alto nível correspondente. A possibilidade de o salto de transformada ser substancialmente aplicado ao bloco em que o salto de transformada é habilitado pode ser determinada com base no sinalizador de salto de transformada supracitado.
[0183] Por exemplo, quando o salto de transformada dentro da sintaxe de alto nível é habilitado, a possibilidade de o valor do elevada de sintaxe cu_mts_flag dentro da sintaxe ser 0 pode ser determinada (S1210). Por exemplo, a possibilidade de o valor do elemento de sintaxe cu_mts_flag ser 0 pode ser determinada com base nas informações sobre se deve habilitar a Seleção de Transformada Múltipla (MTS). Alternativamente, as informações sobre se deve habilitar a MTS podem ser determinadas com base no elemento de sintaxe sps_mts_enabled_flag.
[0184] Por exemplo, quando o valor do elemento de sintaxe cu_mts_flag é 0, a possibilidade de o produto de log2TbWidth e log2TbHeight ser menor ou igual a um limite pode ser determinada (S1220). Alternativamente, a possibilidade de um valor obtido pelo produto de um valor logarítmico que tem uma base 2 da largura do bloco atual e um valor logarítmico que tem uma base 2 da altura do bloco ser menor que o limite pode ser determinada. Alternativamente, a possibilidade de um valor obtido pelo produto da largura e altura do bloco atual ser menor que o limite pode ser determinada. Por exemplo, a possibilidade de o produto de log2TbWidth e log2TbHeight ser menor ou igual ao limite pode ser determinada com base nas informações de tamanho de bloco. As informações de tamanho de bloco podem incluir as informações sobre a largura e a altura do bloco atual. Alternativamente, as informações de tamanho de bloco podem incluir informações sobre valores logarítmicos que têm uma base 2 da largura e da altura do bloco atual.
[0185] Por exemplo, quando o produto de log2TbWidth e log2TbHeight é menor ou igual ao limite, o valor do sinalizador de presença/ausência de salto de transformada (ou elemento de sintaxe transform_skip_flag) pode ser determinado como 1 (S1230). Alternativamente, o sinalizador de presença/ausência de salto de transformada que tem o valor de 1 pode ser analisado. Alternativamente, por exemplo, quando o produto de log2TbWidth e log2TbHeight é menor ou igual ao limite de acordo com a configuração ou a condição, o valor do sinalizador de presença/ausência de salto de transformada (ou elemento de sintaxe transform_skip_flag) pode ser determinado como 0. Alternativamente, o sinalizador de presença/ausência de salto de transformada que tem o valor de 0 pode ser analisado. Alternativamente, o sinalizador de presença/ausência de salto de transformada pode não ser analisado. Ou seja, o valor determinado do sinalizador de presença/ausência de salto de transformada pode ser alterado de acordo com a configuração ou a condição como um exemplo. Ou seja, o sinalizador de presença/ausência de salto de transformada pode representar as informações de que o salto de transformada é aplicado ao bloco atual quando o produto de log2TbWidth e log2TbHeight é menor ou igual ao limite. Alternativamente, o bloco atual pode estar incluído no bloco de exclusão de transformada com base no sinalizador de presença/ausência de salto de transformada, e a transformada não é aplicada ao bloco atual.
[0186] Por exemplo, o valor do sinalizador de presença/ausência de salto de transformada (ou elemento de sintaxe transform_skip_flag) pode ser determinado como 0, quando o salto de transformada dentro da sintaxe de alto nível não é habilitado, quando o valor do elemento de sintaxe cu_mts_flag não é 0, ou quando o produto de log2TbWidth e log2TbHeight é maior que o limite (S1240).
Alternativamente, o sinalizador de presença/ausência de salto de transformada que tem o valor de 0 pode ser analisado. Alternativamente, o sinalizador de presença/ausência de salto de transformada pode não ser analisado.
Alternativamente, por exemplo, o valor do sinalizador de presença/ausência de salto de transformada (ou elemento de sintaxe transform_skip_flag) pode ser determinado como 1, quando o salto de transformada dentro da sintaxe de alto nível não é habilitado, quando o valor do elemento de sintaxe cu_mts_flag não é 0, e quando o produto de log2TbWidth e log2TbHeight é maior que o limite de acordo com a configuração ou a condição. Alternativamente, o sinalizador de presença/ausência de salto de transformada que tem um valor de 1 pode ser analisado. Ou seja, o valor determinado do sinalizador de presença/ausência de salto de transformada é um exemplo, e pode ser alterado de acordo com a configuração ou a condição. Ou seja, quando o salto de transformada dentro da sintaxe de alto nível não é habilitado, quando um valor do elemento de sintaxe cu_mts_flag não é 0, e quando o produto de log2TbWidth e log2TbHeight é maior que o limite, o sinalizador de presença/ausência de salto de transformada pode representar informações de que o salto de transformada não é aplicado ao bloco atual. Alternativamente, o bloco atual pode não estar incluído no bloco de exclusão de transformada com base no sinalizador de presença/ausência de salto de transformada, e pode ser transformado.
[0187] Alternativamente, por exemplo, o elemento de sintaxe cu_mts_flag também pode ser representado por um elemento de sintaxe MTS tu_mts_flag ou um elemento de sintaxe mts_flag, e o elemento de sintaxe sps_mts_intra_enabled_flag (ou elemento de sintaxe sps_explicit_mts_intra_enabled_flag) ou o elemento de sintaxe sps_mts_inter_enabled_flag (ou elemento de sintaxe sps_explicit_mts_inter_enabled_flag) pode ser sinalizado (sendo incluído na sintaxe SPS) com base no elemento de sintaxe sps_mts_enabled_flag.
[0188] Entretanto, outra modalidade do presente documento propõe um método para definir o tamanho de salto de transformada quando se usa um índice de kernel da transformada incluindo as informações de presente/ausência de transformada.
[0189] Visto que o bloco que não foi transformado (ou codificado por transformada) tem características diferentes dos dados residuais do bloco que foi transformado geralmente, um método de codificação de dados residuais eficiente para o bloco que não foi transformado pode ser necessário. O sinalizador de presença/ausência de transformada que representa se deve realizar a transformada pode ser transmitido em unidades de bloco de transformada ou unidade de transformada, e o presente documento não limita o tamanho do bloco de transformada. Por exemplo, quando o sinalizador de presença/ausência de transformada é 1, a codificação residual (dados) (por exemplo, Tabela 20 e a codificação residual para o salto de transformada) proposta no presente documento pode ser realizada, e quando o sinalizador de presença/ausência de transformada é 0, a codificação residual como nas Tabelas 3 a 5 ou Tabelas 6 a 9 pode ser realizada. Por exemplo, o sinalizador de presença/ausência de transformada pode incluir o elemento de sintaxe transform_skip_flag incluído na sintaxe de codificação residual ou na sintaxe de unidade de transformada. Além disso, quando o valor do elemento de sintaxe transform_skip_flag é 1, o método de codificação residual (para o salto de transformada) proposto em uma modalidade do presente documento pode ser realizado.
[0190] Alternativamente, por exemplo, quando o valor do elemento de sintaxe transform_skip_flag é 1, a codificação residual em que a transformada não é realizada também pode ser realizada com base na sintaxe de codificação de salto de transformada residual (residual_ts_coding) de acordo com uma condição se (!transform_skip_flag). Alternativamente, quando o valor do elemento de sintaxe transform_skip_flag é 0, a codificação residual em que a transformada é realizada com base na sintaxe de codificação residual (residual_coding) pode ser realizada de acordo com a condição se (!transform_skip_flag).
[0191] Alternativamente, por exemplo, a codificação residual que exclui o elemento de sintaxe coeff_sign_flag abaixo do elemento de sintaxe coded_sub_block_flag pode seguir algum ou todo o método de codificação residual (para o salto de transformada) proposto em uma modalidade do presente documento.
[0192] Alternativamente, por exemplo, o método de sinalização de tipo de transformada unificada proposto em uma modalidade do presente documento pode ser realizado, e nesse momento, quando o valor do elemento de sintaxe tu_mts_idx é 1 (ou quando o elemento de sintaxe tu_mts_idx representa informações de que a transformada não é aplicada ao bloco de destino, o método de codificação residual (para o salto de transformada) proposto em uma modalidade do presente documento pode ser realizado. Alternativamente, quando o valor do elemento de sintaxe tu_mts_idx é 0 (ou quando o valor do elemento de sintaxe tu_mts_idx é um valor diferente de 1), a codificação residual como nas Tabelas 3 a 5 ou Tabelas 6 a 9 ou a codificação residual em que a transformada é realizada com base na sintaxe de codificação residual (residual_coding) pode ser realizada. Nesse caso, conforme descrito com o método de sinalização de tipo de transformada unificada proposto em uma modalidade do presente documento, o sinalizador de presença/ausência de transformada (ou elemento de sintaxe transform_skip_flag) e/ou o índice de transformada (ou elemento de sintaxe mts_idx) pode ser omitido nas Tabelas 3 a 5.
[0193] Alternativamente, por exemplo, presumindo que o elemento de sintaxe tu_mts_idx que tem o valor de 0 representa que a transformada não é aplicada (ou salto de transformada) ao bloco de destino, o método de codificação residual (para o salto de transformada) proposto em uma modalidade do presente documento pode ser realizado, quando o valor do elemento de sintaxe tu_mts_idx é 0. Alternativamente, quando o valor do elemento de sintaxe tu_mts_idx não é 0, a codificação residual em que a transformada é realizada com base na sintaxe de codificação residual (residual_coding) pode ser realizada conforme nas Tabelas 3 a 5 ou Tabelas 6 a 9. Nesse caso, o sinalizador de presença/ausência de transformada (ou elemento de sintaxe transform_skip_flag) e/ou o índice de transformada (ou elemento de sintaxe mts_idx) pode ser omitido. Nesse caso, o procedimento ou condição de determinação “tu_mts_idx == 1?” pode ser substituído pelo procedimento ou condição de determinação “tu_mts_idx == 0?”.
[0194] Conforme descrito com o método de sinalização de tipo de transformada unificada proposto em uma modalidade do presente documento, a binarização do sinalizador de presença/ausência de transformada (ou elemento de sintaxe transform_skip_flag) ou o índice de transformada (ou elemento de sintaxe mts_idx) pode ser, cada um, definido de forma diferente, por exemplo, no caso do MTS & TS habilitado, da MTS habilitada e do TS habilitado conforme na Tabela 17 ou Tabela 18. Alternativamente, o tamanho em que o salto de transformada é definido (ou o tamanho capaz do salto de transformada) também pode ser definido de forma diferente de acordo com a possibilidade de o valor do mts_enabled ser 0 ou 1. Alternativamente, o tamanho capaz do salto de transformada também pode ser definido com base na MTS habilitada (ou informações sobre se a MTS está habilitada). Por exemplo, a MTS habilitada pode representar as informações sobre se a MTS está habilitada, e pode ser derivada com base no elemento de sintaxe sps_mts_enabled_flag. Por exemplo, o fato de que o valor da MTS habilitada é 1 pode representar que o valor do elemento de sintaxe sps_mts_enabled_flag é 1.
Alternativamente, o fato de que o valor da MTS habilitada é 1 também pode representar informações de que a MTS está habilitada. Alternativamente, o fato de que o valor da MTS habilitada é 0 pode representar que o valor do elemento de sintaxe sps_mts_enabled_flag é 0. Alternativamente, o fato de que o valor da MTS habilitada é 0 também pode representar informações de que a MTS não está habilitada.
[0195] Por exemplo, quando o valor da MTS habilitada é 1, o tamanho do salto de transformada (ou o tamanho de bloco capaz do salto de transformada) pode ser dependente da MTS habilitada. Por exemplo, se o tamanho da MTS estiver habilitado em 32 ou menos (ou se a MTS está habilitada apenas quando o tamanho de bloco é 32 ou menos), o salto de transformada pode ser sempre definido para o bloco que tem o tamanho de 32 ou menos da mesma maneira descrita acima.
[0196] Alternativamente, por exemplo, quando o valor da MTS habilitada é 1, o aparelho de codificação e o aparelho de decodificação podem usar um tamanho máximo predeterminado ou predefinido. Além disso, o TS habilitado pode ser definido de acordo com o tamanho máximo. Por exemplo, o aparelho de codificação e o aparelho de decodificação podem ser definidos para usar o salto de transformada para o bloco que tem um comprimento de um lado que é menor ou igual a 8. Nesse caso, o valor do TS habilitado é definido como 0 em relação ao bloco com um comprimento de um lado do bloco que é maior que 8, aplicando assim efetivamente a tabela de binarização ilustrada na Tabela 17 ou Tabela 18.
Alternativamente, as informações de tamanho máximo do bloco de salto de transformada (ou capaz do salto de transformada) também podem ser representadas usando o número máximo de amostras em vez do comprimento máximo de um lado do bloco.
[0197] Alternativamente, por exemplo, quando o valor da MTS habilitada é 1, o tamanho máximo do salto de transformada (ou bloco capaz do salto de transformada) pode ser definido separadamente do tamanho da MTS (ou o tamanho de bloco em que a MTS está habilitada). Nesse caso, as informações sobre o tamanho do salto de transformada (ou bloco capaz do salto de transformada) podem ser sinalizadas para definir o tamanho da MTS (ou o tamanho de bloco em que a MTS está habilitada). Alternativamente, as informações podem ser transmitidas a partir do aparelho de codificação ao aparelho de decodificação. Por exemplo, se o tamanho da MTS estiver habilitado em 32 ou menos (ou se a MTS estiver habilitada apenas quando o tamanho do bloco é 32 ou menos), um sinalizador sobre se deve seguir o tamanho da MTS (ou o tamanho do bloco em que a MTS está habilitada) pode ser sinalizado, e no caso de não seguir o tamanho máximo da MTS (ou o tamanho máximo do bloco em que a MTS está habilitada), as informações para habilitar o tamanho máximo do salto de transformada (ou bloco capaz do salto de transformada) até 16 podem ser sinalizadas. Nesse caso, quando o comprimento de um lado do bloco é 16 ou mais, o valor do TS habilitado é definido como 0, aplicando assim efetivamente a tabela de binarização ilustrada na Tabela 17 ou Tabela 18. Alternativamente, as informações de tamanho máximo do bloco de salto de transformada (ou capaz do salto de transformada) também podem ser representadas usando o número máximo de amostras em vez do tamanho máximo de um lado do bloco.
[0198] Alternativamente, por exemplo, quando o valor da MTS habilitada é 0, o aparelho de codificação e o aparelho de decodificação podem usar um tamanho máximo predeterminado ou predefinido. Por exemplo, quando o valor da MTS habilitada é 0 e o valor do TS habilitado é 1, o aparelho de codificação e o aparelho de decodificação podem ser definidos para usar o salto de transformada para o bloco que tem um comprimento de um lado que é menor ou igual a 8.
Alternativamente, as informações de tamanho máximo do bloco de salto de transformada (ou capaz do salto de transformada) também podem ser representadas usando o número máximo de amostras em vez do tamanho máximo de um lado do bloco.
[0199] Alternativamente, por exemplo, quando o valor da MTS habilitada é 0, as informações de tamanho máximo do salto de transformada (ou bloco capaz do salto de transformada) podem ser transmitidas. Por exemplo, as informações que habilitam o tamanho máximo do salto de transformada (ou bloco capaz do salto de transformada) de até 16 podem ser sinalizadas pela sintaxe de alto nível.
Nesse caso, quando o comprimento de um lado do bloco é 16 ou mais, o valor do TS habilitado é definido como 0, aplicando assim efetivamente a tabela de binarização ilustrada na Tabela 17 ou Tabela 18. Alternativamente, as informações de tamanho máximo do bloco de salto de transformada (ou capaz do salto de transformada) podem ser representadas usando o número máximo de amostras em vez do tamanho máximo de um lado do bloco.
[0200] Por exemplo, o elemento de sintaxe tu_mts_idx pode ser codificado/decodificado com base na CABAC supracitada. Nesse caso, a cadeia de bin do elemento de sintaxe tu_mts_idx pode incluir, por exemplo, bins como ilustrado na Tabela 17 ou Tabela 18. Pelo menos um dos bins da cadeia de bin do elemento de sintaxe tu_mts_idx pode ser codificado (ou codificado regularmente) com base nas informações de contexto (ou modelo de contexto).
[0201] Um índice de contexto que representa o modelo de contexto para cada um dos bins codificados regularmente pode ser derivado com base em um incremento de índice de contexto e um deslocamento de índice de contexto.
Alternativamente, por exemplo, o índice de contexto pode ser representado por ctxIdx, o incremento de índice de contexto pode ser representado por ctxInc, e o deslocamento de índice de contexto pode ser representado por ctxIdxOffset. Além disso, o ctxIdx pode ser derivado pela soma do ctxInc e do ctxIdxOffset. Por exemplo, o ctxInc pode ser derivado de forma diferente para cada bin como ilustrado na Tabela 19. O ctxIdxOffset pode representar o valor mais baixo do ctxIdx. Alternativamente, por exemplo, o índice de contexto pode ser determinado com base na profundidade de árvore quaternária codificada (cqtDepth) como ilustrado na Tabela 19. Alternativamente, por exemplo, o índice de contexto pode ser determinado de acordo com o tamanho do bloco, a razão da largura para a altura do bloco, seja para realizar a predição intra ou inter do bloco, seja para aplicar o salto de transformada ao vizinho, ou similares.
[0202] Por exemplo, quando o tamanho do bloco é menor que 8x8, o modelo de contexto de um índice 0 pode ser usado, e quando o tamanho do bloco é maior ou igual a 8x8, o modelo de contexto de um índice 1 pode ser usado.
[0203] Alternativamente, por exemplo, quando a razão da largura para a altura do bloco é 1, o modelo de contexto do índice 0 pode ser usado, quando a largura do bloco é maior que a altura do bloco, o modelo de contexto do índice 1 pode ser usado, e quando a altura do bloco é maior que a largura do bloco, o modelo de contexto de um índice 2 pode ser usado. Nesse caso, por exemplo, o índice de contexto que é determinado com base na largura e altura do bloco pode ser conforme ilustrado na Tabela 22 abaixo.
TABELA 22 Elemento binldx de sintaxe 0 1 2 3 4 >=5 (cbWidth == tu_mts_idx cbHeigth) ? 0: 3…8 9 10 11 na (MTS & TS) ((cbWidth > (1+cqtDepth) cbHEight) ? 1 : 2) tu_mts_idx 1…6 7 8 9 na na (MTS) (1+cqtDepth) (cbWidth == tu_mts+idx cbHeigth) ? 0: na na na na na (TS) ((cbWidth > cbHEight) ? 1 : 2)
[0204] Alternativamente, por exemplo, quando o modo de predição do bloco atual é o modo intra, o modelo de contexto do índice 0 pode ser usado, e quando o modo de predição do bloco atual é o modo inter, o modelo de contexto do índice 1 pode ser usado.
[0205] Por exemplo, o elemento de sintaxe tu_mts_idx pode ser codificado usando o modelo de contexto de acordo com o índice determinado conforme descrito acima. Visto vez que o modelo de contexto e o número de modelos podem ser definidos variadamente com base na probabilidade e distribuição, o presente documento não se limita ao modelo de contexto específico e ao número de modelos de contexto.
[0206] Por exemplo, o índice pode representar o índice de contexto, o índice 0 pode representar que o valor ctxIdx é 0 e o índice 1 pode representar que o valor ctxIdx é 1.
[0207] Por exemplo, o valor mais baixo do ctxIdx pode ser representado por um valor inicial (initValue) do ctxIdx e o valor inicial do ctxIdx pode ser determinado com base na tabela de contexto. Alternativamente, o valor inicial do ctxIdx pode ser determinado usando a tabela de contexto e um tipo inicial (initType). O tipo inicial pode ser determinado previamente. Alternativamente, o tipo inicial também pode ser determinado sinalizando as informações relacionadas. Por exemplo, o tipo inicial pode ser sinalizado pelas informações de tipo inicial (por exemplo, elemento de sintaxe cabac_init_flag ou elemento de sintaxe cabac_init_idx).
[0208] Ou seja,, os bins da cadeia de bin do elemento de sintaxe tu_mts_idx podem ser codificados baseados em contexto (ou codificados regularmente) com base no modelo de contexto para os respectivos bins. Nesse caso, o modelo de contexto pode ser derivado pela soma do ctxInc e do ctxIdxOffset. Além disso, o ctxInc pode ser determinado de forma diferente para cada bin.
[0209] Por exemplo, o aparelho de codificação pode codificar os bins derivando o valor do elemento de sintaxe tu_mts_idx, derivando os bins de binarização correspondentes ao valor através do procedimento de binarização, e derivando o modelo de contexto para cada um dos bins. Nesse caso, uma cadeia de bits que tem um comprimento que é igual ou menor que os comprimentos dos bins pode ser emitida de acordo com a codificação aritmética com base no modelo de contexto.
[0210] Por exemplo, o aparelho de decodificação pode decodificar os bins para o elemento de sintaxe tu_mts_idx derivando cadeias de bins candidatos através do procedimento de binarização para o elemento de sintaxe tu_mts_idx, e analisando sequencialmente os bits para o elemento de sintaxe tu_mts_idx a partir do fluxo de bits. Nesse caso, o aparelho de decodificação pode decodificar os bins derivando o modelo de contexto para cada um dos bins. Pode ser determinado se os bins decodificados correspondem a uma das cadeias de bin candidatos.
Quando os bins decodificados correspondem a uma das cadeias de bins candidatos, o aparelho de decodificação pode derivar um valor representado pela sequência de bins correspondente como o valor do elemento de sintaxe tu_mts_idx. Quando os bins decodificados não correspondem a uma das cadeias de bins candidatos, o aparelho de decodificação pode adicionalmente analisar o bit e repetir o procedimento anteriormente mencionado.
[0211] Conforme descrito acima, uma modalidade do presente documento pode determinar de forma diferente o ctxInc e/ou o ctxIdx com base em pelo menos um dentre o tamanho do bloco, a razão da largura para a altura do bloco, seja para realizar a predição intra ou inter do bloco, seja para aplicar o salto de transformada ao vizinho, ou similares na codificação do elemento de sintaxe tu_mts_idx, e nesse caso, um modelo de contexto diferente pode ser aplicado de forma adaptativa ao bin do mesmo índice de bin (binIdx) sem sinalizar informações adicionais.
[0212] Por exemplo, a primeira informação de contexto pode ser derivada para o i-ésimo bin para um primeiro bloco dentro da figuração atual, e a segunda informação de contexto pode ser derivada para o mesmo i-ésimo bin para um segundo bloco dentro da figuração atual. Aqui, i pode corresponder a um índice de bin, e pode representar, por exemplo, um valor de 0 a 4 como ilustrado na Tabela 19 ou Tabela 22. Por exemplo, as informações de contexto podem incluir as informações sobre o índice de contexto ou o modelo de contexto.
[0213] Entretanto, por exemplo, pelo menos algumas informações de acordo com as modalidades anteriormente mencionadas do presente documento podem ser incluídas na sintaxe de alto nível, conforme ilustrado nas Tabelas 23 a
27. Alternativamente, pelo menos algumas das informações de acordo com as modalidades anteriormente mencionadas do presente documento podem ser sinalizadas sendo incluídas na sintaxe de alto nível. Alternativamente, pelo menos algumas das informações de acordo com as modalidades anteriormente mencionadas podem ser incluídas em uma sintaxe de conjunto de parâmetros de sequência (SPS). Alternativamente, pelo menos algumas das informações de acordo com as modalidades anteriormente mencionadas podem ser sinalizadas sendo incluídas na sintaxe SPS. Por exemplo, as Tabelas 23 a 27 podem representar consecutivamente uma sintaxe, e os elementos de sintaxe incluídos na sintaxe podem ser sequencialmente sinalizados, configurados ou analisados.
TABELA 23
TABELA 24
TABELA 25
TABELA 26
TABELA 27
[0214] Por exemplo, como ilustrado nas Tabelas 23 a 27, as informações representadas pelos elementos de sintaxe incluídos na sintaxe SPS ou semântica dos elementos de sintaxe podem ser representadas como nas Tabelas 28 a 35.
TABELA 28 Semântica RBSP de conjunto de parâmetros de sequência sps_seq_parameter_set_id fornece um identificador para o SPS para referência por outros elementos de sintaxe. O valor de sps_seq_parameter_set_id deve estar na faixa de 0 a 15, inclusive. intra_only_constraint_flag igual a 1 especifica que é um requisito de conformidade de fluxo de bits que title_group_type seja igual a 1. Intra_only_constraint_flag igual a 0 não impõe uma restrição. max_bitdepth_constraint_ide especifica que é um requisito de conformidade de fluxo de bits que bit_depth_luma_minus8 e bit_depth_chroma_minus8 estejam na faixa de 0 a max_bitdepth_constraint_ide, inclusive. max_chroma_format_constraint_ide especifica que é um requisito de conformidade de fluxo de bits que chroma_format_ide esteja na faixa de 0 a max_chroma_format_constraint_ide, inclusive. frame_only_constraint_flag igual a 1 especifica que é um requisito de conformidade de fluxo de bits que o CVS transmita imagens que representam quadros. frame_only_constraint_flag igual a 0 não impõe uma restrição. no_qtbtt_dual_tree_intra constraint_flag igual a 1 especifica que é um requisito de conformidade de fluxo de bits que qbtt_dual_tree_intra_flag seja igual a 0. no_qtbtt_dual_tree_intra constraint_flag igual a 0 não impõe uma restrição. no_sao_constraint_flag igual a 1 especifica que é um requisito de conformidade de fluxo de bits que sps_sao_enabled_flag seja igual a 0. no_sao_constraint_flag igual a 0 não impõe uma restrição. no_alf_constraint_flag igual a 1 especifica que é um requisito de conformidade de fluxo de bits que sps_alf_enabled_flag seja igual a 0. no_alf_constraint_flag igual a 0 não impõe uma restrição. no_pem_constraint_flag igual a 1 especifica que é um requisito de conformidade de fluxo de bits que pem+enalbled_flag seja igual a 0. no_alf_constraint_flag igual a 0 não impõe uma restrição. no_temporal_mvp_constraint_flag igual a 1 especifica que é um requisito de conformidade de fluxo de bits que sps_temporal_mvp_enalbled_flag seja igual a 0. no_temporal_mvp_constraint_flag igual a 0 não impõe uma restrição. no_sbtmvp_constraint_flag igual a 1 especifica que é um requisito de conformidade de fluxo de bits que sps_sbtmvp_enabled_flag seja igual a 0. no_sbtmvp_constraint_flag igual a 0 não impõe uma restrição. no_amvr_constraint_flag igual a 1 especifica que é um requisito de conformidade de fluxo de bits que spc_amvr_enabled_flag seja igual a 0. no_amvr_constraint_flag igual a 0 não impõe uma restrição. no_cclm_constraint_flag igual a 1 especifica que é um requisito de conformidade de fluxo de bits que sps_cclm_enabled_flag seja igual a 0. no_cclm_cnstraint_flag igual a 0 não impõe uma restrição. no_affine_motion_constraint_flag igual a 1 especifica que é um requisito de conformidade de fluxo de bits que sps_affine_enabled_flag seja igual a 0. no_affine_motion_constraint_flag igual a 0 não impõe uma restrição. no_ladf_constraint_flag igual a 1 especifica que é um requisito de conformidade de fluxo de bits que sps_ladf_enabled_flag seja igual a 0. no_ladf_constraint_flag igual a 0 não impõe uma restrição. no_dep_quant_constraint_flag igual a 1 especifica que é um requisito de conformidade de fluxo de bits que dep_quant_enabled_flag seja igual a 0. no_dep_quat_constraint_flag igual a 0 não impõe uma restrição. no_sign_data_hiding_constraint_flag igual a 1 especifica que é um requisito de conformidade de fluxo de bits que sign_data_hiding_enabed_flag seja igual a 0. no_sign_data_hiding_constraint_flag igual a 0 não impõe uma restrição. chroma_format_ide especifica a amostragem de croma em relação à amostragem de luma como especificado na cláusula 6.2. O valor de chroma_format_ide deve estar na faixa de 0 a 3, inclusive.
TABELA 29 Semântica RBSP de conjunto de parâmetros de sequência separate_colour_plane_flag igual a 1 especifica que os três componentes de cor do formato croma 4:4:4 são codificados separadamente. separate_colour_plane_flag igual a 0 especifica que os componentes de cor não são codificados separadamente. Quando separate_colour_plane_flag não está presente, é inferido como igual a 0. Quando separate_colour_plane_flag é igual a 1, a figuração codificada consiste em três componentes separados, cada um dos quais consiste em amostras codificadas de um plano de cor (Y, Cb ou Cr) e usa a sintaxe de codificação monocromática. Nesse caso, cada plano de cor está associado a um valor específico de colout_plane_id. NOTA: 1 … Não há dependência nos processos de decodificação entre os planos de cores com valores diferentes de colour_plane_id. Por exemplo, o processo de decodificação de uma figuração monocromática com um valor de colour_plane_id não usa quaisquer dados de imagens monocromáticas com valores diferentes de colour_plane_id para predição inter. Dependendo do valor do sinalizador de plano de cor separado, o valor da variável ChromaArrayType é atribuído da seguinte forma: - Se o sinalizador de plano de cor separado for igual a 0, ChromaArrayType é definido igual ao formato croma ide. - De outro modo (separate_colour_plane_flag é igual a 1), ChromaArrayType é definido igual a 0. pic_width_in_luma_samples especifica a largura de cada figuração decodificada em unidades de amostras luma. pic_width_in_luma_samples não deve ser igual a 0 e deve ser um múltiplo inteiro de MinCbSizeY. pic_height_in_luma_samples especifica a altura de cada figuração decodificada em unidades de amostras luma. pic_height_in_luma_samples não deve ser igual a 0 e deve ser um múltiplo inteiro de MinCbSizeY. bit_depth_luma_minus8 especifica a profundidade de bits das amostras da matriz luma BitDepthY e o valor do deslocamento de faixa de parâmetro de quantização luma QpBdOffsetY da seguinte forma: BitDepthY = 8 + bit_depth_luma_minus8 QpBdOffsetY = 6*bit_depth_luma_minus8 bit_depth_luma_minus8 deve estar na faixa de 0 a 8, inclusive. bit_depth_chroma_minus8 especifica a profundidade de bit das amostras das matrizes croma BitDepthC e o valor do deslocamento de faixa de parâmetro de quantização croma QpBdOffsetC da seguinte forma: BitDepthC = 8 + bit_depth_chroma_minus8 QpBdOffsetC = 6* bit_depth_chroma_minus8 bit_depth_chroma_minus8 deve estar na faixa de 0 a 8, inclusive. log2_max_pic_order_ent_lsb_minus4 especifica o valor da variável MaxPicOrderCntLsb que é usado no processo de decodificação para contagem de ordens de figuração da seguinte forma: MaxPicOrderCntLsb = 2 (log2 max pic order cnt lsb minus4 - 4 ) O valor de log2_max_pic_order_cnt_lsb_minus4 deve estar na faixa de 0 a 12, inclusive. qtbtt_dual_tree_intra_flag igual a 1 especifica que para grupos de 1 ladrilho ou para grupos de P ladrilhos em que a figuração atual é a única figuração de referência para o grupo de ladrilhos, cada CTU é dividida em unidades de codificação com amostras luma de 64x64 usando uma divisão de árvore quaternária implícita e que essas unidades de codificação são a raiz de duas estruturas de sintaxe de árvore quaternária de codificação separadas para luma e croma. log2_ctu_size_minus2 mais 2 especifica o tamanho de bloco de árvore de codificação luma de cada CTU.
TABELA 30 Semântica RBSP de conjunto de parâmetros de sequência log2_min_luma_coding_block_size_minus2 mais 2 especifica o tamanho mínimo de bloco de codificação luma. As variáveis CtbLog2SizeY, CtbSizeY, MinCbLog2SizeY, MinCbSizeY, MinTbLog2SizeY, MaxTbLog2SizeY, MinTbSizeY, MaxTbSizeY, PicWidthInCtbsY, PicHeighInCtbsY, PicSizeInCtbsY, PicWidthInMinCbsY, PicHeightInMinCbsY, PicSizeInMinCbsY, PicSizeInSamplesY, PicWidthInSamplesC e PicHeightInSamplesC são derivadas da seguinte forma: CtbLog2SizeY = log2_ctu_size_minus2 + 2 CtbSizeY = 1 << CtbLog2SizeY MinCbLog2SizeY = log2_min_luma_coding_block_size_minus2 - 2 MinCbSizeY = 1 << MinCbLog2SizeY MinTbLog2SizeY = 2 MaxTbLog2SizeY = 6 MinTbSizeY = 1 << MinTbLog2SizeY
MaxTbSizeY = 1 << MaxTbLog2SizeY PicWidthInCtbsY = Ceil( pic_width_in_luma_samples + CtbSizeY ) PicHeighInCtbsY = Ceil( pic_heigth_in_luma_samples + CtbSizeY ) PicSizeInCtbsY = PicWidthCybsY * PicHeightInCtbsY PicWidthInMinCbsY = pic_width_in_luma_samples / MinCbSizeY PicHeightInMinCbsY = pic_height_in_luma_samples / MinCbSizeY PicSizeInMinCbsY = PicWidthInMinCbsY * PicHeightInMinCbsY PicSizeInSamplesY = pic_width_in_luma_samples / SubWidthC PicWidthInSamplesC = pic_width_in_luma_samples / SubHeightC PicHeightInSamplesC = pic_height_in_luma_samples / SubHeighC [Ed.(BB): Atualmente, o tamanho máximo de transformada (amostras luma de 64x64 e o tamanho de amostra croma correspondente) e o tamanho mínimo de transformada (amostras luma de 4x4 e amostras croma correspondentes) são fixos, pendentes de desenvolvimento de especificações adicionais.] As variáveis CtbWidth e CtbHeightC, que especificam a largura e a altura, respectivamente, da matriz para cada CTB croma, são derivadas da seguinte forma: Se chroma_format_idc for igual a 0 (monocromático) ou separate_colour_plane_flag for igual a 1, CtbWidthC e CtbHeightC são ambos iguais a 0. De outro modo, CtbWidthC e CtbHeightC são derivados da seguinte forma: CtbWindthC = CtbSizeY / SubWidthC CtbHeightC = CtbSizeY / SubHeightC Para log2BlockWidth na faixa de 0 a 4 e para log2BlockHeight na faixa de 0 a 4, inclusive, o processo de inicialização de matriz de ordem de varredura diagonal para cima- à direita como especificado na cláusula 6.5.2 é invocado como 1 << log2BlockWidth e 1 << log2BlockHeight como entradas, e a saída é atribuída a DiagScanOrder [ log2BlockWidth ][ log2BlockHeight ]. partition_constraints_override_enabled_flag igual a 1 especifica a presença de partition_constraints_override_flag nos cabeçalhos de grupo de ladrilhos para grupos de ladrilho referentes ao SPS. partition_constraints_override_enabled_flag igual a 0 especifica a ausência de partition_constraints_override_flag nos cabeçalhos de grupo de ladrilhos para os grupos referentes ao SPS.
TABELA 31 Semântica RBSP de conjunto de parâmetros de sequência sps_log2_diff_min_qt_min_cb_intra_tile_group_luma especifica a diferença padrão entre o logaritmo de base 2 do tamanho mínimo em amostras luma de um bloco de folha luma resultante da divisão de árvore quaternária de uma CTU e o logaritmo de base 2 do tamanho mínimo do bloco de codificação em amostras luma para CUs luma nos grupos de ladrilhos com tile_group_type igual a 2 (I) referentes ao SPS. Quando partition_constraints_override_flag é igual a 1, a diferença padrão pode ser substituída pelo tile_group_log2_diff_min_qt_min_cb_luma presente no cabeçalho de grupo de ladrilhos dos grupos de ladrilhos referentes ao SPS. O valor de sps_log2_diff_min_qt_min_cb_intra_tile_group_luma deve estar na faixa de 0 a CtbLog2SizeY – MinCbLog2SizeY, inclusive. O logaritmo de base 2 do tamanho mínimo em amostras luma de um bloco de folha luma resultante da árvore quaternária de uma CTU é derivado da seguinte forma: MinQtLog2SizeIntraY = sps_log2_diff_min_qt_min_cb_intra_tile_group_luma +
MinCbLog2SizeY sps_log2_diff_min_qt_min_cb_inter_tile_group especifica a diferença padrão entre o logaritmo de base 2 do tamanho mínimo em amostras luma de um bloco de folha luma resultante da divisão de árvore quaternária de uma CTU e o logaritmo de base 2 do tamanho mínimo do bloco de codificação luma em amostras luma para CUs luma nos grupos de ladrilhos com tile_group_type igual a 0 (B) ou 1 (P) referentes ao SPS.
Quando partition_constraints_override_flag é igual a 1, a diferença padrão pode ser substituída pelo tile_group_log2_diff_min_qt_min_cb_luma presente no cabeçalho de grupo de ladrilhos dos grupos de ladrilhos referentes ao SPS.
O valor de sps_log2_diff_min_qt_min_cb_inter_tile_group deve estar na faixa de 0 a CtbLog2SizeY – MinCbLog2SizeY, inclusive.
O logaritmo de base 2 do tamanho mínimo em amostras luma de um bloco de folha luma resultante da divisão de árvore quaternária de uma CTU é derivado da seguinte forma: MinQtLog2SizeInterY – sps_log2_diff_min_qt_min_cb_inter_tile_group + MinCbLog2SizeY sps_max_mtt_hierarchy_depth_inter_tile_groups especifica a profundidade máxima de hierarquia padrão para unidades de codificação resultantes da divisão de árvore de múltiplos tipos de uma folha de árvore quaternária em grupos de ladrilhos com tile_group_type igual a 0 (B) ou 1 (P) referentes ao SPS.
Quando partition_constraints_override_flag é igual a 1, a profundidade máxima de hierarquia padrão pode ser substituída por tile_group_max_mtt_hierarchy_depth_luma presente no cabeçalho de grupo de ladrilhos dos grupos de ladrilhos referentes ao SPS.
O valor de sps_mtt_hiearchy_depth_inter_tile_groups deve estar na faixa de 0 a CtbLog2SizeY – MinCbLog2SizeY, inclusive. sps_max_mtt_hierarchy_depth_intra_tile_groups_luma especifica a profundidade máxima de hierarquia padrão para unidades de codificação resultantes da divisão de árvore de múltiplos tipos de uma folha de árvore quaternária em grupos de ladrilhos com tile_group_type igual a 2 (I) referentes ao SPS.
Quando partition_constraints_overrride_flag é igual a 1, a profundidade máxima de hierarquia padrão pode ser substituída por tile_group_max_mtt_hierarchy_depth_luma presente no cabeçalho de grupo de ladrilhos dos grupos de ladrilhos referentes ao SPS.
O valor de sps_max_mtt_hierarchy_depth_intra_tile_groups_luma deve estar na faixa de 0 a CtbLog2SizeY – MinCbLog2SizeY, inclusive. sps_log2_diff_max_bt_min_qt_intra_tile_group_luma especifica a diferença padrão entre o logaritmo de base 2 do tamanho máximo (largura ou altura) em amostras luma de um bloco de codificação luma que pode ser dividido usando uma divisão binária e o tamanho mínimo (largura ou altura) em amostras luma de um bloco de folha luma resultante de divisão de árvore quaternária de uma CTU em grupos de ladrilhos com tile_group_type igual a 2 (I) referentes ao SPS.
Quando partition_constraints_override_flag é igual a 1, a diferença padrão pode ser substituída pelo tile_group_log2_diff_max_bt_min_qt_luma presente no cabeçalho de grupo de ladrilhos dos grupos de ladrilhos referentes ao SPS.
O valor de sps_log2_diff_max_tt_min_qt_intra_tile_group_luma deve estar na faixa de 0 a CtbLog2SizeY – MinQtLog2SizeIntraY, inclusive.
Quando sps_log2_diff_max_tt_min_qt_intra_tile_group_luma não está presente, o valor de sps_log2_diff_max_tt_min_qt_intra_tile_group_luma é inferido como igual a 0. sps_log2_diff_max_tt_min_qt_intra_tile_group_luma especifica a diferença padrão entre o logaritmo de base 2 do tamanho máximo (largura ou altura) em amostras luma de um bloco de codificação luma que pode ser dividido usando uma divisão ternária e o tamanho mínimo (largura ou altura) em amostras luma de um bloco de folha luma resultante de divisão de árvore quaternária de uma CTU em grupos de ladrilhos com tile_group_type igual a 2 (I) referentes ao SPS.
Quando partition_constraints_override_flag é igual a 1, a diferença padrão pode ser substituída pelo tile_group_log2_diff_max_tt_min_qt_luma presente no cabeçalho de grupo de ladrilhos dos grupos de ladrilhos referentes ao SPS.
O valor de sps_log2_diff_max_tt_min_qt_intra_tile_group_luma deve estar na faixa de 0 a CtbLog2SizeY – MinQtLog2SizeIntraY, inclusive.
Quando sps_log2_diff_max_tt_min_intra_tile_group_luma não está presente, o valor de sps_log2_diff_max_tt_qt_intra_tile_group_luma é inferido como igual a 0.
TABELA 32 Semântica RBSP de conjunto de parâmetros de sequência sps_log2_diff_max_bt_min_qt_inter_tile_group especifica a diferença padrão entre o logaritmo de base 2 do tamanho máximo (largura ou altura) em amostras luma de um bloco de codificação luma que pode ser dividido usando uma divisão binária e o tamanho mínimo (largura ou altura) em amostras luma de um bloco de folha luma resultante de divisão de árvore quaternária de uma CTU em grupos de ladrilhos com tile_group_type igual a 0 (B) ou 1 (P) referentes ao SPS.
Quando partition_constraints_overrride_flag é igual a 1, a diferença padrão pode ser substituída pelo tile_group_log2_diff_max_bt_min_qt_luma presente no cabeçalho de grupo de ladrilhos dos grupos de ladrilhos referentes ao SPS.
O valor de sps_log2_diff_max_bt_min_qt_inter_tile_group deve estar na faixa de 0 a CtbLog2SizeY – MinQtLog2SizeInterY, inclusive.
Quando sps_log2_diff_max_bt_min_qt_inter_tile_group não está presente, o valor de sps_log2_diff_max_bt_min_qt_inter_tile_group é inferido como igual a 0. sps_log2_diff_max_tt_min_qt_inter_tile_group especifica a diferença padrão entre o logaritmo de base 2 do tamanho máximo (largura ou altura) em amostras luma de um bloco de codificação luma que pode ser dividido usando uma divisão ternária e o tamanho mínimo (largura ou altura) em amostras luma de um bloco de folha luma resultante de divisão de árvore quaternária de uma CTU em grupos de ladrilhos com tile_group_type igual a 0 (B) ou 1 (P) referentes ao SPS.
Quando partition_constraints_overrride_flag é igual a 1, a diferença padrão pode ser substituída pelo tile_group_log2_diff_max_tt_min_qt_luma presente no cabeçalho de grupo de ladrilhos dos grupos de ladrilhos referentes ao SPS.
O valor de sps_log 2_diff_max_tt_min_qt_inter_tile_group deve estar na faixa de 0 a CtbLog2SizeY – MinQtLog2SizeInterY, inclusive.
Quando sps_log2_diff_max_tt_min_qt_inter_tile_group não está presente, o valor de sps_log2_diff_max_tt_min_qt_inter_tile_group é inferido como igual a 0. sps_log2_diff_min_qt_min_cb_intra_tile_group_chroma especifica a diferença padrão entre o logaritmo de base 2 do tamanho mínimo em amostras luma de um bloco de folha croma resultante de divisão de árvore quaternária de uma CRU croma com treeType igual a DUAL_TREE_CHROMA e o logaritmo de base 2 do tamanho mínimo de bloco de codificação em amostras luma para CUs croma com treeType igual a DUAL_TREE_CHROMA em grupos de ladrilhos com tile_group_type igual a 2 (I) referentes ao SPS.
Quando partition_constraints_override_flag é igual a 1, a diferença padrão pode ser substituída pelo tile_group_log2_diff_min_qt_mi_cb_chroma presente no cabeçalho de grupo de ladrilhos dos grupos de ladrilhos referentes ao SPS.
O valor de sps_log2_diff_min_qt_min_cb_intra_tile_group_chroma deve estar na faixa de 0 a CtbLog2SizeY – MinCbLog2SizeY, inclusive.
Quando não presente, o valor de sps_log2_diff_min_qt_min_cb_intra_tile_group_chroma é inferido como igual a 0. O logaritmo de base 2 do tamanho mínimo em amostras luma de um bloco de folha croma resultante de divisão de árvore quaternária de uma CTU com treeType igual a DUAL_TREE_CHROMA é derivado da seguinte forma: MinQtLog2SizeIntraC – sps_log2_diff_min_qt_min_cb_intra_tile_group_chroma + MinCbLog2SizeY sps_max_mtt_hierarchy_depth_intra_tile_groups_chroma especifica a profundidade máxima de hierarquia padrão para unidades de codificação croma resultantes da divisão de árvore de múltiplos tipos de uma folha de árvore quaternária croma com treeType igual a DUAL_TREE_CHROMA em grupos de ladrilhos com tile_group_type igual a 2 (I) referentes ao SPS.
Quando partition_constraints_override_flag é igual a 1, a profundidade máxima de hierarquia padrão pode ser substituída por tile_group_max_mtt_diearchy_depth_chroma presente no cabeçalho de grupo de ladrilhos dos grupos de ladrilhos referentes ao SPS.
O valor de sps_max_mtt_hierarchy_depth_intra_tile_groups_chorma deve estar na faixa de 0 a CtbLog2SizeY – MinCbLog2SizeY, inclusive.
Quando não presente, o valor de sps_max_mtt_hierarchy_depth_intra_tile_groups_chroma é inferido como igual a 0. sps_log2_diff_max_bt_min_qt_intra_tile_group_chroma especifica a diferença padrão entre o logaritmo de base 2 do tamanho máximo (largura ou altura) em amostras luma de um bloco de codificação croma que pode ser dividido usando uma divisão binária e o tamanho mínimo (largura ou altura) em amostras luma de um bloco de folha croma resultante de divisão de árvore quaternária de uma CTU croma com treeType igual a DUAL TREE CHROMA em grupos de ladrilhos com tile_group_type igual a 2 (I) referentes ao SPS. Quando partition_constraints_override_flag é igual a 1, a diferença padrão pode ser substituída pelo tile_group_log2_diff_max_bt_min_qt_chroma presente no cabeçalho de grupo de ladrilhos dos grupos de ladrilhos referentes ao SPS. O valor de sps_log2_diff_max_bt_min_qt_intra_tile_group_chroma deve estar na faixa de 0 a sps_log2_diff_max_bt_min_qt_intra_tile_group_chroma não está presente, o valor de sps_log2_diff_max_bt_min_qt_intra_tile_group_chroma é inferido como igual a 0.
TABELA 33 Semântica RBSP de conjunto de parâmetros de sequência sps_log2_diff_max_tt_min_qt_intra_tile_group_chroma especifica a diferença padrão entre o logaritmo de base 2 do tamanho máximo (largura ou altura) em amostras luma de um bloco de codificação croma que pode ser dividido usando uma divisão ternária e o tamanho mínimo (largura ou altura) em amostras luma de um bloco de folha croma resultante de divisão de árvore quaternária de uma CTU croma com treeType igual a DUAL_TREE_CHROMA em grupos de ladrilhos com tile_group_type igual a 2 (I) referentes ao SPS. Quando partition_constraints_override_flag é igual a 1, a diferença padrão pode ser substituída pelo tile_group_log2_diff_max_tt_min_qt_chroma presente no cabeçalho de grupo de ladrilhos dos grupos de ladrilhos referentes ao SPS. O valor de sps_log2_diff_max_tt_min_qt_intra_tile_group_chroma deve estar na faixa de 0 a CtbLog2SizeY – MinQtLog2SizeIntraC, inclusive. Quando sps_log2_diff_max_tt_min_qt_intra_tile_group_chroma não está presente, o valor de sps_log2_diff_max_tt_min_qt_intra_tile_group_chroma é inferido como igual a 0. sps_sao_enabled_flag igual a 1 especifica que o processo de deslocamento adaptativo de amostra é aplicado à figuração reconstruída após o processo de filtro de deblocagem, sps sao enabled flag igual a 0 especifica que o processo de deslocamento adaptativo de amostra não é aplicado à figuração reconstruída após o processo de filtro de deblocagem. sps_alf_enabled_flag igual a 0 especifica que o filtro de laço adaptativo está desabilitado, sps alf enabled flag igual a 1 especifica que o filtro de laço adaptativo está habilitado. pcm_enabled_flag igual a 0 especifica que a sintaxe relacionada a PCM (elementos de sintaxe pcm_sample_bit_depth_luma_minus1, pcm_sample_bit_depth_chroma_minus1, log2_min_pcm_luma_coding_block_size_minus3, log2_diff_max_min_pcm_luma_coding_block_size, pcm_loop_filter_disabled_flag, pcm_flag, pcm_alignment_zero_bit e estrutura de sintaxe pem_sample( )) não está presente no CVS. NOTA 2 Quando MinCbLog2SizeY é igual a 6 e pcm_enabled_flag é igual a 1, a sintaxe relacionada a dados de PCM (elementos de sintaxe pcm flag, pcm alignment zero bit e estrutura de sintaxe pcm sample( )) não está presente no CVS, pois o tamanho máximo de blocos de codificação que podem transmitir sintaxe relacionada a dados de amostra de PCM está restrito a ser menor ou igual a Min( CtbLog2SizeY, 5 ). Consequentemente, MinCbLog2SizeY igual a 6 com pcm_enabled_flag igual a 1 não é uma configuração adequada para transmitir dados de amostra de PCM no CVS; pcm_sample_bit_depth_luma_minus1 especifica o número de bits usado para representar cada um dos valores de amostra de PCM do componente luma da seguinte forma: PcmBitDepthY = pcm_sample_bit_depth_luma_minus1 - 1 O valor de PcmBitDepthY deve ser menor ou igual ao valor de BitDepthY. pcm_sample_bit_depth_chroma_minus1 especifica o número de bits usado para representar cada um dos valores de amostra de PCM do componente croma da seguinte forma: PcmBitDepthC – pcm_sample_bit_depth_luma_minus1 + 1 O valor de PcmBitDepthC deve ser menor ou igual ao valor de BitDepthC. Quando ChromaArrayType é igual a 0, pcm_sample_bit_depth_chroma_minus1 não é usado no processo de decodificação e os decodificadores devem ignorar seu valor. log2_min_pcm_luma_coding_block_size_minus3 mais 3 especifica o tamanho mínimo de blocos de codificação com pcm_flag igual a 1. A variável Log2MinIpcmCbSizeY é definida igual a log2_min_pcm_luma_coding_block_size_minus3 + 3. O valor de Log2MinIpcmCbSizeY deve estar na faixa de Min( MinCbLog2SizeY, 5 ) a Min( CtbLog2SizeY, 5 ), inclusive. log2_diff_max_min_pcm_luma_coding_block_size especifica a diferença entre o tamanho máximo e mínimo de blocos de codificação com pcm_flag igual a 1. A variável Log2MaxIpcmCbSizeY é definida igual a log2_diff_max_min_pcm_luma_coding_block_size + Log2MinIpcmCbSizeY. O valor de Log2MaxIpcmCbSizeY deve ser menor ou igual a Min( CtbLog2SizeY, 5 ). pcm_loop_filter_disabled_flag especifica se o processo de filtro de laço está desabilitado em amostras reconstruídas em uma unidade de codificação com pcm_flag igual a 1 da seguinte forma: - Se pcm_loop_filter_disabled_flag for igual a 1, os processos de filtro de deblocagem e filtro de deslocamento adaptativo de amostra nas amostras reconstruídas em uma unidade de codificação com pcm_flag igual a1 estão desabilitados. - De outro modo (valor de pcm loop filter disabled flag é igual a 0), os processos de filtro de deblocagem e filtro de deslocamento adaptativo de amostra nas amostras reconstruídas em uma unidade de codificação com pcm_flag igual a 1 não estão desabilitados. Quando pcm loop filter disabled flag não está presente, o mesmo é inferido como igual a 0.
TABELA 34 Semântica RBSP de conjunto de parâmetros de sequência sps_ref_wraparound_enabled_flag igual a 1 especifica que a compensação de movimento envolvente horizontal é aplicada na predição inter. sps_ref_wraparound_enabled_flag igual a 0 especifica que a compensação de movimento envolvente horizontal não é aplicada. sps_ref_wraparound_offset especifica o deslocamento usado para calcular a posição envolvente horizontal em amostras luma, ref_wraparound_offset não deve ser igual a 0, e não deve ser maior que pic_width_in_luma_samples, e deve ser um múltiplo inteiro de MinCbSizeY. sps_temporal_mvp_enabled_flag igual a 1 especifica que tile_group_temporal_mvp_enabled_flag está presente nos cabeçalhos de grupo de ladrilhos dos grupos com tile_group_type não igual a 1 no CVS. sps_temporal_mvp_enabled_flag igual a 0 especifica que tile_group_temporal_mvp_enabled_flag não está presente em cabeçalhos de grupo de ladrilhos e que preditores de vetor de movimento temporal não são usados no CVS. sps_sbtmvp_enabled_flag igual a 1 especifica que os preditores de vetor de movimento temporal baseados em sub-bloco podem ser usados na decodificação de imagens com todos os grupos de ladrilhos com tile_group_type não igual a 1 no CVS. sps sbtmvp enabled flag igual a 0 especifica que os preditores de vetor de movimento temporal baseados em sub-bloco não são usados no CVS. Quando sps_sbtmvp_enabled_flag não está presente, o mesmo é inferido como igual a 0. sps_amvr_enabled_flag igual a 1 especifica que a resolução de diferença de vetor de movimento adaptativo é usada na codificação de vetor de movimento.
amvr_enabled_flag igual a 0 especifica que a resolução de diferença de vetor de movimento adaptativo não é usada na codificação de vetor de movimento. sps_bdof_enabled_flag igual a 0 especifica que a predição inter de fluxo óptico bidirecional está desabilitada. sps_bdof_enabled_flag igual a 1 especifica que a predição inter de fluxo óptico bidirecional está habilitada. sps_cclm_enabled_flag igual a 0 especifica que a predição intra de modelo linear de componentes cruzados de componente luma para componente croma está desabilitada. sps_cclm_enabled_flag igual a 1 especifica que a predição intra de modelo linear de componentes cruzados de componente luma para componente croma está habilitada. sps_mts_intra_enabled_flag igual a 1 especifica que tu_mts_idx indica o uso de kernels de transformada DCT-VIII e DST-VII para unidades de codificação inta. sps_mts_intra_enable_flag igual a 0 especifica que tu_mts_idx não indica o uso de kernels de transformada DCT-VIII e DST-VII para unidades de codificação intra. sps_mts_inter_enabled_flag especifica que tu_mts_idx indica o uso de kernels de transformada DCT-VIII e DST-VII para unidades de codificação inter, sps_mts_inter_enabled_flag igual a 0 especifica que tu_mts_idx docs não indica o uso de kernels de transformada DCT-VIII e DST-VII para unidades de codificação inter. sps_affine_enabled_flag especifica se a compensação de movimento baseada em modelo afim pode ser usada para predição inter. Se sps_affine_enabled_flag for igual a 0. A sintaxe deve ser restringida de modo que nenhuma compensação de movimento baseada em modelo afim seja usada no CVS, e inter_affine_flag e cu_affine_type_flag não estejam presentes na sintaxe de unidade de codificação do CVS. De outro modo, ( sps_affine_enabled_flag é igual a 1), a compensação de movimento baseada em modelo afim pode ser usada no CVS. sps_affine_type_flag especifica se a compensação de movimento baseada em modelo afim de 6 parâmetros pode ser usada para predição inter. Se sps_affine_type_flag for igual a 0, a sintaxe deve ser restringida de modo que nenhuma compensação de movimento baseada em modelo afim de 6 parâmetros seja usada no CVS, e cu_affine_type_flag não esteja presente na sintaxe de unidade de codificação no CVS. De outro modo, (sps_affine_type_flag é igual a 1), a compensação de movimento baseada em modelo afim de 6 parâmetros pode ser usada no CVS. Quando não presente, o valor de sps_affine_type_flag é inferido como igual a 0. sps_gbi_enabled_flag especifica se a bi-predição com pesos de CU pode ser usada na predição inter. Se sps_gbi_enabled_flag for igual a 0, a sintaxe deve ser restringida de modo que nenhuma bi-predição com pesos de CU seja usada no CVS, e gbi_idx não esteja presente na sintaxe de unidade de codificação do CVS. De outro modo, (sps_gbi_enabled_flag é igual a 1), a bi-predição com pesos de CU pode ser usada no CVS. sps_cpr_enabled_flag igual a 1 especifica que a referência de figuração atual pode ser usada na decodificação de imagens no CVS. sps_cpr_enabled_flag igual a 0 especifica que a referência de figuração atual não é usada no CVS. Quando sps_cpr_enabled_flag não está presente. O mesmo é inferido como igual a 0. Quando sps_cpr_enabled_flag é igual a 1, a figuração decodificada atual é usada como uma figuração de referência e é colocada na última posição na lista de imagens de referência
0. Essa figuração de referência é marcada como uma figuração de referência de longo prazo. (F.d. (SI.): a figuração de referência de longo prazo não foi introduzida em VVC.) sps_clip_enabled_flag especifica que ciip_flag pode estar presente na sintaxe de unidade de codificação para unidades de codificação inter. sps_ciip_enabled_flag igual a 0 especifica que ciip_flag não está presente na sintaxe de unidade de codificação para unidades de codificação inter.
TABELA 35 Semântica RBSP de conjunto de parâmetros de sequência sps_triangle_enabled_flag especifica se a compensação de movimento baseada em formato triangular pode ser usada para predição inter. sps_triangle_enabled_flag igual a 0 especifica que a sintaxe deve ser restringida de modo que nenhuma compensação de movimento baseada em formato triangular seja usada no CVS, e merge_triangle_flag e merge_triangle_idx não estejam presentes na sintaxe de unidade de codificação do CVS. sps_triangle_enabled_flag igual a 1 especifica que a compensação de movimento baseada em formato triangular pode ser usada no CVS. sps_ladf_enabled_flag igual a 1, especifica 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. sps_num_ladf_intervals_minus2 mais 1 especifica o número de elementos de sintaxe sps_ladf_delta_threshold_minus1[ i ] abd sps_ladf_qp_offset[ i ] que estão presentes no SPS. O valor de sps_num_ladf_intervals_minus2 deve estar na faixa de 0 a 3, inclusive. sps_ladf_lowest_interval_qp_offset especifica o deslocamento usado para derivar a variável qP como especificado na cláusula 8.6.2.6.3. O valor de sps_ladf_lowest_interval_qp_offset deve estar na faixa de 0 a 63, inclusive. sps_ladf_qp_offset[ i ] especifica a matriz de deslocamento usada para derivar a variável qP como especificado na cláusula 8.6.2.6.3. O valor de sps_ladf_qp_offset[ i ] deve estar na faixa de 0 a 63, inclusive sps_ladf_delta_threshold_minus1[ i ] é usado para calcular os valores de SpsLadfIntervalLowerBound[ i ], que especifica o limite inferior do i-ésimo intervalo de nível de intensidade luma. O valor de sps_ladf_delta_threshold_minus1[ i ] deve estar na faixa de 0 a 2BitDepthY – 3, inclusive. O valor de SpsLadfIntervalLowerBound[ 0 ] é definido igual a 0. Para cada valor de i na faixa de 0 a sps_num_ladf_intervals_minus2, inclusive, a variável SpsLadfIntervalLowerBound[ i + 1 ] é derivada da seguinte forma: SpsLadfIntervalLowerBound[ i + 1 ] = SpsLandIntervalLowerBound[ i ] + sps_ladf_delta_threshold_minus1[ i ] +1
[0215] Entretanto, por exemplo, pelo menos algumas informações de acordo com as modalidades anteriormente mencionadas do presente documento podem ser incluídas na sintaxe de alto nível, conforme ilustrado na Tabela 36 ou nas Tabelas 37 a 39. Alternativamente, pelo menos algumas das informações de acordo com as modalidades anteriormente mencionadas do presente documento podem ser sinalizadas sendo incluídas na sintaxe de alto nível. Alternativamente, pelo menos algumas das informações de acordo com as modalidades anteriormente mencionadas podem ser incluídas em uma sintaxe de conjunto de parâmetros de figuração (PPS). Alternativamente, pelo menos algumas das informações de acordo com as modalidades anteriormente mencionadas podem ser sinalizadas sendo incluídas na sintaxe PPS. Por exemplo, as Tabelas 37 a 39 podem representar consecutivamente uma sintaxe, e os elementos de sintaxe incluídos na sintaxe podem ser sequencialmente sinalizados, configurados ou analisados.
TABELA 36 TABELA 37
TABELA 38
TABELA 39
[0216] Por exemplo, como ilustrado na Tabela 36 ou Tabelas 37 a 39, as informações representadas pelos elementos de sintaxe incluídos na sintaxe PPS ou semântica dos elementos de sintaxe podem ser representadas como nas Tabelas 40 a 42.
TABELA 40 Semântica RBSP de conjunto de parâmetros de figuração pps_pic_parameter_set_id identifica o PPS para referência por outros elementos de sintaxe. O valor de pps_pic_parameter_set_id deve estar na faixa de 0 a 63, inclusive.
Pps_seq_parameter_set_id especifica o valor de sps_seq_parameter_set_id para o SPS ativo.
O valor de pps_seq_parameter_set_id deve estar na faixa de 0 a 15, inclusive. single_tile_in_pic_flag igual a 1 especifica que há apenas um ladrilho em cada figuração referente ao PPS. single_tile_in_pic_flag igual a 0 especifica que há mais de um ladrilho em cada figuração referente ao PPS.
É um requisito de conformidade de fluxo de bit que o valor de single_tile_in_pic_flag seja igual para todos os PPSs que são ativados dentro de um CVS. num_tile_columns_minus1 mais 1 especifica o número de coluna de ladrilho que particionam a figuração. num_tile_columns_minus1 deve estar na faixa de 0 a PicWidthInCtbsY – 1, inclusive.
Quando não presente, o valor de num_tile_columns_minus1 é inferido como igual a 0. num_tile_rows_minus1 mais 1 especifica o número de linhas de ladrilho que particionam a figuração. num_tile_rows_minus1 deve estar na faixa de 0 a PicHeightInCtbsY – 1, inclusive.
Quando não presente, o valor de num_tile_rows_minus1 é inferido como igual a 0. A variável NumTileInPic é definida igual a ( num_tile_columns_minus1 – 1 ) * ( num_tile_rows_minus1 – 1 ). Quando single_tile_in_pic_flag é igual a 0. NumTilesInPic deve ser maior que 1. uniform_tile_spacing_flag igual a 1 especifica que os limites de coluna de bloco e, de modo semelhante, os limites de linha de bloco são distribuídos uniformemente pela figuração. uniform_tile_spacing_flag igual a 0 especifica que os limites de coluna de bloco e, de modo semelhante, os limites de linha de bloco não são distribuídos uniformemente na figuração, porém sinalizados explicitamente usando os elementos de sintaxetile_column_width_minus1 [ i ] e tile_row_height_minus1 [ i ]. Quando não presente, o valor de uniform_tile_spacing_flag é inferido como igual a 1. tile_column_width_minus1[ i ] mais 1 especifica a largura da i-ésima coluna de ladrilho em unidades de CTBs. tile_row_height_minus1[ i ] mais 1 especifica a altura da i-ésima linha de ladrilho em unidades de CTBs.
As seguintes variáveis são derivadas invocando o raster CTB e o processo de conversão de varredura de ladrilho como especificado na cláusula 6.5.1: - A lista ColWidth[ i ] para 1 na faixa de 0 a num_tile_columns_minus1, inclusive, especificando a largura da i-ésima coluna de ladrilho em unidades de CTBs. - a lista RowHeight[ j ] para j na faixa de 0 a num_tie_rows_minus1, inclusive, especificando a altura da j-ésima linha de ladrilho em unidades de CTBs. - a lista ColBd[ i ] para i na faixa de 0 a num_tile_columns_minus1 – 1, inclusive, especificando a localização do limite de i-ésima coluna de ladrilho em unidades de CTBs. - a lista RowBd[ j ] para na faixa de 0 a num_tile_rows_minus1 + 1, inclusive, especificando a localização do limite de j-ésima linha de ladrilho em unidades de CTBs. - a lista CtbAddrRsToTs[ ctbAddrRs ] para ctbAddrRs na faixa de 0 a PicSizeInCtbsY – 1, inclusive, especificando a conversão de um endereço CTB na varredura raster CTB de uma figuração em um endereço CRB na varredura de ladrilho. a lista CtbAddrTsToRs[ ctbAddrTs ] para ctbAddrTs na faixa de 0 a PicSizeInCtbsY – 1, inclusive, especificando a conversão de um endereço CTB na varredura de ladrilho em um endereço CTB na varredura raster CTB de uma figuração. - a lista TileId[ ctbAddrTs ] para ctbAddrTs na faixa de 0 a PicSizeInCtbsY – 1, inclusive, especificando a conversão de um endereço CTB na varredura de ladrilho em um ID de ladrilho. - a lista NumCtusInTile[ tileIdx ] para tileIdx na faixa de 0 a PicSizeInCtbsY – 1, inclusive, especificando a conversão de um índice de ladrilho no número de CTUs no ladrilho.
- a lista FirstCtbAddrTs[ tileIdx ] para tileIdx na faixa de 0 a NumTilesInPic – 1, inclusive, especificando a conversão de um ID de ladrilho no endereço CTB na varredura de ladrilho do primeiro CTB no ladrilho. - a lista ColumnWidthInLumaSamples[ i ] para i na faixa de 0 a num_tile_columns_minus1, inclusive, especificando a largura da i-ésima coluna de largura em unidades de amostras luma. - a lista RowHeighyInLumaSamples[ j ] para j na faixa de 0 a num_tile_rows_minus1, inclusive, especificando a altura da j-ésima linha de ladrilho em unidades de amostras luma. Os valores de ColumnWidthInLumaSamples[ i ] para i na faixa de 0 a num_tile_column_minus1, inclusive, e RowHeightInLumaSamples[ j ] para j na faixa de 0 a num_tile_rows_minus1, inclusive, devem ser maiores que 0.
TABELA 41 Semântica RBSP de conjunto de parâmetros de figuração loop_filter_across_tiles_enabled_flag igual a 1 especifica que operações de filtragem em laço podem ser realizadas através dos limites de ladrilho em imagens referentes ao PPS. loop_filter_across_tiles_enabled_flag igual a 0 especifica que operações de filtragem em laço não são realizadas através dos limites de ladrilho em imagens referentes ao PPS. As operações de filtragem em laço incluem o filtro de deblocagem, filtro de deslocamento adaptativo de amostra e operações de filtro de laço adaptativo. Quando não presente, o valor de loop_filter_tiles_enabled_flag é inferido como igual a 1. init_qp_minus26 mais 26 especifica o valor inicial de TileGroupQpY para cada grupo de ladrilhos referente ao PPS. O valor inicial em TileGroupQpY é modificado na camada de grupo de ladrilhos quando um não-zero de tile_group_qp_delta é decodificado. O valor de init_qp_minus26 deve estar na faixa de –( 26 – QpBdOffsetY ) a – 37, inclusive. transform_skip_enabled_flag igual a 1 especifica que tu_mts_idx indica o saltao da transformada para blocos residuais luma na sintaxe de unidade de codificação. transform_skip_enabled_flag igual a 0 especifica que tu_mts_idx não indica o salto da transformada para sintaxe de codificação de blocos residuais luma. log2_transform_skip_max_size_minu2 especifica o tamanho máximo de bloco usado para salto de transformada, e deve estar na faixa de 0 a 3. Se transform_skip_enalbled_flag for igual a 0 ou não presente, o valor de log2_transform_skip_max_size_minus2 é inferido como igual a 0. A variável MaxTsSize é definida para 1 << (log2_transform_skip_max_size_minus2 + 2). cu_qp_delta_enabled_flag igual a 1 especifica que o elemento de sintaxe diff_cu_qp_delta_depth está presente no PPS e que cu_qp_delta_abs pode estar presente na sintaxe de unidade de transformada. cu_qp_delta_enabled_flag igual a 0 especifica que o elemento de sintaxe diff_cu_qp_delta_depth não está no PPS e que cu_qp_delta_abs não está presente na sintaxe de unidade de transformada. diff_cu_qp_delta_depth especifica a diferença de profundidade de árvore de codificação entre as unidades de codificação de profundidade mínima da árvore de codificação e unidades de codificação de profundidade máxima de árvore de codificação que transmitem cu_qp_delta_abs e cu_qp_delta_sign_flag. A faixa de valor de diff_qp_delta_depth é especificada da seguinte forma: - Se tile_group_type for igual a I, o valor de diff_cu_qp_delta_depth deve estar na faixa de 0 a log2_ctu_size_minus2 – log2_min_qt_size_intra_tile_groups_minus2 – MaxMttDepthY, inclusive. - De outro modo, (tile_group_type não é igual a I), o valor de diff_cu_qp_delta_depth deve estar na faixa de 0 a log2_ctu_size_minus2 – log2_min_qt_size_inter_tile_groups_minus2 + MaxMttDepthY, inclusive.
Quando não presente, o valor de diff_cu_qp_delta_depth é inferido como igual a 0. [Ed. (BB): O problema aqui é que MaxMttDepthY é derivado no nível do grupo de ladrilhos. No caso de partition_constraints_override_enabled_flag igual a 1, seria necessário analisar o cabeçalho do grupo de ladrilhos para saber o valor de MaxMttDepthY.] pps_cb_qp_offset e pps_cr_qp_offset especificam os deslocamentos para o parâmetro de quantização de luma Qp’Y usado para for derivar Qp’Cb e Qp’Cr, respectivamente. Os valores de pps_cb_qp_offset e pps_cr_qp_offset devem estar na faixa de –12 a +12, inclusive. Quando ChromaArrayType é igual a 0, pps_cb_qp_offset e pps_cr_qp_offset não são usados no processo de decodificação e os decodificadores devem ignoram seu valor. pps_tile_group_chroma_qp_offsets_present_flag igual a 1 indica que os elementos de sintaxe tile_group_cb_qp_offset e tile_group_cr_qp_offset estão presentes nos cabeçalhos de grupo de ladrilhos associados, pps_tile_group_chroma_qp_offsets_present_flag igual a 0 indica que esses elementos de sintaxe não estão presentes nos cabeçalhos de grupo de ladrilhos associados. Quando ChromaArrayType é igual a 0, pps_tile_group_chroma_qp_offsets_present_flag deve ser igual a 0. deblocking_filter_control_present_flag igual a 1 especifica a presença de elementos de sintaxe de controle de filtro de deblocagem no PPS. deblocking_filter_control_present_flag igual a 0 especifica a ausência de elementos de sintaxe de controle de filtro de deblocagem no PPS. deblocking_filter_override_enabled_flag igual a 1 especifica a presença de deblocking_filter_override_flag nos cabeçalhos de grupo de ladrilhos para figurações referentes ao PPS. deblocking_filter_override_enabled_flag igual a 0 especifica a ausência de deblocking_filter_override_flag nos cabeçalhos de grupo de ladrilhos para figurações referentes ao PPS. Quando não presente, o valor de deblocking_filter_override_enabled_flag é inferido como igual a 0.
TABELA 42 Semântica RBSP de conjunto de parâmetros de imagem pps_deblocking_filter_disabled_flag igual a 1 especifica que a operação de filtro de deblocagem não é aplicada para os grupos de ladrilhos referentes ao PPS em que tile_group_deblocking_filter_disabled_flag não está presente. pps_deblocking_filter_disabled_flag igual a 0 especifica que a operação do filtro de deblocagem é aplicada para grupos de ladrilhos referentes ao PPS em que tile_group_deblocking_filter_disabled_flag não está presente. Quando não presente, o valor de pps_deblocking_filter_disabled_flag é inferido como igual a 0. pps_beta_offset_div2 e pps_tc_offset_div2 especificam os deslocamentos de parâmetro de deblocagem padrão para β e tC (dividido por 2) que são aplicados para grupos de ladrilhos referentes ao PPS, a menos que os deslocamentos de parâmetro de deblocagem padrão sejam substituídos pelos deslocamentos de parâmetro de deblocagem presentes nos cabeçalhos de grupo de ladrilhos dos grupos de ladrilhos referentes ao PPS. Os valores de pps_beta_offset_div2 e pps_tc_offset_div2 devem estar, ambos, na faixa de -6 a 6, inclusive. Quando não presente, o valor de pps_beta_offset_div2 e pps_tc_offset_div2 é inferido como igual a 0.
[0217] Entretanto, por exemplo, pelo menos algumas informações de acordo com as modalidades anteriormente mencionadas do presente documento podem ser incluídas em uma sintaxe de unidade de codificação, conforme ilustrado nas Tabelas 43 a 47. Alternativamente, pelo menos algumas das informações de acordo com as modalidades anteriormente mencionadas do presente documento podem ser sinalizadas sendo incluídas na sintaxe de unidade de codificação. Por exemplo, as Tabelas 43 a 47 podem representar consecutivamente uma sintaxe, e os elementos de sintaxe incluídos na sintaxe podem ser sequencialmente sinalizados, configurados ou analisados.
TABELA 43
TABELA 44
TABELA 45
TABELA 46
TABELA 47
[0218] Por exemplo, como ilustrado nas Tabelas 43 a 47, as informações representadas pelos elementos de sintaxe incluídos na sintaxe de unidade de codificação ou semântica dos elementos de sintaxe podem ser representadas como nas Tabelas 48 a 51.
TABELA 48 Semântica de unidade de codificação As seguintes atribuições são feitas para x = x0..x0 - cbWidth – 1 e y = y0..y – cbHeight – 1: CbPosX[ x ][ y ] = x0 CbPosY[ x ][ y ] = y0 CbWidth[ x ][ y ] = cbWidth CbHeight[ x ][ y ] = cbHeiight cu_skip_flag[ x0 ][ y0 ] igual a 1 especifica que para a unidade de codificação atual, quando se decodifica um grupo de P ou B ladrilhos, nenhum outro elemento de sintaxe, exceto um ou mais dos seguintes, são analisados após cu_skip_flag[ x0 ][ y0 ]: a mesclagem mais sinalizador MVD mmvd_flag[ x0 ][ y0 ], a mesclagem mais índice MVD mmvd_merge_flag[ x0 ][ y0 ], a mesclagem mais índice de distância MVD mmvd distance_idx[ x0 ][ y0 ], a mesclagem mais índice de distância MVD mmvd_direction_idx[ x0 ][ y0 ], o índice candidato de mesclagem merge_idx[ x0 ][ y0 ], o sinalizador de mesclagem baseada em sub-bloco merge_subblock_flag[ x0 ][ y0 ], o índice candidato de mesclagem baseada em sub-bloco merge_subblock_idx[ x0 ][ y0 ], o sinalizador de triângulo de mesclagem merge_triangle_flag[ x0 ][ y0 ], e o índice de triângulo de mesclagem merge_triangle_index[ x0 ][ y0 ]. cu_skip_flag[ x0 ][ y0 ] igual a 0 especifica que a unidade de codificação não é ignorada Os índices de matriz x0, y0 especificam a localização ( x0, y0 ) da amostra luma superior esquerda do bloco de codificação considerado em relação à amostra luma superior esquerda da figuração. Quando cu_skip_flag[ x0 ][ y0 ] não está presente, o mesmo é inferido como igual a 0. pred_mode_flag igual a 0 especifica que a unidade de codificação atual é codificada em modo de predição inter. pred_mode_flag igual a 1 especifica que a unidade de codificação atual é codificada em modo de predição intra. A variável CuPredMode[ x ][ y ] é derivada da seguinte forma para x – x0..x0 + cbWidth – 1 e y - y0..y0 + cbHeight – 1: - Se pred_mode_flag for igual a 0, CuPredMode[ x ][ y ] é definido igual a MODE_INTER.
De outro modo, (pred_mode_flag é igual a 1), CuPredMode[ x ][ y ] é definido igual a MODE_INTRA. Quando pred_mode_flag não está presente, a variável CuPredMode[ x ][ y ] é inferida como igual a MODE_INTRA para x = x0..x0 – cbWidth – 1 e y = y0..y0 – cbHeight – 1. A variável MaxMtsIdx é derivada conforme especificado na Tabela a seguir. Tabela – Especificação de MaxMtsIdx Transform skip CuPredMode[ CuPredMode[ enabled flag x0 ][ y0 ] x0 ][ y0 ] && ( Ma == == log2TbWidth <= xMtsIdx MODE_INTER && MODE_INTRA && MaxTsSize && sps mts inter sps mts intra Log2TbHeight enabled flag enabled flag <= MaxTsSize ) 0 0 0 0 1 0 0 1 4 0 1 0 4 1 0 0 5 0 1 1 pcm_flag[ x0 ][ y0 ] igual a 1 especifica que a estrutura de sintaxe pcm_sample( ) está presente e a estrutura de sintaxe transform_tree( ) não está presente na unidade de codificação incluindo o bloco de codificação luma na localização ( x0, y0 ). pct_flag[ x0 ][ y0 ] igual a 0 especifica que a estrutura de sintaxe pcm_sample( ) não está presente. Quando pcm_flag[ x0 ][ y0 ] não está presente, o mesmo é inferido como igual a
0. O valor de pcm_flag[ x0 + i ][ y0 – j ] com i = 1..cbWidth – 1, j = 1..cbHeight – 1 é inferido como igual a pcm_flag[ x0 ][ y0 ]. pcm_alignment_zero_bit é um bit igual a 0.
TABELA 49 Semântica de unidade de codificação intra_luma_ref_idx[ x0 ][ y0 ] especifica o índice de linha de referência de predição intra IntraLumaRefLineIdx[ x ][ y ] para x = x0..x0 + cbWidth – 1 e y = y0..y0 +cbHeight – 1 como especificado na Tabela a seguir. Quando intra_luma_ref_idx[ x0 ][ y0 ] não está presente, o mesmo é inferido como igual a 0. Tabela – Especificação de IntraLumaRefLineIdx[ x ][ y ] com base em intra_luma_ref_idx[ x0 ][ y0 ] intra_luma_ref_idx[ x0 ][ IntraLumaRefLineIdx[ x y0 ] ][ y ] x = x0..x0 + cbWidth – 1 y = y0..y0 + cbHeight – 1 0 0 1 1 2 3 Os elementos de sintaxe intra_luma_mpm_flag[ x0 ][ y0 ], intra_luma_mpm_idx[ x0 ][ y0 ] e intra_luma_mpm_remainder[ x0 ][ y0 ] especificam o modo de predição intra para amostras luma. Os índices de matriz x0, y0 especificam a localização ( x0, y0 ) da amostra luma superior esquerda do bloco de codificação considerado em relação à amostra luma superior esquerda da figuração. Quando intra_luma_mpm_flag[ x0 ][ y0 ] é igual a 1, o modo de predição intra é inferido a partir de uma unidade de codificação de predição intra vizinha de acordo com a cláusula 8.3.2. Quando intra_luma_mpm_flag[ x0 ][ y0 ] não está presente, o mesmo é inferido como igual a 1. intra_chroma_pred_mode[ x0 ][ y0 ] especifica o modo de predição intra para amostras croma. Os índices de matriz x0, y0 especificam a localização ( x0, y0 ) da amostra luma superior esquerda do bloco de codificação considerado em relação à amostra luma superior esquerda da figuração. mvp_10_flag[ x0 ][ y0 ] especifica o índice de preditor de vetor de movimento da lista 0 em que x0, y0 especificam a localização ( x0, y0 ) da amostra luma superior esquerda do bloco de codificação considerado em relação à amostra luma superior esquerda da figuração. Quando mvp_10_flag[ x0 ][ y0 ] não está presente, o mesmo é inferido como igual a 0. mvp_11_flag[ x0 ][ y0 ] tem a mesma semântica que mvp_10_flag, com 10 e a lista 0 substituída por 11 e a lista 1, respectivamente.
inter_pred_idx[ x0 ][ y0 ] especifica se list0, list1 ou bi-predição é usada para a unidade de codificação atual de acordo com a Tabela a seguir. Os índices de matriz x0, y0 especificam a localização ( x0, y0 ) da amostra luma superior esquerda do bloco de codificação considerado em relação à amostra luma superior esquerda da figuração. Tabela – Associação de nome ao modo de predição inter Nome de inter_pred_idc inter_pr ed_idc ( cbWidth + ( cbWidth + cbHeight =cbHeight ) ! = 8 )==8 0 PRED_L0 PRED_L0 1 PRED_L1 PRED_L1 2 PRED BI N.A.
Quando inter_pred_idc[ x0 ][ y0 ] não está presente, o mesmo é inferido como igual a PRED_L0. ref_idx_10[ x0 ][ y0 ] especifica o índice de figuração de referência de lista 0 para a unidade de codificação atual. Os índices de matriz x0, y0 especificam a localização ( x0, y0 ) da amostra luma superior esquerda do bloco de codificação considerado em relação à amostra luma superior esquerda da figuração. Quando ref_idx_10[ x0 ][ y0 ] não está presente, o mesmo é inferido como igual a 0. É um requisito de conformidade de fluxo de bits que, quando a figuração de referência correspondente a ref_idx_10 [x0] [y0] para a unidade de codificação atual é a figuração decodificada atual, inter_pred_idx [x0] [y0] seja igual a 0.
TABELA 50 Semântica de unidade de codificação ref_idx_11[ x0 ][ y0 ] tem a mesma semântica que ref_idx_10, com 10 e a lista 0 substituída por 11 e a lista 1, respectivamente. inter_affine_flag[ x0 ][ y0 ] igual a 1 especifica que para a unidade de codificação atual, quando se decodifica um grupo de P ou B ladrilhos, a compensação de movimento baseada em modelo afim é usada para gerar as amostras de predição da unidade de codificação atual. inter_affine_flag[ x0 ][ y0 ] igual a 0 especifica que a unidade de codificação não é prevista por compensação de movimento baseada em modelo afim. Quando inter_affine_flag[ x0 ][ y0 ] não está presente, o mesmo é inferido como igual a 0. cu_affine_type_flag[ x0 ][ y0 ] igual a 1 especifica que para a unidade de codificação atual, quando se decodifica um grupo de P ou B ladrilhos, a compensação de movimento baseada em modelo afim de 6 parâmetros é usada para gerar as amostras de predição da unidade de codificação atual. cu_affine_type_flag[ x0 ][ y0 ] igual a 0 especifica que a compensação de movimento baseada em modelo afim de 4 parâmetros é usada para gerar as amostras de predição da unidade de codificação atual. MotionModelIdc[ x ][ y ] representa o modelo de movimento de uma unidade de codificação, como ilustrado na Tabela a seguir. Os índices de matriz x, y especificam a localização de amostra luma ( x, y ) em relação à amostra luma superior esquerda da figuração. A variável MotionModelIdc[ x ][ y ] é derivada da seguinte forma para x = x0..x0 – cbWidth – 1 e y = y0..y0 – cbHeight – 1: - Se merge_flag[ x0 ][ y0 ] for igual a 1, o seguinte se aplica: MotionModelIdc[ x ][ y ] = merge_subblock_flag[ x0 ][ y0 ] - De outro modo, se (merge_flag[ x0 ][ y0 ] for igual a 0), o seguinte se aplica: MotionModelIdc[ x ][ y ] = inter_affine_flag[ x0 ][ y0 ] + cu_affine_type_flag[ x0 ][ y0 ] Tabela – Interpretação de MorionModelIdc[ x0 ][ y0 ] MotionModelId Modelo de movimento para c[ x ][ y ] compensação de movimento 0 Movimento translacional 1 Movimento afim de 4 parâmetros 2 Movimento afim de 6 parâmetros É um requisito de conformidade de fluxo de bits que, quando a figuração de referência correspondente a ref_idx_10 [x0] [y0] para a unidade de codificação atual é a figuração decodificada atual, MotionModelIdc[ x ][ y ] seja igual a 0. amvr_flag[ x0 ][ y0 ] especifica a resolução de diferença de vetor de movimento. Os índices de matriz x0, y0 especificam a localização ( x0, y0 ) da amostra luma superior esquerda do bloco de codificação considerado em relação à amostra luma superior esquerda da figuração, amvr_flag[ x0 ][ y0 ] igual a 0 especifica que a resolução da diferença de vetor de movimento é 1/4 de uma amostra luma. amvr flag[ x0 ][ y0 ] igual a 1 especifica que a resolução da diferença de vetor de movimento é adicionalmente especificada por amvr_4pel_flag[ x0 ][ y0 ]. Quando amvr_cpr_flag[ x0 ][ y0 ] não está presente, o mesmo é inferido da seguinte forma: - Se sps_cpr_enabled_flag for igual a 1. amvr_flag[ x0 ][ y0 ] é inferido como igual a 1. - De outro modo, ( sps_cpr_enabled_flag é igual a 0 ). amvr_flag[ x0 ][ y0 ] é inferido como igual a 0. amvr_4pel_flag[ x0 ][ y0 ] igual a 1 especifica que a resolução da diferença de vetor de movimento é quatro amostras luma. Os índices de matriz x0, y0 especificam a localização ( x0, y0 ) da amostra luma superior esquerda do bloco de codificação considerado em relação à amostra luma superior esquerda da figuração. Quando amvr_4pel_flag[ x0 ][ y0 ] não está presente, o mesmo é inferido como igual a 0. A variável MvShift é definida igual a ( amvr flag[ x0 ][ y0 ] . amvr 4pel flag[ x0 ][ y0 ] ) << 1 e as variáveis MvdL0[ x0 ][ y0 ][ 0 ]. MvdL0[ x0 ][ y0 ][ 1 ], MvdL1[ x0 ][ y0 ][ 0 ], MvdL1[ x0 ][ y0 ][ 1 ] são modificadas da seguinte forma: MvdL0[ x0 ][ y0 ][ 0 ] = MvdL0[ x0 ][ y0 ][ 0 ] << ( MvShift + 2 ) MvdL0[ x0 ][ y0 ][ 1 ] = MvdL0[ x0 ][ y0 ][ 1 ] << ( MvShift - 2 ) MvdL1[ x0 ][ y0 ][ 0 ] = MvdL1[ x0 ][ y0 ][ 0 ] << ( MvShift + 2 ) MvdL1[ x0 ][ y0 ][ 1 ] = MvdL1[ x0 ][ y0 ][ 1 ] << ( MvShift - 2 ) TABELA 51 Semântica de unidade de codificação gbi_idx[ x0 ][ y0 ] especifica o índice de peso de bi-predição com pesos de CU. Os índices de matriz x0, y0 especificam a localização ( x0, y0 ) da amostra luma superior esquerda do bloco de codificação considerado em relação à amostra luma superior esquerda da figuração. Quando gbi_idx[ x0 ][ y0 ] não está presente, o mesmo é inferido como igual a
0. cu_cbf igual a 1 especifica que a estrutura de sintaxe transform_tree( ) está presente para a unidade de codificação atual. cu_cbf igual a 0 especifica que a estrutura de sintaxe transform_tree( ) não está presente para a unidade de codificação atual. Quando cu_cbf não está presente, o mesmo é inferido da seguinte forma: - Se cu_skip_flag[ x0 ][ y0 ] for igual a 1, cu_cbf é inferido como igual a 0.
- De outro modo, cu_cbf é inferido como igual a 1.
[0219] Entretanto, por exemplo, pelo menos algumas informações de acordo com as modalidades anteriormente mencionadas do presente documento podem ser incluídas em uma sintaxe de unidade de transformada, conforme ilustrado na Tabela 52 ou Tabelas 53 e 54. Alternativamente, pelo menos algumas das informações de acordo com as modalidades anteriormente mencionadas do presente documento podem ser sinalizadas sendo incluídas na sintaxe de unidade de transformada. Por exemplo, as Tabelas 53 e 54 podem representar consecutivamente uma sintaxe, e os elementos de sintaxe incluídos na sintaxe podem ser sequencialmente sinalizados, configurados ou analisados.
TABELA 52 TABELA 53
TABELA 54
[0220] Por exemplo, como ilustrado na Tabela 52 ou Tabelas 53 e 54, as informações representadas pelos elementos de sintaxe incluídos na sintaxe de unidade de transformada ou semântica dos elementos de sintaxe podem ser representadas como na Tabela 55.
TABELA 55 Semântica de unidade de transformada Os níveis de coeficiente de transformada são representados pelas matrizes TransCoeffLevel[ x0 ][ y0 ]( cIdx ][ xC ][ yC ]. Os índices de matriz x0, y0 especificam a localização ( x0, y0 ) da amostra luma superior esquerda do bloco de transformada considerado em relação à amostra luma superior esquerda da figuração. O índice de matriz cldx especifica um indicador para o componente de cor; o mesmo é igual a 0 para Y, 1 para Cb e 2 para Cr. Os índices de matriz xC e yC especificam a localização de coeficiente de transformada ( xC, yC ) dentro do bloco de transformada atual. Quando o valor de TransCoeffLevel[ x0 ][ y0 ][ cldx ][ xC ][ yC ] não é especificado na cláusula
7.3.4.12, o mesmo é inferido como igual a 0. tu_cbf_luma[ x0 ][ y0 ] igual a 1 especifica que o bloco de transformada luma contém um ou mais níveis de coeficiente de transformada não é igual a 0. Os índices de matriz x0, y0 especificam a localização (x0,y0) da amostra luma superior-esquerda do bloco de transformada considerado em relação à amostra luma superior-esquerda da figuração. Quando tu_cbf_luma[ x0 ][ y0 ] não está presente, seu valor é inferido como igual a 0. tu_cbf_cb[ x0 ][ y0 ] igual a 1 especifica que o bloco de transformada Cb contém um ou mais níveis de coeficiente de transformada não iguais a 0. Os índices de matriz x0, y0 especificam a localização superior esquerda ( x0, y0 ) do bloco de transformada considerado. Quando tu_cbf_cb[ x0 ][ y0 ] não está presente, seu valor é inferido como igual a 0. tu_cbf_cr[ x0 ][ y0 ] igual a 1 especifica que o bloco de transformada Cr contém um ou mais níveis de coeficiente de transformada não iguais a 0. Os índices de matriz x0, y0 especificam a localização superior esquerda ( x0, y0 ) do bloco de transformada considerado. Quando tu_cbf_cr[ x0 ][ y0 ] não está presente, seu valor é inferido como igual a
0. cu_qp_delta_abs especifica o valor absoluto da diferença CuQpDeltaVal entre o parâmetro de quantização da unidade de codificação atual e sua predição. cu_qp_delta_sign_flag especifica o sinal de CuQpDeltaVal da seguinte forma: - Se cu_qp_delta_sign_flag for igual a 0, o CuQpDellaVal correspondente tem um valor positivo. - De outro modo, (cu_qp_delia_sign_flag é igual a 1 ), o CuQpDeltaVal correspondente tem um valor negativo. Quando cu_qp_delta_sign_flag não está presente, o mesmo é inferido como igual a 0. Quando cu_qp_delta_abs está presente, as variáveis IsCuQpDeltaCoded e CuQpDeltaVal são derivadas da seguinte forma: lsCuQpDeltaCoded = 1 CuQpDeltaVal = cu_qp_delta_abs * ( 1 - 2 * cu_delta_sign_flag ) O valor de CuQpDeltaVal deve estar na faixa de -( 32 + QpBdOffsetY / 2 ) a +( 31 - QpBdOffsetY / 2 ), inclusive. tu_mts_idx[ x0 ][ y0 ] especifica quais kernels de transformada são aplicados às amostras residuais ao longo da direção horizontal e vertical do bloco de transformada luma associado. Os índices de matriz x0, y0 especificam a localização (x0,y0) da amostra luma superior-esquerda do bloco de transformada considerado em relação à amostra luma superior-esquerda da figuração. Quando tu_mts_idx[ x0 ][ y0 ] não está presente, o mesmo é inferido como igual a 1.
A variável TrHorType que especifica o kernel de transformada horizontal e a variável TrVerType que especifica o kernel de transformada vertical são derivadas na Tabela a seguir dependendo de tu_mts_idx[ xTbY ][ yThY ]. Tabela - Especificação de TrHorType e TrVerType dependendo de tu_mts_idx[ x0 ][ y0 ] tu mts idx[ x0 ][ y0 ] T T Is rHorType rVerType TrafoSkip Max MaxM MaxM MtsIdx - - 1 tvIdx - - 4 tvIdx - - 5 0 - 0 - - 1 1 1 1 0 1 0 0 0 - 1 2 1 1 0 - 2 3 2 1 0 - 3 4 1 2 0 - 4 5 2 2 0
[0221] Entretanto, por exemplo, pelo menos algumas informações de acordo com as modalidades anteriormente mencionadas do presente documento podem ser incluídas na sintaxe de codificação residual, conforme ilustrado nas Tabelas 6 a 9 descritas acima ou Tabelas 56 a 59. Alternativamente, pelo menos algumas das informações de acordo com as modalidades anteriormente mencionadas do presente documento podem ser sinalizadas sendo incluídas na sintaxe de unidade de transformada. Por exemplo, as Tabelas 6 a 9 ou Tabelas 56 a 59 podem representar consecutivamente uma sintaxe, e os elementos de sintaxe incluídos na sintaxe podem ser sequencialmente sinalizados, configurados ou analisados.
TABELA 56
TABELA 57
TABELA 58
TABELA 59
[0222] Por exemplo, como ilustrado nas Tabelas 6 a 9 ou Tabelas 56 a 59 descritas acima, as informações representadas pelos elementos de sintaxe incluídos na sintaxe de codificação residual ou semântica dos elementos de sintaxe podem ser representadas conforme descrito acima com as Tabelas 6 a 9.
[0223] Entretanto, por exemplo, uma modalidade do presente documento pode realizar um escalonamento ou procedimento de transformada com base em pelo menos alguns dos elementos de sintaxe ou sintaxe mencionados acima. Por exemplo, uma modalidade pode derivar as amostras residuais (ou matriz de amostras residuais) para as amostras do bloco atual (transformada), como ilustrado na Tabela 60.
TABELA 60 Processo de escalonamento e transformação As entradas para esse processo são: - uma localização luma ( xTbY, yTbY ) especificando a amostra superior esquerda do bloco de transformada luma atual em relação à amostra luma superior esquerda da figuração atual, - uma variável cldx que especifica o componente de cor do bloco atual. - uma variável nTbW que especifica a altura de bloco de transformada, - uma variável nTbH que especifica a largura de bloco de transformada, A saída desse processo é a matriz (nTbW)x(nTbH) de amostras residuais resSamples[ x ][ y ] com x = 0..nTbW – 1. y = 0..nTbH – 1. As variáveis bitDepth, bdShift e tsShift são derivadas da seguinte forma: bitDepth = ( eldx = = 0 ) ? BitDepthY : BitDepthC tsShift = 5 + ( ( Log2( nTbW ) + Log2( nTbH ) ) / 2 ) A matriz (nTbW)x(nTbH) de amostras residuais resSamples é derivada da seguinte forma:
1. O processo de escalonamento para coeficientes de transformada conforme especificado na cláusula 8.5.3 é invocado com a localização do bloco de transformada (xTbY, yTbY), a largura do bloco de transformada nTbW e a altura do bloco de transformada nTbH, a variável de componente de cor cldx e a profundidade de bits do componente de cor atual bitDepth como entradas e a saída é uma matriz (nTbW)x(nTbH)
de coeficientes de transformada escalonados d.
2. A matriz (nTbW)x(nTbH) de amostras residuais r é derivada da seguinte forma: - Se IsYrafoSkip for igual a 1 e eldx for igual a 0, os valores de matriz de amostra residual r[ x ][ y ] com x = 0..nTbW – 1, y = 0.nTbH – 1 são derivados da seguinte forma: r[ x ][ y ] = d[ x ][ y ] << tsShift - De outro modo, (IsTrafoSkip é igual a 0 ou eldx não é igual a 0), o processo de transformação para coeficientes de transformada escalonados como especificado na cláusula 8.5.4.1 é invocado com a localização de bloco de transformada ( xTbY, yTbY ), a largura de bloco de transformada nTbW e a altura de bloco de transformada nTbH, a variável de componente de cor cldx e a matriz (nTbW)x(nTbH) de coeficientes de transformada escalonados d como entradas, e a saída é uma matriz (nTbW)x(bTbH) de amostras residuais r.
3. As amostras residuais resSamples[ x ][ y ] com x = 0..nTbW – 1, y = 0..nTbH – 1 são derivadas da seguinte forma: resSamples[ x ][ y ] = ( r[ x ][ y ] + ( 1 < < ( bdShift – 1 ) ) ) > > bdShift
[0224] Entretanto, alternativamente, por exemplo, uma modalidade do presente documento pode realizar o procedimento de transformada para o coeficiente de transformada com base em pelo menos alguns dos elementos de sintaxe ou sintaxe supracitados. Por exemplo, uma modalidade pode derivar as amostras residuais (ou matriz de amostras residuais) com base nas informações sobre os coeficientes de transformada (escalonados) como ilustrado na Tabela 61.
TABELA 61 Processo de transformação para coeficientes de transformada escalonados
8.5.4.1 Geral As entradas para esse processo são: - uma localização luma ( xTbY, yTbY ) especificando a amostra superior esquerda do bloco de transformada luma atual em relação à amostra luma superior esquerda da figuração atual. uma variável nTbW que especifica a largura do bloco de transformada atual. - uma variável nTbH que especifica a altura do bloco de transformada atual. - uma variável cldx que especifica o componente de cor do bloco atual. uma matriz (nTbW)x(nTbH) d[ x][ y ] de coeficientes de transformada escalonados com x – 0..nTbW – 1, y – 0..nTbH – 1. A saída desse processo é a matriz (nTbW)x(nTbH) r[ x ][ y ] de amostras residuais com x = 0..nTbW – 1, y = 0..nTbH – 1. As variáveis nonZeroW e nonZeroH são derivadas da seguinte forma:
4. Cada coluna (vertical) de coeficientes de transformada escalonados d[ x ][ y ] com x = 0..nonZeroW – 1, y – 0..nonZeroH – 1 é transformada para c[ x ][ y ] com x =
0..nonZeroW – 1, y = 0..nTbH – 1 by invocando o processo de transformação unidimensional como especificado na cláusula 8.5.4.2 para cada coluna x = 0..nonZeroW – 1 com a altura do bloco de transformada nTbH, a altura não-zero dos coeficientes de transformada escalonados nonZeroH, uma lista d[ x ][ y ] com y = 0..nonZeroH – 1 e a variável de tipo de transformada trType definida igual a TrVerType como entradas, e a saída é uma lista c[ x ][ y ] com y = 0..nTbH – 1.
5. Os valores de amostra intermediários g[ x ][ y ] com x = 0..nonZeroW – 1, y = 0..nTbH – 1 são derivados da seguinte forma: g[ x ][ y ] = Clip3( CoeffMin, CoeffMax. ( e[ x ][ y ] + 64 ) >> 7 )
6. Cada linha (horizontal) da matriz resultante g[ x ][ y ] com x = 0..nonZeroW – 1, y = 0..nTbH – 1 é transformada em r[ x ][ y ] com x = 0..nTbW – 1, y = 0..nTbH – 1 invocando o processo de transformação unidimensional conforme especificado na cláusula 8.5.4.2 para cada linha y = 0..nTbH 1 com a largura do bloco de transformada bTbW, a largura não zero da matriz resultante g[ x ][ y ] non-zeroW, uma lista g[ x ][ y ] com x = 0..nonZeroW – 1 e a variável de tipo de transformada trType definida igual a TrHorType como entradas, e a saída é uma lista r[ x ][ y ] com x – 0..nTbW- 1.
[0225] Entretanto, por exemplo, em uma modalidade do presente documento, a binarização conforme ilustrado nas Tabelas 62 e 63 pode ser usada para pelo menos alguns dos elementos de sintaxe ou sintaxe supracitados.
Alternativamente, uma modalidade pode codificar/decodificar pelo menos alguns dos elementos de sintaxe supracitados usando a binarização como ilustrado nas Tabelas 62 e 63.
TABELA 62
TABELA 63
[0226] Entretanto, por exemplo, uma modalidade do presente documento pode atribuir o incremento de índice de contexto (ctxInc) para derivar (ou representar) o índice de contexto (ctxIdx) como ilustrado nas Tabelas 64 e 65 em relação a pelo menos alguns elementos de sintaxe ou sintaxe supracitados.
TABELA 64
TABELA 65
[0227] As Figuras 13 e 14 ilustram esquematicamente um exemplo de um método de codificação de vídeo/imagem e componentes relacionados de acordo com uma modalidade (ou modalidades) do presente documento.
[0228] O método revelado na Figura 13 pode ser realizado pelo aparelho de codificação revelado na Figura 2. Especificamente, por exemplo, S1300 ilustrado na Figura 13 pode ser realizado pelo preditor 220 do aparelho de codificação na Figura 14, S1310 ilustrado na Figura 13 pode ser realizado pelo processador residual 230 do aparelho de codificação na Figura 14, e S1320 ilustrado na Figura 13 pode ser realizado pelo codificador de entropia 240 do aparelho de codificação na Figura 14. O método revelado na Figura 13 pode incluir as modalidades anteriormente mencionadas no presente documento.
[0229] Com referência à Figura 13, o aparelho de codificação pode derivar amostras de predição realizando a predição no bloco atual (S1300). Por exemplo, o aparelho de codificação pode derivar as amostras de predição realizando a predição no bloco atual, e pode derivar informações sobre um modo de predição que realiza a predição. Por exemplo, o modo de predição pode ser um modo de intrapredição ou um modo de predição inter. Por exemplo, quando o modelo de predição é o modo de predição intra, o aparelho de codificação pode derivar as amostras de predição com base nas amostras ao redor do bloco atual.
Alternativamente, quando o modelo de predição é o modo de predição inter, o aparelho de codificação pode derivar as amostras de predição com base em amostras de referência dentro de uma figuração de referência do bloco atual.
[0230] O aparelho de codificação pode derivar amostras residuais para o bloco atual (S1310). Por exemplo, o aparelho de codificação pode derivar as amostras residuais (ou blocos residuais) para o bloco atual com base nas amostras originais e nas amostras de predição (ou blocos previstos) para o bloco atual. Aqui, as amostras residuais podem também ser representadas por uma matriz de amostra residual. Alternativamente, por exemplo, embora não ilustrado na Figura 13, o aparelho de codificação pode gerar amostras de reconstrução do bloco atual com base nas amostras de predição e nas amostras residuais. Por exemplo, o aparelho de codificação pode também gerar as amostras de reconstrução (ou blocos reconstruídos) adicionando as amostras residuais (ou blocos residuais) às amostras de predição (ou blocos previstos).
[0231] O aparelho de codificação pode codificar informações de imagem que incluem informações de modo de predição sobre a predição e informações relacionadas residuais sobre as amostras residuais (S1320).
[0232] Por exemplo, o aparelho de codificação pode gerar informações de modo de predição com base no modo de predição, e as informações de imagem podem incluir as informações de modo de predição. Ou seja, quando o bloco atual realiza a predição através do modo de predição intra, as informações de modo de predição podem incluir as informações sobre o modo de predição intra, e quando o bloco atual realiza a predição através do modo de predição inter, as informações de modo de predição podem incluir as informações sobre o modo de predição inter.
[0233] Por exemplo, o aparelho de codificação pode gerar as informações relacionadas residuais incluindo as informações sobre as amostras residuais (ou matriz de amostra residual), e as informações de imagem podem incluir as informações relacionadas residuais. As informações relacionadas às amostras residuais ou as informações relacionadas residuais podem incluir as informações sobre os coeficientes de transformada relacionados às amostras residuais.
[0234] Por exemplo, as informações relacionadas residuais podem incluir informações de codificação residuais (ou sintaxe de codificação residual).
Alternativamente, as informações relacionadas residuais podem incluir informações de unidade de transformada (ou sintaxe de unidade de transformada).
Alternativamente, as informações relacionadas residuais também podem incluir as informações de codificação residuais e as informações de unidade de transformada.
[0235] Por exemplo, em que as informações relacionadas residuais podem incluir o sinalizador de salto de transformada com base em um tamanho do bloco atual e um tamanho máximo de salto de transformada. Alternativamente, a possibilidade de as informações relacionadas residuais incluírem o sinalizador de salto de transformada pode ser determinada com base no tamanho do bloco atual e no tamanho máximo de salto de transformada. Por exemplo, o sinalizador de salto de transformada pode representar se o salto de transformada é aplicado ao bloco atual. Alternativamente, o sinalizador de salto de transformada também pode ser representado pelo elemento de sintaxe transform_skip_flag. Por exemplo, quando o valor do elemento de sintaxe transform_skip_flag é 0, o salto de transformada pode ser aplicado ao bloco atual, e quando o valor do elemento de sintaxe transform_skip_flag é 1, o salto de transformada pode não ser aplicado ao bloco atual. Alternativamente, de acordo com a configuração, quando o valor do elemento de sintaxe transform_skip_flag é 1, o salto de transformada pode ser aplicado ao bloco atual, e quando o valor do elemento de sintaxe transform_skip_flag é 0, o salto de transformada pode não ser aplicado ao bloco atual.
[0236] Por exemplo, o tamanho do bloco atual pode representar a largura do bloco atual e/ou a altura do bloco atual. O tamanho máximo de salto de transformada pode representar o tamanho máximo do bloco em que o Salto de Transformada (TS) está habilitado. Alternativamente, o tamanho máximo de salto de transformada também pode ser representado por MaxTsSize. Por exemplo, quando a largura do bloco atual ou a altura do bloco atual é menor ou igual ao tamanho máximo de salto de transformada, as informações relacionadas residuais podem incluir o sinalizador de salto de transformada.
[0237] Por exemplo, as informações de imagem podem incluir informações sobre o tamanho máximo de salto de transformada. Alternativamente, as informações sobre o tamanho máximo de salto de transformada podem ser codificadas (entropia) sendo incluídas nas informações de imagem. Por exemplo, o tamanho de transformada máximo pode ser representado com base nas informações sobre o tamanho máximo de salto de transformada. Por exemplo, as informações sobre o tamanho máximo de salto de transformada podem estar incluídos na sintaxe de alto nível, e a sintaxe de alto nível pode ser codificada (entropia) sendo incluída nas informações de imagem. Por exemplo, a sintaxe de alto nível pode ser uma sintaxe de unidade de Camada de Abstração de Rede (NAL), uma sintaxe de Conjunto de Parâmetros de Sequência (SPS), uma sintaxe de Conjunto de Parâmetros de Figuração (PPS) ou uma sintaxe de cabeçalho de fatia.
[0238] Alternativamente, por exemplo, as informações sobre o tamanho máximo de salto de transformada podem estar incluídas no SPS, e o tamanho de transformada máximo pode ser representado com base nas informações sobre o tamanho máximo de salto de transformada incluído no SPS. Alternativamente, por exemplo, as informações sobre o tamanho máximo de salto de transformada podem estar incluídas no PPS, e o tamanho de transformada máximo pode ser representado com base nas informações sobre o tamanho máximo de salto de transformada incluído no PPS. Aqui, o SPS ou o PPS pode representar a sintaxe SPS ou a sintaxe PPS, e outras sintaxes podem também ser usadas omitindo a sintaxe de termo.
[0239] Por exemplo, as informações sobre o tamanho máximo de salto de transformada podem incluir informações sobre um valor obtido pela soma de -2 a um valor logarítmico, e o valor logarítmico pode ser um valor logarítmico que tem uma base 2 para o tamanho máximo de salto de transformada. Ou seja, as informações sobre o tamanho máximo de salto de transformada podem representar informações sobre um valor obtido pela soma de -2 ao valor logarítmico que tem a base 2 do tamanho máximo de salto de transformada.
Alternativamente, por exemplo, as informações sobre o tamanho máximo de salto de transformada também podem incluir as informações sobre o valor logarítmico (que tem a base 2) do tamanho máximo de salto de transformada.
[0240] Por exemplo, as informações sobre o tamanho máximo de salto de transformada podem incluir um elemento de sintaxe log2_transform_skip_max_size_minus2. Alternativamente, as informações sobre o tamanho máximo de salto de transformada podem representar o elemento de sintaxe log2_transform_skip_max_size_minus2. Por exemplo, o elemento de sintaxe log2_transform_skip_max_size_minus2 pode estar incluído na sintaxe de alto nível, na sintaxe SPS ou na sintaxe PPS.
[0241] Por exemplo, com referência à Tabela 41, o tamanho máximo de salto de transformada pode ser representado com base em MaxTsSize = 1 << (log2_transform_skip_max_size_minus2 + 2). Aqui, o MaxTsSize pode representar o tamanho máximo de salto de transformada, e o log2_transform_skip_max_size_minus2 pode representar o valor do elemento de sintaxe log2_transform_skip_max_size_minus2. Além disso, o << pode representar um operador de deslocamento aritmético. Ou seja, o elemento de sintaxe log2_transform_skip_max_szie_minus2 pode representar o MaxTsSize usando o MaxTsSize = 1 << (log2_transform_skip_max_size_minus2 + 2). Alternativamente, o elemento de sintaxe log2_transform_skip_max_szie_minus2 pode representar o valor do elemento de sintaxe log2_transform_skip_max_szie_minus2 de acordo com o MaxTsSize. Alternativamente, o elemento de sintaxe log2_transform_skip_max_szie_minus2 pode representar o valor do elemento de sintaxe log2_transform_skip_max_szie_minus2 correspondente ao MaxTsSize. Por exemplo, o valor do elemento de sintaxe log2_transform_skip_max_size_minus2 pode ser representado por um dos valores candidatos de 0 a 3, porém não se limita a isso. Alternativamente, o valor do elemento de sintaxe log2_transform_skip_max_size_minus2 pode ser representado por 0, 1, 2 ou 3, porém não se limita a isso.
[0242] Além disso, por exemplo, o tamanho máximo de salto de transformada pode ser representado por um dos tamanhos candidatos incluindo 4, 8, 16 ou 32. O tamanho máximo de salto de transformada pode ser representado com base no valor do elemento de sintaxe log2_transform_skip_max_size_minus2.
Alternativamente, o tamanho máximo de salto de transformada pode ser representado por um dos tamanhos candidatos incluindo 4, 8, 16 ou 32 com base no valor do elemento de sintaxe log2_transform_skip_max_size_minus2. Por exemplo, quando o valor do elemento de sintaxe log2_transform_skip_max_size_minus2 é 0, o tamanho máximo de salto de transformada pode ser representado por 4 com base no 1 << (log2_transform_skip_max_size_minus2 + 2) supracitado. Alternativamente, quando o valor do elemento de sintaxe log2_transform_skip_max_size_minus2 é 1, o tamanho máximo de salto de transformada pode ser representado por 8 com base no 1 << (log2_transform_skip_max_size_minus2 + 2) supracitado.
Alternativamente, quando o valor do elemento de sintaxe log2_transform_skip_max_size_minus2 é 2, o tamanho máximo de salto de transformada pode ser representado por 16 com base no 1 << (log2_transform_skip_max_size_minus2 + 2) supracitado. Alternativamente, quando o valor do elemento de sintaxe log2_transform_skip_max_size_minus2 é 3, o tamanho máximo de salto de transformada pode ser representado por 32 com base no 1 << (log2_transform_skip_max_size_minus2 + 2) supracitado.
[0243] Por exemplo, o fato de que o tamanho máximo de salto de transformada é N pode representar que todas dentre a largura e a altura têm os tamanhos que são menores ou iguais a N. Alternativamente, o fato de que o tamanho máximo de salto de transformada é N pode representar que um valor maior da largura e da altura tem o tamanho que é menor ou igual a N.
Alternativamente, o fato de que o tamanho máximo de salto de transformada é N pode representar que um comprimento de um lado tem o tamanho que é menor ou igual a N no caso de um bloco quadrado.
[0244] Alternativamente, por exemplo, as informações sobre o tamanho máximo de salto de transformada também podem estar incluídas na sintaxe de alto nível, na sintaxe SPS ou na sintaxe PPS com base nas informações sobre se o salto de transformada está habilitado. Por exemplo, quando as informações sobre se o salto de transformada está habilitado representam as informações de que o salto de transformada está habilitado, as informações sobre o tamanho máximo de salto de transformada podem estar incluídas na sintaxe de alto nível, na sintaxe SPS ou na sintaxe PPS. Alternativamente, quando as informações sobre se o salto de transformada está habilitado representam informações de que o salto de transformada não está habilitado, as informações sobre o tamanho máximo de salto de transformada podem não estar incluídas na sintaxe de alto nível, na sintaxe SPS ou na sintaxe PPS.
[0245] Alternativamente, por exemplo, o tamanho máximo de salto de transformada também pode ser representado com base nas informações sobre se a Seleção de Transformada Múltipla (MTS) está habilitada. Alternativamente, o tamanho máximo de salto de transformada pode ser representado com base nas informações sobre se a MTS está habilitada e se o TS está habilitado.
[0246] Por exemplo, a sintaxe de alto nível pode incluir as informações sobre se a Seleção de Transformada Múltipla (MTS) está habilitada ou as informações sobre se o TS está habilitado. Alternativamente, as informações sobre se a MTS está habilitada ou as informações sobre se o TS está habilitado podem estar incluídas na sintaxe SPS ou na sintaxe PPS.
[0247] Por exemplo, as informações sobre se a MTS está habilitada podem ser representadas pelo elemento de sintaxe sps_mts_enabled_flag.
Alternativamente, as informações sobre se a MTS está habilitada podem incluir o elemento de sintaxe sps_mts_intra_enabled_flag ou o elemento de sintaxe sps_mts_inter_enabled_flag. Por exemplo, o elemento de sintaxe sps_mts_intra_enabled_flag ou o elemento de sintaxe sps_mts_inter_enabled_flag pode estar incluído na sintaxe SPS com base no elemento de sintaxe sps_mts_enabled_flag. O elemento de sintaxe sps_mts_intra_enabled_flag pode ser representado pelo elemento de sintaxe sps_explicit_mts_intra_enabled_flag, e o elemento de sintaxe sps_mts_inter_enabled_flag pode ser representado pelo elemento de sintaxe sps_explicit_mts_inter_enabled_flag. Por exemplo, as informações sobre se a MTS está habilitada podem ser representadas pelas informações de MTS habilitada.
[0248] Por exemplo, quando as informações sobre se a MTS está habilitada representam informações de que a MTS está habilitada, pode ser representado que a MTS habilitada = 1 ou o valor do elemento de sintaxe sps_mts_enabled_flag é 1. Alternativamente, pode ser representado que o valor do elemento de sintaxe sps_mts_enabled_flag é 1, e o valor do elemento de sintaxe sps_explicit_mts_intra_enabled_flag ou o elemento de sintaxe sps_explicit_mts_inter_enabled_flag é 1. Alternativamente, quando as informações sobre se a MTS está habilitada representam informações que a MTS não está habilitada, pode ser representado que a MTS habilitada = 0 ou o valor do elemento de sintaxe sps_mts_enabled_flag é 0. Alternativamente, pode ser representado que o valor do elemento de sintaxe sps_mts_enabled_flag é 1, e o valor do elemento de sintaxe sps_explicit_mts_intra_enabled_flag ou o elemento de sintaxe sps_explicit_mts_inter_enabled_flag é 0. Por exemplo, de acordo com a configuração, o valor também pode representar as informações correspondentes ao valor inversamente.
[0249] Por exemplo, as informações sobre se o TS está habilitado podem ser representadas pelas informações de TS habilitado ou o elemento de sintaxe sps_transform_skip_enabled_flag. Por exemplo, as informações sobre se a TS está habilitada podem ser representadas pelas informações de TS habilitada.
[0250] Por exemplo, quando as informações sobre se a TS está habilitada representam informações que a TS está habilitada, pode ser representado que a TS habilitada = 1 ou o valor do elemento de sintaxe sps_transform_skip_enabled_flag é 1. Alternativamente, quando as informações sobre se a TS está habilitada representam informações que a TS não está habilitada, pode ser representado que a TS habilitada = 0 ou o valor do elemento de sintaxe sps_transform_skip_enabled_flag é 0. Por exemplo, de acordo com a configuração, o valor pode representar as informações correspondentes ao valor inversamente.
[0251] Por exemplo, o tamanho máximo de salto de transformada pode ser representado por um dos tamanhos candidatos incluindo 8, 16 e 32 com base na sintaxe de alto nível. Por exemplo, os tamanhos candidatos podem incluir, também, 4. Alternativamente, por exemplo, o tamanho de salto de transformada pode ser derivado com base nas informações sobre se a MTS está habilitada.
Alternativamente, por exemplo, o tamanho máximo de salto de transformada pode ser representado por um dos tamanhos candidatos incluindo 8, 16 ou 32 com base nas informações sobre se a MTS está habilitada. Alternativamente, o tamanho de salto de transformada pode ser representado com base nas informações sobre se a MTS incluída na sintaxe de alto nível está habilitada. Alternativamente, por exemplo, as informações sobre o tamanho de salto de transformada podem estar incluídas na sintaxe de alto nível, e o tamanho de salto de transformada pode ser representado com base nas informações sobre o tamanho de salto de transformada. Aqui, as informações sobre o tamanho de salto de transformada também podem incluir as informações sobre se a MTS está habilitada como as informações capazes de derivar o tamanho de salto de transformada.
[0252] Por exemplo, com base nas informações sobre se a MTS está habilitada, isso representa as informações que a MTS está habilitada, o tamanho máximo de salto de transformada pode ser determinado com base no tamanho da MTS. Ou seja, quando as informações sobre se a MTS está habilitada representam as informações que a MTS está habilitada, o tamanho máximo de salto de transformada pode ser determinado com base no tamanho da MTS. Ou seja, o tamanho máximo de salto de transformada pode ser dependente da MTS.
O tamanho da MTS pode representar o tamanho máximo do bloco em que a MTS está habilitada. Por exemplo, quando o tamanho da MTS é 32 ou menos, o salto de transformada também pode ser habilitado para o bloco que tem o tamanho de 32 ou menos.
[0253] Alternativamente, por exemplo, com base nas informações sobre se a MTS está habilitada, isso representa as informações que a MTS está habilitada, o tamanho máximo de salto de transformada pode ser determinado como um tamanho predefinido. Ou seja, quando as informações sobre se a MTS está habilitada representam as informações que a MTS está habilitada, o tamanho máximo de salto de transformada pode ser determinado como o tamanho predefinido. Por exemplo, quando o tamanho predefinido é 8, o tamanho máximo de salto de transformada pode ser determinado como o tamanho predefinido, 8.
[0254] Alternativamente, por exemplo, com base nas informações sobre se a MTS está habilitada, isso representa as informações que a MTS está habilitada, a sintaxe de alto nível pode incluir as informações sobre o tamanho máximo de salto de transformada, e o tamanho máximo de salto de transformada pode ser representado com base nas informações sobre o tamanho máximo de salto de transformada. Ou seja, quando as informações sobre se a MTS está habilitada representam as informações que a MTS está habilitada, a sintaxe de alto nível pode incluir separadamente as informações sobre o tamanho máximo de salto de transformada, e o tamanho máximo de salto de transformada pode ser representado com base nas informações sobre o tamanho máximo de salto de transformada. Alternativamente, por exemplo, quando as informações sobre se a MTS está habilitada representam as informações que a MTS está habilitada, a sintaxe de alto nível pode incluir as informações sobre se o tamanho máximo de salto de transformada é representado com base no tamanho da MTS. Quando as informações sobre se o tamanho máximo de salto de transformada é representado com base no tamanho da MTS representam as informações de que o tamanho máximo de salto de transformada é representado com base no tamanho da MTS, a sintaxe de alto nível pode incluir as informações sobre o tamanho máximo de salto de transformada. As informações sobre o tamanho máximo de salto de transformada podem estar incluídas na sintaxe SPS ou na sintaxe PPS. Por exemplo, quando as informações sobre o tamanho máximo de salto de transformada incluídas na sintaxe de alto nível representam as informações sobre 32, o tamanho máximo de salto de transformada pode ser representado por 32 com base nas informações sobre o tamanho máximo de salto de transformada.
Alternativamente, quando o tamanho máximo de salto de transformada é determinado como 32, as informações sobre o tamanho máximo de salto de transformada incluído na sintaxe de alto nível podem ser representadas pelas informações sobre 32.
[0255] Alternativamente, por exemplo, com base nas informações sobre se a MTS está habilitada, isso representa as informações de que a MTS não está habilitada, o tamanho máximo de salto de transformada pode ser determinado com o tamanho predefinido. Ou seja, quando as informações sobre se a MTS está habilitada representam as informações que a MTS não está habilitada, o tamanho máximo de salto de transformada pode ser determinado como o tamanho predefinido. Por exemplo, quando o tamanho predefinido é 8, o tamanho máximo de salto de transformada pode ser determinado como o tamanho predefinido, 8.
[0256] Alternativamente, por exemplo, com base nas informações sobre se a MTS está habilitada, isso representa as informações que a MTS não está habilitada, a sintaxe de alto nível pode incluir as informações sobre o tamanho máximo de salto de transformada, e o tamanho máximo de salto de transformada pode ser representado com base nas informações sobre o tamanho máximo de salto de transformada. Ou seja, quando as informações sobre se a MTS está habilitada representam as informações que a MTS não está habilitada, a sintaxe de alto nível pode incluir separadamente as informações sobre o tamanho máximo de salto de transformada, e o tamanho máximo de salto de transformada pode ser representado com base nas informações sobre o tamanho máximo de salto de transformada. As informações sobre o tamanho máximo de salto de transformada podem estar incluídas na sintaxe SPS ou na sintaxe PPS. Por exemplo, quando as informações sobre o tamanho máximo de salto de transformada incluídas na sintaxe de alto nível representam as informações sobre 32, o tamanho máximo de salto de transformada pode ser representado por 32 com base nas informações sobre o tamanho máximo de salto de transformada. Alternativamente, quando o tamanho máximo de salto de transformada é determinado como 32, as informações sobre o tamanho máximo de salto de transformada incluído na sintaxe de alto nível podem ser representadas pelas informações sobre 32.
[0257] Por exemplo, as informações relacionadas residuais podem incluir as informações de índice de MTS sobre o tipo de transformada aplicado ao bloco atual. Por exemplo, as informações de índice de MTS podem ser representadas pelo elemento de sintaxe tu_mts_idx ou o elemento de sintaxe mts_idx. Por exemplo, as informações de índice de MTS podem estar incluídas na sintaxe de unidade de transformada ou na sintaxe de unidade de codificação. Por exemplo, as informações de índice de MTS podem representar as informações sobre o tipo de transformada ou o salto de transformada aplicado ao bloco atual.
Alternativamente, as informações de índice de MTS podem representar as informações sobre o tipo de transformada ou o salto de transformada aplicado ao bloco atual com base nas informações sobre se a MTS está habilitada e/ou as informações sobre se o salto de transformada está habilitado.
[0258] Por exemplo, as informações representadas pelas informações de índice de MTS podem ser representadas com base no bin da cadeia de bins nas informações de índice de MTS. Alternativamente, as informações representadas pelas informações de índice de MTS podem ser representadas com base no valor do índice de contexto do bin. Alternativamente, as informações representadas pelas informações de índice de MTS podem ser representadas com base no valor de índice de contexto do primeiro bin da cadeia de bins. Por exemplo, o índice de contexto (ctxIdx) pode ser representado com base no incremento de índice de contexto (ctxInc) e no deslocamento de índice de contexto (ctxIdxOffset).
[0259] Por exemplo, o valor do índice de contexto do primeiro bin para as informações de índice de MTS pode ser representado com base nas informações sobre se a MTS está habilitada, nas informações sobre se o salto de transformada está habilitado e no tamanho do bloco atual. Por exemplo, o valor do índice de contexto do primeiro bin para as informações de índice de MTS pode ser representado com base na Tabela 19 ou Tabela 22.
[0260] Por exemplo, com base nas informações sobre se a MTS está habilitada, que representa as informações que a MTS está habilitada e as informações sobre se o salto de transformada está habilitado, que representa que o salto de transformada está habilitado, o valor do índice de contexto pode ser representado comparando-se a largura do bloco atual com a altura do bloco atual.
Ou seja, quando as informações sobre se a MTS está habilitada representam as informações que a MTS está habilitada e as informações sobre se o TS está habilitado representam as informações de que o TS está habilitado, o valor do índice de contexto pode ser representado comparando-se a largura do bloco atual com a altura do bloco atual. Alternativamente, quando a largura do bloco atual e a altura do bloco atual são iguais, o valor do índice de contexto pode ser representado por 0. Alternativamente, quando a largura do bloco atual é maior que a altura do bloco atual, o valor do índice de contexto pode ser representado por 1, e quando a largura do bloco atual é menor que a altura do bloco atual, o valor do índice de contexto pode ser representado por 2.
[0261] Alternativamente, por exemplo, com base nas informações sobre se a MTS está habilitada, que representam as informações de que a MTS está habilitada, e a profundidade de árvore quaternária codificada (cqtDepth), o valor do índice de contexto pode ser representado. Ou seja, quando as informações sobre se a MTS está habilitada representam as informações que a MTS está habilitada, o valor do índice de contexto pode ser representado com base na cqtDepth. Por exemplo, o valor do índice de contexto pode ser representado por um valor obtido pela adição de 1 ao valor da cqtDepth, e pode ser representado por 1, 2, 3, 4, 5 ou
6.
[0262] Alternativamente, por exemplo, com base nas informações sobre se o salto de transformada está habilitado, que representam as informações de que o salto de transformada está habilitado, o valor do índice de contexto pode ser representado comparando-se a largura do bloco atual com a altura do bloco atual.
Ou seja, quando as informações sobre se o TS está habilitado representam as informações de que o TS está habilitado, o valor do índice de contexto pode ser representado comparando-se a largura do bloco atual com a altura do bloco atual.
Alternativamente, quando a largura do bloco atual e a altura do bloco atual são iguais, o valor do índice de contexto pode ser representado por 0.
Alternativamente, quando a largura do bloco atual é maior que a altura do bloco atual, o valor do índice de contexto pode ser representado por 1, e quando a largura do bloco atual é menor que a altura do bloco atual, o valor do índice de contexto pode ser representado por 2.
[0263] Alternativamente, por exemplo, o valor do índice de contexto pode representar o ctxInc e/ou o ctxIdx com base em pelo menos um dentre o tamanho do bloco, a razão da largura para a altura do bloco, seja para realizar a predição intra ou inter do bloco, seja para aplicar o salto de transformada ao vizinho, ou similares. Alternativamente, um modelo de contexto com base em pelo menos um dentre o tamanho do bloco, a razão da largura para a altura do bloco, seja para realizar a predição intra ou inter do bloco, seja para aplicar o salto de transformada ao vizinho, ou similares pode ser definido, e o valor do índice de contexto pode ser representado com base no modelo de contexto. Por exemplo, as informações sobre o tipo de transformada ou o salto de transformada para o bloco atual podem ser obtidas com base no índice de contexto ou no modelo de contexto.
[0264] Por exemplo, as informações relacionadas residuais podem ou não incluir o sinalizador de salto de transformada, conforme descrito acima. Por exemplo, quando as informações relacionadas residuais incluem o sinalizador de salto de transformada, as amostras residuais do bloco atual podem representar aquelas que são derivadas sem a transformada, e o sinal residual (ou informações relacionadas residuais) para o bloco atual pode ser sinalizado no domínio de pixel (domínio espacial) sem a transformada. Alternativamente, quando as informações relacionadas residuais não incluem o sinalizador de salto de transformada, as amostras residuais do bloco atual podem representar aquelas que são transformadas e derivadas, e o sinal residual (ou informações relacionadas residuais) para o bloco atual pode ser transformado e sinalizado no domínio de transformada.
[0265] O aparelho de codificação pode gerar um fluxo de bits codificando- se informações de imagem que incluem todas ou algumas informações supracitadas (ou elementos de sintaxe). Alternativamente, o aparelho de codificação pode emitir as informações codificadas sob a forma do fluxo de bits.
Além disso, o fluxo de bits pode ser transmitido ao aparelho de decodificação através de uma rede ou um meio de armazenamento. Alternativamente, o fluxo de bits pode ser armazenado em um meio de armazenamento legível por computador.
Por exemplo, o fluxo de bits também pode ser representado por informações de imagem ou informações de vídeo.
[0266] As Figuras 15 e 16 ilustram esquematicamente um exemplo de um método de decodificação de vídeo/imagem e componentes relacionados de acordo com uma modalidade (ou modalidades) do presente documento.
[0267] As Figuras 15 e 16 ilustram esquematicamente um exemplo de um método de decodificação de vídeo/imagem e componentes relacionados de acordo com uma modalidade (ou modalidades) do presente documento. O método revelado na Figura 15 pode ser realizado pelo aparelho de decodificação revelado na Figura 3. Especificamente, por exemplo, S1500 ilustrado na Figura 15 pode ser realizado pelo decodificador de entropia 310 do aparelho de decodificação na Figura 16, S1510 ilustrado na Figura 15 pode ser realizado pelo preditor 330 do aparelho de decodificação na Figura 16, S1520 ilustrado na Figura 15 pode ser realizado pelo processador residual 320 do aparelho de decodificação na Figura 16, e S1530 ilustrado na Figura 15 pode ser realizado pelo somador 340 do aparelho de decodificação na Figura 16. O método revelado na Figura 15 pode incluir as modalidades anteriormente mencionadas no presente documento.
[0268] Com referência à Figura 15, o aparelho de decodificação pode obter informações de modo de predição e informações relacionadas residuais do fluxo de bits (S1500). Alternativamente, o aparelho de decodificação pode obter as informações de modo de predição ou as informações relacionadas residuais por decodificação (entropia) do fluxo de bits.
[0269] Por exemplo, as informações de modo de predição podem incluir informações sobre o modo de predição do bloco atual. Alternativamente, as informações de modo de predição podem incluir informações sobre o modo de predição intra ou o modo de predição inter.
[0270] Por exemplo, as informações relacionadas residuais podem incluir informações de codificação residuais (ou sintaxe de codificação residual).
Alternativamente, as informações relacionadas residuais podem incluir informações de unidade de transformada (ou sintaxe de unidade de transformada).
Alternativamente, as informações relacionadas residuais também podem incluir as informações de codificação residuais e as informações de unidade de transformada.
[0271] Por exemplo, as informações relacionadas residuais podem incluir o sinalizador de salto de transformada com base no tamanho do bloco atual e no tamanho máximo de salto de transformada. Alternativamente, a possibilidade de as informações relacionadas residuais incluírem um sinalizador de salto de transformada pode ser determinada com base no tamanho do bloco atual e no tamanho máximo de salto de transformada. Por exemplo, o sinalizador de salto de transformada pode representar se o salto de transformada é aplicado ao bloco atual. Alternativamente, o sinalizador de salto de transformada pode ser representado por um elemento de sintaxe transform_skip_flag. Por exemplo, quando o valor do elemento de sintaxe transform_skip_flag é 0, o salto de transformada pode ser aplicado ao bloco atual, e quando o valor do elemento de sintaxe transform_skip_flag é 1, o salto de transformada pode não ser aplicado ao bloco atual. Alternativamente, de acordo com a configuração, quando o valor do elemento de sintaxe transform_skip_flag é 1, o salto de transformada pode ser aplicado ao bloco atual, e quando o valor do elemento de sintaxe transform_skip_flag é 0, o salto de transformada pode não ser aplicado ao bloco atual.
[0272] Por exemplo, o tamanho do bloco atual pode representar a largura do bloco atual e/ou a altura do bloco atual. O tamanho máximo de salto de transformada pode representar o tamanho máximo do bloco em que o Salto de Transformada (TS) está habilitado. Alternativamente, o tamanho máximo de salto de transformada também pode ser representado por MaxTsSize. Por exemplo, quando a largura do bloco atual ou a altura do bloco atual é menor ou igual ao tamanho máximo de salto de transformada, as informações relacionadas residuais podem incluir o sinalizador de salto de transformada.
[0273] Por exemplo, as informações sobre o tamanho máximo de salto de transformada podem ser obtidas a partir do fluxo de bits. Alternativamente, as informações sobre o tamanho máximo de salto de transformada podem ser obtidas por decodificação (entropia) do fluxo de bits. Por exemplo, o tamanho de transformada máximo pode ser derivado com base nas informações sobre o tamanho máximo de salto de transformada. Por exemplo, as informações sobre o tamanho máximo de salto de transformada podem estar incluídos na sintaxe de alto nível, e a sintaxe de alto nível pode ser obtida a partir do fluxo de bits.
Alternativamente, a sintaxe de alto nível pode ser obtida por decodificação (entropia) do fluxo de bits. Por exemplo, a sintaxe de alto nível pode ser uma sintaxe de unidade de Camada de Abstração de Rede (NAL), uma sintaxe de Conjunto de Parâmetros de Sequência (SPS), uma sintaxe de Conjunto de Parâmetros de Figuração (PPS) ou uma sintaxe de cabeçalho de fatia.
[0274] Alternativamente, por exemplo, as informações sobre o tamanho máximo de salto de transformada podem estar incluídas no SPS, e o tamanho de transformada máximo pode ser derivado com base nas informações sobre o tamanho máximo de salto de transformada incluído no SPS. Alternativamente, por exemplo, as informações sobre o tamanho máximo de salto de transformada podem estar incluídas no PPS, e o tamanho de transformada máximo pode ser derivado com base nas informações sobre o tamanho máximo de salto de transformada incluído no PPS. Aqui, o SPS ou o PPS pode representar a sintaxe SPS ou a sintaxe PPS, e outras sintaxes podem também ser usadas omitindo a sintaxe de termo.
[0275] Por exemplo, as informações sobre o tamanho máximo de salto de transformada podem incluir informações sobre um valor obtido pela soma de -2 a um valor logarítmico, e o valor logarítmico pode ser um valor logarítmico que tem uma base 2 para o tamanho máximo de salto de transformada. Ou seja, as informações sobre o tamanho máximo de salto de transformada podem representar as informações sobre o valor obtido pela soma de -2 ao valor logarítmico que tem a base 2 do tamanho máximo de salto de transformada.
Alternativamente, por exemplo, as informações sobre o tamanho máximo de salto de transformada também podem incluir as informações sobre o valor logarítmico (que tem a base 2) do tamanho máximo de salto de transformada.
[0276] Por exemplo, as informações sobre o tamanho máximo de salto de transformada podem incluir o elemento de sintaxe log2_transform_skip_max_size_minus2. Alternativamente, as informações sobre o tamanho máximo de salto de transformada podem representar o elemento de sintaxe log2_transform_skip_max_size_minus2. Por exemplo, o elemento de sintaxe log2_transform_skip_max_size_minus2 pode estar incluído na sintaxe de alto nível, na sintaxe SPS ou na sintaxe PPS.
[0277] Por exemplo, com referência à Tabela 41, o tamanho máximo de salto de transformada pode ser derivado com base em MaxTsSize = 1 << (log2_transform_skip_max_size_minus2 + 2). Aqui, o MaxTsSize pode representar o tamanho máximo de salto de transformada, e o log2_transform_skip_max_size_minus2 pode representar o valor do elemento de sintaxe log2_transform_skip_max_size_minus2. Além disso, o << pode representar um operador de deslocamento aritmético. Por exemplo, o valor do elemento de sintaxe log2_transform_skip_max_size_minus2 pode ser representado por um dos valores candidatos de 0 a 3, porém não se limita a isso. Alternativamente, o valor do elemento de sintaxe log2_transform_skip_max_size_minus2 pode ser derivado como 0, 1, 2 ou 3, porém não se limita a isso.
[0278] Além disso, por exemplo, o tamanho máximo de salto de transformada pode ser derivado como um dos tamanhos candidatos incluindo 4, 8, 16 ou 32. O tamanho máximo de salto de transformada pode ser derivado com base no valor do elemento de sintaxe log2_transform_skip_max_size_minus2.
Alternativamente, o tamanho máximo de salto de transformada pode ser derivado como um dos tamanhos candidatos incluindo 4, 8, 16 ou 32 com base no valor do elemento de sintaxe log2_transform_skip_max_size_minus2. Por exemplo, quando o valor do elemento de sintaxe log2_transform_skip_max_size_minus2 é 0, o tamanho máximo de salto de transformada pode ser derivado como 4 com base no 1 << (log2_transform_skip_max_size_minus2 + 2) supracitado. Alternativamente, quando o valor do elemento de sintaxe log2_transform_skip_max_size_minus2 é 1, o tamanho máximo de salto de transformada pode ser derivado como 8 com base no 1 << (log2_transform_skip_max_size_minus2 + 2) supracitado.
Alternativamente, quando o valor do elemento de sintaxe log2_transform_skip_max_size_minus2 é 2, o tamanho máximo de salto de transformada pode ser derivado como 16 com base no 1 <<
(log2_transform_skip_max_size_minus2 + 2) supracitado. Alternativamente, quando o valor do elemento de sintaxe log2_transform_skip_max_size_minus2 é 3, o tamanho máximo de salto de transformada pode ser derivado como 32 com base no 1 << (log2_transform_skip_max_size_minus2 + 2) supracitado.
[0279] Por exemplo, o fato de que o tamanho máximo de salto de transformada é N pode representar que todas dentre a largura e a altura têm os tamanhos que são menores ou iguais a N. Alternativamente, o fato de que o tamanho máximo de salto de transformada é N pode representar que um valor maior da largura e da altura tem o tamanho que é menor ou igual a N.
Alternativamente, o fato de que o tamanho máximo de salto de transformada é N pode representar que um comprimento de um lado tem o tamanho que é menor ou igual a N no caso de um bloco quadrado.
[0280] Alternativamente, por exemplo, as informações sobre o tamanho máximo de salto de transformada também podem estar incluídas na sintaxe de alto nível, na sintaxe SPS ou na sintaxe PPS com base nas informações sobre se o salto de transformada está habilitado. Por exemplo, quando as informações sobre se o salto de transformada está habilitado representam as informações de que o salto de transformada está habilitado, as informações sobre o tamanho máximo de salto de transformada podem estar incluídas na sintaxe de alto nível, na sintaxe SPS ou na sintaxe PPS. Alternativamente, quando as informações sobre se o salto de transformada está habilitado representam as informações de que o salto de transformada não está habilitado, as informações sobre o tamanho máximo de salto de transformada podem não estar incluídas na sintaxe de alto nível, na sintaxe SPS ou na sintaxe PPS.
[0281] Alternativamente, por exemplo, o tamanho máximo de salto de transformada também pode ser derivado com base nas informações sobre se uma Seleção de Transformada Múltipla (MTS) está habilitada. Alternativamente, o tamanho máximo de salto de transformada pode ser derivado com base nas informações sobre se a MTS está habilitada e as informações sobre se o TS está habilitado.
[0282] Por exemplo, a sintaxe de alto nível pode incluir as informações sobre se a Seleção de Transformada Múltipla (MTS) está habilitada ou as informações sobre se o TS está habilitado. Alternativamente, as informações sobre se a MTS está habilitada ou as informações sobre se o TS está habilitado podem estar incluídas na sintaxe SPS ou na sintaxe PPS.
[0283] Por exemplo, as informações sobre se a MTS está habilitada podem ser representadas pelo elemento de sintaxe sps_mts_enabled_flag.
Alternativamente, as informações sobre se a MTS está habilitada podem incluir o elemento de sintaxe sps_mts_intra_enabled_flag ou o elemento de sintaxe sps_mts_inter_enabled_flag. Por exemplo, o elemento de sintaxe sps_mts_intra_enabled_flag ou o elemento de sintaxe sps_mts_inter_enabled_flag pode estar incluído na sintaxe SPS com base no elemento de sintaxe sps_mts_enabled_flag. O elemento de sintaxe sps_mts_intra_enabled_flag pode ser representado pelo elemento de sintaxe sps_explicit_mts_intra_enabled_flag, e o elemento de sintaxe sps_mts_inter_enabled_flag pode ser representado pelo elemento de sintaxe sps_explicit_mts_inter_enabled_flag. Por exemplo, as informações sobre se a MTS está habilitada podem ser representadas pelas informações de MTS habilitada.
[0284] Por exemplo, quando as informações sobre se a MTS está habilitada representam as informações de que a MTS está habilitada, pode ser representado que a MTS habilitada = 1 ou o valor do elemento de sintaxe sps_mts_enabled_flag é 1. Alternativamente, pode ser representado que o valor do elemento de sintaxe sps_mts_enabled_flag é 1, e o valor do elemento de sintaxe sps_explicit_mts_intra_enabled_flag ou o elemento de sintaxe sps_explicit_mts_inter_enabled_flag é 1. Alternativamente, quando as informações sobre se a MTS está habilitada representam as informações de que a MTS não está habilitada, pode ser representado que a MTS habilitada = 0 ou o valor do elemento de sintaxe sps_mts_enabled_flag é 0. Alternativamente, pode ser representado que o valor do elemento de sintaxe sps_mts_enabled_flag é 1, e o valor do elemento de sintaxe sps_explicit_mts_intra_enabled_flag ou o elemento de sintaxe sps_explicit_mts_inter_enabled_flag é 0. Por exemplo, de acordo com a configuração, o valor também pode representar informações correspondentes ao valor inversamente.
[0285] Por exemplo, as informações sobre se o TS está habilitado podem ser representadas pelas informações de TS habilitado ou o elemento de sintaxe sps_transform_skip_enabled_flag. Por exemplo, as informações sobre se a TS está habilitada podem ser representadas pelas informações de TS habilitada.
[0286] Por exemplo, quando as informações sobre se a TS está habilitada representam as informações de que a TS está habilitada, pode ser representado que a TS habilitada = 1 ou o valor do elemento de sintaxe sps_transform_skip_enabled_flag é 1. Alternativamente, quando as informações sobre se a TS está habilitada representam as informações de que a TS não está habilitada, pode ser representado que a TS habilitada = 0 ou o valor do elemento de sintaxe sps_transform_skip_enabled_flag é 0. Por exemplo, de acordo com a configuração, o valor também pode representar informações correspondentes ao valor inversamente.
[0287] Por exemplo, com base nas informações sobre se a MTS está habilitada, isso representa as informações que a MTS está habilitada, o tamanho máximo de salto de transformada pode ser derivado com base no tamanho da MTS. Ou seja, quando as informações sobre se a MTS está habilitada representam as informações que a MTS está habilitada, o tamanho máximo de salto de transformada pode ser derivado com base no tamanho da MTS. Ou seja, o tamanho máximo de salto de transformada pode ser dependente da MTS. O tamanho da MTS pode representar o tamanho máximo do bloco em que a MTS está habilitada. Por exemplo, quando o tamanho da MTS é 32 ou menos, o salto de transformada também pode ser habilitado para o bloco que tem o tamanho de 32 ou menos.
[0288] Alternativamente, por exemplo, com base nas informações sobre se a MTS está habilitada, isso representa as informações que a MTS está habilitada, o tamanho máximo de salto de transformada pode ser derivado como um tamanho predefinido. Ou seja, quando as informações sobre se a MTS está habilitada representam as informações que a MTS está habilitada, o tamanho máximo de salto de transformada pode ser derivado como o tamanho predefinido. Por exemplo, quando o tamanho predefinido é 8, o tamanho máximo de salto de transformada pode ser derivado como o tamanho predefinido, 8.
[0289] Alternativamente, por exemplo, com base nas informações sobre se a MTS está habilitada, isso representa as informações que a MTS está habilitada, a sintaxe de alto nível pode incluir as informações sobre o tamanho máximo de salto de transformada, e o tamanho máximo de salto de transformada pode ser derivado com base nas informações sobre o tamanho máximo de salto de transformada. Ou seja, quando as informações sobre se a MTS está habilitada representam as informações que a MTS está habilitada, a sintaxe de alto nível pode incluir separadamente as informações sobre o tamanho máximo de salto de transformada, e o tamanho máximo de salto de transformada pode ser derivado com base nas informações sobre o tamanho máximo de salto de transformada.
Alternativamente, por exemplo, quando as informações sobre se a MTS está habilitada representam as informações que a MTS está habilitada, a sintaxe de alto nível pode incluir as informações sobre se o tamanho máximo de salto de transformada é derivado com base no tamanho da MTS. Quando as informações sobre se o tamanho máximo de salto de transformada é derivado com base no tamanho da MTS representam as informações de que o tamanho máximo de salto de transformada é derivado com base no tamanho da MTS, a sintaxe de alto nível pode incluir as informações sobre o tamanho máximo de salto de transformada. As informações sobre o tamanho máximo de salto de transformada podem estar incluídas na sintaxe SPS ou na sintaxe PPS. Por exemplo, quando as informações sobre o tamanho máximo de salto de transformada incluídas na sintaxe de alto nível representam 32, o tamanho máximo de salto de transformada pode ser derivado como 32 com base nas informações sobre o tamanho máximo de salto de transformada.
[0290] Alternativamente, por exemplo, com base nas informações sobre se a MTS está habilitada, isso representa as informações que a MTS não está habilitada, o tamanho máximo de salto de transformada pode ser derivado como um tamanho predefinido. Ou seja, quando as informações sobre se a MTS está habilitada representam as informações que a MTS não está habilitada, o tamanho máximo de salto de transformada pode ser derivado como o tamanho predefinido.
Por exemplo, quando o tamanho predefinido é 8, o tamanho máximo de salto de transformada pode ser derivado como o tamanho predefinido, 8.
[0291] Alternativamente, por exemplo, com base nas informações sobre se a MTS está habilitada, isso representa as informações que a MTS não está habilitada, a sintaxe de alto nível pode incluir as informações sobre o tamanho máximo de salto de transformada, e o tamanho máximo de salto de transformada pode ser derivado com base nas informações sobre o tamanho máximo de salto de transformada. Ou seja, quando as informações sobre se a MTS está habilitada representam as informações que a MTS não está habilitada, a sintaxe de alto nível pode incluir separadamente as informações sobre o tamanho máximo de salto de transformada, e o tamanho máximo de salto de transformada pode ser derivado com base nas informações sobre o tamanho máximo de salto de transformada. As informações sobre o tamanho máximo de salto de transformada podem estar incluídas na sintaxe SPS ou na sintaxe PPS. Por exemplo, quando as informações sobre o tamanho máximo de salto de transformada incluídas na sintaxe de alto nível representam 32, o tamanho máximo de salto de transformada pode ser derivado como 32 com base nas informações sobre o tamanho máximo de salto de transformada.
[0292] Por exemplo, as informações relacionadas residuais podem incluir as informações de índice de MTS sobre o tipo de transformada aplicado ao bloco atual. Por exemplo, as informações de índice de MTS podem ser representadas pelo elemento de sintaxe tu_mts_idx ou o elemento de sintaxe mts_idx. Por exemplo, as informações de índice de MTS podem estar incluídas na sintaxe de unidade de transformada ou na sintaxe de unidade de codificação. Por exemplo, as informações de índice de MTS podem representar as informações sobre o tipo de transformada ou o salto de transformada aplicado ao bloco atual.
Alternativamente, as informações de índice de MTS podem representar as informações sobre o tipo de transformada ou o salto de transformada aplicado ao bloco atual com base nas informações sobre se a MTS está habilitada e/ou as informações sobre se o salto de transformada está habilitado.
[0293] Por exemplo, as informações representadas pelas informações de índice de MTS podem ser derivadas com base no bin da cadeia de bins para as informações de índice de MTS. Alternativamente, as informações representadas pelas informações de índice de MTS podem ser derivadas com base no valor do índice de contexto do bin. Alternativamente, as informações representadas pelas informações de índice de MTS podem ser derivadas com base no valor do índice de contexto do primeiro bin da cadeia de bins. Por exemplo, o índice de contexto
(ctxIdx) pode ser derivado com base no incremento de índice de contexto (ctxInc) e no deslocamento de índice de contexto (ctxIdxOffset).
[0294] Por exemplo, o valor do índice de contexto do primeiro bin para as informações de índice de MTS pode ser derivado com base nas informações sobre se a MTS está habilitada, nas informações sobre se o salto de transformada está habilitado e no tamanho do bloco atual. Por exemplo, o valor do índice de contexto do primeiro bin para as informações de índice de MTS pode ser derivado com base na Tabela 19 ou Tabela 22.
[0295] Por exemplo, com base nas informações sobre se a MTS está habilitada, que representa as informações que a MTS está habilitada e as informações sobre se o salto de transformada está habilitado, que representa as informações de que o salto de transformada está habilitado, o valor do índice de contexto pode ser derivado comparando-se a largura do bloco atual com a altura do bloco atual. Ou seja, quando as informações sobre se a MTS está habilitada representam as informações que a MTS está habilitada e as informações sobre se o TS está habilitado representam as informações de que o TS está habilitado, o valor do índice de contexto pode ser derivado comparando-se a largura do bloco atual com a altura do bloco atual. Alternativamente, quando a largura do bloco atual e a altura do bloco atual são iguais, o valor do índice de contexto pode ser derivado como 0. Alternativamente, quando a largura do bloco atual é maior que a altura do bloco atual, o valor do índice de contexto pode ser derivado como 1, e quando a largura do bloco atual é menor que a altura do bloco atual, o valor do índice de contexto pode ser derivado como 2.
[0296] Alternativamente, por exemplo, o valor do índice de contexto pode ser derivado com base nas informações sobre se a MTS está habilitada, que representam as informações de que a MTS está habilitada, e a profundidade de árvore quaternária codificada (cqtDepth). Ou seja, quando as informações sobre se a MTS está habilitada representam as informações que a MTS está habilitada, o valor do índice de contexto pode ser derivado com base na cqtDepth. Por exemplo, o valor do índice de contexto pode ser derivado como um valor obtido pela adição de 1 ao valor da cqtDepth, e pode ser derivado como 1, 2, 3, 4, 5 ou 6.
[0297] Alternativamente, por exemplo, com base nas informações sobre se o salto de transformada está habilitado, que representam as informações de que o salto de transformada está habilitado, o valor do índice de contexto pode ser derivado comparando-se a largura do bloco atual com a altura do bloco atual. Ou seja, quando as informações sobre se o TS está habilitado representam as informações de que o TS está habilitado, o valor do índice de contexto pode ser derivado comparando-se a largura do bloco atual com a altura do bloco atual.
Alternativamente, quando a largura do bloco atual e a altura do bloco atual são iguais, o valor do índice de contexto pode ser derivado como 0. Alternativamente, quando a largura do bloco atual é maior que a altura do bloco atual, o valor do índice de contexto pode ser derivado como 1, e quando a largura do bloco atual é menor que a altura do bloco atual, o valor do índice de contexto pode ser derivado como 2.
[0298] Alternativamente, por exemplo, o valor do índice de contexto pode determinar o ctxInc e/ou o ctxIdx com base em pelo menos um dentre o tamanho do bloco, a razão da largura para altura do bloco, seja para realizar a predição intra ou inter do bloco, seja para aplicar o salto de transformada ao vizinho, ou similares. Alternativamente, um modelo de contexto com base em pelo menos um dentre o tamanho do bloco, a razão da largura para a altura do bloco, seja para realizar a predição intra ou inter do bloco, seja para aplicar o salto de transformada ao vizinho, ou similares pode ser definido, e o valor do índice de contexto pode ser derivado com base no modelo de contexto. Por exemplo, as informações sobre o tipo de transformada ou o salto de transformada para o bloco atual podem ser obtidas com base no índice de contexto ou no modelo de contexto.
[0299] O aparelho de decodificação pode derivar amostras de predição do bloco atual realizando a predição com base nas informações de modo de predição (S1510). Por exemplo, o aparelho de decodificação pode derivar um modo de predição do bloco atual com base nas informações de modo de predição. Por exemplo, as informações de modo de predição podem incluir informações sobre o modo de predição intra ou informações sobre o modo de predição inter, e o modo de predição do bloco atual pode ser derivado como o modo de predição intra ou o modo de predição inter com base nas informações.
[0300] Por exemplo, o aparelho de decodificação pode derivar as amostras de predição do bloco atual com base no modo de predição. Por exemplo, quando o modelo de predição é o modo de predição intra, o aparelho de decodificação pode derivar as amostras de predição com base nas amostras ao redor do bloco atual.
Alternativamente, quando o modelo de predição é o modo de predição inter, o aparelho de decodificação pode derivar as amostras de predição com base em amostras de referência dentro de uma figuração de referência do bloco atual.
[0301] O aparelho de decodificação pode derivar amostras residuais do bloco atual com base nas informações relacionadas residuais (S1520). Por exemplo, as informações relacionadas residuais podem incluir informações sobre um coeficiente de transformada para as amostras residuais. Alternativamente, as informações relacionadas residuais também podem incluir o sinalizador de salto de transformada.
[0302] Por exemplo, quando as informações relacionadas residuais incluem o sinalizador de salto de transformada, o sinal residual (ou informações relacionadas residuais) para o bloco atual pode ser sinalizado no domínio de pixel (domínio espacial) sem a transformada. Alternativamente, quando as informações relacionadas residuais não incluem o sinalizador de salto de transformada, o sinal residual (ou informações relacionadas residuais) para o bloco atual pode ser transformado e sinalizado no domínio de transformada. Por exemplo, o aparelho de decodificação pode derivar as amostras residuais com base no sinal residual que não é transformado ou transformado e sinalizado.
[0303] O aparelho de decodificação pode gerar amostras de reconstrução do bloco atual com base nas amostras de predição e nas amostras residuais (S1530), Alternativamente, o aparelho de decodificação pode derivar um bloco reconstruído ou uma figuração reconstruída com base nas amostras de reconstrução. Conforme descrito acima, o aparelho de decodificação pode aplicar posteriormente um procedimento de filtragem em laço como uma filtragem de deblocagem e/ou um procedimento SAO à figuração reconstruída para aprimorar a qualidade de imagem subjetiva/objetiva, se necessário.
[0304] O aparelho de decodificação pode obter informações de imagem incluindo todas ou algumas informações supracitadas (ou elementos de sintaxe) decodificando-se o fluxo de bits. Além disso, o fluxo de bits pode ser armazenado em um meio de armazenamento digital legível por computador, e pode fazer com que o método de decodificação supracitado seja realizado. Por exemplo, o fluxo de bits também pode ser representado por informações de imagem ou informações de vídeo.
[0305] Nas modalidades anteriormente mencionadas, embora os métodos sejam descritos com base nos fluxogramas como uma série de etapas ou blocos, o presente documento não se limita à ordem de etapas, e uma determinada etapa pode ocorrer em uma ordem diferente ou simultaneamente com uma etapa diferente daquela descrita acima. Além disso, os versados na técnica compreenderão que as etapas mostradas no fluxograma não são exclusivas, e as outras etapas podem ser incluídas ou uma ou mais etapas no fluxograma podem ser excluídas sem afetar o escopo do presente documento.
[0306] O método anteriormente mencionado de acordo com o presente documento pode ser implementado sob a forma de software, e o aparelho de codificação e/ou o aparelho de decodificação de acordo com o presente documento podem estar incluídos no aparelho para executar processamento de imagens, por exemplo, de uma TV, um computador, um smartphone, um decodificador de sinais, um dispositivo de exibição, e similares.
[0307] Quando as modalidades no presente relatório descritivo são implementadas em software, o método anteriormente mencionado pode ser implementado por um módulo (processo, função, e similares) para realizar a função descrita acima. O módulo pode ser armazenado em uma memória e executado por um processador. A memória pode estar situada dentro ou fora do processador, e pode ser acoplada ao processador por vários meios bem conhecidos. O processador pode incluir circuitos integrados específicos de aplicativo (ASICs), outros chipsets, circuitos lógicos e/ou dispositivos de processamento de dados. A memória pode incluir uma memória de leitura (ROM), uma memória de acesso aleatório (RAM), uma memória flash, um cartão de memória, um meio de armazenamento e/ou outros dispositivos de armazenamento.
[0308] A Figura 17 ilustra esquematicamente uma estrutura de um sistema de streaming de conteúdo.
[0309] Ou seja, as modalidades descritas no presente documento podem ser realizadas por implementação em um processador, um microprocessador, um controlador ou um chip. Por exemplo, as unidades funcionais mostradas em cada desenho podem ser executadas pela implementação no computador, no processador, no microprocessador, no controlador ou no chip.
[0310] Além disso, o aparelho de decodificação e o aparelho de codificação aos quais o presente documento é aplicado podem estar incluídos em um transceptor de difusão multimídia, um terminal de comunicação móvel, um dispositivo de vídeo de cinema em casa, um dispositivo de vídeo de cinema digital, uma câmera de vigilância, um dispositivo de comunicação por vídeo, um dispositivo de comunicação em tempo real, como comunicação por vídeo, um dispositivo de streaming móvel, um meio de armazenamento, uma câmera de vídeo, um provedor de serviços de Vídeo sob Demanda (VoD), um dispositivo de vídeo Over the top (OTT), um provedor de serviços de streaming da Internet, um dispositivo de vídeo tridimensional (3D), um dispositivo de vídeo de teleconferência e um dispositivo de vídeo médico, e similares, e pode ser usado para processar sinais de vídeo ou sinais de dados. Por exemplo, o dispositivo de vídeo Over the top (vídeo OTT) pode incluir um console de jogos, um reprodutor de Blu-ray, uma TV conectada à Internet, um sistema de home theater, um smartphone, um tablet PC, um Gravador de Vídeo Digital (DVR), e similares.
[0311] Além disso, o método de processamento ao qual o presente documento é aplicado pode ser produzido sob a forma de um programa executado por um computador e pode ser armazenado em um meio de gravação legível por computador. Os dados multimídia que têm uma estrutura de dados de acordo com o presente documento também podem ser armazenados no meio de gravação legível por computador. O meio de gravação legível por computador inclui todos os tipos de dispositivos de armazenamento e dispositivos de armazenamento distribuídos nos quais os dados legíveis por computador são armazenados. O meio de gravação legível por computador inclui, por exemplo, um Disco Blu-ray (BD), um Barramento Serial Universal (USB), uma ROM, uma PROM, uma EPROM, uma EEPROM, uma RAM, um CD-ROM, uma fita magnética, um disquete e um dispositivo de armazenamento óptico de dados. Além disso, o meio de gravação legível por computador inclui mídia implementada sob a forma de uma onda portadora (por exemplo, transmissão pela Internet). Além disso, o fluxo de bits gerado pelo método de codificação pode ser armazenado no meio de gravação legível por computador ou transmitido através de redes de comunicação com fio/sem fio. Além disso, as modalidades do presente documento podem ser implementadas como um produto de programa de computador por um código do programa, e o código do programa pode ser executado por um computador de acordo com as modalidades do presente documento. O código do programa pode ser armazenado em uma portadora legível por computador pelo computador.
[0312] Além disso, o sistema de streaming de conteúdo ao qual o presente documento é aplicado pode incluir amplamente um servidor de codificação, um servidor de streaming, um servidor da web, um armazenamento de mídia, um dispositivo de usuário e um dispositivo de entrada multimídia.
[0313] O servidor de codificação serve para compactar o conteúdo, que é inserido a partir de dispositivos de entrada multimídia como um smartphone, uma câmera e uma filmadora em dados digitais para gerar o fluxo de bits e transmitir o fluxo de bits ao servidor de streaming. Como outro exemplo, quando os dispositivos de entrada de multimídia como um smartphone, uma câmera ou uma filmadora geram diretamente o fluxo de bits, o servidor de codificação pode ser omitido. O fluxo de bits pode ser gerado pelo método de codificação ou o método de geração de fluxo de bits ao qual o presente documento é aplicado, e o servidor de streaming pode armazenar temporariamente o fluxo de bits no processo de transmissão ou recepção do fluxo de bits.
[0314] O servidor de streaming exerce a função de transmitir dados de multimídia para um dispositivo do usuário com base em uma solicitação do usuário através de um servidor da web, e o servidor da web exerce a função de informar ao usuário quais serviços estão disponíveis. Se o usuário solicitar um serviço desejado do servidor da web, o servidor da web transmite a solicitação ao servidor de streaming e o servidor de streaming transmite os dados de multimídia ao usuário. Neste momento, o sistema de streaming de conteúdo pode incluir um servidor de controle separado e, neste caso, o servidor de controle exerce a função de controlar comandos/respostas entre dispositivos dentro do sistema de streaming de conteúdo.
[0315] O servidor de streaming pode receber conteúdo de um armazenamento de mídia e/ou servidor de codificação. Por exemplo, se o conteúdo for recebido do servidor de codificação, o conteúdo pode ser recebido em tempo real. Neste caso, para fornecer um serviço de streaming suave, o servidor de streaming pode armazenar o fluxo de bits por um período de tempo predeterminado.
[0316] Exemplos do dispositivo do usuário podem incluir um telefone celular, smartphone, laptop, terminal de difusão digital, assistente digital pessoal (PDA), reprodutor multimídia portátil (PMP), terminal de navegação, slate PC, tablet, ultrabook, dispositivo vestível (por exemplo, um relógio inteligente ou um vidro inteligente), TV digital, computador desktop e sinal digital. Cada servidor individual dentro do sistema de streaming de conteúdo pode ser operado como um servidor distribuído e, nesse caso, os dados recebidos por cada servidor podem ser processados de maneira distribuída.

Claims (16)

REIVINDICAÇÕES
1. Método de decodificação de uma imagem realizado por um aparelho de decodificação, CARACTERIZADO pelo fato de que o método compreende: obter informações de modo de predição e informações relacionadas residuais a partir de um fluxo de bits; derivar amostras de predição de um bloco atual realizando a predição com base nas informações de modo de predição; derivar amostras residuais do bloco atual com base nas informações relacionadas residuais; e gerar amostras de reconstrução do bloco atual com base nas amostras de predição e nas amostras residuais, em que as informações relacionadas residuais compreendem um sinalizador de salto de transformada com base em um tamanho do bloco atual e um tamanho máximo de salto de transformada, em que o sinalizador de salto de transformada representa se um salto de transformada é aplicado ao bloco atual, e em que as informações sobre o tamanho máximo de salto de transformada são obtidas a partir do fluxo de bits, em que as informações sobre o tamanho máximo de salto de transformada incluem um elemento de sintaxe log2_transform_skip_max_size_minus2, e em que o tamanho máximo de salto de transformada é derivado com base na seguinte equação, em que, o MaxTsSize representa o tamanho máximo de salto de transformada, e o log2_transform_skip_max_size_minus2 representa um valor do elemento de sintaxe log2_transform_skip_max_size_minus2.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o tamanho máximo de salto de transformada é derivado como um dos tamanhos candidatos que compreendem 4, 8, 16 ou 32.
3. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o valor do elemento de sintaxe log2_transform_skip_max_size_minus2 é representado por um dos valores candidatos de 0 a 3.
4. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que as informações sobre o tamanho máximo de salto de transformada são compreendidas em uma sintaxe de alto nível.
5. Método, de acordo com a reivindicação 4, CARACTERIZADO pelo fato de que as informações sobre o tamanho máximo de salto de transformada são compreendidas em um dentre um conjunto de parâmetros de figuração ou um conjunto de parâmetros de sequência.
6. Método, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que o um dentre o conjunto de parâmetros de figuração ou o conjunto de parâmetros de sequência compreende um sinalizador de salto de transformada habilitado em relação ao fato de o salto de transformada estar ou não habilitado, em que as informações sobre o tamanho máximo de salto de transformada são compreendidas em um dentre o conjunto de parâmetros de imagem ou o conjunto de parâmetros de sequência com base em um valor do sinalizador de salto de transformada que é igual a 1.
7. Método de codificação de uma imagem realizado por um aparelho de codificação, CARACTERIZADO pelo fato de que o método compreende: derivar amostras de predição realizando a predição em um bloco atual; derivar amostras residuais para o bloco atual; e codificar informações de imagem que compreendem informações de modo de predição sobre a predição e informações relacionadas residuais sobre as amostras residuais,
em que as informações relacionadas residuais compreendem um sinalizador de salto de transformada com base em um tamanho do bloco atual e um tamanho máximo de salto de transformada, em que o sinalizador de salto de transformada representa se um salto de transformada é aplicado ao bloco atual, e em que as informações de imagem compreendem informações sobre o tamanho máximo de salto de transformada, em que as informações sobre o tamanho máximo de salto de transformada compreendem um elemento de sintaxe log2_transform_skip_max_size_minus2, e em que o tamanho máximo de salto de transformada é representado com base na seguinte equação, em que o MaxTsSize representa o tamanho máximo de salto de transformada, e o log2_transform_skip_max_size_minus2 representa um valor do elemento de sintaxe log2_transform_skip_max_size_minus2.
8. Método, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que o tamanho máximo de salto de transformada é representado como um dos tamanhos candidatos que incluem 4, 8, 16 ou 32.
9. Método, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que o valor do elemento de sintaxe log2_transform_skip_max_size_minus2 é representado por um dos valores candidatos de 0 a 3.
10. Método, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que as informações sobre o tamanho máximo de salto de transformada são compreendidas em uma sintaxe de alto nível.
11. Método, de acordo com a reivindicação 10, CARACTERIZADO pelo fato de que as informações sobre o tamanho máximo de salto de transformada são compreendidas em um dentre um conjunto de parâmetros de figuração ou um conjunto de parâmetros de sequência.
12. Método, de acordo com a reivindicação 11, CARACTERIZADO pelo fato de que o um dentre o conjunto de parâmetros de figuração ou o conjunto de parâmetros de sequência compreende um sinalizador de salto de transformada habilitado em relação ao fato de o salto de transformada estar ou não habilitado, em que as informações sobre o tamanho máximo de salto de transformada são compreendidas em um dentre o conjunto de parâmetros de imagem ou o conjunto de parâmetros de sequência com base em um valor do sinalizador de salto de transformada que é igual a 1.
13. Meio de armazenamento digital legível por computador que armazena informações fazendo com que um aparelho de decodificação realize um método de decodificação de uma imagem, CARACTERIZADO pelo fato de que o método compreende: obter informações de modo de predição e informações relacionadas residuais a partir de um fluxo de bits; derivar amostras de predição de um bloco atual realizando a predição com base nas informações de modo de predição; derivar amostras residuais do bloco atual com base nas informações relacionadas residuais; e gerar amostras de reconstrução do bloco atual com base nas amostras de predição e nas amostras residuais, em que as informações relacionadas residuais compreendem um sinalizador de salto de transformada com base em um tamanho do bloco atual e um tamanho máximo de salto de transformada, em que o sinalizador de salto de transformada representa se um salto de transformada é aplicado ao bloco atual, e em que as informações sobre o tamanho máximo de salto de transformada são obtidas a partir do fluxo de bits, em que as informações sobre o tamanho máximo de salto de transformada incluem um elemento de sintaxe log2_transform_skip_max_size_minus2, e em que o tamanho máximo de salto de transformada é derivado com base na seguinte equação, em que, o MaxTsSize representa o tamanho máximo de salto de transformada, e o log2_transform_skip_max_size_minus2 representa um valor do elemento de sintaxe log2_transform_skip_max_size_minus2.
14. Meio de armazenamento legível por computador, de acordo com a reivindicação 13, CARACTERIZADO pelo fato de que as informações sobre o tamanho máximo de salto de transformada são compreendidas em uma sintaxe de alto nível.
15. Meio de armazenamento digital legível por computador, de acordo com a reivindicação 14, CARACTERIZADO pelo fato de que as informações sobre o tamanho máximo de salto de transformada são compreendidas em um dentre um conjunto de parâmetros de figuração ou um conjunto de parâmetros de sequência.
16. Meio de armazenamento digital legível por computador, de acordo com a reivindicação 15, CARACTERIZADO pelo fato de que o um dentre o conjunto de parâmetros de figuração ou o conjunto de parâmetros de sequência compreende um sinalizador de salto de transformada habilitado em relação ao fato de o salto de transformada estar ou não habilitado, em que as informações sobre o tamanho máximo de salto de transformada são compreendidas em um dentre o conjunto de parâmetros de imagem ou o conjunto de parâmetros de sequência com base em um valor do sinalizador de salto de transformada que é igual a 1.
BR112021012366-0A 2019-01-15 2020-01-15 Método de decodificação de uma imagem realizado por um aparelho de decodificação, método de codificação de uma imagem realizado por um aparelho de codificação e mídia de armazenamento digital legível por computador não transitória BR112021012366B1 (pt)

Priority Applications (2)

Application Number Priority Date Filing Date Title
BR122021012456-6A BR122021012456B1 (pt) 2019-01-15 2020-01-15 Método de decodificação de uma imagem realizado por um aparelho de decodificação, método de codificação de uma imagem realizado por um aparelho de codificação, aparelho de decodificação para decodificação de imagem, aparelho de codificação para codificação de imagem e mídia de armazenamento digital legível por computador não transitória
BR122021012448-5A BR122021012448B1 (pt) 2019-01-15 2020-01-15 Método de decodificação de uma imagem realizado por um aparelho de decodificação, método de codificação de uma imagem realizado por um aparelho de codificação, aparelho de decodificação para decodificação de imagem, aparelho de codificação para codificação de imagem e mídia de armazenamento digital legível por computador não transitória

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962792423P 2019-01-15 2019-01-15
US62/792,423 2019-01-15
PCT/KR2020/000757 WO2020149648A1 (ko) 2019-01-15 2020-01-15 변환 스킵 플래그를 이용한 영상 코딩 방법 및 장치

Publications (2)

Publication Number Publication Date
BR112021012366A2 true BR112021012366A2 (pt) 2021-08-31
BR112021012366B1 BR112021012366B1 (pt) 2022-03-22

Family

ID=71094257

Family Applications (3)

Application Number Title Priority Date Filing Date
BR122021012456-6A BR122021012456B1 (pt) 2019-01-15 2020-01-15 Método de decodificação de uma imagem realizado por um aparelho de decodificação, método de codificação de uma imagem realizado por um aparelho de codificação, aparelho de decodificação para decodificação de imagem, aparelho de codificação para codificação de imagem e mídia de armazenamento digital legível por computador não transitória
BR122021012448-5A BR122021012448B1 (pt) 2019-01-15 2020-01-15 Método de decodificação de uma imagem realizado por um aparelho de decodificação, método de codificação de uma imagem realizado por um aparelho de codificação, aparelho de decodificação para decodificação de imagem, aparelho de codificação para codificação de imagem e mídia de armazenamento digital legível por computador não transitória
BR112021012366-0A BR112021012366B1 (pt) 2019-01-15 2020-01-15 Método de decodificação de uma imagem realizado por um aparelho de decodificação, método de codificação de uma imagem realizado por um aparelho de codificação e mídia de armazenamento digital legível por computador não transitória

Family Applications Before (2)

Application Number Title Priority Date Filing Date
BR122021012456-6A BR122021012456B1 (pt) 2019-01-15 2020-01-15 Método de decodificação de uma imagem realizado por um aparelho de decodificação, método de codificação de uma imagem realizado por um aparelho de codificação, aparelho de decodificação para decodificação de imagem, aparelho de codificação para codificação de imagem e mídia de armazenamento digital legível por computador não transitória
BR122021012448-5A BR122021012448B1 (pt) 2019-01-15 2020-01-15 Método de decodificação de uma imagem realizado por um aparelho de decodificação, método de codificação de uma imagem realizado por um aparelho de codificação, aparelho de decodificação para decodificação de imagem, aparelho de codificação para codificação de imagem e mídia de armazenamento digital legível por computador não transitória

Country Status (8)

Country Link
US (4) US10917637B2 (pt)
EP (1) EP3703376A4 (pt)
JP (2) JP2021513755A (pt)
KR (3) KR102610233B1 (pt)
CN (1) CN111699694B (pt)
BR (3) BR122021012456B1 (pt)
MX (1) MX2021008449A (pt)
WO (1) WO2020149648A1 (pt)

Families Citing this family (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3113219A1 (en) 2018-09-18 2020-03-26 Huawei Technologies Co., Ltd. A video encoder, a video decoder and corresponding methods
CN112740668B (zh) 2018-09-18 2022-05-24 华为技术有限公司 译码方法、设备、系统
US11218694B2 (en) * 2018-09-24 2022-01-04 Qualcomm Incorporated Adaptive multiple transform coding
TWI822863B (zh) * 2018-09-27 2023-11-21 美商Vid衡器股份有限公司 360度視訊寫碼樣本導出
CN111083492B (zh) 2018-10-22 2024-01-12 北京字节跳动网络技术有限公司 双向光流中的梯度计算
WO2020084476A1 (en) 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Sub-block based prediction
WO2020094066A1 (en) 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Multi-parameters based intra prediction
KR20240007302A (ko) 2018-11-12 2024-01-16 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 인터 및 인트라 통합 예측의 단순화
US11178396B2 (en) 2018-11-14 2021-11-16 Tencent America LLC Constrained intra prediction and unified most probable mode list generation
CN117319644A (zh) 2018-11-20 2023-12-29 北京字节跳动网络技术有限公司 基于部分位置的差计算
WO2020103870A1 (en) * 2018-11-20 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Inter prediction with refinement in video processing
WO2020108591A1 (en) 2018-12-01 2020-06-04 Beijing Bytedance Network Technology Co., Ltd. Parameter derivation for intra prediction
EP3871415A4 (en) 2018-12-07 2022-04-13 Beijing Bytedance Network Technology Co., Ltd. CONTEXT-BASED INTRAPREDICTION
KR20210093891A (ko) 2018-12-18 2021-07-28 엘지전자 주식회사 이차 변환에 기반한 영상 코딩 방법 및 그 장치
KR102610233B1 (ko) 2019-01-15 2023-12-05 로즈데일 다이나믹스 엘엘씨 변환 스킵 플래그를 이용한 영상 코딩 방법 및 장치
US11025936B2 (en) * 2019-01-25 2021-06-01 Tencent America LLC Method and apparatus for video coding
US11523136B2 (en) * 2019-01-28 2022-12-06 Hfi Innovation Inc. Methods and apparatuses for coding transform blocks
EP3700205A1 (en) * 2019-02-19 2020-08-26 Nokia Technologies Oy Quantization parameter derivation for cross-channel residual encoding and decoding
MX2021009788A (es) 2019-02-22 2021-09-08 Beijing Bytedance Network Tech Co Ltd Seleccion de muestra colindante para intraprediccion.
KR102472756B1 (ko) 2019-02-24 2022-12-01 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 인트라 예측을 위한 파라미터 유도
CN113519156A (zh) 2019-03-05 2021-10-19 华为技术有限公司 用于帧内子划分译码模式的方法和装置
JP2022521554A (ja) 2019-03-06 2022-04-08 北京字節跳動網絡技術有限公司 変換された片予測候補の利用
CN113365057B (zh) * 2019-03-09 2023-02-28 杭州海康威视数字技术股份有限公司 进行编码和解码的方法、解码端、编码端和系统
US11202100B2 (en) * 2019-03-11 2021-12-14 Qualcomm Incorporated Coefficient coding for transform skip mode
JP2022525597A (ja) * 2019-03-11 2022-05-18 インターデイジタル ヴィーシー ホールディングス インコーポレイテッド ビデオエンコードおよびデコードのためのエントロピー符号化
US11128876B2 (en) * 2019-03-12 2021-09-21 Qualcomm Incorporated Joint coefficient coding of transform skip and BDPCM mode for 4:4:4 color formats
KR20200110236A (ko) * 2019-03-13 2020-09-23 현대자동차주식회사 데이터 블록에 변환 생략 모드를 효율적으로 적용하기 위한 방법 및 장치
CN113767631B (zh) 2019-03-24 2023-12-15 北京字节跳动网络技术有限公司 用于帧内预测的参数推导中的条件
KR20230169434A (ko) 2019-04-02 2023-12-15 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 디코더 측 움직임 벡터 유도
WO2020218793A1 (ko) 2019-04-20 2020-10-29 엘지전자 주식회사 Bdpcm에 기반한 영상 코딩 방법 및 그 장치
EP3942820A4 (en) 2019-04-24 2022-06-01 ByteDance Inc. QUANTIFIED REPRESENTATION OF PULSE MODULATION AND RESIDUAL DIFFERENTIAL CODING OF ENCODED VIDEO
CN117857783A (zh) 2019-05-01 2024-04-09 字节跳动有限公司 使用量化残差差分脉冲码调制编解码的帧内编解码视频
KR20220002918A (ko) * 2019-05-02 2022-01-07 바이트댄스 아이엔씨 변환 스킵 모드에서의 시그널링
CN113785306B (zh) 2019-05-02 2024-06-14 字节跳动有限公司 基于编解码树结构类型的编解码模式
CN113841402B (zh) 2019-05-19 2024-03-26 字节跳动有限公司 视频编解码中大块的变换设计
CN114175646A (zh) * 2019-05-22 2022-03-11 Lg电子株式会社 图像解码方法及其装置
CN113950829A (zh) * 2019-06-06 2022-01-18 北京字节跳动网络技术有限公司 简化的变换编解码工具
KR102669640B1 (ko) * 2019-06-11 2024-05-28 엘지전자 주식회사 크로마 양자화 파라미터 데이터 기반 영상 디코딩 방법 및 그 장치
US11863787B2 (en) * 2019-06-19 2024-01-02 Qualcomm Incorporated Maximum allowed block size for BDPCM mode
CA3144206A1 (en) * 2019-06-19 2020-12-24 Lg Electronics Inc. Coding of information about transform kernel set
CN113596478B (zh) * 2019-06-21 2022-04-26 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
US11212530B2 (en) 2019-06-24 2021-12-28 Tencent America LLC Method for slice, tile and brick signaling
US11259016B2 (en) * 2019-06-30 2022-02-22 Tencent America LLC Method and apparatus for video coding
US11616962B2 (en) * 2019-07-15 2023-03-28 Tencent America LLC Method and apparatus for video coding
US11095916B2 (en) * 2019-07-23 2021-08-17 Qualcomm Incorporated Wraparound motion compensation in video coding
MX2022001243A (es) 2019-08-06 2022-02-17 Beijing Bytedance Network Tech Co Ltd Particion de region de video basada en formato de color.
US11677984B2 (en) * 2019-08-20 2023-06-13 Qualcomm Incorporated Low-frequency non-separable transform (LFNST) signaling
WO2021036977A1 (en) 2019-08-23 2021-03-04 Beijing Bytedance Network Technology Co., Ltd. Clipping in reference picture resampling
US11356684B2 (en) * 2019-08-30 2022-06-07 Alibaba Group Holding Limited Method and system for signaling chroma quantization parameter table
US11909991B2 (en) * 2019-08-30 2024-02-20 Tencent America LLC Restrictions on picture width and height
EP4008109A4 (en) 2019-09-02 2022-09-14 Beijing Bytedance Network Technology Co., Ltd. ENCODING MODE DETERMINATION BASED ON COLOR FORMAT
US11736720B2 (en) * 2019-09-03 2023-08-22 Tencent America LLC Motion vector refinement methods for video encoding
CN114450963A (zh) * 2019-09-18 2022-05-06 松下电器(美国)知识产权公司 用于视频编码的系统和方法
US11395014B2 (en) * 2019-09-18 2022-07-19 Qualcomm Incorporated Transform unit design for video coding
KR20210034534A (ko) * 2019-09-20 2021-03-30 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
EP4018662A4 (en) 2019-09-21 2023-05-03 Beijing Bytedance Network Technology Co., Ltd. SIZE LIMITATION BASED ON CHROMA INTRA MODE
EP4032281A4 (en) * 2019-09-24 2022-12-28 HFI Innovation Inc. SEPARATE CODING TREE CODING METHOD AND APPARATUS WITH CONSTRAINTS ON MINIMUM CU SIZE
US11589044B2 (en) * 2019-10-14 2023-02-21 Hfi Innovation Inc. Video encoding and decoding with ternary-tree block partitioning
JP7394985B2 (ja) * 2019-10-23 2023-12-08 北京字節跳動網絡技術有限公司 ビデオ・データを処理する方法、装置及び記憶方法
JP7395727B2 (ja) 2019-10-23 2023-12-11 北京字節跳動網絡技術有限公司 ビデオ・データを処理する方法、装置及び記憶方法
EP4059221A4 (en) * 2019-11-15 2023-09-13 HFI Innovation Inc. METHOD AND APPARATUS FOR SIGNALING HORIZONTAL LOOP MOTION COMPENSATION IN VR360 VIDEO CODING
US11483549B2 (en) * 2019-11-21 2022-10-25 Hfi Innovation Inc. Methods and apparatuses for transform skip mode information signaling
US11375182B2 (en) * 2019-12-17 2022-06-28 Hfi Innovation Inc. Method and apparatus of constrained layer-wise video coding
US11477450B2 (en) * 2019-12-20 2022-10-18 Zte (Uk) Limited Indication of video slice height in video subpictures
US11589037B2 (en) * 2019-12-20 2023-02-21 Qualcomm Incorporated Motion compensation using size of reference picture
JP2022531541A (ja) * 2019-12-23 2022-07-07 テンセント・アメリカ・エルエルシー ビデオ符号化/復号のための方法および装置
US11457229B2 (en) * 2019-12-23 2022-09-27 Qualcomm Incorporated LFNST signaling for chroma based on chroma transform skip
CN115176465A (zh) * 2019-12-31 2022-10-11 Lg电子株式会社 基于叶节点的重新配置的预测模式类型来执行预测的图像编码/解码方法和设备以及比特流传输方法
EP4026319A4 (en) * 2020-02-11 2022-11-09 Huawei Technologies Co., Ltd. ENCODER, DECODER AND RELATED METHODS FOR SUB-PICTURE SIGNALING IN A SEQUENCE PARAMETER SET
JP7400114B2 (ja) 2020-02-24 2023-12-18 バイトダンス インコーポレイテッド ビデオコーディングでのピクチャレベルスライスインデックスの使用
US11412253B2 (en) * 2020-02-24 2022-08-09 Alibaba Group Holding Limited Methods for combining decoder side motion vector refinement with wrap-around motion compensation
CN115398912A (zh) * 2020-02-29 2022-11-25 抖音视界有限公司 自适应参数集的语法元素的约束
CN115211125A (zh) * 2020-03-03 2022-10-18 字节跳动有限公司 视频编解码中的低频不可分变换信令通知
WO2021180169A1 (en) * 2020-03-11 2021-09-16 Beijing Bytedance Network Technology Co., Ltd. Conformance window parameters for video coding
US11146806B2 (en) * 2020-03-11 2021-10-12 Tencent America LLC Coding unit level transform size restriction for adaptive color transform
CN113395524B (zh) * 2020-03-11 2023-04-28 腾讯美国有限责任公司 视频解码方法、装置和电子设备
CN114097243A (zh) * 2020-03-27 2022-02-25 株式会社迓廷试 影像的译码方法及装置
US11582491B2 (en) * 2020-03-27 2023-02-14 Qualcomm Incorporated Low-frequency non-separable transform processing in video coding
BR112022020449A2 (pt) * 2020-04-10 2022-11-29 Beijing Bytedance Network Tech Co Ltd Método e aparelho para processar dados de vídeo, e, meios de armazenamento e de gravação legíveis por computador não transitórios
EP3942836A1 (en) * 2020-05-19 2022-01-26 Google LLC Dynamic parameter selection for quality-normalized video transcoding
WO2021233448A1 (en) 2020-05-22 2021-11-25 Beijing Bytedance Network Technology Co., Ltd. Signalling of general level index
WO2021244420A1 (en) 2020-05-31 2021-12-09 Beijing Bytedance Network Technology Co., Ltd. Palette mode with local dual tree modetype definition
US11659207B2 (en) * 2020-06-08 2023-05-23 Qualcomm Incorporated General constraints of syntax elements for video coding
US11818384B2 (en) * 2020-09-24 2023-11-14 Ofinno, Llc Affine intra block copy refinement
US11924471B2 (en) * 2020-11-12 2024-03-05 Qualcomm Incorporated Context-based transform index signaling in video coding
CN115633172A (zh) * 2020-12-06 2023-01-20 浙江大华技术股份有限公司 基于ibc模式编码方法、电子设备及存储介质
US11838551B2 (en) * 2020-12-30 2023-12-05 Ofinno, Llc Adaptive block level bit-depth prediction
US20220224927A1 (en) * 2021-01-14 2022-07-14 Samsung Electronics Co., Ltd. Video decoding apparatus and video decoding method
JPWO2022224888A1 (pt) * 2021-04-21 2022-10-27
EP4356612A1 (en) * 2021-06-28 2024-04-24 Beijing Dajia Internet Information Technology Co., Ltd. Residual and coefficients coding for video coding
US20230247209A1 (en) * 2022-01-18 2023-08-03 Tencent America LLC Signalling of eob for one dimensional transform skip
WO2024083197A1 (en) * 2022-10-20 2024-04-25 Douyin Vision Co., Ltd. Method, apparatus, and medium for video processing

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5578574A (en) * 1978-12-09 1980-06-13 Victor Co Of Japan Ltd Manufacture of insulated-gate field-effect transistor
JPS6143866U (ja) 1984-08-28 1986-03-22 ゼオン化成株式会社 二重プランタ−
KR101830352B1 (ko) * 2011-11-09 2018-02-21 에스케이 텔레콤주식회사 스킵모드를 이용한 동영상 부호화 및 복호화 방법 및 장치
JP5886446B2 (ja) 2012-01-20 2016-03-16 エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュートElectronics And Telecommunications Research Institute 量子化行列の符号化方法及び復号化方法、並びにそれを利用する装置
CN104380734B (zh) * 2012-06-07 2017-09-15 寰发股份有限公司 编码以及解码视频数据的方法和装置
TWI627857B (zh) * 2012-06-29 2018-06-21 Sony Corp Image processing device and method
CN108632611A (zh) * 2012-06-29 2018-10-09 韩国电子通信研究院 视频解码方法、视频编码方法和计算机可读介质
US9451256B2 (en) * 2012-07-20 2016-09-20 Qualcomm Incorporated Reusing parameter sets for video coding
US9247255B2 (en) * 2013-02-28 2016-01-26 Research & Business Foundation Sungkyunkwan University Method and apparatus for image encoding/decoding
KR101462637B1 (ko) * 2013-02-28 2014-11-21 성균관대학교산학협력단 영상 부호화/복호화 방법 및 장치
EP2989796B1 (en) * 2013-04-23 2020-05-06 Qualcomm Incorporated Repositioning of prediction residual blocks in video coding
KR101709775B1 (ko) * 2013-07-23 2017-02-23 인텔렉추얼디스커버리 주식회사 영상 부호화/복호화 방법 및 장치
AU2013228045A1 (en) * 2013-09-13 2015-04-02 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding video data
EP3054683A4 (en) 2013-09-30 2017-06-07 Nippon Hoso Kyokai Image coding device, image decoding device, and programs therefor
CN109076222B9 (zh) * 2016-05-13 2021-10-15 索尼公司 图像处理装置和方法
WO2018101288A1 (ja) * 2016-12-01 2018-06-07 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 符号化装置、符号化方法、復号装置および復号方法
WO2018123322A1 (ja) * 2016-12-29 2018-07-05 株式会社 村田製作所 負極活物質、負極、電池、電池パック、電子機器、電動車両、蓄電装置および電力システム
EP3565254A4 (en) * 2017-01-03 2020-09-30 LG Electronics Inc. -1- IMAGE PROCESSING METHOD AND DEVICE FOR IT
KR102610233B1 (ko) 2019-01-15 2023-12-05 로즈데일 다이나믹스 엘엘씨 변환 스킵 플래그를 이용한 영상 코딩 방법 및 장치

Also Published As

Publication number Publication date
KR20220048060A (ko) 2022-04-19
MX2021008449A (es) 2021-11-03
US10917637B2 (en) 2021-02-09
BR122021012448B1 (pt) 2022-03-22
WO2020149648A1 (ko) 2020-07-23
US20210120231A1 (en) 2021-04-22
EP3703376A1 (en) 2020-09-02
US20220174269A1 (en) 2022-06-02
US11695917B2 (en) 2023-07-04
JP2023118765A (ja) 2023-08-25
JP2021513755A (ja) 2021-05-27
KR102392701B1 (ko) 2022-04-28
KR20240000610A (ko) 2024-01-02
US11297310B2 (en) 2022-04-05
US11979552B2 (en) 2024-05-07
US20230370580A1 (en) 2023-11-16
KR20200090766A (ko) 2020-07-29
KR102610233B1 (ko) 2023-12-05
BR122021012456B1 (pt) 2022-03-22
US20200260070A1 (en) 2020-08-13
CN111699694A (zh) 2020-09-22
BR112021012366B1 (pt) 2022-03-22
EP3703376A4 (en) 2020-09-02
BR122021012456A2 (pt) 2021-09-14
CN111699694B (zh) 2022-07-08
BR122021012448A2 (pt) 2021-09-14

Similar Documents

Publication Publication Date Title
BR112021012366A2 (pt) Método e dispositivo de codificação de imagem utilizando sinalizador de sato de transformada
US11451783B2 (en) Image decoding method using context-coded sign flag in image coding system and apparatus therefor
US11240533B2 (en) Video decoding method using residual information in video coding system, and apparatus thereof
BR122021010330B1 (pt) Método de codificação de imagem com base em transformada secundária não separável e dispositivo para o mesmo
US11792404B2 (en) Method and device for signaling information on chroma format
US20220191471A1 (en) Intra prediction method on basis of mpm list and apparatus therefor
US20230171401A1 (en) Image encoding/decoding method and apparatus for determining prediction mode of chroma block by referring to luma sample position, and method for transmitting bitstream
US11973989B2 (en) Method and apparatus for decoding imaging related to sign data hiding
US20230291896A1 (en) Image encoding/decoding method and device for signaling chroma component prediction information according to whether palette mode is applicable, and method for transmitting bitstream
US20230030970A1 (en) Image decoding method for residual data coding in image coding system, and apparatus therefor
CN113412626A (zh) 在图像编译系统中使用残差信息的图像解码方法及其装置
JP2022546451A (ja) ビデオ/映像コーディングシステムにおける変換係数コーディング方法及び装置
US20230086768A1 (en) Image decoding method related to signaling of flag indicating whether tsrc is available, and device therefor
US11523128B2 (en) Video decoding method and apparatus using residual rearrangement in video coding system
US20210321135A1 (en) Image coding method and apparatus using transform skip flag
US20230164343A1 (en) Image decoding method for residual coding in image coding system, and apparatus therefor
BR122023023402A2 (pt) Método de codificação de imagem com base em uma transformada, e aparelho da mesma
BR122023022919A2 (pt) Aparelho de decodificação para uma decodificação de vídeo, aparelho de codificação para uma codificação de vídeo e aparelho para transmissão de dados para um vídeo
BR122022006273B1 (pt) Método e aparelho de decodificação de imagem, método e aparelho de codificação de imagem, meio de armazenamento legível por computador não transitório, método e aparelho de transmissão de dados para uma imagem
BR122022006263B1 (pt) Método e aparelho de decodificação de imagem, método e aparelho de codificação de imagem, meio de armazenamento legível por computador não transitório, método e aparelho de transmissão de dados para uma imagem
BR112021010422B1 (pt) Método de decodificação de imagem realizado por um aparelho de decodificação, método de codificação de imagem realizado por um aparelho de codificação de imagem e meio de armazenamento legível por computador não transitório

Legal Events

Date Code Title Description
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 15/01/2020, OBSERVADAS AS CONDICOES LEGAIS.

B25A Requested transfer of rights approved

Owner name: TAISSA RESEARCH LLC (US)

B25A Requested transfer of rights approved

Owner name: ROSEDALE DYNAMICS LLC (US)